Как и список мероприятий по безопасности, представленный ниже список всегда можно дополнить. Люди создают собственные инструменты, делятся ими и открывают исходные коды. В настоящее время существует бесчисленное множество стартапов, изобретающих новые крутые технологии, а также немало занимающихся безопасностью компаний со стажем и стабильным положением, которые переосмысливают себя и свои продукты. Инструментов будет становиться все больше. Тем не менее вот список, который вам, возможно, будет интересно изучить.
Стандартные
• DAST (динамическое тестирование безопасности приложений).
• SAST (статический анализ безопасности приложений).
• Анализ состава программного обеспечения (SCA) – проверка ваших сторонних зависимостей на известные уязвимости.
• Веб-прокси для ручного тестирования приложений и API.
• Фаззеры для поиска дыр в валидации ввода.
• Брандмауэры веб-приложений (WAF) – щит из регулярных выражений, используемых для проверки пользовательских вводных данных. Они блокируют трафик HTTP(S) к веб-приложению и от него на основе списков одобрения или блокировки и регулярных выражений. Некоторые WAF также используют искусственный интеллект или машинное обучение (англ. artificial intelligence / machine learning, AI/ML).
Новые
• RASP (англ. runtime application security protection, также известен как обратный прокси) – заглушка (двоичный файл), размещаемая внутри приложения, которая действует как щит против атак на приложение. Обычно для обнаружения угроз используется искусственный интеллект и машинное обучение, а не только регулярные выражения и белые либо черные списки.
• Инструменты управления уязвимостями для сбора показателей и измерения прогресса.
• Инструменты IDE и вебхуки, помогающие разработчикам в исправлении небезопасных решений по кодированию.
• Интерактивное тестирование безопасности приложений (IAST) – инструмент, представляющий собой двоичный файл, размещенный внутри приложения, который выполняет комбинацию SAST и DAST. Работает в реальном времени, в ходе взаимодействия пользователей с проверяемым приложением.
• Сервисная сетка – это инфраструктурный уровень, который шифрует коммуникации API и управляет ими.
• Инструменты объединения для конвейеров, которые позволяют добавить только один инструмент безопасности в конвейер, подключить несколько инструментов безопасности к инструменту объединения, а затем получить результаты работы всех инструментов на одной панели. Он запускает несколько инструментов одновременно.
• API-шлюзы, которые обеспечивают аутентификацию и авторизацию API, защищая их от несанкционированных вызовов и других злоупотреблений.
• Средства автоматизации наименьших привилегий, которые проверяют, какие разрешения действительно необходимы, и удаляют лишние, тем самым сводя к минимуму поверхность атаки. Это также называют «автоматизацией политики».
• Стандартные инструменты безопасности, оптимизированные для конвейеров. Будьте осторожны с ними – многие поставщики заявляют, что они готовы к работе в конвейерах, а на самом деле это все те же старые инструменты. Всегда проводите проверку концепции, чтобы убедиться, что работа инструмента отвечает вашим потребностям.
• Прокси-серверы управления пакетами, позволяющие разработчикам загружать только безопасные пакеты.
• Инструменты инвентаризации приложений и активов, помогающие создать реестр общедоступных веб-активов.
• Создание собственных пользовательских инструментов, если нужно что-то специфическое и до сих пор не существующее.
Если у вас появилась возможность принимать решения о направлении формирования программы обеспечения безопасности приложений, сперва следует определить ее цели, а затем выбрать мероприятия и инструменты, которые помогут в их достижении. Постоянно измеряйте свой прогресс на пути к целям и не переставайте совершенствоваться. В результате у вас будет не только более безопасное ПО, но и высокоэффективная программа безопасности.
1. Назовите одну причину, по которой поддержание реестра приложений в актуальном состоянии важно для любой организации.
2. Приведите один пример предупреждения, которое может выдать ваше приложение. Какой тип поведения может вызвать такое предупреждение и почему его нужно расценивать как проблему?
3. Является ли тестирование самой важной частью программы безопасности? Если да, то почему? Если нет, то почему?
4. Что выгоднее: купить инструмент RASP либо WAF (щит для приложения) или потратить эти деньги на обеспечение безопасности кода? Объясните свой выбор.
5. Опишите тип инцидента безопасности, при котором понадобится помощь разработчика. Что требуется от разработчика в описанной ситуации?
6. Какой один инструмент вы дали бы в помощь своим разработчикам? Объясните свой выбор.
7. Какой учебный ресурс вы предоставили бы в помощь своим разработчикам? Объясните свой выбор.
8. В чем разница между SAST и SCA?
9. В чем разница между SAST и DAST?
10. Определите цель для возможной программы безопасности приложений в вашем офисе, учебном проекте или в выдуманной компании, где хотели бы работать. Какую цель вы поставили? Почему вы выбрали именно ее? Как вы будете измерять прогресс в ее достижении?
11. Есть ли препятствия, которые мешают начать первую программу безопасности на вашем текущем месте работы? Если да, то какие? А еще лучше – попробуйте подумать, как их можно преодолеть.