Общая информация
Цели занятия
после занятия вы сможете:
-
обеспечивать понимание сетевого взаимодействия и отказоустойчивости;
-
обеспечивать безопасность кода и приложения.
Краткое содержание
-
модель OSI;
-
сетевые протоколы;
-
балансировка, решения на разных уровнях сетевого стека (L4, DNS и т.д.);
-
симметричные и ассиметричные алгоритмы шифрования;
-
модели угроз для веб-приложения.
Результаты
-
балансировать запросы к приложению, вспомнить про SSL;
-
искать и устранять уязвимости веб-приложения.
Преподаватель
-
Василий Никонов
Дата и время
-
22 февраля, вторник в 20:00
-
Длительность занятия: 90 минут
Тезисы из вебинара
Модель OSI
1. Канальный уровень
MAC адрес: первые 3 байта — номер производителя, последние 3 байта — номер устройства
2. Сетевой уровень
3. Транспортный уровень
4. Сеансовый уровень
5. Уровень представления
6. Прикладной уровень
Контрольные вопросы
-
на высшем, прикладном
-
если нужно например сделать скоростной ping по UDP
-
на сетевом (роутинг пакетов ip) или прикладном уровнях
Базовые протоколы IP
Протокол IPv4
емкость адресов уже исчерпана, они ротируются между операторами
красным на картинке обозначен номер сети (23 бита), синим — номер узла (32 — 23 = 9 бит)
Классификация сетей по классам (A/B/C)
Публичные и локальные адреса
где 192.168.*.* — привычные нам локальные адреса внутри сети
Протокол IPv5
был признан неудачным, не прижился
Протокол IPv6
Протоколы TCP и UDP
UPD хорош для телефонии, стриминга и т.п., т.к. в TCP критичны задержки в передаче звука
видео
Протоколы DNS
Базовые протоколы
Балансировка
Внешняя балансировка
существенно ускоряет доставку контента; например, много кеширующих географических серверов есть в РФ у операторов
Алгоритмы балансировки
-
Round robin — по кругу смотрим ближайший свободный сервер; много где используется, в т.ч. в nginx
-
Метрики нагрузки: смотрим, как загружены сервера, учитываем это
-
Мониторинг: более сложное чем предыдущее (с обратной связью)
Безопасность
-
Идентификация — присвоение ИД
-
Аутентификация — подтверждение что объект соответствует ИД (подтверждение ключом и т.п.)
-
Авторизация — предоставление доступа к аутентифицированному объекту (проверка роли, прав и т.п.)
Криптография
-
симметричные алгоритмы: AES
-
асимметричные алгоритмы:
-
хэш: md5, sha, …
-
ЭП/ЭЦП
Классификация уязвимостей
см тут: https://cve.mitre.org/index.html
OWASP
см. тут: https://owasp.org/
Это рекомендации по безопасной разработке , частично устаревшие, обновление в 2017
Top 10 ошибок: полезно изучить и проверить свой код:
-
sql injections
-
auth errors
-
xml parsing errors
-
…
Инструменты поддержки качества
Psalm: https://psalm.dev/
Советуют книжку: Эндрю Танненбаум — Компьютерные сети
Домашнее задание
Приложение/скрипт для верификации email-ов.
Цель
Закрепить навыки программирования.
Описание/Пошаговая инструкция выполнения домашнего задания:
-
Приложение верификации email
-
Реализовать приложение (сервис/функцию) для верификации email.
-
Реализация будет в будущем встроена в более крупное решение.
-
Минимальный функционал — список строк, которые необходимо проверить на наличие валидных email.
-
Валидация по регулярным выражениям и проверке DNS mx записи, без полноценной отправки письма-подтверждения.
-
Приложение верификации email
-
Реализовать приложение (сервис/функцию) для верификации email.
-
Реализация будет в будущем встроена в более крупное решение.
-
Минимальный функционал — список строк, которые необходимо проверить на наличие валидных email.
-
Валидация по регулярным выражениям и проверке DNS mx записи, без полноценной отправки письма-подтверждения.
Пояснение:
-
email-ы хранятся в текстовом файле списком
-
проверка рег. выражениями
-
валидация доменов: на существование +_ наличие MX записи (потовый сервер)
-
то есть: можно отдельно проверить домены , затем выбрать из них невалидные и email-ы относящиеся к ним email-ы отсеить автоматом
Нет комментариев