Aaron Ballman, kryesiguesi i kompajlerit Clang dhe pjesëtar i skuadrave të zhvillimit të standardeve WG21 (C++) dhe WG14 (C), nisi diskutimin mbi shtimin e një mode sigurie në kompajlerin Clang. Ky mod do të lejojë aktivizimin e një grupi opsionesh për forcimin e mbrojtjes ngjashëm me flamurin e shtuar në GCC 14 "-fhardened", i cili përfshin 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".
Vlen të theksohet 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 tashmë janë të disponueshme opsione të veçanta me implementim të mekanizmave të tjerë të mbrojtjes. Metodat e implementuara të mbrojtjes shpesh shkaktojnë moskoordinime me kodin ekzistues ose shkelje të ABI, që nuk e lejon aktivizimin e tyre si parazgjedhje. Përveç kësaj, këto opsione janë të shpërndara (flamuj për menaxhimin e kompajlimit, flamuj të gjenerimit të instruksioneve makinerike të lidhura me arkitekturën hardware, paralajmërime, moda diagnostike, makros), të dokumentuara dobët dhe shpesh i shpëtojnë vëmendjes së zhvilluesve.
NjĂ« konfigurim i mbledhur do tĂ« unifikojĂ« aktivizimin e opsioneve qĂ« lidhen me sigurinĂ« dhe do tĂ« thjeshtojĂ« aplikimin e tyre. Po shqyrtohen disa mundĂ«si pĂ«r tĂ« aktivizuar modus e forcimit tĂ« sigurisĂ«, pĂ«r shembull, Ă«shtĂ« nĂ« diskutim aktivizimi pĂ«rmes flamurit "-fhardened", grupit tĂ« konfigurimeve "âconfig=hardened", njĂ« drejtues tĂ« veçantĂ« (clang âdriver-mode) ose opsioneve tĂ« ndara "-fhardened, -mhardened dhe -Whardened", tĂ« lidhura me kompajlimin, gjenerimin e kodit dhe daljen e paralajmĂ«rimeve. Modusi mund tĂ« pĂ«rfshijĂ«:
- Aftësitë e kompajlerit: -ftrivial-auto-var-init, -fPIE, -fcf-protection etj.
- Aftësi të lidhura me gjenerimin e kodit për platformat qëllimore: -mspeculative-load-hardening, -mlvi-hardening etj.
- Paralajmërime: -Wall, -Wextra, -Werror=return-type etj.
- Mode të forcimit të sigurisë në bibliotekën standarde të funksioneve.
- Makros: _FORTIFY_SOURCE, _GLIBCXX_ASSERTIONS etj.
- Kërkesë për zgjedhjen e qartë të standardit të gjuhës në përdorim.
- Refuzimi për të kompajluar kodin duke përdorur standardet e vjetra C89 dhe C++98.
- Kalimi i flamujve të tjerë në lidhës, për shembull, për të aktivizuar randomizimin e adresave.
Burimi: opennet.ru
