Programiści Java i .NET narażeni na częstsze luki w zabezpieczeniach

Programiści Java i .NET narażeni na częstsze luki w zabezpieczeniach

Węzeł źródłowy: 1901108

Ponad trzy czwarte aplikacji napisanych w językach Java i .NET ma co najmniej jedną lukę z listy OWASP Top 10, listy słabych punktów oprogramowania, które programiści zazwyczaj wykorzystują jako punkt odniesienia dla bezpieczeństwa aplikacji.

Tak twierdzi firma testująca oprogramowanie Veracode, która w analizie prawie 760,000 XNUMX aplikacji stwierdziła, że ​​około jedna na pięć aplikacji korzystających z tych dwóch ekosystemów programistycznych miała co najmniej jedną lukę o wysokim lub krytycznym znaczeniu.

Ogólnie rzecz biorąc, przeciętna aplikacja miała 27% szans na wprowadzenie co najmniej jednej luki w zabezpieczeniach każdego miesiąca, przy czym aplikacje źle napisane i rzadko skanowane były prawdopodobnie bardziej wadliwe, podczas gdy aplikacje z dłuższą historią procesów bezpieczeństwa i pisane przez dobrze wyszkolonych deweloperzy rzadziej wprowadzają nowe luki, wynika z danych.

Analiza podkreśla znaczenie integracji bezpieczeństwa z procesem rozwoju, mówi Tim Jarrett, wiceprezes ds. strategicznego zarządzania produktami w Veracode.

„Dane konsekwentnie pokazują, że jeśli wbudujesz nawyk bezpieczeństwa w swój proces, uzyskasz lepszy wynik, zarówno pod względem naprawy ogólnych błędów, jak i… " on mówi.

Tymczasem firmy programistyczne i zespoły programistyczne nadal walczą z eliminacją defektów i luk w kodzie aplikacji. Podczas gdy programiści i projekty open source są szybsze naprawianie błędów oprogramowania, zgodnie z raportem Veracode „State of Software Security”, opublikowanym 11 stycznia, okres półtrwania średniej luki w zabezpieczeniach nadal jest mierzony w miesiącach, a nie dniach lub tygodniach. 

Na przykład w aplikacjach Java i .NET, które stanowiły 71% wszystkich aplikacji przeanalizowanych w ramach badania, połowa błędów nadal występowała w aplikacjach odpowiednio po 243 i 158 dniach.

Okres półtrwania luk w zabezpieczeniach według języka programowania

Źródło: raport Veracode „State of Software Security”.

Rozrost i wiek aplikacji miały znaczący negatywny wpływ na ich bezpieczeństwo. Przeciętna aplikacja zgromadziła około 40% więcej kodu i jest bardziej podatna na luki w zabezpieczeniach. Około 54% dwuletnich aplikacji ma wady, podczas gdy 69% pięcioletnich aplikacji ma wady, analiza znaleziona.

Zaskakujące bezpieczeństwo JavaScript

Co zaskakujące, aplikacje napisane w JavaScript lub używające jednego z frameworków JavaScript wypadają lepiej w skanowaniu pod kątem luk w zabezpieczeniach. Podczas gdy około 80% aplikacji Java i .NET miało luki w zabezpieczeniach, tylko 56% aplikacji JavaScript miało taką lukę. I chociaż około 20% aplikacji Java i .NET miało lukę o wysokim stopniu ważności, mniej niż 10% aplikacji JavaScript miało taką lukę.

Ramy JavaScript są nowsze, mają większe bezpieczeństwo i mają zalety ekosystemu open source, z którego Java korzystała stosunkowo niedawno, mówi Jarret.

„JavaScript jest nowszym językiem, więc aplikacje napisane w nim [są] nowsze, a w poprzednich raportach ustaliliśmy korelację między wiekiem aplikacji a czasem usuwania usterek” — mówi. „Wiele narzędzi JavaScript [jest] dojrzałych i jest to dobrze obsługiwany język”.

Co więcej, gdy luka w zabezpieczeniach aplikacji Java jest problemem pierwszej strony — pozostawiając programiście rozwiązanie problemów — w JavaScript i środowisku Node.js luki w zabezpieczeniach są często problemem strony trzeciej, ponieważ luka wystąpiła w komponencie od których zależy oprogramowanie.

„Sposób, w jaki rozwiązujesz problem z bezpieczeństwem w aplikacji Java, nadal polega głównie na wprowadzaniu zmian w pliku klasy i kompilowaniu go” — mówi. „Gdzie w aplikacji JavaScript jest to bardziej problem z zarządzaniem pakietami. A to jest inna rzecz, której programista może się nauczyć, co może być łatwiejsze”.

Nowe języki programowania marnieją

Dane zawarte w raporcie podkreślają również różnicę między językami programowania, których uczą się programiści, a językami faktycznie używanymi w większości przedsiębiorstw. Najpopularniejsze języki i ekosystemy — Java, .NET i JavaScript — widziane przez Veracode nie są technologią wybieraną przez programistów.

Podczas gdy frameworki oparte na JavaScript i JS — takie jak Node.js, React.js i Angular — dominują na listach technologii preferowanych przez programistów, Java jest jednym z najmniej lubianych języków programowania, a 54% respondentów obawia się tego języka, w porównaniu z 46%, którym się podobało, według Stack Overflow's Ankieta dla deweloperów 2022

Jednak Java zdominowała udział aplikacji skanowanych przez klientów Veracode (44%) w porównaniu z 14% w przypadku JavaScript. 

Ponadto najbardziej lubiany język programowania, Rust, nie pojawia się nawet w danych Veracode, podczas gdy programista nr 6, Python, odpowiada za mniej niż 4% przeskanowanych aplikacji.

Częściowym powodem rozłączenia jest to, że znane aplikacje są pisane w uznanych językach programowania, mówi Jarrett z Veracode.

„Masz pełny wszechświat całego kodu, który tam jest, a potem masz rodzaj piany na grzbiecie fali nowego rozwoju, i tam widzisz ludzi zbierających Go, Rust i Dart i Flutter” – mówi.

Ze względu na zagregowane bazy kodów aplikacji napisanych w tych językach sytuacja ta raczej się nie zmieni.

„Stare aplikacje niestety nigdy nie umierają, więc w przedsiębiorstwach z dużymi bazami kodów Java i .NET istnieje duża masa krytyczna” — mówi.

Znak czasu:

Więcej z Mroczne czytanie