Rząd USA sugeruje, aby programiści zaniechali programowania w językach C lub C++ na rzecz „języków programowania bezpiecznych dla pamięci”, co stanowi część strategii cyberbezpieczeństwa prezydenta Bidena.
Bezpieczeństwo pamięci odnosi się do zapobiegania błędom i lukom związanym z dostępem do pamięci, takim jak przepełnienia bufora czy wiszące wskaźniki. Java, dzięki kontroli wykrywania błędów w czasie wykonywania, jest uważana za język bezpieczny dla pamięci. Jednak zarówno C, jak i C++ pozwalają na dowolną arytmetykę wskaźników z bezpośrednimi adresami pamięci i bez sprawdzania granic. W 2019 roku inżynierowie bezpieczeństwa z Microsoftu zgłosili, że około 70% luk w zabezpieczeniach wynika z problemów z bezpieczeństwem pamięci. Podobną liczbę podał Google w 2020 roku, odnosząc się do błędów wykrytych w przeglądarce Chromium.
Ostrzeżenie to ma na celu „zabezpieczenie elementów tworzących cyberprzestrzeń” - podkreśla raport Biura Krajowego Dyrektora ds. Cyberbezpieczeństwa.
Nadrzędnym celem 19-stronicowego raportu jest rozłożenie odpowiedzialności za cyberbezpieczeństwo na szersze podmioty, takie jak duże organizacje, firmy technologiczne i rząd, zamiast skupiać się wyłącznie na jednostkach czy małych firmach.
Raport wskazuje na języki programowania, które uznaje za "niebezpieczne", w szczególności C i C++. Nie ma tutaj intencji dyskusji nad zaletami i wadami poszczególnych języków, jednak interesującym aspektem jest fakt, że raport nie proponuje konkretnego języka zastępczego. Zamiast tego podkreśla istnienie "dziesiątek języków programowania bezpiecznych dla pamięci, które mogą - i powinny - być wykorzystywane".
„Eksperci zidentyfikowali kilka języków programowania, którym brakuje cech związanych z bezpieczeństwem pamięci, a także charakteryzują się dużym stopniem rozprzestrzeniania się w krytycznych systemach, takich jak C i C++”. „Wybranie od samego początku używania języków programowania bezpiecznych dla pamięci, zgodnie z zaleceniami Agencji ds. Cyberbezpieczeństwa i Bezpieczeństwa Infrastruktury (CISA) Planu działania dotyczącego bezpieczeństwa oprogramowania typu open source, jest jednym z przykładów tworzenia oprogramowania w sposób bezpieczny już na etapie projektowania”.
ONCD apeluje do firm i inżynierów o przyjęcie najlepszych praktyk w zakresie bezpiecznego programowania i tworzenia sprzętu, aby zredukować potencjalne zagrożenia ze strony cyberataków. Chociaż sam raport nie zawiera szczegółowych informacji na temat języków programowania bezpiecznych dla pamięci, Agencja Bezpieczeństwa Narodowego (NSA) w listopadzie 2022 r. opublikowała arkusz informacyjny, w którym wskazuje na języki uznane za bezpieczne w kontekście pamięci.
Rząd USA proponuje następujące języki:
- Rust
- Go
- C#
- Java
- Swift
- JavaScript
- Ruby
Spośród opcji preferowanych przez NSA C# znajduje się na piątej pozycji w indeksie TIOBE, Java na czwartej, JavaScript na szóstej, a Go na ósmej. Na końcu znajdują sie Swift na 16 pozycji, Rust na 18 lat i Ruby na 20 miejscu. Tak więc języki wybrane przez NSA znajdują się w pierwszej dwudziestce, ale tylko cztery z siedmiu są „popularne” wśród programistów.
Pokaż / Dodaj komentarze do: Rząd apeluje do programistów. Porzućcie języki C i C++