Błędy z Lodash i JQuery są jednymi z częściej spotykanych problemów bezpieczeństwa.
Projekty z problemami
GitLab, rywal hostowanej przez Microsoft usługi git GitHub, po raz drugi przetestował bezpieczeństwo projekty hostowane w tej usłudze przez klientów ... i najwyraźniej było warto. Pracownicy odpowiedzialni w GitLab za przechowywanie i automatyzację kodu wstępnie przeskanowali hostowany kod pod kątem problemów z bezpieczeństwem jeszcze w kwietniu tego roku. Dopiero co powtórzono to badanie i okazuje się, że nadal można zrobić bardzo wiele aby zmniejszyć luki w oprogramowaniu.
Drugi raport dotyczący trendów bezpieczeństwa pokazuje wręcz wzrost liczby projektów, które korzystają z bibliotek podatnych na ataki.
Zagrożenie leży w bibliotekach?
Wayne Haber, dyrektor techniczny w GitLab, stwierdził:
Odsetek projektów, w których wykryto problemy z używanymi bibliotekami zależnymi, znacznie wzrósł w ciągu ostatniego roku, z 26 procent do 69 procent To potwierdza, że aktualizacja bibliotek zależnych powinna być traktowana priorytetowo biorąc pod uwagę ryzyko, jakie stwarza stosowanie tych bibliotek.
Nawyk tworzenia aplikacji z bibliotekami zależnymi od jeszcze mniejszych bibliotek sprawił, że zarządzanie bezpieczeństwem nowoczesnego oprogramowania jest co najmniej trudne, ponieważ błąd we wspólnej zależności może stać się powszechnym problemem w wielu projektach. To zagrożenie jest szczególnie poważne w ekosystemie Node.js.
Rekordziści
W sierpniu biblioteki z największą liczbą luk (wszystkie rozpowszechniane przez npm
) to:
- Lodash: Object prototype pollution
- Execa: OS command injection
- Mixin-deep: Prototype pollution
- Kind-of: Type checking
- Sockjs: Cross-site scripting
- Ajv: Improper input validation
- Minimist: Improper input validation
- Yargs-parser: Improper input validation
- JQuery: 3rd party CORS request may execute
- Dot-prop: Direct request forced browsing
Zarówno Lodash, jak i JQuery zwykle zajmują wysokie miejsca w raportach bezpieczeństwa jako źródło luk w zabezpieczeniach. Nie pomaga tu fakt, że obie są szeroko używane i przez długi czas nie były aktualizowane.
Podstawowe problemy
Trzy najpopularniejsze błędy programistyczne, które mogą potencjalnie prowadzić do luk w zabezpieczeniach, które można wykorzystać, to według GitLaba:
- CWE-20: Niewłaściwa walidacja danych wejściowych, która umożliwia ataki iniekcyjne.
- CWE-787: Zapis w przewidzianym buforze poza zakresem, który umożliwia zdalne wykonanie kodu.
- CWE-400: Niekontrolowane zużycie zasobów, które umożliwia ataki typu „odmowa usługi”.
Pozytywy
Jest kilka jasnych punktów, gdzie „jasny” oznacza brak pogorszenia lub minimalnej poprawy. Na przykład odsetek projektów wykorzystujących kontenery z lukami w zabezpieczeniach spadł z 52% do 41%. Również odsetek projektów, w których wykryto wady w analizie statycznej, pozostał zasadniczo na stałym poziomie (nieznaczny wzrost z 49% do 52%...).
Jednocześnie rodzaje błędów zidentyfikowanych za pomocą analizy statycznej to błędy, które – jak się wydaje – powinny być rozwiązane dawno temu. Chodzi tu na przykład o hasła ujawnione w adresach URL, niewłaściwe uprawnienia do plików, przewidywalne generowanie liczb pseudolosowych czy brak sprawdzania integralności szyfrowania.
Cóż, rraport GitLab pokazuje, że zawsze będzie praca dla specjalistów od bezpieczeństwa komputerowego.