Социальная инженерия и использование человеческого фактора в кибератаках стали основным трендом последних лет. Нападения становятся всё более сложными и задействуют все слабости корпоративных информационных систем — как психологические уязвимости людей, так и уязвимости в программах.
Люди выполняют начальное действие, например открывают документ и разрешают выполнение макросов. А дальше вредоносный код использует другую разновидность уязвимостей — ошибки в программах. С их помощью на компьютере жертвы запускается «полезная нагрузка», например троян или бэкдор, шифровальщик-вымогатель или шпионский модуль…
Работу над устранением уязвимостей в программах нужно начинать не в момент, когда ими воспользовались преступники, а значительно раньше — на стадии создания приложения и даже ещё раньше, во время проектирования и формирования требований к безопасности программы (Илл. 1). О том, как повысить эффективность формирования требований к безопасности разработки, поговорим в этой статье.
Иллюстрация 1. Относительная стоимость устранения дефектов ПО на разных стадиях разработки
ВЫЯВЛЯЕМ НЕЭФФЕКТИВНЫЕ ПРАКТИКИ
В крупных компаниях, как правило, имеется собственный отдел или департамент разработки, программисты которого пишут код для автоматизации различных участков деятельности. Эти программы используют все сотрудники, поэтому безопасность компании зависит от того, насколько безопасно они написаны.
С первого взгляда кажется, что для разработки безопасной программы нужно не так много усилий:
Однако многочисленные попытки получить таким образом действительно безопасное приложение раз за разом оказываются неудачными. И причина не только в том, что на текущий момент только отечественные требования по безопасности с учётом нормативных актов отраслевых регуляторов и стандартов — это более 150 документов с различной степенью детализации описания этих требований. Не менее значимым фактором становится несоответствие взаимных ожиданий заинтересованных сторон.
Большинство разработчиков ожидают, что:
Единственное препятствие на этом блестящем пути — приёмо-сдаточные испытания, в ходе которых неожиданно выясняется, что результат не соответствует требованиям. Основная причина в том, что разработчики не знают ответов на фундаментальные вопросы:
А ещё в некоторых командах существует своеобразный карго-культ — внутреннее представление о том, как должен выглядеть действительно безопасный код, причём во многих случаях оно весьма фрагментарно и не покрывает весь спектр возможных проблем безопасности.
В результате вместо ввода программы в эксплуатацию приходится повторно уточнять требования к безопасности и заново проходить все стадии разработки и тестирования. Это приводит к срыву сроков и значительному удорожанию проекта.
Но и со стороны ИБ-подразделений тоже наблюдаются проблемы, поскольку их сотрудники:
ФОРМУЛИРУЕМ ИДЕАЛЬНЫЕ ТРЕБОВАНИЯ ПО ИБ К ПО
В процессе разработки Антифишинга, программного продукта для ликвидации человеческих уязвимостей, наши разработчики и ИБ-эксперты сформулировали, как должны выглядеть идеальные требования к безопасности ПО:
Корректные требования по ИБ к ПО формируются командами разработки самостоятельно и автоматически.
Чтобы добиться этого результата, необходимо организовать процесс таким образом, чтобы учитывать все уровни требований по информационной безопасности и обеспечить «перевод» требований с формального языка на язык соответствующей целевой группы (Илл. 2).
Иллюстрация 2. Уровни требований по информационной безопасности
Этот процесс состоит из следующих этапов:
СОЕДИНЯЕМ ОЖИДАНИЯ ИБ И РАЗРАБОТЧИКОВ
Чтобы процесс формирования требований к безопасности программы не превратился в противостояние команд ИБ и разработки в виде бесконечных споров по поводу зон ответственности и трактовки различных формулировок, необходима унифицированная платформа.
В функции такой платформы должны входить:
Такая платформа позволила бы командам ИБ и разработки:
РЕАЛИЗАЦИЯ ОЖИДАНИЙ
Результатом тесного сотрудничества ИБ-команды и разработчиков Антифишинга стал новый продукт – система Антифишинг.START, в котором были реализованы ожидания и пожелания всех участников процесса создания ПО (Илл. 3).
Иллюстрация 3. Интерфейс системы: заполнение анкеты для формирования требований к новому приложению
Главные функции системы:
Таким образом, мы создали гибкое и функциональное решение для управления требованиями к безопасности разработки ПО, которое позволяет наладить полноценный контакт ИБ, разработчиков ПО и всей инженерной команды.
Благодаря Антифишинг.START не только экономится время, но и существенно повышается качество результата:
Отправляя данную форму вы соглашаетесь с политикой конфиденциальности персональных данных
Отправляя данную форму вы соглашаетесь с политикой конфиденциальности персональных данных