Сравнения языков программирования с позиции безопасности написанного на них кода

Компания Veracode опубликовала результаты исследования зависимости числа уязвимостей в коде от используемого языка программирования. В рамках исследования был выполнен статический анализ более 200 тысяч приложений, который показал, что наибольшее число связанных с безопасностью ошибок, присутствует в коде проектов на ASP, ColdFusion и PHP. Учитывая то, что на PHP написаны платформы Drupal, Joomla и WordPress, доля которых среди систем управления контентом составляет около 70% и на которых работает четверть крупнейших сайтов в Сети, язык PHP указан как приносящий наибольшие проблемы с безопасностью.

В соответствии с опубликованным отчётом, каждые четыре из пяти приложений на PHP, ASP и ColdFusion не проходят как минимум один из десяти тестов OWASP на безопасность. В частности, при тестировании Veracode в 86% всех приложений на PHP выявлена как минимум одна XSS-уязвимость (Cross-Site Scripting), в 56% — проблемы подстановки SQL-запросов, 61% — возможность подстановки кода, 50% — утечки информации, 73% — проблемы с шифрованием, 58% — проблемы с аутентификацией, 67% — выход за пределы дозволенных директорий. В более современных языках, таких как .NET и Java, данные показатели почти в два раза ниже. Что касается тестов OWASP, то все десть тестов прошли только 19% приложений на PHP (для сравнения все тесты OWASP прошли 60% программ на C/C++).

Рейтинг платформ по числу критических уязвимостей в коде выглядит следующим образом:

  • Classic ASP — 1686 проблем на мегабайт кода (из них критических 1112)
  • 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.09)

0_1449262313.png

©  OpenNet