Разработчики Java и .NET подвержены более частым уязвимостям

Разработчики Java и .NET подвержены более частым уязвимостям

Исходный узел: 1901108

Более трех четвертей приложений, написанных на Java и .NET, имеют как минимум одну уязвимость из рейтинга OWASP Top 10 — списка уязвимостей программного обеспечения, которые разработчики обычно используют в качестве основы для обеспечения безопасности приложений.

По данным компании Veracode, занимающейся тестированием программного обеспечения, которая в ходе анализа почти 760,000 XNUMX приложений обнаружила, что примерно каждое пятое приложение, использующее эти две программные экосистемы, имеет по крайней мере одну уязвимость высокой или критической степени серьезности.

В целом, среднее приложение имело 27%-ный шанс появления по крайней мере одной уязвимости каждый месяц, при этом плохо написанные приложения и редко проверяемые приложения, вероятно, были более уязвимыми, в то время как приложения с более длительной историей процессов безопасности и написанные хорошо обученными Данные показали, что разработчики менее склонны внедрять новые недостатки.

Анализ подчеркивает важность интеграции безопасности в конвейер разработки, говорит Тим ​​Джарретт, вице-президент по стратегическому управлению продуктами в Veracode.

«Данные последовательно показывают, что если вы выработаете привычку к обеспечению безопасности в своем процессе, у вас будет лучший результат, как с точки зрения исправления общих недостатков, так и … вы также замедлите поток поступающих данных, и это имеет большое значение. " он говорит.

Тем временем компании-разработчики программного обеспечения и команды разработчиков продолжают бороться за устранение дефектов и уязвимостей в коде приложений. В то время как разработчики и проекты с открытым исходным кодом более быстрое исправление программных ошибок, период полураспада средней уязвимости по-прежнему измеряется месяцами, а не днями или неделями, согласно отчету Veracode «Состояние безопасности программного обеспечения», опубликованному 11 января. 

Например, в приложениях Java и .NET, на долю которых приходится 71% всех приложений, проанализированных в ходе исследования, половина уязвимостей по-прежнему затрагивала приложения через 243 и 158 дней соответственно.

Период полураспада уязвимостей по языкам программирования

Источник: отчет Veracode «Состояние безопасности программного обеспечения».

Раздувание и возраст приложений оказали значительное негативное влияние на их безопасность. Среднее приложение накапливает примерно на 40% больше кода и с большей вероятностью содержит уязвимости. Около 54% ​​приложений двухлетней давности имеют недостатки, в то время как 69% приложений пятилетней давности имеют недостатки. анализ нашел.

Удивительная безопасность JavaScript

Удивительно, но приложения, написанные на JavaScript или использующие одну из сред JavaScript, как правило, лучше справлялись со сканированием уязвимостей. В то время как около 80% приложений Java и .NET имели уязвимость, только 56% приложений JavaScript. И хотя около 20 % приложений Java и .NET имели уязвимость высокого уровня опасности, менее 10 % приложений JavaScript имели такую ​​уязвимость.

По словам Джаррета, JavaScript-фреймворки новее, имеют более высокий уровень безопасности и обладают преимуществами экосистемы с открытым исходным кодом, от которых Java только относительно недавно выиграла.

«JavaScript — более новый язык, поэтому приложения, написанные на нем, новее, и в предыдущих отчетах мы установили корреляцию между возрастом приложения и временем устранения недостатков», — говорит он. «Многие инструменты для JavaScript [являются] зрелыми, и это хорошо поддерживаемый язык».

Более того, если уязвимость в Java-приложении является первопричиной, оставляя разработчику возможность исправить проблемы, в JavaScript и инфраструктуре Node.js уязвимости часто являются сторонней проблемой, поскольку уязвимость возникла в компоненте. от которых зависит программное обеспечение.

«То, как вы решаете проблему безопасности в приложении Java, по-прежнему в значительной степени состоит в том, [где] вы вносите изменения в файл класса и компилируете его», — говорит он. «Где в приложении JavaScript это больше проблема управления пакетами. И это совсем другая вещь для разработчика, которая может быть проще».

Новые языки программирования увядают

Данные отчета также подчеркивают разницу между языками программирования, которые изучают разработчики, и теми языками, которые фактически используются на большинстве предприятий. Лучшие языки и экосистемы — Java, .NET и JavaScript — которые видит Veracode, — это не технология программирования, выбранная разработчиками.

В то время как фреймворки на основе JavaScript и JS, такие как Node.js, React.js и Angular, доминируют в списках технологий, предпочитаемых разработчиками, Java является одним из наименее популярных языков программирования: 54% респондентов боятся этого языка, по сравнению с с 46%, которым это понравилось, согласно Stack Overflow Опрос разработчиков 2022

Тем не менее, Java доминирует в доле приложений, сканируемых клиентами Veracode (44%), по сравнению с 14% для JavaScript. 

Кроме того, самый любимый язык программирования, Rust, даже не фигурирует в данных Veracode, в то время как на шестое место разработчиков, Python, приходится менее 6% сканируемых приложений.

По словам Джарретта из Veracode, одна из причин разрыва заключается в том, что известные приложения пишутся на известных языках программирования.

«У вас есть полная вселенная всего кода, который там есть, а затем у вас есть своего рода пена на гребне волны новой разработки, и именно там вы видите, как люди выбирают Go, Rust и Dart. и Флаттер, — говорит он.

Из-за агрегированных кодовых баз приложений, написанных на этих языках, эта ситуация, скорее всего, не изменится.

«К сожалению, старые приложения никогда не умирают, поэтому на предприятиях существует много критической массы с этими большими кодовыми базами Java и кодовыми базами .NET», — говорит он.

Отметка времени:

Больше от Темное чтение