Системный подход к безопасности приложения
Приступая к разработке приложения не следует забывать о требованиях безопасности. Разумеется, это не означает, что нужно сконцентрироваться сугубо на секьюрности в ущерб другим полезным свойствам приложения, поскольку «бизнес есть бизнес» и основная цель любого коммерческого приложения – выполнение тех функций, которые соответствуют целям бизнеса. Вместе с тем, секьюрный продукт сам по себе обладает дополнительной привлекательностью для пользователей, а безопасность может быть ярким отличительным признаком одного конкретного приложения по сравнению с аналогами.
В идеале участие специалиста по информационной безопасности нужно планировать на стадии определения требований к будущему приложению. На этой первичной стадии необходимо четко определить, какая именно информация будет циркулировать в системах, подпадает ли такой флоу под требования каких-либо регуляторов и какие внутренние полиси следует разработать. Вся полученная информация ляжет в основу дизайна, на данном этапе необходимо предусмотреть, какие именно секьюрити контроли и контрмеры будут реализованы в приложении.
После проектирования и создания дизайна приложения с учетом требований безопасности необходимо организовать процесс разработки таким образом, чтобы код обязательно подвергался секьюрити ревью, для чего лучшим подспорьем станет составление чек-листа (или дополнения к нему в части секьюрити), согласовать который должны безопасник и архитектор приложения. Далее следует стадия верификации, в ходе которой требуется осуществлять тестирование кода на наличие уязвимостей, при этом желательно проводить white box vulnerability assessment всего кода, а не только пентест отдельных фич или же критического функционала, хотя, безусловно, в ряде случаев пентест обладает и некоторыми преимуществами с практической точки зрения.
После завершения тестирования, исправления выявленных критических (и других высокорейтинговых категорий – в соответствии с внутренними стандартами компании) уязвимостей, запуска приложения непосредственно в прод-среде следует организовать процесс постоянного мониторинга и получения обратной связи от пользователей и иных лиц по вопросам безопасности. В идеале наличие отдельной команды или специалиста, ответственных за обработку потенциальных входящих заявок о нарушении безопасности и мониторинг состояния работающего приложения.
Комплексный подход к безопасности приложений позволяет существенно повысить безопасность продукта, в том числе, за счёт цикличности: выявленные на стадиях верификации или мониторинга и получения обратной связи от пользователей недочеты можно переадресовать на стадии определения требований и дизайна, внося соответствующие коррективы с учетом фактических обстоятельств.