Услуги

Анализ исходного кода

Разработка программного обеспечения  -  основной бизнес для большого количества ИТ-компаний, ежедневно целая армия программистов создает миллионы строк исходного кода. С другой стороны, в постиндустриальную эпоху бизнес-процессы многих предприятий построены на основе бесперебойной работы приложений (интернет-магазины, онлайн банкинг, биллинговые системы  и т.д.). В такой ситуации безопасность приложений является приоритетной задачей для служб ИБ, большинство успешных кибератак эксплуатируют уязвимости в исходном коде, в программах могут быть встроены «недекларированные возможности» (закладки). Это критично для веб-приложений и мобильных приложений, которые доступны широкому кругу внешних пользователей, ИБ подразделение несет ответственность за их безопасность, однако существенно повлиять на защиту такого ПО не может.
  Назовем несколько главных причин, приводящих к уязвимостям в исходном коде:
 - программное обеспечение разрабатывается в сжатые сроки, ТЗ не всегда качественно подготовлено (причина – нежелание собственников бизнеса терять деньги на длительном цикле разработки);
 - культура программирования (используется сторонний код, непродуманные языковые конструкции, небезопасные связи между компонентами ПО и т.д.);
 -  сознательное внедрение «закладок» разработчиками.
В такой ситуации хорошей практикой является аудит исходного кода, необходимо чтобы он выполнялся регулярно сотрудниками подразделений ИБ (или сторонними ИБ-компаниями). Но часто бывает так: в компании не налажены эффективные коммуникации между специалистами ИБ и разработчиками, исходный код не передается для анализа в удобочитаемом формате.
Какими же методами могут воспользоваться специалисты ИБ для аудита исходного кода?
Во-первых, это «ручной» (экспертный) анализ кода. Для этих целей нужны высококвалифицированные специалисты, которые протестируют досконально код на наличие уязвимостей (например, по OWASP, MITRE и т.д.). Однако, такой метод требует времени, ресурсов и квалифицированных экспертов, поэтому его рекомендуется проводить только с выходом новых версий ПО,  а вот автоматический аудит кода необходимо проводить на регулярной основе. Т.е. важен комплексный подход, когда на основании отчетов автоматического анализа кода, специалисты ИБ вырабатывают рекомендации разработчикам по устранению уязвимостей и закладок. 
Автоматический анализ кода основан на следующих методиках:
  • SAST (Static Application Security Testing) – статический метод, анализ кода на наличие уязвимостей без реального запуска исследуемого приложения. Этот подход базируется на модели «белого ящика»: процессы, происходящие внутри данной системы, полностью известны.
  • DAST (Dynamic Application Security Testing) – динамический метод, который предполагает запуск приложения с определенными параметрами и переменными, таким образом происходит его проверка на наличие потенциальных угроз. Метод работает по модели «черного ящика»: нет данных о внутреннем содержании системы, известны только входные и выходные связи системы со средой.
  • IAST (Interactive Application Security Testing) - интерактивная модель тестирования, в ней используется как динамический, так и статический анализ.

Надо отметить, что современные сканеры имеют интуитивно понятный интерфейс, позволяющий при отсутствии доступа к исходному коду загрузить исполняемый файл прямо в сканер (для мобильных приложений вводится ссылка на приложение с Google Play или Apple Store). Для снижения количества ложных срабатываний в сканерах исходного кода, как правило, используют модуль Fuzzy Logic Engine.
Отчетность, которую выдает сканер можно разделить на две категории:
  • рекомендации для разработчиков по устранению уязвимостей и ошибок в коде;
  • рекомендации по настройке SIEM, WAF, FW, NGFW  и т.д.

При проведении работ необходимо учитывать требования регуляторов в области анализа кода, например ФСТЭК России.
Специалисты компании «ITCS» владеют методиками как «ручного», так и автоматического аудита исходного кода. Учитывая особенности Вашего ПО (среду и языки разработки, сферу применения, наличие или отсутствие «исходников» и документации, требования регуляторов  и.т.д) они выберут сканер, проведут необходимые работы и подготовят для Вас отчеты и  рекомендации. 

Заполните форму, чтобы заказать один из наших продуктов,
и наши специалисты свяждутся с вами