Безопасность веб-приложений – одна из самых горячих тем. Ежедневно мы узнаем об очередной хакерской атаке на сайты крупных компаний, банков и интернет-магазинов. Наш опыт аудита веб-приложений на уязвимости показывает, что около 70% тестируемых веб-приложений содержат уязвимости со статусом «most critical» (высокая степень опасности).
Наш опыт подтверждается и исследованиями. По данным Cyberthreat Defense Report, количество организаций, которые пострадали от успешных кибератак, увеличилось с 62% до 77% в период с 2013 по 2017 год.
Каким же образом действуют злоумышленники и какие типы уязвимостей представляют наибольшую угрозу? Методология OWASP выделяет следующие риски для веб-приложений:
- Инъекции (Injection)
Уязвимости, связанные с внедрением кода (SQL, NoSQL, OS, and LDAP и прочие инъекции), возникают, когда ненадежные данные отправляются интерпретатору как часть команды или запроса. Атаки, связанные с эксплуатацией подобной уязвимости, сопровождаются выполнением интерпретатором произвольных команд или получением несанкционированного доступа к информации, к примеру, доступ к базе данных.
По данным исследования компании SiteLock за 2017 год, из 6 миллионов проанализированных сайтов более 300 тысяч подвержены SQL или XSS атакам, при этом, примерно 90 миллионов сайтов по всему миру имеют схожие проблемы, что делает SQL-уязвимости одними из самых часто встречающихся.
- Ошибки в механизме аутентификации (Broken Authentication)
Прикладные функции, связанные с аутентификацией и управлением сеансами, часто имеют ошибки в реализации, позволяя злоумышленникам получить неавторизованный доступ к системе или веб-приложению.
- Раскрытие чувствительных данных (Sensitive Data Exposure)
Многие веб-приложения и API не защищают должным образом конфиденциальные данные. Злоумышленники могут украсть или модифицировать слабо защищенные данные для мошенничества с кредитными картами, кражи личных данных или других преступлений.
- Внешние объекты XML (XML External Entities)
Вид уязвимости, основанный на внедрении кода в XML-запрос к серверу, позволяющий получить неавторизованный доступ к данным.
- Ошибки контроля доступа (Broken Access Control)
Некорректная настройка ограничений приводит к получению несанкционированного доступа к данным.
- Ошибки настройки безопасности (Security Misconfiguration)
Ошибки настройки безопасности являются одной из самых распространенных причин компрометации веб-приложений.
- Межсайтовый скриптинг (Cross-Site Scripting, XXS)
Недостатки XSS возникают всякий раз, когда приложение включает ненадежные данные в новую веб-страницу без надлежащей проверки или экранирования, что может привести к выполнению вредоносного сценария на стороне сервера или клиента и получению злоумышленником неавторизованного доступа к данным.
- Небезопасная десериализация (Insecure Deserialization)
Небезопасная десериализация часто приводит к удаленному выполнению кода. Десереализация преобразует последовательность бит в структурированные данные. На данном этапе, зачастую, не уделяется достаточного внимания безопасности, например, отсутствует проверка и подтверждение типов данных, что приводит к их подмене.
- Использование компонентов с известными уязвимостями (Using Components with Known Vulnerabilities)
Использование библиотек или модулей, имеющих уже известные уязвимости, может серьезно повлиять на безопасность сайта. В связи с этим необходимо своевременно устанавливать обновления.
- Недостаточный мониторинг (Insufficient Logging & Monitoring)
Отсуствие автоматизированных систем мониторинга и журналирования событий приводит к невозможности быстрого реагирования на инциденты.
В дополнении ко всему стоит выделить одну из самых распространенных уязвимостей — слабую парольную политику, позволяющую злоумышленнику произвести подбор пароля (brute-force attack), в том числе с использованием распределенных сетей (distributed brute-force attack). Тенденция использовать популярные или нестойкие пароли увеличивается из года в год. По данным журнала «Хакер», который опирается на результаты исследования компании SplashData, на данный момент самыми популярными паролями пользователей являются: 123456
, password
, 12345678
, qwerty
, 12345
.
Существует огромное количество угроз для интернет-порталов, API и других веб-приложений, и все они не исчерпываются этим списком, однако использование Немезида ВАФ позволит значительно минимизировать риск компрометации веб-приложения или пользовательских данных. Комплексный анализ на основе сигнатур атак и искусственного интеллекта позволяет Немезида ВАФ максимально точно выявлять и блокировать хакерские атаки вне зависимости от уровня их сложности и объема, даже в случае наличия на сайте уязвимостей нулевого дня.