Clang avser att lÀgga till ett förstÀrkningslÀge för sÀkerhet.

Aaron Ballman, huvudansvarig kompilator för Clang och deltagare i standardiseringsgrupperna WG21 (C++) och WG14 (C), har inlett diskussioner om att lÀgga till en sÀkerhetsförstÀrkningslÀge i Clang-kompilatorn. Det nya lÀget gör det möjligt att aktivera en uppsÀttning alternativ för att förbÀttra skyddet, liknande det som lagts till i GCC 14 med flaggan "-fhardened", dÀr alternativen "-D_FORTIFY_SOURCE=3 -D_GLIBCXX_ASSERTIONS -ftrivial-auto-var-init=zero -fPIE -pie -Wl,-z,relro,-z,now -fstack-protector-strong -fstack-clash-protection -fcf-protection=full" aktiveras.

Det pÄpekas att det för nÀrvarande pÄgÄr arbete med att lÀgga till sÀkerhetsförstÀrkande funktioner i standarderna C och C++, men denna process Àr inte snabb, eftersom Clang redan erbjuder enskilda alternativ med implementering av ytterligare skyddsmekanismer. De implementerade skyddsmekanismerna leder ofta till separata inkompatibiliteter med befintlig kod eller ABI-brott, vilket hindrar deras aktivering som standard. Dessutom Àr sÄdana alternativ spridda (kompilationsflaggor, signalgenereringsflaggor kopplade till hÄrdvaruarkitekturer, varningsmeddelanden, diagnostiklÀgen, makron), dÄligt dokumenterade och faller ofta ur mÄnga utvecklares synfÀlt.

En enhetlig instĂ€llning förenklar aktiveringen av relaterade sĂ€kerhetsalternativ och gör dem lĂ€ttare att tillĂ€mpa. Flera alternativ för att aktivera sĂ€kerhetsförstĂ€rkningslĂ€get övervĂ€gs, till exempel diskuteras aktivering genom flaggan "-fhardened", instĂ€llningarna "—config=hardened", en separat drivrutin (clang —driver-mode) eller separata alternativ "-fhardened, -mhardened och -Whardened" kopplade till kompilering, kodgenerering och varningsutskrift. LĂ€ge kan omfatta:

  • Kompilatorns funktioner: -ftrivial-auto-var-init, -fPIE, -fcf-protection etc.
  • Funktioner kopplade till kodgenerering för mĂ„larplattformer: -mspeculative-load-hardening, -mlvi-hardening etc.
  • Varningar: -Wall, -Wextra, -Werror=return-type etc.
  • SĂ€kerhetsförstĂ€rkningslĂ€gen i standardbiblioteket för funktioner.
  • Makron: _FORTIFY_SOURCE, _GLIBCXX_ASSERTIONS etc.
  • Krav pĂ„ tydligt val av vilket sprĂ„kstandard som anvĂ€nds.
  • Avslag av att kompilera kod med förĂ„ldrade standarder C89 och C++98.
  • Överföring av ytterligare flaggor till lĂ€nkaren, exempelvis för att inkludera adressrandomisering.

KĂ€lla: opennet.ru

Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster