Создание и поддержка в актуальном состоянии полного списка всех приложений, API и SaaS-программ – сложная задача для любого специалиста по безопасности приложений.
На момент написания книги появились новые продукты, помогающие найти приложения в локальной сети или в интернете. Невозможно собрать полный и актуальный список вручную. Новые инструменты инвентаризации приложений будут очень интересны тем, кто пытается создать полную картину всего программного обеспечения в локальной сети, доступного специалистам по обеспечению безопасности (и специалистам по реагированию на инциденты).
Возможность автоматизировать внедрение, аудит и проверку политик в облачной среде делает работу по внедрению политик более точной, масштабируемой и даже (возможно) приятной. Автоматизация происходит путем установки в среду агентов, которые следят за системами и проверяют их соответствие установленным политикам. Обычно автоматизация применяется в облачных средах, редко – в локальных (традиционных) центрах обработки данных.
Инструменты, автоматизирующие следование политике наименьших привилегий, проверяют привилегии в облаке и удаляют те, которые не использовались в течение длительного времени, тем самым реализуя данную концепцию без каких-либо нарушений. Другие виды автоматизации политик включают в себя применение безопасных протоколов связи (например, только HTTPS), применение заголовков безопасности, включение протоколирования, мониторинга, аудита и других защитных инструментов, оповещение о попытках определенных видов учетных записей повысить привилегии или получить доступ к тем областям сети, которые согласно политике не должны быть доступны, обеспечение многофакторной аутентификации для всех учетных записей владельцев и т. д. Автоматизация политик чрезвычайно удобна при повышении уровня безопасности облака.
Ранее аудиторам приходилось выяснять на основе анкет и опросов, следуют ли проверяемые ими системы установленным политикам, но такие методы неэффективны и не дают точных результатов. Попытки вручную проверить и обеспечить соблюдение политик, как правило, отнимают много времени и чреваты ошибками (повышают трудоемкость). Автоматизация применения политик – качественно новый и крайне эффективный способ удостовериться, что люди действительно следуют установленным политикам безопасности (комплаенсу).
Несколько корпораций, правительств и некоммерческих организаций поделились своими успешными стратегиями и тактиками модернизации деятельности в области безопасности на конференциях, в книгах, технических документах и проектах с открытым исходным кодом. В этот длинный список входят Netflix, Microsoft, Intuit и Канадское учреждение безопасности связи (CSEC).
К сожалению, гораздо чаще хорошими идеями делиться не принято, поскольку некоторые считают, что раскрытие их успешных программ безопасности не идет им на пользу. В итоге многие технологи вынуждены полагаться на метод проб и ошибок, а не учиться на чужих успехах и неудачах, что вредит всей IT-отрасли. В этом разделе мы обсудим несколько идей, озвученных в социальных сетях, на конференциях и в неформальных беседах.
Добавление инструментов безопасности в конвейер DevOps – хорошо известная в IТ-среде идея. Тем не менее в некоторых случаях создаются асинхронные конвейеры, где длительные тесты запускаются без прерывания процесса сборки. Таким образом, в конвейер выпуска помещают критически важные тесты безопасности, а все эти долгие, медленные, тщательные сканирования, результаты которых будут изучаться еще долгое время после запуска кода в эксплуатацию, можно выполнять в асинхронном конвейере.
Некоторые технологи взяли результаты тестирования на проникновение или оценки безопасности и превратили их в модульные тесты, чтобы предотвратить появление тех же самых ошибок в кодировании после завершения тестирования. Для получения дополнительной информации можно поискать те же результаты тестирования в остальных приложениях, ведь есть вероятность, что разработчики, которые допустили ошибку в приложении «А», допустили ее и в приложении «Б» или «В». С помощью этих результатов и оценки по ним остальных приложений можно получить больше пользы от тестирования, скорее всего, обошедшегося в круглую сумму.
Еще один вид деятельности, о котором не так часто говорят, но который может серьезно повысить эффективность, – это автоматическое сканирование не только выпускаемого кода в конвейере, но и всего репозитория кода. Можно создать «ловушки перед фиксацией» для запуска различных тестов безопасности, которые затем при необходимости могут заблокировать релиз конвейера. Однако неплохим решением также будет запуск тестов, которые не блокируют релизы конвейера, например еженедельное сканирование SCA или SAST всего репозитория. В проверке репозитория можно задействовать находящийся в нем код, так как он просто хранится там.
Создание для разработчиков библиотеки безопасного кода с паттернами и кодом хорошего качества – еще один способ повысить эффективность написания безопасного кода. Эта идея, возможно, кажется довольно простой, но из-за большого количества усилий, необходимых для ее поддержки, она реализуется довольно редко. Если в компании есть разработчик, который также сторонник обеспечения безопасности, его можно назначить своего рода библиотекарем. Результаты этой деятельности видны не сразу, но со временем они производят ошеломительный эффект.
По мере того как все больше организаций становятся смелее и делятся своим опытом, появляется все больше и больше удивительных идей, которые можно оценить, чтобы решить, стоит ли внедрять их в работу. Посещайте конференции, смотрите записи выступлений, следите за различными членами сообщества информационной безопасности, которые делятся идеями в интернете, и используйте другие способы своевременного ознакомления с новыми креативными стратегиями и тактиками безопасности приложений в IТ-отрасли.