Безопасность не только в стенах
Большинство разработчиков создают программное обеспечение, ориентируясь исключительно на пользователя. Злоумышленник же мыслит иначе и задаёт совершенно другие вопросы:
- Можно ли обойти аутентификацию?
- Доступны ли данные других пользователей?
- Возможно ли манипулировать запросами API?
- Может ли приложение доверять мне?
Чтобы создавать более защищённые приложения, важно научиться думать как злоумышленник.
Цели атаки
Распространённое заблуждение заключается в том, что большинство злоумышленников стремятся создать сложные вредоносные программы или найти уязвимости нулевого дня. На самом деле цели большинства атак гораздо проще:
- Кража данных
- Получение учётных записей
- Незаконный доступ
- Выполнение произвольного кода
- Шифрование систем ради выкупа
- Использование облачных ресурсов
- Монетизация взломанных систем
Каждая их попытка служит одной из этих целей.
Фаза разведки
Профессиональные злоумышленники тратят больше времени на сбор информации о системе, чем непосредственно на эксплуатацию найденных уязвимостей. Они пытаются выяснить следующее:
- Какие технологии используются в приложении?
- Где оно размещено (AWS, Azure, Google Cloud)?
- Какая версия фреймворка используется?
- Есть ли публично доступные API?
- Открыты ли тестовые среды?
- Содержатся ли утёкшие пароли в репозиториях GitHub?
- Существуют ли забытые поддомены?
- Кто из сотрудников имеет привилегированный доступ?
Этот процесс называется разведкой.