Библиография
Аннотация
Статья представляет результаты первой фазы совместного исследовательского проекта Лаборатории Касперского и Института системного программирования РАН, направленного на изучение и развитие конструктивной информационной безопасности (КИБ, Security by Design) — одного из подходов к конструированию надежных программных систем. В ней рассматривается КИБ как один из фундаментальных способов повышения защищенности за счет решений, принимаемых еще на этапе проектирования. Авторы исходят из того, что значительная часть проблем безопасности возникает не из-за отдельных ошибок в коде, а из-за архитектурных просчетов, последствия которых проявляются и накапливаются на протяжении всего жизненного цикла системы. Несмотря на то, что идеи конструктивной информационной безопасности развиваются уже несколько десятилетий, на практике они часто применяются фрагментарно, а их принципы остаются малоизвестными широкому кругу разработчиков.
В работе предпринимается попытка каталогизировать принципы и техники, относящиеся к подходу конструктивной информационной безопасности. Рассматриваются базовые принципы, лежащие в основе КИБ, и показывается, каким образом они реализуются через архитектурные решения, паттерны проектирования, методы усиления защиты кода и выбор инструментальных средств. Отдельное внимание уделяется роли архитектуры программных систем и тому, как анализ архитектурных решений на начальных этапах жизненного цикла позволяет сократить поверхность атаки и снизить риски возникновения уязвимостей.
Авторы также обсуждают текущее состояние инструментальной поддержки конструктивной информационной безопасности. Показано, что существующие средства архитектурного моделирования и каталоги уязвимостей в основном ориентированы на код и плохо подходят для выявления архитектурных недостатков. В статье подчеркивается необходимость развития типологий архитектурных уязвимостей, а также создания репозиториев и инструментов, позволяющих накапливать и переиспользовать знания о «правильных» и «ошибочных» проектных решениях.
В качестве перспективных направлений развития КИБ рассматриваются методы анализа архитектур на ранних этапах жизненного цикла, интеграция моделей безопасности с процессами разработки и сопровождения, а также использование безопасных языков программирования (например, безопасных для работы с памятью (memory safe)) как дополнительного механизма снижения класса потенциальных уязвимостей. Статья задает рамку для дальнейших исследований и практических работ в области проектирования программных систем с определенными свойствами безопасности и надежности.