Меры, принимаемые для повышения безопасности приложения
Безопасность приложений (сокращенно AppSec ) включает в себя все задачи, которые знакомят команды разработчиков с безопасным жизненным циклом разработки программного обеспечения . Ее конечная цель — улучшить методы обеспечения безопасности и, посредством этого, найти, исправить и, желательно, предотвратить проблемы безопасности в приложениях. Она охватывает весь жизненный цикл приложения от анализа требований, проектирования, внедрения, проверки и обслуживания. [1]
Безопасность веб-приложений — это раздел информационной безопасности , который занимается исключительно безопасностью веб-сайтов , веб-приложений и веб-сервисов . На высоком уровне безопасность веб-приложений опирается на принципы безопасности приложений, но применяет их специально к Интернету и веб- системам. [2] [3] Безопасность приложений также сосредоточена на мобильных приложениях и их безопасности, включая приложения iOS и Android.
Средства безопасности веб-приложений — это специализированные инструменты для работы с HTTP-трафиком, например, брандмауэры веб-приложений .
Подходы
Различные подходы найдут различные подмножества уязвимостей безопасности , таящихся в приложении, и будут наиболее эффективны в разные периоды жизненного цикла ПО. Каждый из них представляет собой различные компромиссы времени, усилий, стоимости и обнаруженных уязвимостей.
- Обзор дизайна . Перед написанием кода архитектура и дизайн приложения могут быть рассмотрены на предмет проблем безопасности. Распространенным приемом на этом этапе является создание модели угроз .
- Обзор безопасности Whitebox или обзор кода . Это глубокое понимание приложения инженером по безопасности путем ручного просмотра исходного кода и обнаружения недостатков безопасности. Благодаря пониманию приложения можно найти уязвимости, уникальные для этого приложения.
- Аудит безопасности Blackbox . Это происходит только с помощью приложения, тестирующего его на уязвимости безопасности, исходный код не требуется.
- Автоматизированный инструментарий. Многие инструменты безопасности можно автоматизировать путем включения в среду разработки или тестирования. Примерами являются автоматизированные инструменты DAST/SAST, интегрированные в редактор кода или платформы CI/CD.
- Координированные платформы уязвимостей . Это хакерские решения по безопасности приложений, предлагаемые многими веб-сайтами и разработчиками программного обеспечения, с помощью которых отдельные лица могут получить признание и компенсацию за сообщение об ошибках.
Угрозы безопасности
The Open Worldwide Application Security Project ( OWASP ) предоставляет бесплатные и открытые ресурсы. Им руководит некоммерческая организация The OWASP Foundation. Рейтинг OWASP Top 10 - 2017 является результатом недавнего исследования, основанного на комплексных данных, собранных из более чем 40 организаций-партнеров. Эти данные выявили около 2,3 миллиона уязвимостей в более чем 50 000 приложений. [4] Согласно рейтингу OWASP Top 10 - 2021, десять наиболее критических рисков безопасности веб-приложений включают в себя: [5]
- Сломанный контроль доступа
- Криптографические сбои
- Инъекция
- Небезопасный дизайн
- Неправильная конфигурация безопасности
- Уязвимые и устаревшие компоненты
- Ошибки идентификации и аутентификации
- Ошибки программного обеспечения и целостности данных
- Сбои в ведении журнала безопасности и мониторинге*
- Подделка запросов на стороне сервера (SSRF)*
Контроль безопасности
Десять лучших мер проактивного контроля OWASP 2024 года — это список методов обеспечения безопасности, которые должен знать и учитывать каждый архитектор и разработчик программного обеспечения.
Текущий список содержит:
- Внедрить контроль доступа
- Используйте криптографию правильно
- Проверка всех входных данных и обработка исключений
- Обеспечение безопасности с самого начала
- Безопасность по умолчанию
- Обеспечьте безопасность своих компонентов
- Внедрение цифровой идентичности
- Используйте функции безопасности браузера
- Внедрение ведения журнала и мониторинга безопасности
- Остановить подделку запросов на стороне сервера
Инструменты для тестирования безопасности
Методы тестирования безопасности ищут уязвимости или дыры в безопасности в приложениях. Эти уязвимости оставляют приложения открытыми для эксплуатации . В идеале тестирование безопасности реализуется на протяжении всего жизненного цикла разработки программного обеспечения (SDLC), чтобы уязвимости могли быть устранены своевременно и тщательно.
Существует множество видов автоматизированных инструментов для выявления уязвимостей в приложениях. Общие категории инструментов, используемые для выявления уязвимостей приложений, включают:
- Статическое тестирование безопасности приложений (SAST) анализирует исходный код на наличие уязвимостей безопасности во время разработки приложения. По сравнению с DAST, SAST можно использовать даже до того, как приложение перейдет в исполняемое состояние. Поскольку SAST имеет доступ к полному исходному коду, это подход «белого ящика». Это может дать более подробные результаты, но может привести к множеству ложных срабатываний, которые необходимо проверять вручную.
- Динамическое тестирование безопасности приложений (DAST, часто называемое сканерами уязвимостей ) автоматически обнаруживает уязвимости путем обхода и анализа веб-сайтов. Этот метод является высокомасштабируемым, легко интегрируемым и быстрым. Инструменты DAST хорошо подходят для борьбы с низкоуровневыми атаками, такими как уязвимости инъекций, но не очень подходят для обнаружения высокоуровневых уязвимостей, например, логических или бизнес-логики. [6] Инструменты фаззинга обычно используются для тестирования ввода. [7]
- Интерактивное тестирование безопасности приложений (IAST) оценивает приложения изнутри с помощью программного инструментария. Это объединяет сильные стороны методов SAST и DAST, а также обеспечивает доступ к коду, HTTP-трафику, библиотечной информации, внутренним соединениям и информации о конфигурации. [8] [9] Некоторые продукты IAST требуют атаки на приложение, в то время как другие могут использоваться во время обычного тестирования обеспечения качества. [10] [ рекламный источник? ] [11] [ рекламный источник? ]
- Самозащита приложений во время выполнения дополняет существующие приложения, обеспечивая обнаружение и предотвращение вторжений из среды выполнения приложения.
- Сканеры зависимостей (также называемые Анализом состава ПО ) пытаются обнаружить использование компонентов ПО с известными уязвимостями. Эти инструменты могут работать либо по требованию, например, во время процесса сборки исходного кода, либо периодически.
Стандарты и правила безопасности
- Безопасное кодирование CERT
- ISO/IEC 27034-1:2011 Информационные технологии. Методы обеспечения безопасности. Безопасность приложений. Часть 1. Обзор и концепции.
- ISO/IEC TR 24772:2013 Информационные технологии — Языки программирования — Руководство по предотвращению уязвимостей в языках программирования посредством выбора и использования языка
- Специальная публикация NIST 800-53
- OWASP ASVS: Стандарт проверки безопасности веб-приложений [12]
Смотрите также
Ссылки
- ^ Хаппе, Андреас (3 июня 2021 г.). «Что такое AppSec?». snikt.net .
- ^ «Обзор безопасности веб-приложений». 2015-10-23.
- ^ Шуайбу, Бала Муса; Норвави, Норита, Мэриленд; Селамат, Мохд Хасан; Аль-Алвани, Абдулкарим (17 января 2013 г.). «Систематический обзор модели разработки безопасности веб-приложений». Обзор искусственного интеллекта . 43 (2): 259–276. doi : 10.1007/s10462-012-9375-6. ISSN 0269-2821. S2CID 15221613.
- ^ Королева, Мария (27 апреля 2017 г.). «Последний список OWASP Top 10 посвящен API, веб-приложениям: вышел новый список OWASP Top 10, и хотя большая его часть осталась прежней, появились новые дополнения, посвященные веб-приложениям и API». CSO . ProQuest 1892694046.
- ^ "OWASP Top 10 - 2021: Десять самых критических рисков безопасности веб-приложений". Open Web Application Security Project . 2021 . Получено 11 января 2022 .
- ^ «Сканеры уязвимостей веб-приложений». NIST.
- ^ "Fuzzing". OWASP.
- ^ Уильямс, Джефф (2 июля 2015 г.). «Я понимаю SAST и DAST, но что такое IAST и почему это важно?». Contrast Security . Получено 10 апреля 2018 г.
- ^ Веласко, Роберто (7 мая 2020 г.). «Что такое IAST? Все о тестировании безопасности интерактивных приложений». Hdiv Security . Получено 7 мая 2020 г.
- ^ Абезгауз, Ирен (17 февраля 2014 г.). «Введение в интерактивное тестирование безопасности приложений». Quotium. Архивировано из оригинала 3 апреля 2018 г. Получено 25 января 2018 г.
- ^ Рор, Маттиас (26 ноября 2015 г.). «IAST: новый подход к гибкому тестированию безопасности». Secodis.
- ^ «Стандарт проверки безопасности приложений OWASP».