Стажировка-2015. Разработка. Занятие 11. Безопасность...
Post on 13-Apr-2017
224 Views
Preview:
TRANSCRIPT
Стажировка-‐2015
Безопасность в web приложениях
Стажировка-‐2015
Идентификация -‐ процесс опознания субъекта, в результате которого выявляется уникальный идентификатор опознаваемого -‐ логин, email.
Идентификация, аутентификация
Стажировка-‐2015
Аутентификация -‐ процесс подтверждения того, что субъект действительно является тем, за кого себя выдает.
Идентификация, аутентификация
Стажировка-‐2015
• Что знает -‐ пароль • Что имеет -‐ телефон, смарт карты
• Кто субъект есть -‐ биометрия
Факторы аутентификации
Стажировка-‐2015
Двухфакторная аутентификация -‐ пароль(что знаем) + смс или генератор ключей(что имеем)
Факторы аутентификации
Стажировка-‐2015
Авторизация -‐ процесс проверки прав субъекта на выполнение данного действия.
Не путать с аутентификацией!
Авторизация
Стажировка-‐2015
Что будет, если злоумышленник получит хотя бы read-‐only доступ к БД пользователей? Как избежать компрометации паролей?
Хранение паролей
Стажировка-‐2015
Никогда не хранить пароли в открытом виде.
Хранение паролей
Стажировка-‐2015
Хэширование паролей. Хэш функция -‐ односторонняя ф-‐ия, преобразующая входные данные в выходной набор фиксированной длины. Криптографически стойкая хэш функция очень трудно обратима и устойчива к коллизиям. MD5, SHA, Scrypt, ГОСТ Р 34.11-‐2012
Хранение паролей
Стажировка-‐2015
• Поиск хэш коллизий: H(a) == H(b)
• Перебор по словарям • Радужные таблица
Атака на хэшированные пароли
Стажировка-‐2015
• Замедление хэш функций -‐ много раундов хэширования
• Увеличение длины хэша • Усложнение паролей • Соль -‐ строка криптографически случайных данных
Атака на хэшированные пароли
Стажировка-‐2015
Hash(Password + Salt), Salt Salt = криптографически! случайная последовательность. Например, UUIDv4
Криптографическая соль
Стажировка-‐2015
Cтандарт формирования ключа на основе пароля • BCrypt • PBKDF2 Эти функции уже используют соль
Production ready
Стажировка-‐2015
• XSS -‐ межсайтовый скриптинг • CSRF -‐ межсайтовая подделка запросов • SQL-‐инъекции • MITM -‐ человек посередине и анализ траффика
• Атаки на сервер -‐ взлом ssh, tomcat, DB пароля
Интернет атаки
Стажировка-‐2015
• Экранирование спец символов html ‘"&<>
• фильтрация запросов: http://example.com/
search?q=<script>DoSomething();</script> • CSP -‐ список откуда можно загружать js, css …
• Использование SSL
XSS -‐ межсайтовый скриптинг
Стажировка-‐2015
Внедрение в запрос произвольный SQL код. http://example.com?query=1+OR+1=1 SELECT * FROM data WHERE id =1 OR 1=1;
SQL-‐инъекции
Стажировка-‐2015
• Экранирование запросов • PrepareStatement для параметризованных запросов
• не использовать конкатенацию строк для построения sql запроса
SQL-‐инъекции
Стажировка-‐2015
Мэллори: Привет, Алиса! Посмотри, какой милый котик:
<img src="http://bank.example.com/withdraw?account=Alice&amount=1000000&for=Mallory">
CSRF -‐ межсайтовая подделка запроса
Стажировка-‐2015
• Проверять HTTP_REFERER • CSRF_TOKEN на каждой странице
• Same Origin Policy(domain, port, protocol)
CSRF -‐ межсайтовая подделка запроса
Стажировка-‐2015
Атака человек посередине • Снифинг -‐ прослушивание • Подмена пакетов
MITM
Стажировка-‐2015
MITM,
Стажировка-‐2015
• HTTPS = HTTP + TLS(SSL) • Порт 443 вместо 80 • Сертификат -‐ public+private • RSA, Диффи-‐Хеллман для обмена ключами
• AES, 3DES, RC4 -‐ шифрование трафика • SHA256/512 для хэш функций
HTTPS
Стажировка-‐2015
• Боты сканируют порты • Боты подбирают пароли для root по ssh
• Подбор паролей от DB • Подбор паролей от tomcat manager • Поиск jvm remote debug
Атаки на сервер
Стажировка-‐2015
• Поменять дефолтные порты(22, 5432, 8080)
• Запретить логин под root по ssh • Закрыть доступ к БД из вне • Удалить менеджера tomcat • Запретить debug
Атаки на сервер
Стажировка-‐2015
• PNG изображение размером 42кб
• распаковка займет 4,5 петабайт памяти
PNG-‐бомба
Стажировка-‐2015
• http://security.stackexchange.com/questions/211/how-‐to-‐securely-‐hash-‐passwords/31846#31846
• http://habrahabr.ru/post/130965/ • Брюс Шнайер -‐ https://www.dropbox.com/s/
8pdjrt9rw8p4qt9/Bryus_Shnayer_-‐_Prikladnaya_kriptografia.pdf?dl=0
• http://habrahabr.ru/post/235247/ • http://docs.spring.io/spring-‐security/site/docs/current/
reference/html/csrf.html#csrf-‐using/ • PNG-‐бомба
Литература
top related