Специалисты компании 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 критических)

Programming-Language-2

По сути, можно считать, что список самых уязвимых языков возглавляет 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 показали плохой результат, по сути, завалив проверку вовсе.

Programming-Language-1

В заключении технический директор компании Veracode, Крис Вайсопал (Chris Wysopal) пишет: «Когда организации начинают новый проект разработки и выбирают для него языки и методологию, у группы безопасность есть возможность спрогнозировать, с какими типами уязвимостей им, скорее всего, придется столкнуться и разработать для них оптимальные методики тестирования».



13 комментария

  1. divided

    05.12.2015 at 11:21

    Язык – это инструмент. Его можно использовать правильно, а можно схалтурить. Как нож: можно хлеб резать, а можно – горло в тёмном переулке. От этого нож не станоится плохим или хорошим.

    Дело не в языке программирования, а в тех, кто на нём пишет, как и зачем.

    Исследование в мусорку.

    • Zoomskij

      08.12.2015 at 09:37

      divided, Может тогда и российский автопром не так уж плох? Дело ведь не в машине, а в том как часто водитель проходит ТО?

    • nickolasfox

      24.01.2016 at 13:57

      Разработчик на пхп, подгорело?

    • hipot

      20.04.2016 at 02:22

      тут как-раз проверены и учтены те, кто пишет на этих инструментах. Т.е. если таким ножиком режут плохо хлеб, то дело наверно не сколько в ножике, а сколько в тех, кто его использует.
      как мне кажется, низкий показатель по php — это значит, что данный язык больше нужен для предоставления результатов от него заказчикам, нежели он очень нравится всем разработчикам…

  2. mmaks

    05.12.2015 at 12:19

    0_o с каких это пор Android и iOS стали «языками программирования» ?

  3. Andrew Riddle

    05.12.2015 at 22:30

    почему не упомянули Python? Видимо он не порождает багов вообще ))

  4. warlord

    05.12.2015 at 23:08

    имхо, исследование куплено… как java оказался самым надежным?

  5. Tempest Double

    06.12.2015 at 06:38

    Неужто с 2013 года js так улучшили? Что этот яп показывает такой результат?

  6. snouden

    06.12.2015 at 23:41

    А что за язык такой Android?

  7. червяк130

    07.12.2015 at 13:42

    Нет самая безопасная плтоформа? всегда была самой дырявой

    • ShadowHD

      07.12.2015 at 23:00

      Исследовалось не дырявость самой платформы, а именно дырки, допущенные программистом в коде. Языки со строгой типизацией автоматически показывают оценки ниже динамических

Оставить мнение