Опубликованный сегодня отчет Veracode State of Software Security посвящен разработке приложений и показывает, что приложения, написанные на языках веб-сценариев, имеют гораздо более высокий уровень распространения SQL-инъекций и межсайтовых сценариев, чем написанные на .NET или Java.
В своем предисловии к отчету технический директор Veracode Крис Висопал отмечает, что облачная платформа компании на данный момент проанализировала сотни тысяч приложений и более 1,5 триллиона строк кода, и что собранные данные позволяют анализировать различные риски, присущие приложениям в зависимости от ситуации. к используемому языку и методу их построения, советуя:
Когда организации начинают новые проекты разработки и выбирают языки и методологии, группа безопасности имеет возможность предвидеть типы уязвимостей, которые могут возникнуть, и способы их наилучшего тестирования.
Основные выводы отчета представлены на этой диаграмме:
(Щелкните диаграмму, чтобы увеличить)
Приложения, написанные на языках веб-сценариев, имеют гораздо более высокий уровень распространенности классов уязвимостей, таких как внедрение SQL и межсайтовые сценарии, чем приложения, написанные на .NET или Java.
В частности, 64 процента приложений, написанных на Microsoft Classic ASP, 62 процента приложений, написанных на ColdFusion, и 56 процентов приложений, написанных на PHP, при первоначальной оценке имели по крайней мере одну уязвимость SQL-инъекций, по сравнению с 29 процентами .NET. приложений и 21 процент приложений Java.
Относительно высокой уязвимости PHP в отчете говорится:
Одна особая проблема ..; — это высокая распространенность приложений на основе PHP благодаря широкому распространению фреймворков системы управления контентом (CMS), таких как WordPress, Drupal и Joomla. По некоторым оценкам, 74,6 миллиона веб-сайтов используют WordPress, а еще несколько миллионов используют Drupal и Joomla.
Отмечая, что мобильные приложения имеют самый высокий уровень криптографических проблем — 87 процентов для Android и 80 процентов для iOS, в отчете говорится:
Это говорит о том, что, хотя разработчики мобильных приложений могут знать о необходимости криптографии для защиты конфиденциальных данных и, следовательно, использовать их в своих приложениях, немногие из них знают, как это правильно реализовать.
Рассматривая частоту исправлений, то есть количество исправленных уязвимостей, разделенное на общее количество обнаруженных, Veracode показывает, что статическая оценка превосходит как ручные, так и динамические методы.
В среднем исправляются 64 процента статических уязвимостей, по сравнению с 50 процентами динамических уязвимостей — в среднем на 28 процентов лучше.
В отчете говорится:
Существует несколько возможных причин, по которым статический анализ обнаружил более высокую частоту исправлений. Скорее всего, static предоставляет более точные данные об основной причине уязвимости, включая исходный файл и номер строки. Но есть и другие возможности, в том числе вероятность того, что статическая оценка выполняется в приложении, которое активно разрабатывается, и поэтому инженеры уже рассматривают устранение проблем в качестве приоритета, когда динамические оценки могут выполняться в производственной системе, где группа разработчиков не могут быть активно вовлечены.
Он также предупреждает:
Это не означает, что программа безопасности должна полагаться исключительно на статический анализ. Некоторые классы уязвимостей могут быть обнаружены только во время выполнения с использованием таких методов, как DAST, поведенческое тестирование мобильных приложений или интерактивное самотестирование приложений. Некоторые из них, например уязвимости бизнес-логики, требуют наличия опытного тестировщика.
Тем не менее, результаты подтверждают гипотезу о том, что статический анализ — лучший метод, поскольку он дает разработчикам более действенные результаты.