AppSec Solutions на базе продукта AppSec.Hub проанализировала метрики DevSecOps и определили наиболее распространенные недостатки кода и языков программирования, которые приводят к утечкам данных и росту рисков кибератак. Анализ провели на реальных анонимных данных клиентов из разных индустрий в России в 2024 году.

В выборку исследования вошли наблюдения за 98 командами разработчиков, которые трудились над разработкой ПО для наиболее важных отраслей экономики. В частности, исследование коснулось разработки компаний таких сфер как: финансовый сектор, телеком, промышленность, ТЭК и других. Целью было проанализировать обезличенные данные и выявить наиболее типичные проблемы информационной безопасности. Эксперты провели анализ более 140 миллионов строк кода, чтобы определить основные метрики плотности риска безопасности. Для расчета метрики были использованы еженедельный срез данных о количестве выявленных и неисправленных уязвимостей.

Анализ данных в течение нескольких месяцев показал, что языки программирования, которые используют команды, имеют разные риски уязвимостей для кибератак. Эксперты рассчитали общую и критическую плотность риска для 7 основных языков программирования: Java, JavaScript, C#, SQL, Python, PHP, Go. Самая высокая плотность риска у ПО, написанного с помощью C# и Java. Например, у С# медианная SRD, то есть плотность риска безопасности (Security Risk Density — прим. Авт.) равна 4,58, и это самый значительный показатель среди всех проанализированных значений.

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

Исследование подтвердило тенденции в ИБ в целом. Языки программирования сильно различаются по плотности риска. Наименьшие показатели — Go, Python, SQL, наибольшие — Java и C#.

«Для создания вредоносного кода злоумышленникам проще пользоваться Java за счет большего количества зависимостей при программировании. Представьте себе две компании, в одной из которых трудится 50 человек, а в другой — 500. В какой из них у злоумышленников будет больше возможностей найти „слабое звено“? Примерно таков же принцип работает и с языками программирования. Java и C# доступны во множестве библиотек, где можно найти решения почти под любые задачи и в то же время чрезвычайно популярны у команд разработки», — прокомментировал Антон Башарин, старший управляющий директор AppSec Solutions.

Напротив, Go, также известный как Golang, наиболее безопасный язык программирования. Golang — это универсальный язык, разработанный Google в 2007 году. Он сочетает в себе скорость и безопасность C/C++ с гибкостью Python. Традиционно порог входа в С/С++ выше, чем в любые другие языки, что даёт меньшее количество уязвимостей.

Любое приложение сегодня — как правило, сочетает в себе несколько языков программирования. Разработчик берет несколько языков для разработки интерфейса, серверной части и взаимодействия компонент. Рейтинг «безопасности» языков программирования помогает понять, в какой области могут быть критически значимые уязвимости, где нужно провести оценку рисков прежде всего.