Меры, принятые для повышения безопасности приложения
Безопасность приложений (сокращенно AppSec ) включает в себя все задачи, которые знакомят команды разработчиков с безопасным жизненным циклом разработки программного обеспечения . Его конечная цель — улучшить методы обеспечения безопасности и, таким образом, находить, исправлять и, желательно, предотвращать проблемы безопасности в приложениях. Он охватывает весь жизненный цикл приложения: от анализа требований, проектирования, реализации, проверки и обслуживания. [1]
Безопасность веб-приложений — это отрасль информационной безопасности , которая конкретно занимается безопасностью веб-сайтов , веб-приложений и веб-сервисов . На высоком уровне безопасность веб-приложений опирается на принципы безопасности приложений, но применяет их конкретно к Интернету и веб - системам. [2] [3]
Инструменты безопасности веб-приложений — это специализированные инструменты для работы с 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] [ рекламный источник? ]
- Самозащита приложений во время выполнения дополняет существующие приложения, обеспечивая обнаружение и предотвращение вторжений прямо во время выполнения приложения.
- Сканеры зависимостей (также называемые анализом состава программного обеспечения ) пытаются обнаружить использование компонентов программного обеспечения с известными уязвимостями. Эти инструменты могут работать либо по требованию, например, в процессе сборки исходного кода, либо периодически.
- Абстракция — это идея сделать более сложные вещи менее сложными.
Resin — новый инструмент для повышения безопасности приложений и уменьшения уязвимостей. Это позволяет разработчикам указывать правила о том, как данные должны проходить через приложение, чтобы предотвратить проблемы безопасности. Это делается с помощью объектов политики для определения правил, отслеживания данных для мониторинга потока данных и объектов фильтрации для проверки правил в определенных точках потока данных. [12]
Стандарты и правила безопасности
- CERT безопасное кодирование
- ISO/IEC 27034-1:2011 Информационные технологии. Методы обеспечения безопасности. Безопасность приложений. Часть 1. Обзор и концепции.
- ISO/IEC TR 24772:2013 Информационные технологии. Языки программирования. Руководство по предотвращению уязвимостей в языках программирования посредством выбора и использования языка.
- Специальная публикация NIST 800-53
- OWASP ASVS: Стандарт проверки безопасности веб-приложений [13]
Смотрите также
Рекомендации
- ↑ Хаппе, Андреас (3 июня 2021 г.). «Что вообще такое AppSec?». сникт.нет .
- ^ «Обзор безопасности веб-приложений» . 23 октября 2015 г.
- ^ Шуайбу, Бала Муса; Норвави, Норита, Мэриленд; Селамат, Мохд Хасан; Аль-Алвани, Абдулкарим (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». ОГО . ПроКвест 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» .