Компания WhiteSource опубликовала (https://www.whitesourcesoftware.com/most-secure-programming-.../) результаты анализа распределения уязвимостей в зависимости от применяемых языков программирования. При рассмотрении общего распределения уязвимостей в открытых проектах, 47% всех выявленных проблем с безопасностью затрагивают программы написанные на языке Си, 17% на PHP, 12% на Java и 11% на JavaScript.
Данная статистика сильно коррелирует с популярностью того или иного языка и объёмом наработанной кодовой базы. Тем не менее, общие тенденции прослеживаются, например, язык PHP занимает (https://www.opennet.ru/opennews/art.shtml?num=49244) в рейтинге Tiobe седьмое место по популярности, но находится на втором месте по числу уязвимостей в приложениях. Язык Си более подвержен возникновению уязвимостей в силу своего низкоуровневого характера при обработке строк и работе с памятью.
Некоторые выводы:
- Активное внедрение автоматизированных систем тестирования, fuzzing-инструментов и программ выплаты вознаграждений за выявление уязвимостей привело к заметному всплеску уязвимостей, выявленных в 2017 и 2018 годах, при этом число опасных уязвимостей за два последних года уменьшилось. В 2017 году заметно возросло число уязвимостей, выявленных в программах на языках Си, JavaScript и PHP. В 2018 году число уязвимостей в программах на языках Си и JavaScript снизилось до показателей прошлых лет, но существенно возросло число уязвимостей, выявленных в программах на Java;
При сужении выборки только для опасных уязвимостей (CVSS выше 7) динамика сохраняется:
- Наибольшее число выявленных за последнее время уязвимостей относятся к категориям межсайтового скриптинга (XSS), ошибок при проверка входных данных, неверно выставленных прав доступа/привилегий и утечке информации;
- Статистика по частоте появления уязвимостей в привязке к языкам программирования:
- В программах на языке Си наибольшее число уязвимостей, связаны с выходом за допустимые границы буфера, ошибками при проверке корректности входных данных и ненадлежащим управлением ресурсами (Race Condition, двойное освобождение памяти, обращение к данным после освобождения и т.п.). Около 20% выявленных уязвимостей в программах на Си отнесены к категории опасных. Наибольшее число уязвимостей в 2018 году выявлено в ядре Linux, ImageTragic, WireShark и FFmpeg.
- PHP: межсайтовый скриптинг, подставновка SQL-кода и проблемы связанные с правами доступа и установкой привилегий. Около 20% выявленных уязвимостей отнесены к категории опасных;
- Java: утечки информации (получение данных без наличия должных прав доступа), ошибки при проверке корректности входных данных и межсайтовый скриптинг (XSS). Около 10% выявленных уязвимостей отнесены к категории опасных;
- JavaScript: применение ненадёжных криптографических методов (неправильная проверка сертификатов, проблемы со случайными числами, применение скомпрометированных алгоритмов, применение хэшей с коллизиями, передача важных данных в открытом виде), неправильная проверка файловых путей (например, выход за пределы базового каталога через "../") и межсайтовый скриптинг (XSS). Около 30% выявленных уязвимостей отнесены к категории опасных;
- C++: выход за границу буфера, ошибки при проверке входных данных, утечки информации. Около 30% выявленных уязвимостей отнесены к категории опасных;
- Python: ошибки при проверке входных данных, проблемы с правами доступа и установкой привилегий, межсайтовый скриптинг (XSS). Около 20% выявленных уязвимостей отнесены к категории опасных;
- Ruby: межсайтовый скриптинг (XSS), проблемы с правами доступа, ошибки при проверке входных данных. Около 10% выявленных уязвимостей отнесены к категории опасных.
URL: https://resources.whitesourcesoftware.com/blog-whitesource/i...
Новость: https://www.opennet.ru/opennews/art.shtml?num=50415