Google avaldas GWPSan, tööriista rakenduste kÀitamise ajal vigu tuvastamiseks

Google on avaldanud GWPSan tööriista lĂ€htekoodid, mis on mĂ”eldud rakenduste tĂ€itmise ajal vigade tuvastamiseks, mis on koostatud architektuuridele x86-64 ja ARM64. GWPSan koosneb jagatavast raamatukogust, mis sidub rakenduse kĂ€ivitamise ajal LD_PRELOAD abil ning kasutab programmi töö analĂŒĂŒsimiseks Linuxi tuumasolevaid stopimis- ja protsesside proovimise mehhanisme (PERF_TYPE_BREAKPOINT). Kood on kirjutatud C++ keeles ning levitatakse Apache 2.0 litsentsi alusel.

GWPSan on kujundatud moodulraamistikuks, mis toetab erinevate veaklasside detektorite moodulite ĂŒhendamist. GWPSan viib lĂ€bi dĂŒnaamilist analĂŒĂŒsi, mis aktiveeritakse signaalihaldurite kaudu, mis vĂ”imaldab rakenduskoodi muutmist vĂ€ltida. Enamik detektoreid vajab rakenduse koostamist teatud kompilaatori lipudega, mis lisavad vajalikud metaandmed. Vajalik on vĂ€hemalt Clang 18 ja Linuxi sĂŒdamik 6.4.

Praegu on saadaval kolm detektorit:

  • UAR (After-return usage) — tuvastab vead, mis on pĂ”hjustatud objekti kasutamisest virnas pĂ€rast funktsioonist vĂ€ljumist, kus see objekt mÀÀrati. Kaitse toimub funktsiooni sisendi ja vĂ€ljundi punktide interceptide kaudu — sisse minnes asendatakse virn koopiaga, et seda funktsiooni tĂ€itmise ajal kasutada, ja vĂ€ljudes nareturnitakse vana virna seisund.
  • TSan (Thread Sanitizer) — tuvastab lĂ”ngade vahelisi vĂ”istlusi (data-race), mis tekivad, kui erinevad samaaegselt töötavad lĂ”ngad saavad lugeda vĂ”i muuta jagatud mĂ€lu piirkondi, kasutamata seejuures sĂŒnkroniseerimise primitiive. Kaitse pĂ”hineb riistvaraliste peatamispunktide kasutamisel, mis on seotud jagatud mĂ€lupiirkondadega. Kui peatamispunkt aktiveerub, peatab kĂ€ivituv töötleja lĂŒhikeseks ajaks lĂ”nga tĂ€itmise mĂ€lule juurdepÀÀsu hetkel ja kontrollib, kas teise lĂ”nga peatamispunkt on aktiveeritud.
  • LMSan (Lightweight Memory Sanitizer) — tuvastab mittealgatatud andmete kasutamise mĂ€lus. Detektor on mĂ€rgitud kui eksperimentaalne ja mitte soovitatav kasutada.

GWPSan analĂŒĂŒsib programmi tĂ€itmiscode'i, kasutades DynamoRIO raamistikku masinkoodi dekodeerimiseks abstraktseteks ISA juhisteks, mida seejĂ€rel tĂ€idetakse emulatsiooni abil. Ajavahemiku signaalide kaudu kutsutakse vĂ€lja ĂŒhtne töötleja, mis iga kutsungiga tĂ€idab teatud osa analĂŒĂŒsitavast voost. Teatud juhiste tĂ€itmise ajal, avastades probleeme, kĂ€ivitub juhistele spetsiifiline probleemide detektor, nĂ€iteks mĂ€luaadressidega tegelevate juhiste puhul kĂ€ivitub seisu konkurentsi detektor.

Allikas: opennet.ru

Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster