Специалисты компании 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) пишет: «Когда организации начинают новый проект разработки и выбирают для него языки и методологию, у группы безопасность есть возможность спрогнозировать, с какими типами уязвимостей им, скорее всего, придется столкнуться и разработать для них оптимальные методики тестирования».
divided
05.12.2015 в 11:21
Язык – это инструмент. Его можно использовать правильно, а можно схалтурить. Как нож: можно хлеб резать, а можно – горло в тёмном переулке. От этого нож не станоится плохим или хорошим.
Дело не в языке программирования, а в тех, кто на нём пишет, как и зачем.
Исследование в мусорку.
Zoomskij
08.12.2015 в 09:37
divided, Может тогда и российский автопром не так уж плох? Дело ведь не в машине, а в том как часто водитель проходит ТО?
nickolasfox
24.01.2016 в 13:57
Разработчик на пхп, подгорело?
hipot
20.04.2016 в 02:22
тут как-раз проверены и учтены те, кто пишет на этих инструментах. Т.е. если таким ножиком режут плохо хлеб, то дело наверно не сколько в ножике, а сколько в тех, кто его использует.
как мне кажется, низкий показатель по php — это значит, что данный язык больше нужен для предоставления результатов от него заказчикам, нежели он очень нравится всем разработчикам…
mmaks
05.12.2015 в 12:19
0_o с каких это пор Android и iOS стали «языками программирования» ?
червяк130
07.12.2015 в 13:41
с этих самых пор. понятно тебе?
Andrew Riddle
05.12.2015 в 22:30
почему не упомянули Python? Видимо он не порождает багов вообще ))
Jeffrey Davis
07.12.2015 в 09:11
В девятку л
узидеров не пробился.warlord
05.12.2015 в 23:08
имхо, исследование куплено… как java оказался самым надежным?
Tempest Double
06.12.2015 в 06:38
Неужто с 2013 года js так улучшили? Что этот яп показывает такой результат?
snouden
06.12.2015 в 23:41
А что за язык такой Android?
червяк130
07.12.2015 в 13:42
Нет самая безопасная плтоформа? всегда была самой дырявой
ShadowHD
07.12.2015 в 23:00
Исследовалось не дырявость самой платформы, а именно дырки, допущенные программистом в коде. Языки со строгой типизацией автоматически показывают оценки ниже динамических