Безопасность приложений

Из Википедии, бесплатной энциклопедии

Безопасность приложений (сокращенно 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]

  1. Нарушен контроль доступа
  2. Криптографические сбои
  3. Инъекция
  4. Небезопасный дизайн
  5. Неправильная конфигурация безопасности
  6. Уязвимые и устаревшие компоненты
  7. Сбои идентификации и аутентификации
  8. Нарушения целостности программного обеспечения и данных
  9. Сбои ведения журнала безопасности и мониторинга*
  10. Подделка запросов на стороне сервера (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]

См. также [ править ]

Ссылки [ править ]

  1. ^ Хаппе, Андреас (3 июня 2021 г.). «Что вообще такое AppSec?» . сникт.нет .
  2. ^ «Обзор безопасности веб-приложений» . 23 октября 2015 г.
  3. ^ Шуайбу, Бала Муса; Норвави, Норита, Мэриленд; Поздравляем, Мохд Хасан; Аль-Алвани, Абдулкарим (17 января 2013 г.). «Систематический обзор моделей разработки безопасности веб-приложений». Обзор искусственного интеллекта . 43 (2): 259–276. дои : 10.1007/s10462-012-9375-6 . ISSN   0269-2821 . S2CID   15221613 .
  4. ^ Королева Мария (27 апреля 2017 г.). «Последний список OWASP Top 10 посвящен API и веб-приложениям: вышел новый список OWASP Top 10, и хотя большая его часть осталась прежней, есть новые дополнения, посвященные веб-приложениям и API». ОГО . ПроКвест   1892694046 .
  5. ^ «Топ-10 OWASP — 2021: Десять наиболее критических угроз безопасности веб-приложений» . Откройте проект безопасности веб-приложений . 2021 . Проверено 11 января 2022 г.
  6. ^ «Сканеры уязвимостей веб-приложений» . НИСТ.
  7. ^ «Фуззинг» . ОВАСП.
  8. ^ Уильямс, Джефф (2 июля 2015 г.). «Я понимаю SAST и DAST, но что такое IAST и почему это важно?» . Контрастная безопасность . Проверено 10 апреля 2018 г.
  9. ^ Веласко, Роберто (7 мая 2020 г.). «Что такое IAST? Все об интерактивном тестировании безопасности приложений» . Хдив Безопасность . Проверено 7 мая 2020 г.
  10. ^ Абезгауз, Ирина (17 февраля 2014 г.). «Введение в интерактивное тестирование безопасности приложений» . Квотиум. Архивировано из оригинала 3 апреля 2018 года . Проверено 25 января 2018 г.
  11. ^ Рор, Матиас (26 ноября 2015 г.). «IAST: новый подход к гибкому тестированию безопасности» . Секодис.
  12. ^ Да, Александр; Ван, Си; Зельдович, Николай; Каашук, М. Франс (11 октября 2009 г.). «Повышение безопасности приложений с помощью утверждений потока данных» . Материалы 22-го симпозиума ACM SIGOPS по принципам операционных систем . СОСП '09. Нью-Йорк, штат Нью-Йорк, США: Ассоциация вычислительной техники. стр. 291–304. дои : 10.1145/1629575.1629604 . hdl : 1721.1/67015 . ISBN  978-1-60558-752-3 . S2CID   7189495 .
  13. ^ «Стандарт проверки безопасности приложений OWASP» .