Что такое OWASP?

Mutt

Professional
Messages
1,059
Reputation
7
Reaction score
573
Points
113
Содержание статьи
  • Что такое OWASP?
  • ТОП-10 OWASP
  • Понимание и предотвращение распространенных атак OWASP
  • Инъекция
  • Сломанная аутентификация
  • Раскрытие конфиденциальных данных
  • Внешние объекты XML (XXE)
  • А5. Сломанный контроль доступа
  • Другие 5 лучших атак OWASP
  • Application Security

Что такое OWASP?
Open Web Application Security Project (OWASP) - это некоммерческая организация, основанная в 2001 году с целью помочь владельцам веб-сайтов и экспертам по безопасности защищать веб-приложения от кибератак. OWASP насчитывает 32 000 добровольцев по всему миру, которые проводят оценки и исследования безопасности.

Среди ключевых публикаций OWASP - Топ-10 OWASP, более подробно обсуждаемые ниже; модель зрелости обеспечения программного обеспечения OWASP (SAMM), руководство по разработке OWASP, руководство по тестированию OWASP и руководство по обзору кода OWASP.

ТОП-10 OWASP
OWASP Top 10 - это широко распространенный документ, в котором уделяется приоритетное внимание наиболее важным рискам безопасности, влияющим на веб-приложения. Несмотря на то, что существует более десяти рисков безопасности, идея OWASP Top 10 состоит в том, чтобы профессионалы в области безопасности были хорошо осведомлены, по крайней мере, о наиболее критических рисках безопасности и научились от них защищаться.

OWASP периодически оценивает важные типы кибератак по четырем критериям: простота использования, распространенность, обнаруживаемость и влияние на бизнес, и выбирает 10 основных атак. Рейтинг OWASP Top 10 был впервые опубликован в 2003 году и с тех пор обновлялся в 2004, 2007, 2010, 2013 и 2017 годах.

Понимание и предотвращение распространенных атак OWASP
Ниже представлена информация, предоставленная фондом OWASP, о пяти важных атаках на веб-приложения, которые обычно входят в первую половину рейтинга OWASP Top 10, о том, как они проявляются и как вы можете защитить свою организацию от них. Примеры кода взяты из рекомендаций OWASP Top 10.

Инъекция
Инъекции уязвимость в веб - приложение позволяет злоумышленникам посылать данные враждебные переводчика, в результате чего , что данные , которые будут компилироваться и выполняться на сервере. Распространенной формой инъекции является SQL-инъекция.
Эксплуатация: высокаяРаспространенность: средняя.
Обнаруживаемость: высокаяВоздействие: высокое

Примеры инъекционных атак
Приложение использует ненадежные данные при создании уязвимого вызова SQL:
Code:
String query = "SELECT * FROM accounts WHERE custID='" + request.getParameter("id") + "'";

Приложение доверяет фреймворку, не очищая его входные данные, в данном случае Hibernate Query Language (HQL):
Code:
Query HQLQuery = session.createQuery("FROM accounts WHERE custID='" + request.getParameter("id") + "'");

Злоумышленник изменяет параметр id в своем браузере, чтобы отправить код. Например:
Code:
http://example.com/app/accountView?id=' or '1'='1

Это приводит к тому, что запросы возвращают все записи из таблицы учетных записей и могут использоваться для выполнения других вредоносных действий на сервере.

Предотвращение инъекционных атак
  • Используйте безопасный API, который полностью исключает использование интерпретатора
  • Используйте положительную или «белый список» проверки входных данных на стороне сервера.
  • Избегайте специальных символов
  • Используйте LIMIT и другие элементы управления SQL в запросах, чтобы предотвратить массовое раскрытие записей в случае внедрения SQL.

Сломанная аутентификация
Веб-приложение со сломанной или слабой аутентификацией может быть легко обнаружено злоумышленниками и уязвимо для атак методом грубой силы / словаря и атак управления сеансом.
Эксплуатация: высокаяРаспространенность: средняя.
Обнаруживаемость: средняяВоздействие: высокое

Примеры атак с нарушением аутентификации
  • Заполнение учетных данных - злоумышленники используют списки известных паролей и последовательно пробуют их для получения доступа. Без автоматической защиты от угроз или переполнения учетных данных приложение используется злоумышленниками в качестве механизма проверки любого пароля, который они пробуют.
  • Атаки на основе паролей. Веб-приложения, использующие только пароли, по своей сути имеют слабые механизмы аутентификации, даже если пароли имеют требования к сложности и меняются. Организации должны перейти на многофакторную аутентификацию.

Устранение неполадок при проверке подлинности
  • Реализуйте многофакторную аутентификацию
  • Не развертывайте системы с учетными данными по умолчанию
  • Проверьте список из 10 000 самых плохих паролей.
  • Используйте рекомендации в разделе 5.1.1 NIST 800-63 B для запомненных секретов.
  • Усиление всех процессов, связанных с аутентификацией, таких как регистрация и восстановление учетных данных
  • Ограничьте или отложите неудачные попытки входа в систему
  • Используйте безопасный встроенный серверный диспетчер сеансов

Раскрытие конфиденциальных данных
Конфиденциальные данные, как правило, являются наиболее ценным активом для кибератак. Злоумышленники могут получить к нему доступ путем кражи криптографических ключей, проведения атак «человек посередине» (MITM) или кражи данных в открытом виде, которые иногда могут храниться на серверах или в пользовательских браузерах.
Эксплуатация: средняяРаспространенность: высокая
Обнаруживаемость: средняяВоздействие: высокое

Примеры раскрытия конфиденциальных данных
  • Нет TLS - если веб-сайт не использует SSL / TLS для всех страниц, злоумышленник может отслеживать трафик, понижать уровень соединений с HTTPS на HTTP и украсть cookie сеанса.
  • Несоленые хэши - база данных паролей веб-приложения может использовать несоленые или простые хэши для хранения паролей. Если злоумышленник получает доступ к базе данных, он может легко взломать хэши, например, с помощью графических процессоров, и получить доступ.

Снижение риска раскрытия конфиденциальных данных
  • Выявите конфиденциальные данные и примените соответствующие меры безопасности.
  • Не храните конфиденциальные данные без крайней необходимости - удалите конфиденциальные данные, используйте токенизацию или усечение.
  • Шифруйте все конфиденциальные данные при хранении с помощью надежных алгоритмов шифрования, протоколов и ключей.
  • Шифруйте передаваемые данные с помощью безопасных протоколов, таких как TLS и HTTP HSTS.
  • Отключите кеширование конфиденциальных данных.
  • Храните пароли с помощью надежных хэш-функций, таких как Argon2, scrypt и bcrypt.

Внешние объекты XML (XXE)
Если веб-приложение использует уязвимый компонент, обрабатывающий XML, злоумышленники могут загрузить XML или включить враждебное содержимое, команды или код в XML-документ.
Эксплуатация: средняяРаспространенность: средняя.
Обнаруживаемость: высокаяВоздействие: высокое

Примеры атак XXE
Злоумышленник может использовать этот XML-код для извлечения данных с сервера:
Screen-Shot-2020-04-13-at-15.38.08.png.webp


Злоумышленник может получить информацию о частной сети, изменив строку ENTITY на:
Screen-Shot-2020-04-13-at-15.40.30.png.webp


Смягчение атак XXE
  • Используйте более простые форматы данных, такие как JSON, и избегайте сериализации
  • Исправьте или обновите все XML-процессоры и библиотеки
  • Отключить внешний объект XML и обработку DTD
  • Реализовать белый список и очистку входных XML-данных на стороне сервера.
  • Проверка XML с помощью XSD или аналогичной проверки
  • Используйте инструменты SAST для обнаружения XXE в исходном коде, с возможностью ручного просмотра, если это возможно

А5. Сломанный контроль доступа
Нарушение контроля доступа означает, что злоумышленники могут получить доступ к учетным записям пользователей и действовать как пользователи или администраторы, а обычные пользователи могут получить непреднамеренные привилегированные функции. Надежные механизмы доступа гарантируют, что каждая роль имеет четкие и изолированные привилегии.
Эксплуатация: средняяРаспространенность: средняя.
Обнаруживаемость: средняяВоздействие: высокое

Примеры нарушенного контроля доступа
Приложение может принять вызов SQL с запросом информации об учетной записи, не проверяя ее:
Code:
pstmt.setString (1, request.getParameter ("acct"));
ResultSet results = pstmt.executeQuery ();

Злоумышленник может изменить параметр acct, чтобы получить доступ к любому номеру учетной записи, который он хочет:
Code:
http://example.com/app/accountInfo?acct=notmyacct

Устранение нарушений контроля доступа
  • Запретить доступ по умолчанию, кроме публичных ресурсов
  • Создавайте надежные механизмы контроля доступа и повторно используйте их в приложении.
  • Принудительное владение записями - не позволяйте пользователям создавать, читать или удалять какие-либо записи
  • Обеспечьте соблюдение ограничений на использование и скорость
  • Отключить список каталогов сервера и не хранить метаданные или файлы резервных копий в корне папки
  • Журнал неудачных попыток доступа и оповещение администраторов
  • API ограничения скорости и доступ к контроллеру
  • Проверить токены JWT после выхода из системы

Другие 5 лучших атак OWASP
  • Неверная конфигурация безопасности. Неверно настроенные средства безопасности - обычная точка входа для злоумышленников. Например, база данных, развернутая с паролем администратора по умолчанию.
  • Межсайтовый скриптинг (XSS): злоумышленники используют XSS для использования слабых мест в управлении сеансами и выполнения вредоносного кода в пользовательских браузерах.
  • Небезопасная десериализация. Десериализация - это сложный метод, но при правильном выполнении он позволяет злоумышленникам выполнить вредоносный код на сервере.
  • Использование компонентов с известными уязвимостями. Большинство веб-приложений в значительной степени полагаются на компоненты с открытым исходным кодом, и они могут включать известные уязвимости, которые злоумышленники могут использовать для получения доступа или причинения ущерба.
  • Недостаточное ведение журнала и мониторинг - злоумышленники полагаются на отсутствие мониторинга и своевременного реагирования, чтобы успешно справиться с любым другим вектором атаки.

Application Security
Ведущий в отрасли брандмауэр веб-приложений (WAF) обеспечивает надежную защиту от атак OWASP Top 10 и других угроз веб-приложений. Imperva предлагает два варианта развертывания WAF:
  • Cloud WAF - разрешает законный трафик и предотвращает плохой трафик. Защитите свои приложения на периферии с помощью облачного WAF корпоративного класса.
  • Gateway WAF - Обеспечьте безопасность приложений и API внутри вашей сети с помощью Imperva Gateway WAF.

В дополнение к WAF, Imperva обеспечивает многоуровневую защиту, гарантирующую, что веб-сайты и приложения доступны, легко доступны и безопасны. Решение для обеспечения безопасности приложений Imperva включает в себя:
  • Защита от DDoS-атак - поддержание работоспособности в любых ситуациях. Предотвратите любые типы DDoS-атак любого размера, препятствующие доступу к вашему веб-сайту и сетевой инфраструктуре.
  • CDN - повысьте производительность веб-сайта и сократите расходы на полосу пропускания с помощью CDN, разработанной для разработчиков. Кэшируйте статические ресурсы на периферии, ускоряя API и динамические веб-сайты.
  • Управление ботами - анализирует ваш бот-трафик, чтобы выявить аномалии, выявляет плохое поведение ботов и проверяет его с помощью механизмов проверки, которые не влияют на пользовательский трафик.
  • Безопасность API - защищает API, гарантируя, что только желаемый трафик может получить доступ к вашей конечной точке API, а также обнаруживает и блокирует эксплойты уязвимостей.
  • Защита от захвата учетных записей - использует процесс обнаружения на основе намерений для выявления и защиты от попыток захвата учетных записей пользователей в злонамеренных целях.
  • RASP - защитите свои приложения изнутри от известных атак и атак нулевого дня. Быстрая и точная защита без подписи или режима обучения.
  • Аналитика атак - эффективное и точное устранение реальных угроз безопасности и реагирование на них с помощью действенной аналитики на всех уровнях защиты.
 
Top