Безопасность приложений
Безопасность приложений (сокращенно AppSec ) включает в себя все задачи, которые знакомят с безопасным жизненным циклом разработки программного обеспечения команды разработчиков . Его конечная цель — улучшить методы обеспечения безопасности и, таким образом, находить, исправлять и, желательно, предотвращать проблемы безопасности в приложениях. Он охватывает весь жизненный цикл приложения: анализ требований, проектирование, внедрение, проверку и обслуживание. [1]
Безопасность веб-приложений — это отрасль информационной безопасности , которая конкретно занимается безопасностью веб-сайтов , веб-приложений и веб-сервисов . На высоком уровне безопасность веб-приложений опирается на принципы безопасности приложений, но применяет их конкретно к Интернету и веб- системам. [2] [3] Безопасность приложений также концентрируется на мобильных приложениях и их безопасности, включая приложения iOS и Android.
Инструменты безопасности веб-приложений — это специализированные инструменты для работы с HTTP-трафиком, например, брандмауэры веб-приложений .
Подходы [ править ]
Различные подходы позволяют обнаружить различные подмножества уязвимостей безопасности , скрывающихся в приложении, и они наиболее эффективны на разных этапах жизненного цикла программного обеспечения. Каждый из них представляет собой различный компромисс между временем, усилиями, затратами и обнаруженными уязвимостями.
- Обзор дизайна . Прежде чем писать код, можно проверить архитектуру и дизайн приложения на предмет проблем безопасности. Распространенным методом на этом этапе является создание модели угроз .
- Проверка безопасности «белого ящика» или проверка кода . Это инженер по безопасности, глубоко понимающий приложение, вручную просматривающий исходный код и замечающий недостатки безопасности. Благодаря анализу приложения можно обнаружить уникальные для него уязвимости.
- Blackbox Аудит безопасности . Это возможно только за счет использования приложения, проверяющего его на наличие уязвимостей безопасности, исходный код не требуется.
- Автоматизированная оснастка. Многие инструменты безопасности можно автоматизировать путем включения в среду разработки или тестирования. Примерами таких инструментов являются автоматизированные инструменты DAST/SAST, интегрированные в редактор кода или платформы CI/CD.
- Скоординированные платформы уязвимостей . Это хакерские решения по обеспечению безопасности приложений, предлагаемые многими разработчиками веб-сайтов и программного обеспечения, с помощью которых люди могут получить признание и компенсацию за сообщение об ошибках.
Угрозы безопасности [ править ]
Проект Open Web Application Security Project ( OWASP ) предоставляет бесплатные и открытые ресурсы. Его возглавляет некоммерческая организация The OWASP Foundation. Рейтинг OWASP Top 10 – 2017 является результатом недавнего исследования, основанного на комплексных данных, собранных от более чем 40 партнерских организаций. Эти данные выявили около 2,3 миллиона уязвимостей в более чем 50 000 приложениях. [4] Согласно рейтингу OWASP Top 10 – 2021, в десятку наиболее критических угроз безопасности веб-приложений входят: [5]
- Нарушен контроль доступа
- Криптографические сбои
- Инъекция
- Небезопасный дизайн
- Неправильная конфигурация безопасности
- Уязвимые и устаревшие компоненты
- Сбои идентификации и аутентификации
- Нарушения целостности программного обеспечения и данных
- Сбои ведения журнала безопасности и мониторинга*
- Подделка запросов на стороне сервера (SSRF)*
Инструменты для тестирования безопасности [ править ]
Методы тестирования безопасности выявляют уязвимости или дыры в безопасности в приложениях. Эти уязвимости оставляют приложения открытыми для использования . В идеале тестирование безопасности осуществляется на протяжении всего жизненного цикла разработки программного обеспечения (SDLC), чтобы уязвимости можно было устранять своевременно и тщательно.
Существует множество видов автоматизированных инструментов для выявления уязвимостей в приложениях. Общие категории инструментов, используемые для выявления уязвимостей приложений, включают:
- Статическое тестирование безопасности приложений (SAST) анализирует исходный код на наличие уязвимостей безопасности во время разработки приложения. По сравнению с DAST, SAST можно использовать даже до того, как приложение перейдет в исполняемое состояние. Поскольку SAST имеет доступ к полному исходному коду, это подход «белого ящика». Это может дать более подробные результаты, но может привести к множеству ложных срабатываний, которые придется проверять вручную.
- Динамическое тестирование безопасности приложений (DAST, часто называемое сканерами уязвимостей ) автоматически обнаруживает уязвимости путем сканирования и анализа веб-сайтов. Этот метод хорошо масштабируем, легко интегрируется и быстр. Инструменты DAST хорошо подходят для борьбы с атаками низкого уровня, такими как внедрение ошибок, но не очень подходят для обнаружения ошибок высокого уровня, например, ошибок логической или бизнес-логики. [6] Инструменты фаззинга обычно используются для входного тестирования. [7]
- Интерактивное тестирование безопасности приложений (IAST) оценивает приложения изнутри с помощью программных инструментов . Это сочетает в себе сильные стороны методов SAST и DAST, а также обеспечивает доступ к коду, HTTP-трафику, информации библиотеки, внутренним соединениям и информации о конфигурации. [8] [9] Некоторые продукты IAST требуют атаки на приложение, тогда как другие можно использовать во время обычного тестирования обеспечения качества. [10] [ рекламный источник? ] [11] [ рекламный источник? ]
- Самозащита приложений во время выполнения дополняет существующие приложения, обеспечивая обнаружение и предотвращение вторжений прямо во время выполнения приложения.
- Сканеры зависимостей (также называемые анализом состава программного обеспечения ) пытаются обнаружить использование компонентов программного обеспечения с известными уязвимостями. Эти инструменты могут работать либо по требованию, например, в процессе сборки исходного кода, либо периодически.
- Абстракция — это идея сделать более сложные вещи менее сложными.
- Тестирование безопасности приложений как услуга (ASTaaS). В этом сценарии организация привлекает внешнюю компанию для выполнения всех тестов своих приложений. ASTaaS обычно сочетает в себе статические и динамические методы безопасности, включая тестирование на проникновение и оценку интерфейсов прикладного программирования (API).
Resin — новый инструмент для повышения безопасности приложений и уменьшения уязвимостей. Это позволяет разработчикам указывать правила о том, как данные должны проходить через приложение, чтобы предотвратить проблемы безопасности. Это делается с помощью объектов политики для определения правил, отслеживания данных для мониторинга потока данных и объектов фильтрации для проверки правил в определенных точках потока данных. [12]
и безопасности правила Стандарты
- CERT безопасное кодирование
- ISO/IEC 27034-1:2011 Информационные технологии. Методы обеспечения безопасности. Безопасность приложений. Часть 1. Обзор и концепции.
- ISO/IEC TR 24772:2013 Информационные технологии. Языки программирования. Руководство по предотвращению уязвимостей в языках программирования посредством выбора и использования языка.
- Специальная публикация NIST 800-53
- OWASP ASVS: Стандарт проверки безопасности веб-приложений [13]
См. также [ править ]
- Перечень общих слабостей
- Безопасность данных
- Мобильная безопасность
- ОВАСП
- Жизненный цикл разработки безопасности Microsoft
- Полезная безопасность
Ссылки [ править ]
- ^ Хаппе, Андреас (3 июня 2021 г.). «Что вообще такое AppSec?» . сникт.нет .
- ^ «Обзор безопасности веб-приложений» . 23 октября 2015 г.
- ^ Шуайбу, Бала Муса; Норвави, Норита, Мэриленд; Поздравляем, Мохд Хасан; Аль-Алвани, Абдулкарим (17 января 2013 г.). «Систематический обзор моделей разработки безопасности веб-приложений». Обзор искусственного интеллекта . 43 (2): 259–276. дои : 10.1007/s10462-012-9375-6 . ISSN 0269-2821 . S2CID 15221613 .
- ^ Королева Мария (27 апреля 2017 г.). «Последний список OWASP Top 10 посвящен API и веб-приложениям: вышел новый список OWASP Top 10, и хотя большая его часть осталась прежней, есть новые дополнения, посвященные веб-приложениям и API». ОГО . ПроКвест 1892694046 .
- ^ «Топ-10 OWASP — 2021: Десять наиболее критических угроз безопасности веб-приложений» . Откройте проект безопасности веб-приложений . 2021 . Проверено 11 января 2022 г.
- ^ «Сканеры уязвимостей веб-приложений» . НИСТ.
- ^ «Фуззинг» . ОВАСП.
- ^ Уильямс, Джефф (2 июля 2015 г.). «Я понимаю SAST и DAST, но что такое IAST и почему это важно?» . Контрастная безопасность . Проверено 10 апреля 2018 г.
- ^ Веласко, Роберто (7 мая 2020 г.). «Что такое IAST? Все об интерактивном тестировании безопасности приложений» . Хдив Безопасность . Проверено 7 мая 2020 г.
- ^ Абезгауз, Ирина (17 февраля 2014 г.). «Введение в интерактивное тестирование безопасности приложений» . Квотиум. Архивировано из оригинала 3 апреля 2018 года . Проверено 25 января 2018 г.
- ^ Рор, Матиас (26 ноября 2015 г.). «IAST: новый подход к гибкому тестированию безопасности» . Секодис.
- ^ Да, Александр; Ван, Си; Зельдович, Николай; Каашук, М. Франс (11 октября 2009 г.). «Повышение безопасности приложений с помощью утверждений потока данных» . Материалы 22-го симпозиума ACM SIGOPS по принципам операционных систем . СОСП '09. Нью-Йорк, штат Нью-Йорк, США: Ассоциация вычислительной техники. стр. 291–304. дои : 10.1145/1629575.1629604 . hdl : 1721.1/67015 . ISBN 978-1-60558-752-3 . S2CID 7189495 .
- ^ «Стандарт проверки безопасности приложений OWASP» .