SlideShare uma empresa Scribd logo
1 de 38
Baixar para ler offline
Application Security
ответы на ежедневные вопросы
Сергей Белов
Head of Application Security
Mail.Ru Group
План
➔ Автотесты и безопасность
➔ Анти CSRF токены
➔ “Скачать файл по ссылке”
➔ Секретные ключи
➔ 3rd party сайты на основном домене
➔ 3rd party мониторинги и важные данные
➔ Пуш уведомления vs SMS
➔ Внедрение FFmpeg / ImageMagick
➔ Управление юзер контентом
➔ Рейтлимиты
➔ Аутентификация
◆ “Супер” cookies
◆ Разделение сессий пользователей
Автотесты и безопасность
Автотесты:
- Уже написаны
- Покрывают большинство методов
- Знают верные параметры для вызова функций
- Чаще всего пишутся и для backend, и для frontend
- Используют валидные данные для методов (чтение своего файла, сообщения, письма и т.п.)
Автотесты и безопасность
Автотесты и безопасность
Тестируем безопасность через автотесты!
Frontend
● Отдаем спец символы HTML " ' < > и матчим их - покрываем XSS/HTML инъекции
Backend
● Зашиваем в автотесты различные ID, до которых у текущего пользователя не должно быть
доступа (ID папок, файлов, сообщений и т.п.) - находим уязвимости класса Insecure Direct
Object Reference
Плюсы:
● Сокращение времени на изучение функционала
● Большое покрытие
● Внедрение в CI
● Простое тестирование protocol specific мест (например XML - поиск XML eXternal Entity
уязвимостей, кастомные протоколы - подстановка различных типовых payload в user input)
Минусы:
● Не найдем логические и “сложные” уязвимости
● Не протестируем уязвимости платформы, библиотек, фреймворков
● На начальных этапах - большое количество false positive срабатываний
Security Testing Web Applications throughout Automated Software Tests (2006) -
https://www.owasp.org/images/9/99/AutomatedSecurityTestingofWebApplications-StephendeVries.pdf
Автотесты и безопасность
Анти CSRF токены
Анти CSRF токены
Про CSRF атаку в 1 слайд
GET: http://vulnerable/?action=update_profile&field=value
Атака - <img src="http://vulnerable/?action=update_profile&field=value ">
POST:
<form action=" http://vulnerable/user/update_profile ">
<input type="text" name="field" value="CSRF">
</form>
Анти CSRF токены
Защита?
CSRF токены - рандомное значение в input type="hidden" / HTTP заголовке, которое не знает
атакующий
Как генерировать, где хранить и сверять?
Анти CSRF токены
Framework way:
● Используем стандартные механизмы (Django, Zend, Express)
Свое решение:
● Генерация и хранение - избыточно хранить на сервере / сервере, можно взять hmac-sha* от
session_id. При каждом login/logout CSRF токен будет изменен
● Можно использовать для подписи действий
● Сверка - Перед проверкой ACL / других валидаторов
Анти CSRF токены
- Чем подпись действий может помочь?
- Может помочь предотвратить различного рода Parameter Tampering атаки / Insecure Direct
Object Reference уязвимости - не сверили права на действие с данными параметрами (что
данный юзер может вообще выполнить это действие, например прочитать сообщение,
отправить деньги, обновить профиль)
Анти CSRF токены
Подпись действий через анти CSRF токены:
1) Возьмем action_type, param_1, param_2 - это будут params
action_type = send_money
param_1 = sender_id
param_2 = receiver_id
2) Пусть эти параметры примут участие в генерации токена
csrf_token = GenerateCSRFToken(session_id, params)
3) Отдаем значение в формы (например - в едином билдире форм и сверяем при выполнении
действия)
Допустим, мы не проверили что деньги вообще можно отправить этому пользователю. Но
выполнить это действие не получится - нет нужной подписи (токена)
Скачать файл по ссылке
Таск в Jira:
Дать пользователям скачивать файлы по ссылке (или сделать превью)
Разработчик:
<?php
file_get_contents($_POST['url'])
?>
Атакующий:
url = file:///etc/passwd
“Скачать файл по ссылке” и SSRF
А что нужно проверять?
1. Схема - http/https
2. destination_ip - не в локальной сети / не на серверы в trusted zone
3. Ограничить перенаправления (запретить через редиректы обходить ограничения)
4. destination_port (разрешить 80/443)
5. Race Condition
- Резолвнули (IP не наш)
- Пошли за файлом - новый резолв (!)
- Во втором резолве подменяется IP уже на внутренний
Решение: резолвить, проверять IP и передавать явным параметром в CURL
6. Уязвимости библиотек, используемых в качестве HTTP клиента
7. IPv6
8. …
9. Сделать единый сервер для данных задач, изолировать его, реализовать ему API
10. Вдохновиться можно данной реализацией - https://github.com/fin1te/safecurl
“Скачать файл по ссылке” и SSRF
Секретные ключи
Секретные ключи
● Ключи для подписи сессий
● Соль для криптофункций
● Соль для генерации анти CSRF токенов
● Соль для генерации токенов восстановления пароля
● Пароли для шифрования данных
● Логины и пароли для интеграции с внешними сервисами (трекеры/аналитики и т.п.)
● ...
Одно главное правило - не зашивать их в код!
Выносим их в конфиги / деплоим через Puppet Hiera-Eyaml
3rd party сайты на основном домене
3rd party сайты на основном домене
Бизнес желает, чтобы:
● Промо сайты
● Сайты с вакансиями, блоги
● Сайты от аутсорсеров
● Внешние support / ticket системы
● Кастомные проекты
● И т.д.
Открывались по адресу: http://example.com/projectname
3rd party сайты на основном домене
Что делают?
● Хостят прямо там же
● Ставят proxy_pass + nginx
Как сделать это безопасно?
● Общая “шапка” и <iframe sandbox … > без разрешения allow-top-navigation+ CSP
Пуш уведомления vs SMS
Пуш уведомления vs SMS
Перехват SMS:
● Атаки через SS7 (полностью удаленно)
● Таргетированный перехват SMS (нужно физически находиться рядом)
● Через IVR Spoofing (успех атаки зависит от оператора) в случае, если код вместо SMS
доставляется звонком
● Malware
● Перевыпуск сим карт
● Работа спец служб
Перехват пуш уведомлений:
● Уязвимости Google/Apple/Microsoft
● Неверный механизм подписки на пуши (проблемы backend - передаем ID своего устройства и
идентификатор жертвы)
● Возможен перехват через привилегированные приложения (например, для передачи пуша на
часы, в мультимедиа систему машины и т.п.)
Пуш уведомления vs SMS
Безопасный алгоритм перехода на пуши:
1) Первое подтверждение - через SMS. Дальше шлем пуши
2) В пушах не передаем секретные данные (код подтверждения) визуально, а указываем его в
payload. Приложение само вытащит и подставит этот код для проведения операции.
3) Тестируем безопасность бэкенда и все связанные с пушами методы
Внедрение FFmpeg / ImageMagick
Внедрение FFmpeg / ImageMagick
Внедрили FFmpeg? ImageMagick?
Считайте, что любой юзер может читать любые файлы на
сервере / выполнять любые команды ОС
Атаки на видеоконвертеры: год спустя - https://www.phdays.ru/program/213682/
(Эмиль Лернер и Павел Черемушкин)
Внедрение FFmpeg / ImageMagick
Как все-таки внедрить?
- sandbox (docker / SELinux / etc)
- Отдельная машина в изолированной сети
- API для нужного функционала
- Отключение ненужных demuxer’ов (HLS)
Управление юзер контентом
Управление юзер контентом
Несколько правил:
1) Отдаем с другого домена (*.example-content-from-users.com)
2) Отключаем различные интерпретаторы на бэкенде
3) Если файл приватный (аттач) генерим ему временный токен и сверяем при открытии на
серверах с контентом (например через nginx + LUA)
Рейтлимиты
Важно закладывать в реализацию методов:
1) Возможность ограничивать вызов API методов (по ключевым параметрам)
2) Иметь возможность мониторить сколько раз вызывается метод (позволяет выявлять
массовые атаки)
3) Реализовать несколько методов рейтлимитов: абсолютные (например - 5 раз в минуту), по
подтверждению после порога (ввод каптчи)
Рейтлимиты
3rd party мониторинги и важные данные
Страницы:
- Ввода данных аккаунта
- Привязки карты
- Восстановления аккаунты
- Управление двухфакторкой
- И другие важные страницы
Не должны (не рекомендуется) содержать внешние трекеры / аналитику / любую другую статику
(картинки, стили и т.п.) с доменов, которые не принадлежал компании
3rd party мониторинги
Аутентификация
Вопросов много, мы рассмотрим только следующие:
1) Отдельный домен и “супер” cookies
2) Привязка сессий к пользователю
3) Разделение сессий
Аутентификация
Отдельный домен и “супер” cookies
https://example.com/login
<form action=" https://account.example.com ">
<input type="text" name="username">
<input type="password" name=password"
</form>
https://account.example.com
Set-Cookie: SuperAuth=_token_; Domain=account.example.com; Secure;
HttpOnly
Set-Cookie: Session=_SESSION_ID_; Domain=example.com; Secure;
HttpOnly
Аутентификация
Отдельный домен и “супер” cookies - для чего? Привязка сессий к пользователю
1) Изменился fingerprint браузера?
2) Изменился город (по IP)?
3) Истекла сессия?
Делаем редирект на account.example.com - там есть супер “cookie”, которая
подтверждает то, что пользователь действительно вводил пароль в этом
браузере. Все ок - выдаем новую сессию
Аутентификация
Разделение сессий.
Представим себе, что у нас есть example.com и account.example.com. Завтра появились:
- blogs.example.com
- messenger.example.com
- shop.example.com
- …
Которые могут работать и без https и у пользователей может быть “угнан” session_id.
Чтобы один session_id не подходил ко всем проектам можно ввести новый параметр в сессиях -
“scope”. Если текущая сессия никогда не использовалась на данном сервисе - делать редирект на
account.example.com
Аутентификация
@sergeybelove
s.belov@corp.mail.ru

Mais conteúdo relacionado

Mais procurados

Как начать тестировать безопасность уже сегодня
Как начать тестировать безопасность уже сегодняКак начать тестировать безопасность уже сегодня
Как начать тестировать безопасность уже сегодняSergey Belov
 
CodeFest 2012 - Пентест на стероидах
CodeFest 2012 - Пентест на стероидахCodeFest 2012 - Пентест на стероидах
CodeFest 2012 - Пентест на стероидахSergey Belov
 
Атаки на web-приложения. Основы
Атаки на web-приложения. ОсновыАтаки на web-приложения. Основы
Атаки на web-приложения. ОсновыPositive Hack Days
 
История из жизни. Демонстрация работы реального злоумышленника на примере ата...
История из жизни. Демонстрация работы реального злоумышленника на примере ата...История из жизни. Демонстрация работы реального злоумышленника на примере ата...
История из жизни. Демонстрация работы реального злоумышленника на примере ата...Dmitry Evteev
 
Введение в тему безопасности веб-приложений
Введение в тему безопасности веб-приложенийВведение в тему безопасности веб-приложений
Введение в тему безопасности веб-приложенийDmitry Evteev
 
современная практика статического анализа безопасности кода веб приложений
современная практика статического анализа безопасности кода веб приложенийсовременная практика статического анализа безопасности кода веб приложений
современная практика статического анализа безопасности кода веб приложенийSergey Belov
 
Анализ защищенности Web-приложений, выявление уязвимостей в реальных условиях
Анализ защищенности Web-приложений, выявление уязвимостей в реальных условияхАнализ защищенности Web-приложений, выявление уязвимостей в реальных условиях
Анализ защищенности Web-приложений, выявление уязвимостей в реальных условияхDmitry Evteev
 
Как взламывают сети государственных учреждений
Как взламывают сети государственных учрежденийКак взламывают сети государственных учреждений
Как взламывают сети государственных учрежденийDmitry Evteev
 
Тестирование на проникновение в сетях Microsoft
Тестирование на проникновение в сетях MicrosoftТестирование на проникновение в сетях Microsoft
Тестирование на проникновение в сетях MicrosoftDmitry Evteev
 
разработка безопасного кода
разработка безопасного кодаразработка безопасного кода
разработка безопасного кодаAndrey Somsikov
 
Безопасность Drupal сайтов
Безопасность Drupal сайтовБезопасность Drupal сайтов
Безопасность Drupal сайтовEugene Fidelin
 
Тестирование на проникновение в сетях Microsoft (v.2)
Тестирование на проникновение в сетях Microsoft (v.2)Тестирование на проникновение в сетях Microsoft (v.2)
Тестирование на проникновение в сетях Microsoft (v.2)Dmitry Evteev
 
Application security? Firewall it!
Application security? Firewall it!Application security? Firewall it!
Application security? Firewall it!Positive Hack Days
 
Корреляция в SIEM системах
Корреляция в SIEM системахКорреляция в SIEM системах
Корреляция в SIEM системахOlesya Shelestova
 
Безопасность сессий в веб-приложениях: практическое применение
Безопасность сессий в веб-приложениях: практическое применениеБезопасность сессий в веб-приложениях: практическое применение
Безопасность сессий в веб-приложениях: практическое применениеSQALab
 
Доклад Станислава Еремина на конференции LoveQA. "Системы обнаружения уязвимо...
Доклад Станислава Еремина на конференции LoveQA. "Системы обнаружения уязвимо...Доклад Станислава Еремина на конференции LoveQA. "Системы обнаружения уязвимо...
Доклад Станислава Еремина на конференции LoveQA. "Системы обнаружения уязвимо...Badoo Development
 
Zabbix в Badoo или о чем не пишут в мануале, Илья Аблеев (Badoo)
Zabbix в Badoo или о чем не пишут в мануале, Илья Аблеев (Badoo)Zabbix в Badoo или о чем не пишут в мануале, Илья Аблеев (Badoo)
Zabbix в Badoo или о чем не пишут в мануале, Илья Аблеев (Badoo)Badoo Development
 
Е. Фиделин Безопасность Drupal сайтов
Е. Фиделин Безопасность Drupal сайтовЕ. Фиделин Безопасность Drupal сайтов
Е. Фиделин Безопасность Drupal сайтовAlbina Tiupa
 
Positive Hack Days. Гуркин. Угрозы безопасности АСУ ТП
Positive Hack Days. Гуркин. Угрозы безопасности АСУ ТПPositive Hack Days. Гуркин. Угрозы безопасности АСУ ТП
Positive Hack Days. Гуркин. Угрозы безопасности АСУ ТПPositive Hack Days
 

Mais procurados (20)

Как начать тестировать безопасность уже сегодня
Как начать тестировать безопасность уже сегодняКак начать тестировать безопасность уже сегодня
Как начать тестировать безопасность уже сегодня
 
CodeFest 2012 - Пентест на стероидах
CodeFest 2012 - Пентест на стероидахCodeFest 2012 - Пентест на стероидах
CodeFest 2012 - Пентест на стероидах
 
RuSIEM (15.11.2015)
RuSIEM (15.11.2015)RuSIEM (15.11.2015)
RuSIEM (15.11.2015)
 
Атаки на web-приложения. Основы
Атаки на web-приложения. ОсновыАтаки на web-приложения. Основы
Атаки на web-приложения. Основы
 
История из жизни. Демонстрация работы реального злоумышленника на примере ата...
История из жизни. Демонстрация работы реального злоумышленника на примере ата...История из жизни. Демонстрация работы реального злоумышленника на примере ата...
История из жизни. Демонстрация работы реального злоумышленника на примере ата...
 
Введение в тему безопасности веб-приложений
Введение в тему безопасности веб-приложенийВведение в тему безопасности веб-приложений
Введение в тему безопасности веб-приложений
 
современная практика статического анализа безопасности кода веб приложений
современная практика статического анализа безопасности кода веб приложенийсовременная практика статического анализа безопасности кода веб приложений
современная практика статического анализа безопасности кода веб приложений
 
Анализ защищенности Web-приложений, выявление уязвимостей в реальных условиях
Анализ защищенности Web-приложений, выявление уязвимостей в реальных условияхАнализ защищенности Web-приложений, выявление уязвимостей в реальных условиях
Анализ защищенности Web-приложений, выявление уязвимостей в реальных условиях
 
Как взламывают сети государственных учреждений
Как взламывают сети государственных учрежденийКак взламывают сети государственных учреждений
Как взламывают сети государственных учреждений
 
Тестирование на проникновение в сетях Microsoft
Тестирование на проникновение в сетях MicrosoftТестирование на проникновение в сетях Microsoft
Тестирование на проникновение в сетях Microsoft
 
разработка безопасного кода
разработка безопасного кодаразработка безопасного кода
разработка безопасного кода
 
Безопасность Drupal сайтов
Безопасность Drupal сайтовБезопасность Drupal сайтов
Безопасность Drupal сайтов
 
Тестирование на проникновение в сетях Microsoft (v.2)
Тестирование на проникновение в сетях Microsoft (v.2)Тестирование на проникновение в сетях Microsoft (v.2)
Тестирование на проникновение в сетях Microsoft (v.2)
 
Application security? Firewall it!
Application security? Firewall it!Application security? Firewall it!
Application security? Firewall it!
 
Корреляция в SIEM системах
Корреляция в SIEM системахКорреляция в SIEM системах
Корреляция в SIEM системах
 
Безопасность сессий в веб-приложениях: практическое применение
Безопасность сессий в веб-приложениях: практическое применениеБезопасность сессий в веб-приложениях: практическое применение
Безопасность сессий в веб-приложениях: практическое применение
 
Доклад Станислава Еремина на конференции LoveQA. "Системы обнаружения уязвимо...
Доклад Станислава Еремина на конференции LoveQA. "Системы обнаружения уязвимо...Доклад Станислава Еремина на конференции LoveQA. "Системы обнаружения уязвимо...
Доклад Станислава Еремина на конференции LoveQA. "Системы обнаружения уязвимо...
 
Zabbix в Badoo или о чем не пишут в мануале, Илья Аблеев (Badoo)
Zabbix в Badoo или о чем не пишут в мануале, Илья Аблеев (Badoo)Zabbix в Badoo или о чем не пишут в мануале, Илья Аблеев (Badoo)
Zabbix в Badoo или о чем не пишут в мануале, Илья Аблеев (Badoo)
 
Е. Фиделин Безопасность Drupal сайтов
Е. Фиделин Безопасность Drupal сайтовЕ. Фиделин Безопасность Drupal сайтов
Е. Фиделин Безопасность Drupal сайтов
 
Positive Hack Days. Гуркин. Угрозы безопасности АСУ ТП
Positive Hack Days. Гуркин. Угрозы безопасности АСУ ТПPositive Hack Days. Гуркин. Угрозы безопасности АСУ ТП
Positive Hack Days. Гуркин. Угрозы безопасности АСУ ТП
 

Semelhante a Application Security - ответы на ежедневные вопросы / Сергей Белов (Mail.Ru Group)

Архитектура защищенного периметра
Архитектура защищенного периметраАрхитектура защищенного периметра
Архитектура защищенного периметраCisco Russia
 
Web осень 2012 лекция 11
Web осень 2012 лекция 11Web осень 2012 лекция 11
Web осень 2012 лекция 11Technopark
 
Архитектура защищенного периметра
Архитектура защищенного периметраАрхитектура защищенного периметра
Архитектура защищенного периметраCisco Russia
 
Какие вопросы чаще всего задают вендору при выборе решения по информационной ...
Какие вопросы чаще всего задают вендору при выборе решения по информационной ...Какие вопросы чаще всего задают вендору при выборе решения по информационной ...
Какие вопросы чаще всего задают вендору при выборе решения по информационной ...Denis Batrankov, CISSP
 
11 лекция, петр волков
11 лекция, петр волков11 лекция, петр волков
11 лекция, петр волковkarina krew
 
Безопасность Joomla: теория и практика
Безопасность Joomla: теория и практикаБезопасность Joomla: теория и практика
Безопасность Joomla: теория и практикаrevisium
 
Penetration testing (AS IS)
Penetration testing (AS IS)Penetration testing (AS IS)
Penetration testing (AS IS)Dmitry Evteev
 
Построение защищенного Интернет-периметра
Построение защищенного Интернет-периметраПостроение защищенного Интернет-периметра
Построение защищенного Интернет-периметраCisco Russia
 
ITSF 2014 ICS Security
ITSF 2014 ICS SecurityITSF 2014 ICS Security
ITSF 2014 ICS SecurityIlya Karpov
 
Жизнь богаче схем ( APT Cobalt на кончиках пальцев). Сергей Золотухин, Group-IB
Жизнь богаче схем ( APT Cobalt на кончиках пальцев). Сергей Золотухин, Group-IBЖизнь богаче схем ( APT Cobalt на кончиках пальцев). Сергей Золотухин, Group-IB
Жизнь богаче схем ( APT Cobalt на кончиках пальцев). Сергей Золотухин, Group-IBБанковское обозрение
 
Эволюция атак на веб приложения (Evolution of web applications attacks)
Эволюция атак на веб приложения (Evolution of web applications attacks)Эволюция атак на веб приложения (Evolution of web applications attacks)
Эволюция атак на веб приложения (Evolution of web applications attacks)c3retc3
 
SIEM use cases - как их написать
SIEM use cases - как их написатьSIEM use cases - как их написать
SIEM use cases - как их написатьOlesya Shelestova
 
Александр Коротин. Безопасность систем управления турбинами в электроэнергетике
Александр Коротин. Безопасность систем управления турбинами в электроэнергетикеАлександр Коротин. Безопасность систем управления турбинами в электроэнергетике
Александр Коротин. Безопасность систем управления турбинами в электроэнергетикеKaspersky
 
Безопасность веб-приложений. Так ли опасна виртуальная угроза?
Безопасность веб-приложений.  Так ли опасна виртуальная угроза?Безопасность веб-приложений.  Так ли опасна виртуальная угроза?
Безопасность веб-приложений. Так ли опасна виртуальная угроза?phpdevby
 
Как защитить сеть от web-угроз с помощью Cisco WSA (ex IronPort)
Как защитить сеть от web-угроз с помощью Cisco WSA (ex IronPort)Как защитить сеть от web-угроз с помощью Cisco WSA (ex IronPort)
Как защитить сеть от web-угроз с помощью Cisco WSA (ex IronPort)SkillFactory
 
Web весна 2012 лекция 11
Web весна 2012 лекция 11Web весна 2012 лекция 11
Web весна 2012 лекция 11Technopark
 
Кулинарный мастер-класс "Готовим безопасный офис нового поколения на основе C...
Кулинарный мастер-класс "Готовим безопасный офис нового поколения на основе C...Кулинарный мастер-класс "Готовим безопасный офис нового поколения на основе C...
Кулинарный мастер-класс "Готовим безопасный офис нового поколения на основе C...Cisco Russia
 

Semelhante a Application Security - ответы на ежедневные вопросы / Сергей Белов (Mail.Ru Group) (20)

Архитектура защищенного периметра
Архитектура защищенного периметраАрхитектура защищенного периметра
Архитектура защищенного периметра
 
Web осень 2012 лекция 11
Web осень 2012 лекция 11Web осень 2012 лекция 11
Web осень 2012 лекция 11
 
Архитектура защищенного периметра
Архитектура защищенного периметраАрхитектура защищенного периметра
Архитектура защищенного периметра
 
IBM Proventia IPS
IBM Proventia IPSIBM Proventia IPS
IBM Proventia IPS
 
Какие вопросы чаще всего задают вендору при выборе решения по информационной ...
Какие вопросы чаще всего задают вендору при выборе решения по информационной ...Какие вопросы чаще всего задают вендору при выборе решения по информационной ...
Какие вопросы чаще всего задают вендору при выборе решения по информационной ...
 
11 лекция, петр волков
11 лекция, петр волков11 лекция, петр волков
11 лекция, петр волков
 
Безопасность Joomla: теория и практика
Безопасность Joomla: теория и практикаБезопасность Joomla: теория и практика
Безопасность Joomla: теория и практика
 
Penetration testing (AS IS)
Penetration testing (AS IS)Penetration testing (AS IS)
Penetration testing (AS IS)
 
Безопасность
БезопасностьБезопасность
Безопасность
 
Построение защищенного Интернет-периметра
Построение защищенного Интернет-периметраПостроение защищенного Интернет-периметра
Построение защищенного Интернет-периметра
 
ITSF 2014 ICS Security
ITSF 2014 ICS SecurityITSF 2014 ICS Security
ITSF 2014 ICS Security
 
Жизнь богаче схем ( APT Cobalt на кончиках пальцев). Сергей Золотухин, Group-IB
Жизнь богаче схем ( APT Cobalt на кончиках пальцев). Сергей Золотухин, Group-IBЖизнь богаче схем ( APT Cobalt на кончиках пальцев). Сергей Золотухин, Group-IB
Жизнь богаче схем ( APT Cobalt на кончиках пальцев). Сергей Золотухин, Group-IB
 
Эволюция атак на веб приложения (Evolution of web applications attacks)
Эволюция атак на веб приложения (Evolution of web applications attacks)Эволюция атак на веб приложения (Evolution of web applications attacks)
Эволюция атак на веб приложения (Evolution of web applications attacks)
 
SIEM use cases - как их написать
SIEM use cases - как их написатьSIEM use cases - как их написать
SIEM use cases - как их написать
 
Александр Коротин. Безопасность систем управления турбинами в электроэнергетике
Александр Коротин. Безопасность систем управления турбинами в электроэнергетикеАлександр Коротин. Безопасность систем управления турбинами в электроэнергетике
Александр Коротин. Безопасность систем управления турбинами в электроэнергетике
 
Безопасность веб-приложений. Так ли опасна виртуальная угроза?
Безопасность веб-приложений.  Так ли опасна виртуальная угроза?Безопасность веб-приложений.  Так ли опасна виртуальная угроза?
Безопасность веб-приложений. Так ли опасна виртуальная угроза?
 
Как защитить сеть от web-угроз с помощью Cisco WSA (ex IronPort)
Как защитить сеть от web-угроз с помощью Cisco WSA (ex IronPort)Как защитить сеть от web-угроз с помощью Cisco WSA (ex IronPort)
Как защитить сеть от web-угроз с помощью Cisco WSA (ex IronPort)
 
Web весна 2012 лекция 11
Web весна 2012 лекция 11Web весна 2012 лекция 11
Web весна 2012 лекция 11
 
Безопасность CMS
Безопасность CMSБезопасность CMS
Безопасность CMS
 
Кулинарный мастер-класс "Готовим безопасный офис нового поколения на основе C...
Кулинарный мастер-класс "Готовим безопасный офис нового поколения на основе C...Кулинарный мастер-класс "Готовим безопасный офис нового поколения на основе C...
Кулинарный мастер-класс "Готовим безопасный офис нового поколения на основе C...
 

Mais de Ontico

One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...Ontico
 
Масштабируя DNS / Артем Гавриченков (Qrator Labs)
Масштабируя DNS / Артем Гавриченков (Qrator Labs)Масштабируя DNS / Артем Гавриченков (Qrator Labs)
Масштабируя DNS / Артем Гавриченков (Qrator Labs)Ontico
 
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)Ontico
 
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...Ontico
 
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...Ontico
 
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)Ontico
 
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...Ontico
 
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...Ontico
 
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)Ontico
 
MySQL Replication — Advanced Features / Петр Зайцев (Percona)
MySQL Replication — Advanced Features / Петр Зайцев (Percona)MySQL Replication — Advanced Features / Петр Зайцев (Percona)
MySQL Replication — Advanced Features / Петр Зайцев (Percona)Ontico
 
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...Внутренний open-source. Как разрабатывать мобильное приложение большим количе...
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...Ontico
 
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...Ontico
 
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...Ontico
 
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)Ontico
 
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)Ontico
 
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)Ontico
 
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)Ontico
 
100500 способов кэширования в Oracle Database или как достичь максимальной ск...
100500 способов кэширования в Oracle Database или как достичь максимальной ск...100500 способов кэширования в Oracle Database или как достичь максимальной ск...
100500 способов кэширования в Oracle Database или как достичь максимальной ск...Ontico
 
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...Ontico
 
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...Ontico
 

Mais de Ontico (20)

One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
 
Масштабируя DNS / Артем Гавриченков (Qrator Labs)
Масштабируя DNS / Артем Гавриченков (Qrator Labs)Масштабируя DNS / Артем Гавриченков (Qrator Labs)
Масштабируя DNS / Артем Гавриченков (Qrator Labs)
 
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
 
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
 
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...
 
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)
 
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...
 
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
 
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)
 
MySQL Replication — Advanced Features / Петр Зайцев (Percona)
MySQL Replication — Advanced Features / Петр Зайцев (Percona)MySQL Replication — Advanced Features / Петр Зайцев (Percona)
MySQL Replication — Advanced Features / Петр Зайцев (Percona)
 
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...Внутренний open-source. Как разрабатывать мобильное приложение большим количе...
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...
 
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...
 
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...
 
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)
 
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)
 
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)
 
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
 
100500 способов кэширования в Oracle Database или как достичь максимальной ск...
100500 способов кэширования в Oracle Database или как достичь максимальной ск...100500 способов кэширования в Oracle Database или как достичь максимальной ск...
100500 способов кэширования в Oracle Database или как достичь максимальной ск...
 
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...
 
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...
 

Application Security - ответы на ежедневные вопросы / Сергей Белов (Mail.Ru Group)

  • 1. Application Security ответы на ежедневные вопросы Сергей Белов Head of Application Security Mail.Ru Group
  • 2. План ➔ Автотесты и безопасность ➔ Анти CSRF токены ➔ “Скачать файл по ссылке” ➔ Секретные ключи ➔ 3rd party сайты на основном домене ➔ 3rd party мониторинги и важные данные ➔ Пуш уведомления vs SMS ➔ Внедрение FFmpeg / ImageMagick ➔ Управление юзер контентом ➔ Рейтлимиты ➔ Аутентификация ◆ “Супер” cookies ◆ Разделение сессий пользователей
  • 4. Автотесты: - Уже написаны - Покрывают большинство методов - Знают верные параметры для вызова функций - Чаще всего пишутся и для backend, и для frontend - Используют валидные данные для методов (чтение своего файла, сообщения, письма и т.п.) Автотесты и безопасность
  • 5. Автотесты и безопасность Тестируем безопасность через автотесты! Frontend ● Отдаем спец символы HTML " ' < > и матчим их - покрываем XSS/HTML инъекции Backend ● Зашиваем в автотесты различные ID, до которых у текущего пользователя не должно быть доступа (ID папок, файлов, сообщений и т.п.) - находим уязвимости класса Insecure Direct Object Reference
  • 6. Плюсы: ● Сокращение времени на изучение функционала ● Большое покрытие ● Внедрение в CI ● Простое тестирование protocol specific мест (например XML - поиск XML eXternal Entity уязвимостей, кастомные протоколы - подстановка различных типовых payload в user input) Минусы: ● Не найдем логические и “сложные” уязвимости ● Не протестируем уязвимости платформы, библиотек, фреймворков ● На начальных этапах - большое количество false positive срабатываний Security Testing Web Applications throughout Automated Software Tests (2006) - https://www.owasp.org/images/9/99/AutomatedSecurityTestingofWebApplications-StephendeVries.pdf Автотесты и безопасность
  • 8. Анти CSRF токены Про CSRF атаку в 1 слайд GET: http://vulnerable/?action=update_profile&field=value Атака - <img src="http://vulnerable/?action=update_profile&field=value "> POST: <form action=" http://vulnerable/user/update_profile "> <input type="text" name="field" value="CSRF"> </form>
  • 9. Анти CSRF токены Защита? CSRF токены - рандомное значение в input type="hidden" / HTTP заголовке, которое не знает атакующий Как генерировать, где хранить и сверять?
  • 10. Анти CSRF токены Framework way: ● Используем стандартные механизмы (Django, Zend, Express) Свое решение: ● Генерация и хранение - избыточно хранить на сервере / сервере, можно взять hmac-sha* от session_id. При каждом login/logout CSRF токен будет изменен ● Можно использовать для подписи действий ● Сверка - Перед проверкой ACL / других валидаторов
  • 11. Анти CSRF токены - Чем подпись действий может помочь? - Может помочь предотвратить различного рода Parameter Tampering атаки / Insecure Direct Object Reference уязвимости - не сверили права на действие с данными параметрами (что данный юзер может вообще выполнить это действие, например прочитать сообщение, отправить деньги, обновить профиль)
  • 12. Анти CSRF токены Подпись действий через анти CSRF токены: 1) Возьмем action_type, param_1, param_2 - это будут params action_type = send_money param_1 = sender_id param_2 = receiver_id 2) Пусть эти параметры примут участие в генерации токена csrf_token = GenerateCSRFToken(session_id, params) 3) Отдаем значение в формы (например - в едином билдире форм и сверяем при выполнении действия) Допустим, мы не проверили что деньги вообще можно отправить этому пользователю. Но выполнить это действие не получится - нет нужной подписи (токена)
  • 14. Таск в Jira: Дать пользователям скачивать файлы по ссылке (или сделать превью) Разработчик: <?php file_get_contents($_POST['url']) ?> Атакующий: url = file:///etc/passwd “Скачать файл по ссылке” и SSRF
  • 15. А что нужно проверять? 1. Схема - http/https 2. destination_ip - не в локальной сети / не на серверы в trusted zone 3. Ограничить перенаправления (запретить через редиректы обходить ограничения) 4. destination_port (разрешить 80/443) 5. Race Condition - Резолвнули (IP не наш) - Пошли за файлом - новый резолв (!) - Во втором резолве подменяется IP уже на внутренний Решение: резолвить, проверять IP и передавать явным параметром в CURL 6. Уязвимости библиотек, используемых в качестве HTTP клиента 7. IPv6 8. … 9. Сделать единый сервер для данных задач, изолировать его, реализовать ему API 10. Вдохновиться можно данной реализацией - https://github.com/fin1te/safecurl “Скачать файл по ссылке” и SSRF
  • 17. Секретные ключи ● Ключи для подписи сессий ● Соль для криптофункций ● Соль для генерации анти CSRF токенов ● Соль для генерации токенов восстановления пароля ● Пароли для шифрования данных ● Логины и пароли для интеграции с внешними сервисами (трекеры/аналитики и т.п.) ● ... Одно главное правило - не зашивать их в код! Выносим их в конфиги / деплоим через Puppet Hiera-Eyaml
  • 18. 3rd party сайты на основном домене
  • 19. 3rd party сайты на основном домене Бизнес желает, чтобы: ● Промо сайты ● Сайты с вакансиями, блоги ● Сайты от аутсорсеров ● Внешние support / ticket системы ● Кастомные проекты ● И т.д. Открывались по адресу: http://example.com/projectname
  • 20. 3rd party сайты на основном домене Что делают? ● Хостят прямо там же ● Ставят proxy_pass + nginx Как сделать это безопасно? ● Общая “шапка” и <iframe sandbox … > без разрешения allow-top-navigation+ CSP
  • 22. Пуш уведомления vs SMS Перехват SMS: ● Атаки через SS7 (полностью удаленно) ● Таргетированный перехват SMS (нужно физически находиться рядом) ● Через IVR Spoofing (успех атаки зависит от оператора) в случае, если код вместо SMS доставляется звонком ● Malware ● Перевыпуск сим карт ● Работа спец служб Перехват пуш уведомлений: ● Уязвимости Google/Apple/Microsoft ● Неверный механизм подписки на пуши (проблемы backend - передаем ID своего устройства и идентификатор жертвы) ● Возможен перехват через привилегированные приложения (например, для передачи пуша на часы, в мультимедиа систему машины и т.п.)
  • 23. Пуш уведомления vs SMS Безопасный алгоритм перехода на пуши: 1) Первое подтверждение - через SMS. Дальше шлем пуши 2) В пушах не передаем секретные данные (код подтверждения) визуально, а указываем его в payload. Приложение само вытащит и подставит этот код для проведения операции. 3) Тестируем безопасность бэкенда и все связанные с пушами методы
  • 25. Внедрение FFmpeg / ImageMagick Внедрили FFmpeg? ImageMagick? Считайте, что любой юзер может читать любые файлы на сервере / выполнять любые команды ОС Атаки на видеоконвертеры: год спустя - https://www.phdays.ru/program/213682/ (Эмиль Лернер и Павел Черемушкин)
  • 26. Внедрение FFmpeg / ImageMagick Как все-таки внедрить? - sandbox (docker / SELinux / etc) - Отдельная машина в изолированной сети - API для нужного функционала - Отключение ненужных demuxer’ов (HLS)
  • 28. Управление юзер контентом Несколько правил: 1) Отдаем с другого домена (*.example-content-from-users.com) 2) Отключаем различные интерпретаторы на бэкенде 3) Если файл приватный (аттач) генерим ему временный токен и сверяем при открытии на серверах с контентом (например через nginx + LUA)
  • 30. Важно закладывать в реализацию методов: 1) Возможность ограничивать вызов API методов (по ключевым параметрам) 2) Иметь возможность мониторить сколько раз вызывается метод (позволяет выявлять массовые атаки) 3) Реализовать несколько методов рейтлимитов: абсолютные (например - 5 раз в минуту), по подтверждению после порога (ввод каптчи) Рейтлимиты
  • 31. 3rd party мониторинги и важные данные
  • 32. Страницы: - Ввода данных аккаунта - Привязки карты - Восстановления аккаунты - Управление двухфакторкой - И другие важные страницы Не должны (не рекомендуется) содержать внешние трекеры / аналитику / любую другую статику (картинки, стили и т.п.) с доменов, которые не принадлежал компании 3rd party мониторинги
  • 34. Вопросов много, мы рассмотрим только следующие: 1) Отдельный домен и “супер” cookies 2) Привязка сессий к пользователю 3) Разделение сессий Аутентификация
  • 35. Отдельный домен и “супер” cookies https://example.com/login <form action=" https://account.example.com "> <input type="text" name="username"> <input type="password" name=password" </form> https://account.example.com Set-Cookie: SuperAuth=_token_; Domain=account.example.com; Secure; HttpOnly Set-Cookie: Session=_SESSION_ID_; Domain=example.com; Secure; HttpOnly Аутентификация
  • 36. Отдельный домен и “супер” cookies - для чего? Привязка сессий к пользователю 1) Изменился fingerprint браузера? 2) Изменился город (по IP)? 3) Истекла сессия? Делаем редирект на account.example.com - там есть супер “cookie”, которая подтверждает то, что пользователь действительно вводил пароль в этом браузере. Все ок - выдаем новую сессию Аутентификация
  • 37. Разделение сессий. Представим себе, что у нас есть example.com и account.example.com. Завтра появились: - blogs.example.com - messenger.example.com - shop.example.com - … Которые могут работать и без https и у пользователей может быть “угнан” session_id. Чтобы один session_id не подходил ко всем проектам можно ввести новый параметр в сессиях - “scope”. Если текущая сессия никогда не использовалась на данном сервисе - делать редирект на account.example.com Аутентификация