Skaparen av C++-språket kritiserade en NSA-rapport om säkra programmeringsspråk

bjarne stroustrup

Bjarne Stroustrup svarar på NSA:s rekommendation och motsäger C++ klassificering

Bjarne Stroustrup, skaparen av C++-språket, gjorde invändningar mot resultaten av NSA-rapporten, som rekommenderade organisationer att gå bort från att använda programmeringsspråk som C och C++, som flyttar minneshantering till utvecklaren, till förmån för språk som C#, Go, Java, Ruby, Rust och Swift som tillhandahåller minneshantering automatiskt eller utföra minnessäkerhetskontroller vid kompilering.

Enligt Stroustrup, de säkra språken som nämns i NSA-rapporten är inte riktigt överlägsna C++ i viktiga tillämpningar ur din synvinkel.

NSA råder organisationer att överväga att göra en strategisk förändring av de programmeringsspråk de använder. ger lite eller inget inneboende minnesskydd, som C/C++, till ett minnessäkert språk
när det är möjligt

I synnerhet hanDe grundläggande C++-riktlinjernasom har utvecklats under de senaste åren, täcka metoder för säker programmering och föreskriva användning av verktyg som säkerställer säkert arbete med typer och resurser. Utvecklare som inte kräver så starka säkerhetsgarantier kan dock fortsätta använda äldre utvecklingsmetoder.

Stroustrup anser att en bra statisk analysator som överensstämmer med C++ Core Guidelines kan tillhandahålla nödvändiga säkerhetsgarantier för C++-kod till en mycket lägre kostnad än att byta till nya säkra programmeringsspråk.

Till exempel är de flesta av Core Guidelines redan implementerade i Microsoft Visual Studio Static Analyzer och Memory-Safe Profile. Vissa av rekommendationerna beaktas också i Clang tidy static analysator.

NSA-rapporten kritiserades också för att bara fokusera på minnesproblem., vilket lämnar många andra programmeringsspråksproblem som påverkar säkerhet och tillförlitlighet oåtgärdade.

Tyvärr har mycket av C++-användningen också fastnat i det avlägsna förflutna, och ignorerar förbättringar, inklusive sätt att drastiskt förbättra säkerheten. Om jag nu skulle betrakta något av dessa "säkra" språk som är överlägset C++ för de användningsområden jag är intresserad av, skulle jag inte betrakta bortfallet av C/C++ som en dålig sak, men så är inte fallet .

Bjarne Stroustrup håller inte med om att NSA-publikationen begränsar idén om att skydda programvara till att skydda minnet. Egentligen är denna aspekt en gemensam nämnare för alla publikationer som rekommenderar att man dumpar C eller C++ till förmån för språket Rust för säkerhetsgarantierna för programvaran som flera stora företag (Microsoft, Amazon, etc.) känner igen det.

"Det finns ingen enskild definition av "säkerhet", och vi kan uppnå en mängd olika säkerhetstyper genom en kombination av programmeringsstilar, stödbibliotek och utnyttjande av statisk analys, säger han. Bjarne Stroustrup menar alltså att vad som kan erhållas från C++ vad gäller mjukvarusäkerhet beror bland annat på utvecklaren och i synnerhet på kunskapen om de verktyg som språket erbjuder, dennes behärskning av kompilatorn osv.

Stroustrup ser säkerhet som ett bredare koncept, vars olika aspekter kan uppnås genom en kombination av kodningsstil, bibliotek och statiska analysatorer. För att kontrollera införandet av regler som säkerställer säkerheten vid arbete med typer och resurser, föreslås det att använda kodkommentarer och kompilatoralternativ.

I applikationer där prestanda är viktigare än säkerhet tillåter detta tillvägagångssätt selektiv användning av verktyg som säkerställer säkerhet endast där det behövs. Säkerhetsförbättringsverktyg kan också delvis tillämpas, som att först begränsa intervallkontrollen och initieringsreglerna, och sedan gradvis anpassa koden till strängare krav.

Slutligen, om du är intresserad av att kunna lära dig mer om publiceringen av skaparen av C++, kan du konsultera detaljerna i följande länk.


Lämna din kommentar

Din e-postadress kommer inte att publiceras. Obligatoriska fält är markerade med *

*

*

  1. Ansvarig för data: AB Internet Networks 2008 SL
  2. Syftet med uppgifterna: Kontrollera skräppost, kommentarhantering.
  3. Legitimering: Ditt samtycke
  4. Kommunikation av uppgifterna: Uppgifterna kommer inte att kommuniceras till tredje part förutom enligt laglig skyldighet.
  5. Datalagring: databas värd för Occentus Networks (EU)
  6. Rättigheter: När som helst kan du begränsa, återställa och radera din information.