Tvorac C++ kritikovao je nametanje sigurnih programskih jezika

Bjarne Stroustrup, tvorac jezika C++, objavio je primjedbe na zaključke izvještaja NSA, koji preporučuje da se organizacije odmaknu od programskih jezika kao što su C i C++, koji upravljanje memorijom prepuštaju programerima, u korist jezika. kao što su C#, Go, Java, Ruby, Rust i Swift, koji pružaju automatsko upravljanje memorijom ili vrše sigurnosne provjere memorije u vrijeme kompajliranja.

Prema Stroustrupu, sigurni jezici koji se spominju u izvještaju NSA zapravo nisu superiorniji od C++ u aplikacijama koje su važne s njegove tačke gledišta. Konkretno, osnovne preporuke za korišćenje C++ (C++ Core Guidelines), razvijene poslednjih godina, pokrivaju sigurne metode programiranja i propisuju upotrebu alata koji garantuju siguran rad sa tipovima i resursima. Ovo ostavlja mogućnost programerima koji ne zahtijevaju tako stroge sigurnosne garancije da nastave koristiti stare razvojne metode.

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

NSA izvještaj je također kritikovan zbog fokusiranja samo na probleme s memorijom, izostavljajući mnoge druge probleme programskog jezika koji utiču na sigurnost i pouzdanost. Stroustrup vidi sigurnost kao širi koncept, čiji se različiti aspekti mogu postići kombinacijom stila kodiranja, biblioteka 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 kompajlera.

U aplikacijama u kojima su performanse važnije od sigurnosti, ovaj pristup omogućava selektivnu primjenu funkcija koje garantuju sigurnost samo tamo gdje je to potrebno. Sigurnosni alati se također mogu primijeniti na parcijalni način, kao što je početak provjere opsega i pravila inicijalizacije, a zatim postupno prilagođavanje koda strožim zahtjevima.

izvor: opennet.ru

Dodajte komentar