Tvorac C++ kritizirao je nametanje sigurnih programskih jezika

Bjarne Stroustrup, tvorac jezika C++, objavio je primjedbe na zaključke izvješća NSA-e, koji preporučuje organizacijama da se odmaknu od programskih jezika poput C i C++, koji prepuštaju upravljanje memorijom programerima, u korist jezika ​​kao što su C#, Go, Java, Ruby, Rust i Swift, koji omogućuju automatsko upravljanje memorijom ili izvode sigurnosne provjere memorije tijekom kompajliranja.

Prema Stroustrupu, sigurni jezici spomenuti u NSA izvješću zapravo nisu superiorniji od C++ u aplikacijama koje su važne s njegove točke gledišta. Konkretno, osnovne preporuke za korištenje C++ (C++ Core Guidelines), razvijene posljednjih godina, pokrivaju sigurne metode programiranja i propisuju korištenje alata koji jamče siguran rad s tipovima i resursima. Ovo ostavlja mogućnost programerima koji ne zahtijevaju tako stroga sigurnosna jamstva da nastave koristiti stare razvojne metode.

Stroustrup vjeruje da dobar statički analizator koji slijedi C++ Core Guidelines može pružiti potrebna jamstva za sigurnost C++ koda po znatno nižoj cijeni od migracije na nove sigurne programske jezike. Na primjer, većina Osnovnih smjernica već je implementirana u statičkom analizatoru i sigurnosnom profilu memorije uključenom u Microsoft Visual Studio. Neke preporuke također su uzete u obzir u Clang urednom statičkom analizatoru.

Izvješće NSA-e također je kritizirano jer se fokusira samo na probleme s memorijom, izostavljajući mnoge druge probleme s programskim jezicima koji utječu na sigurnost i pouzdanost. Stroustrup gleda na sigurnost kao na širi koncept, čiji se različiti aspekti mogu postići kombinacijom stila kodiranja, knjižnica i statičkih analizatora. Za kontrolu uključivanja pravila koja osiguravaju sigurnost rada s tipovima i resursima, predlaže se korištenje napomena u kodu i opcijama prevoditelja.

U aplikacijama u kojima je izvedba važnija od sigurnosti, ovaj pristup omogućuje selektivnu primjenu značajki koje jamče sigurnost samo tamo gdje je potrebna. Sigurnosni alati također se mogu primijeniti na postupan način, kao što je početak s provjerom raspona i pravilima inicijalizacije, a zatim postupnim prilagođavanjem koda strožim zahtjevima.

Izvor: opennet.ru

Dodajte komentar