Содержание
- 2. ~7000 шт/час 1 IP, 1 процесс
- 3. Способы борьбы с перебором пароля Captcha, (Сompletely Automated Public Turing test to tell Computers and Humans
- 4. Модули защиты от перебора пароля: взлом твиттера Социальная сеть
- 5. Модули защиты от перебора пароля: способы интеграции
- 6. Особенности реализации • /django-axes/ успешный вход сбрасывает счетчик: - 4*admin, 1*hacker, 4*admin, …
- 7. Уязвимости реализации (устранимые) сброс счетчика
- 8. Особенности реализации • /main db/ скорость обработки отказа в аутентификации => DDOS • /django-axes/ успешный вход
- 9. main db main db main db main db main db main db Уязвимости реализации (устранимые) …
- 10. Особенности реализации • /main db/ скорость обработки отказа в аутентификации => DDOS • /django-axes/ успешный вход
- 11. username IP & username IP либо IP+username username IP & username IP либо IP+username Уязвимости реализации
- 12. 1-to-1 1-to-m m-to-1 Архитектура модуля proxy, NAT =>блок. целая подсеть IP-address
- 13. Архитектура модуля • IP-address: 1.2.3.4 [email protected]
- 14. Уязвимости архитектуры (неустранимые)
- 15. Цель работы Создание надежного модуля защиты от брутфорса, который можно было бы использовать в production. Подобрать
- 16. Блок-схема auth error
- 17. Блок-схема auth error ip ∈ blacklist ? ok no yes c++
- 18. Блок-схема auth username ∈ blacklistB ? ok no yes ip ∈ blacklistA ? no yes error
- 19. Блок-схема auth error ok no yes cA++ ip ∈ blacklistA ? no yes cB++ ip, username
- 20. Блок-схема auth error username ∈ blacklistB ? ok no yes cA++ ip ∈ blacklistA ? no
- 21. Диаграмма состояний - 1 5 failed attempts 10 min block 5 failed attempts 30 min block
- 22. Диаграмма состояний - 2 5 failed attempts 10 min block 5 failed attempts 30 min block
- 23. Диаграмма состояний - 3 (RedisSentryPlus) 5 failed attempts 10 min block 5 failed attempts 30 min
- 24. Счетчик whitelist’а • IP: 193.124.10.53 Username: [email protected] 15 bytes ~50 bytes 4*uchar 4 bytes /24 3
- 25. Hash-функции • 4 bytes hash-functions: - additive/xor/rot - elf/snx/djb - fnv/one-at-a-time - superfasthash/lookup3 - murmur3 -
- 26. Счетчики development production Ac:ip Ab:ip Bc:username Bb:username Wc:ip:username Wb:ip:username a.... A.... b.... B.... c....... C....... ip
- 27. Админка
- 28. Выбор инструментария • почему redis, а не couchdb? − expire • почему redis, а не mongodb?
- 29. Техническая информация • Лицензия: MIT • Исходный код: - https://github.com/axil/redissentry-core - https://github.com/axil/django-redissentry • Тестовая инсталляция: -
- 30. Установка и интеграция • flask: • django: MIDDLEWARE_CLASSES += 'redissentry.middleware.RequestMiddleware', INSTALLED_APPS += 'redissentry', def protected_auth(username, password):
- 31. Заключение • защита от атак: 1 IP-1 account; 1 IP-many accounts; many IP-1 account • «гуманность»
- 32. Спасибо за внимание! Максимов Лев Викторович RedisSentry: защищаем python web-сервер от подбора пароля на примере django
- 33. 1-to-1 1-to-m m-to-1 Архитектура модуля proxy, NAT =>блок. целая подсеть IP-address
- 35. Скачать презентацию