Google avaldas GWPSan, tööriista rakenduste tÀitmise ajal tekkivate vigade tuvastamiseks

Google avaldas GWPSan tööriista allikakoode, mis on mĂ”eldud vigade avastamiseks rakenduste kĂ€itamise etapis, mis on loodud x86-64 ja ARM64 arhitektuuride jaoks. GWPSan on koostatud jagatud raamatukoguna, mis sidus kĂ€itamise ajal LD_PRELOAD abil ja kasutab programmi töö analĂŒĂŒsimiseks Linuxi tuumas saadaolevaid peatumismehhanisme (PERF_TYPE_BREAKPOINT) ja protsesside proovivĂ”tmist. Kood on kirjutatud C++ keeles ja levitatakse Apache 2.0 litsentsi alusel.

GWPSan on korraldatud modulaarsena raamistikuna, mis toetab moodulite lisamist erinevate veaklasside detektorite elluviimiseks. GWPSan viib lĂ€bi dĂŒnaamilise analĂŒĂŒsi, mis aktiveeritakse signaalide töötlejate kaudu, mis vĂ”imaldab ilma rakenduskoodi muutmiseta hakkama saada. Enamikule detektoritest on vajalik rakenduse kogumine teatud kompileerimislippudega, mis lisavad vajalikud metaandmed. NĂ”utav on vĂ€hemalt Clang 18 ja Linuxi tuum 6.4.

Praegu on saadaval kolm detektorit:

  • UAR (Use-after-return) — tuvastab vead, mis on pĂ”hjustatud objekti kasutamisest virnas pĂ€rast funktsioonist vĂ€ljumist, mille jooksul see objekt defineeriti. Kaitse on organiseeritud funktsiooni sisenemise ja vĂ€ljumise punktide vahelesegamise kaudu — sisenemise korral asendatakse virn koopiaga, mida kasutatakse funktsiooni kĂ€itamise ajal, ja vĂ€ljumisel taastatakse vana virna olek.
  • TSan (Thread Sanitizer) — tuvastab juurdepÀÀsuvĂ”istlusi (Data-race) erinevate samal ajal kĂ€ivitatud lĂ”imede vahel, mis tekivad, kui erinevad lĂ”imed saavad lugeda vĂ”i muuta ĂŒhiseid mĂ€luala, kasutamata samal ajal sĂŒnkroonimise primitiive. Kaitse pĂ”hineb riistvaraliste peatumispunktide kasutamisel, mis on seotud jagatud mĂ€lualadega. Aktiveeritud töödeldaja peatab lĂŒhikeseks ajaks lĂ”ime tĂ€itmise mĂ€lu juurde pÀÀsemisel ja selle peatamise ajal kontrollib, kas teise lĂ”ime jaoks on toimunud peatumispunkti aktiveerumine.
  • LMSan (Lightweight Memory Sanitizer) — tuvastab mittealgatatud andmete kasutamise mĂ€lus. Detektsioon on mĂ€rgitud kui eksperimentaalne ja seda ei soovitata kasutada.

GWPSan analĂŒĂŒsib programmi kĂ€ivitatavat koodi, kasutades DynamoRIO raamistikku masinkoodi dekodeerimiseks abstraktseteks ISA kĂ€skudeks, mida seejĂ€rel tĂ€idetakse emuleerimise abil. Perioodiliste signaalide kaudu taimerist kutsutakse vĂ€lja ĂŒhtne töötleja, mis iga kord, kui see kĂ€ivitatakse, tĂ€idab kindla osa kĂ€ske analĂŒĂŒsitavas voos. Kui teatud kĂ€su tĂ€itmise kĂ€igus tuvastatakse probleem, kĂ€ivitatakse konkreetne probleemide tuvastaja, nĂ€iteks mĂ€lu juurde pÀÀsevate kĂ€skude puhul kĂ€ivitatakse vĂ”istluse seisundite tuvastaja.

Allikas: opennet.ru

Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster