Twórca języka C++ skrytykował raport NSA dotyczący bezpiecznych języków programowania

Bjarne Stroustrup

Bjarne Stroustrup odpowiada na zalecenie NSA i zaprzecza klasyfikacji C++

Bjarne Stroustrup, twórca języka C++, zgłosił zastrzeżenia do ustaleń raportu NSA, który zalecił organizacjom odejście od używania języków programowania, takich jak C i C++, które przenoszą zarządzanie pamięcią na programistę, na rzecz języków takich jak C#, Go, Java, Ruby, Rust i Swift, które zapewniają automatyczne zarządzanie pamięcią lub przeprowadzać kontrole bezpieczeństwa pamięci w czasie kompilacji.

Według Stroustrupa, bezpieczne języki wymienione w raporcie NSA tak naprawdę nie są lepsze od C++ w ważnych aplikacjach z Twojego punktu widzenia.

NSA radzi organizacjom rozważenie strategicznej zmiany używanych przez nie języków programowania. zapewniają niewielką lub żadną wewnętrzną ochronę pamięci, taką jak C/C++, językowi bezpiecznemu dla pamięci
kiedy jest to możliwe

W szczególności onPodstawowe wytyczne C++, które zostały opracowane w ostatnich latach, obejmują metody bezpiecznego programowania oraz zalecić stosowanie narzędzi zapewniających bezpieczną pracę z typami i zasobami. Jednak programiści, którzy nie wymagają tak silnych gwarancji bezpieczeństwa, mogą nadal korzystać ze starszych metod programowania.

Stroustrup uważa, że ​​dobry analizator statyczny który jest zgodny z podstawowymi wytycznymi C++ może zapewnić niezbędne gwarancje bezpieczeństwa dla kodu C++ znacznie niższym kosztem niż przejście na nowe bezpieczne języki programowania.

Na przykład większość podstawowych wytycznych jest już zaimplementowana w programie Microsoft Visual Studio Static Analyzer i profilu Memory-Safe. Niektóre z zaleceń są również brane pod uwagę w analizatorze statycznym Clang tidy.

Raport NSA był również krytykowany za skupienie się wyłącznie na problemach z pamięcią., pozostawiając nierozwiązanych wiele innych problemów związanych z językiem programowania, które wpływają na bezpieczeństwo i niezawodność.

Niestety, większość zastosowań C++ również utknęła w odległej przeszłości, ignorując ulepszenia, w tym sposoby drastycznej poprawy bezpieczeństwa. Teraz, gdybym miał uznać którykolwiek z tych „bezpiecznych” języków za lepszy od C++ w zakresie zastosowań, którymi jestem zainteresowany, nie uważałbym upadku C/C++ za złą rzecz, ale tak nie jest .

Bjarne Stroustrup nie zgadza się, że publikacja NSA ogranicza pojęcie ochrony oprogramowania do ochrony pamięci. Właściwie ten aspekt jest wspólnym mianownikiem wszystkich publikacji, które zalecają porzucenie C lub C++ na rzecz języka Rust ze względu na gwarancje bezpieczeństwa oprogramowania, które uznaje kilka dużych firm (Microsoft, Amazon itp.).

„Nie ma jednej definicji bezpieczeństwa, a dzięki połączeniu stylów programowania, bibliotek pomocniczych i wykorzystaniu analizy statycznej możemy osiągnąć różne rodzaje zabezpieczeń” — mówi. Bjarne Stroustrup sugeruje zatem, że to, co można uzyskać z C++ w zakresie bezpieczeństwa oprogramowania, zależy między innymi od programisty, a w szczególności od znajomości narzędzi, które oferuje język, jego opanowania kompilatora itp.

Stroustrup postrzega bezpieczeństwo jako szerszą koncepcję, której różne aspekty można osiągnąć poprzez połączenie stylu kodowania, bibliotek i analizatorów statycznych. Aby kontrolować włączanie reguł zapewniających bezpieczeństwo pracy z typami i zasobami, proponuje się wykorzystanie adnotacji do kodu i opcji kompilatora.

W aplikacjach, w których wydajność jest ważniejsza niż bezpieczeństwo, takie podejście pozwala na selektywne stosowanie narzędzi zapewniających bezpieczeństwo tylko tam, gdzie jest ono potrzebne. Można również częściowo zastosować narzędzia zwiększające bezpieczeństwo, takie jak najpierw ograniczenie sprawdzania zakresu i reguł inicjalizacji, a następnie stopniowe dostosowywanie kodu do bardziej rygorystycznych wymagań.

Wreszcie, jeśli chcesz dowiedzieć się więcej o publikacji twórcy C++, możesz zapoznać się ze szczegółami w następujący link.


Zostaw swój komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

*

*

  1. Odpowiedzialny za dane: AB Internet Networks 2008 SL
  2. Cel danych: kontrola spamu, zarządzanie komentarzami.
  3. Legitymacja: Twoja zgoda
  4. Przekazywanie danych: Dane nie będą przekazywane stronom trzecim, z wyjątkiem obowiązku prawnego.
  5. Przechowywanie danych: baza danych hostowana przez Occentus Networks (UE)
  6. Prawa: w dowolnym momencie możesz ograniczyć, odzyskać i usunąć swoje dane.