Në Clang kanë për qëllim të shtojnë një mod të forcës së përforcuar

Aaron Ballman, kryetari i mbështetjes së kompilatorit Clang dhe anëtar i grupeve të zhvillimit të standardeve WG21 (C++) dhe WG14 (C), filloi një diskutim për shtimin e një mode sigurie në kompilatorin Clang. Ky mod do të lejojë aktivizimin e një grupi opsionesh për forcimin e mbrojtjes, në përputhje me flamurin "-fhardened" të shtuar në GCC 14, që aktivizon opsionet "-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".

Shënohet se aktualisht po punohet për shtimin e mundësive për forcimin e sigurisë në standardet C dhe C++, por ky proces nuk është i shpejtë, duke pasur parasysh se në Clang janë tashmë të disponueshme opsione të veçanta me implementim të mekanizmave të tjerë të mbrojtjes. Metodat e implementuara të mbrojtjes shpesh çojnë në një shkallë të veçantë të papajtueshmërisë me kodin ekzistues ose shkelje të ABI-së, që e bën të pamundur aktivizimin e tyre si parazgjedhje. Për më tepër, opsionet e tilla janë të ndara (flamuj për menaxhimin e kompajtimit, flamuj për gjenerimin e instruksioneve makinerike që lidhen me arkitekturën harduerike, paralajmërime, regjime diagnostikimi, makros), të dokumentuara keq dhe shpesh iu shpëtojnë vëmendjes së shumë zhvilluesve.

NjĂ« konfigurim i vetĂ«m unifikon aktivizimin e opsioneve qĂ« lidhen me sigurinĂ« dhe e lehtĂ«son pĂ«rdorimin e tyre. Po shqyrtohen disa mundĂ«si pĂ«r aktivizimin e modit tĂ« forcimit tĂ« sigurisĂ«, pĂ«r shembull, po diskutohet aktivizimi pĂ«rmes flamurit "-fhardened", njĂ« grup konfigurimesh "—config=hardened", njĂ« drejtues i veçantĂ« (clang —driver-mode) ose opsione tĂ« ndara "-fhardened, -mhardened dhe -Whardened", tĂ« lidhura me kompaktimin, gjenerimin e kodit dhe raportimin e paralajmĂ«rimeve. ReĆŸimi mund tĂ« pĂ«rfshijĂ«:

  • MundĂ«sitĂ« e kompilatorit: -ftrivial-auto-var-init, -fPIE, -fcf-protection etj.
  • MundĂ«sitĂ« qĂ« lidhen me gjenerimin e kodit pĂ«r platformat target: -mspeculative-load-hardening, -mlvi-hardening etj.
  • ParalajmĂ«rime: -Wall, -Wextra, -Werror=return-type etj.
  • ReĆŸim tĂ« forcimit tĂ« sigurisĂ« nĂ« bibliotekĂ«n standarde tĂ« funksioneve.
  • Makros: _FORTIFY_SOURCE, _GLIBCXX_ASSERTIONS etj.
  • KĂ«rkesa pĂ«r zgjedhjen e qartĂ« tĂ« standardit tĂ« gjuhĂ«s sĂ« pĂ«rdorur.
  • Refuzimi pĂ«r tĂ« kompajluar kodin qĂ« pĂ«rdor standardet e vjetra C89 dhe C++98.
  • ShkĂ«mbimi i flamujve tĂ« tjerĂ« pĂ«r lidhĂ«sin, pĂ«r shembull, pĂ«r tĂ« aktivizuar rastĂ«simin e adresave.

Burimi: opennet.ru

Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster