Специалисты компании Veracode представили отчет, работа над которым заняла у них около полутора лет. За это время эксперты изучили более 200 000 различных приложений, стремясь определить, как обстоят дела с безопасностью в сфере разработки. На выходе получилась интересная статистика. Уязвимости в веб-приложениях в основном являются виной скриптовых языков программирования.
Изучив сотни тысяч программ, написанных на языках PHP, Java, JavaScript, Ruby, .NET, C и C++, Microsoft Classic ASP, COBOL, а также приложения для Android и iOS, исследователи пришли к выводу, что самыми небезопасными можно считать языки PHP, Classic ASP и ColdFusion. Наиболее надежными оказались Java и .NET.
Анти-топ выглядит следующим образом. При составлении отчета специалисты Veracode использовали собственную уникальную метрику — Flaw Density per MB, то есть количество багов на каждый мегабайт исходного кода.
- Classic ASP – 1 686 Баг/Мб (1 112 критических)
- ColdFusion – 262 Баг/Мб (227 критических)
- PHP – 184 Баг/Мб (47 критических)
- Java – 51 Баг/Мб (5,2 критических)
- .NET - 32 Баг/Мб (9,7 критических)
- C++ – 26 Баг/Мб (8,8 критических)
- iOS – 23 Баг/Мб (0,9 критических)
- Android – 11 Баг/Мб (0,4 критических)
- JavaScript - 8 Баг/Мб (0,9 критических)
По сути, можно считать, что список самых уязвимых языков возглавляет PHP, поскольку ColdFusion это нишевый инструмент, а Classic ASP практически мертв.
Если посмотреть на проблемы PHP более детально, выясняется следующее:
- 86% приложений, написанных на PHP, содержат хотя бы одну XSS уязвимость;
- 56% подвержены багу SQLi, а это одна из наиболее простых в эксплуатации уязвимостей в веб-приложениях;
- 67% приложений позволяют осуществить обход каталога;
- 61% приложений позволяют осуществить инъекцию кода;
- 58% приложений имеют проблемы с управлением учетными данными;
- 73% приложений содержат ошибки криптографии;
- 50% приложений допускают утечку информации.
Стоит отметить, что уязвимости SQLi и XSS входят в десятку наиболее опасных багов в веб-приложениях, по мнению Open Web Application Security Project (OWASP).
Если опираться на классификацию OWASP, получается, что 83% приложений на ColdFusion, 81% приложений на PHP и 79% на Classic ASP показали плохой результат, по сути, завалив проверку вовсе.
В заключении технический директор компании Veracode, Крис Вайсопал (Chris Wysopal) пишет: «Когда организации начинают новый проект разработки и выбирают для него языки и методологию, у группы безопасность есть возможность спрогнозировать, с какими типами уязвимостей им, скорее всего, придется столкнуться и разработать для них оптимальные методики тестирования».