Контакты
Подписка 2026

Применение методов анализа исходного кода при оценке защищенности информационных систем

Константин Саматов, 14/06/20

Разработчики программных продуктов уделяют много внимания функциональности и скорости доставки приложений, как правило, в ущерб безопасности, что подтверждается различными исследованиями. При этом достаточно эксплуатации даже одной уязвимости (например, выполнение произвольного кода), чтобы привести к полному нарушению работоспособности информационной системы и ее компрометации. О том, как этого избежать, пойдет речь в данной статье.


Константин Саматов
Руководитель направления в Аналитическом центре Уральского центра систем безопасности,
член правления Ассоциации руководителей служб информационной безопасности,
преподаватель дисциплин информационной безопасности в УрГЭУ и УРТК им. А.С. Попова.

Современный подход к организации бизнес-процессов построен на широком использовании программных продуктов, в том числе на базе веб-технологий: официальные сайты, форумы, корпоративные порталы, интернет-магазины и аукционы, порталы услуг, электронные торговые площадки – все это стандартные элементы информационной инфраструктуры любой современной компании. Нарушение их штатного функционирования вследствие реализации одной или нескольких угроз информационной безопасности может привести к существенным финансовым и репутационным издержкам. По данным исследования компании Positive Technologies за 2019 г., злоумышленники активно используют уязвимости веб-сайтов: 92% веб-приложений позволяют проводить атаки на пользователей, а 82% найденных уязвимостей связаны с ошибками при разработке кода. Бреши безопасности в 16% исследованных сайтах давали возможность контролировать не только само веб-приложение, но и сервер, на котором оно запущено1.

Для того чтобы этого избежать, необходимо в процессе проектирования, создания и эксплуатации программного обеспечения применять методы безопасной разработки и анализа безопасности исходного кода.

Анализ безопасности исходного кода – это анализ программного обеспечения на предмет выявления уязвимостей информационной безопасности, допущенных при его разработке.

Существует три группы методов анализа исходного кода:

  • динамические методы – методы анализа безопасности программного обеспечения, требующие выполнения программ на реальном или виртуальном процессоре, с доступом к исходному коду и к среде его функционирования;
  • статические методы – методы анализа безопасности программного обеспечения с доступом к его исходному коду, но не требующие выполнения (запуска) программ;
  • гибридные методы – методы, совмещающие два предыдущих подхода.

Статические методы анализа исходного кода могут быть использованы при создании и эксплуатации программного обеспечения, а динамические – на этапе ввода в эксплуатацию и в процессе эксплуатации.

Алгоритм анализа безопасности исходного кода

В общем виде, без учета особенностей конкретного проекта или процесса, алгоритм анализа безопасности исходного кода можно представить в виде следующей последовательности шагов – рис. 1.

На практике анализ исходного кода широко применяется совместно с другими методами анализа защищенности и нередко становится одной из стадий проекта анализа защищенности информационных систем.

Так, большинство проектов анализа защищенности, с которыми приходилось сталкиваться автору, включали в себя следующие стадии:

  1.  Анализ защищенности методами черного и серого ящика, т.е. динамический анализ безопасности программного обеспечения без доступа к исходному коду:
    • метод черного ящика направлен на поиск уязвимостей, использование которых позволяет злоумышленнику, не имеющему никаких привилегий, реализовать следующие виды угроз: получение несанкционированного доступа к информации, полного или частичного контроля над приложением и его использование для организации атак на рабочие места пользователей информационной системы;
    • метод серого ящика аналогичен предыдущему, с тем лишь исключением, что под злоумышленником подразумевается пользователь, обладающий определенным набором привилегий в информационной системе.
  2. Анализ защищенности методом белого ящика – динамический и статический анализ безопасности исходного кода.
  3. Разработка рекомендаций и итогового отчета.
  4. Проверка корректности устранения выявленных уязвимостей.

В качестве конкретного примера подобного проекта можно привести анализ защищенности интернет-магазина, одного из наиболее распространенных на сегодняшний день видов информационных ресурсов – табл. 1.

Проблемы практики анализа исходного кода и их решение

Основными проблемами, встречающимися в практике анализа исходного кода, являются:

  1. Отсутствие программ – анализаторов исходного кода для некоторых языков программирования. В таких случаях возможна лишь ручная проверка кода.
  2. Недостаток специалистов, владеющих конкретным языком программирования и одновременно имеющих представления о безопасности и безопасной разработке. На практике зачастую либо программисты не имеют особого понятия о механизмах защиты, либо специалисты по информационной безопасности плохо разбираются в программировании. Устранить такую проблему можно только обучением.
  3. Для динамических методов анализа необходимо уметь собирать приложения и разворачивать их на тестовом стенде. Это приведет либо к достаточно большим трудозатратам, если привлекать для анализа внешнего исполнителя, либо потребует выделения для тестового стенда постоянных вычислительных мощностей.
  4. При аутсорсинге (использовании услуг внешнего подрядчика) возникает еще одна проблема: программы для анализа исходного кода могут являться частью сред разработки, используемых разработчиками компании. В этом случае внешнему подрядчику потребуется организация полноценного рабочего места разработчика на территории заказчика (в т.ч. с использованием удаленного доступа), со всеми вытекающими последствиями: широкие привилегии по доступу к информационным ресурсам компании, необходимость защищенного канала связи, регламентация обязанностей и ответственности в соглашениях.

Резюме

Подведем итог: для надежной и корректной работы механизмов обеспечения безопасности в программном обеспечении необходимо регулярно проводить анализ исходного кода. При этом для большего эффекта в части выявления уязвимостей нужно использовать гибридные методы анализа безопасности, сочетание статических и динамических методов.

Темы:Безопасная разработка
Практика защиты персональных данных в 2027 году: требования и инструменты. 14 октября на Форуме ITSEC 2026
Полное расписание мероприятий Форума ITSEC 2026 →

Программа мероприятий
для руководителей и специалистов
по защите информации

Посетить
Статьи по той же темеСтатьи по той же теме

  • SafeERP – новая архитектура защиты бизнес-приложений
    Римма Кулешова, менеджер продукта SafeERP компании “Газинформсервис”
    Признание ERP-систем частью КИИ меняет подход к безопасности бизнес-приложений. На первый план выходят вопросы непрерывного контроля, управления рисками и прозрачности процессов внутри 1С и SAP. Римма Кулешова рассказывает о новой модели защиты ERP и о том, почему безопасность бизнес-логики становится отдельным направлением ИБ.
  • ИИ в аудите смарт-контрактов и проблема масштаба
    Александр Подобных, Независимый эксперт по ИБ в SICP.ueba.su
    Смарт-контракты пишутся быстрее, чем их успевают нормально проверять. Ошибки при этом каждый раз разные – от простых просчетов в логике до сложных сценариев с оракулами и внешними протоколами. Разбор каждого инцидента занимает время, а их становится все больше и больше. В какой-то момент проблема сводится уже не к сложности, а к объему: ручной аудит не успевает покрывать все, что появляется.
  • Когда платформа становится безопаснее, чем безопасник
    Александр Трифанов, руководитель направления Application Security, "Авито"
    В крупных компаниях стало слишком много инженерии. Команды растут, микросервисы множатся, инфраструктура усложняется, а вместе с ней – и стоимость ее поддержки. Поэтому идея внутренних платформ выглядит естественным ответом на хаос. То, что раньше требовало согласований и ручных настроек, теперь превращается в сервис – Platform as a Service, Publication as a Service, Admin as a Service.
  • Как инструменты разработки становятся средствами для кражи криптоактивов
    Дмитрий Пойда, аналитик по расследованиям AML/KYT провайдера “Шард”
    Количество атак на цепочку поставок программного обеспечения в прошлом году выросло на 156% по сравнению с годом ранее, по данным исследования Sonatype. Разберемся, как эта угроза проявляет себя в мире криптовалют, и почему привычные инструменты разработчика становятся орудием злоумышленников.
  • Почему DevSecOps не приживается в АСУ ТП и MES – и как его адаптировать
    Артем Пузанков, руководитель группы внедрения практик безопасной разработки Positive Technologies
    Внедрение DevSecOps стало нормой для ИТ-разработки, однако в промышленных системах этот подход сталкивается с серьезными ограничениями. Приоритеты в этих средах – надежность, непрерывность работы и соблюдение отраслевых стандартов – изначально противоречат динамике CI/CD и гибкости DevOps. Дополнительные препятствия создают закрытые контуры, устаревшие технологии и фрагментированная структура ответственности.
  • Безопасность приложений на базе SAP и 1С начинается с проверки кода
    Екатерина Герлинг, ведущий инженер-аналитик Лаборатории стратегического развития продуктов кибербезопасности Аналитического центра кибербезопасности ООО “Газинформсервис”
    После ухода SAP с российского рынка система 1С стала чуть ли не единственной альтернативой, но разработка под эту платформу требует значительных ресурсов, а специалистов не хватает. При этом анализ и защита кода для таких систем — сложный процесс, требующий специализированных решений. На российском рынке есть решения, которые помогут обеспечить безопасность корпоративных приложений на 1С и SAP.

Хотите сотрудничать?

Выберите вариант!

Печатное издание
Интернет-портал
ВЫСТУПИТЬ НА КОНФЕРЕНЦИЯХ
СТАТЬ АВТОРОМ
13-14 октября приглашаем экспертов и практиков выступить на Форуме ITSEC 2026!
Отправить заявку на участие →

More...
ТБ Форум 2026
13 октября. Защищенный удаленный доступ на Форуме ITSEC 2026
Регистрация открыта →

More...