Nightshade donosi sigurnosnu analizu u Midnightove Compact ugovore

Razvijatelj Dickson Wu testirao je alat otvorenog koda na namjerno ubačenim greškama i na 300 javno dostupnih ugovora.

By SongMarketCap

Midnight News - Nightshade donosi sigurnosnu analizu u Midnightove Compact ugovore

Nightshade je alat za statičku analizu osmišljen kako bi pomogao razvijateljima u pregledavanju pametnih ugovora pisanih u Compactu, programskom jeziku koji se koristi za izgradnju aplikacija na Midnightu.

Alat je Wu predstavio na Midnight Forumu 29. listopada. Provjerava izvorni kod prema 96 pravila i označava obrasce koji mogu zahtijevati detaljniju provjeru. Njegovi nalazi navode relevantan redak koda i uključuju informacije namijenjene pomoći razvijateljima u istraživanju problema.

Nightshade provjerava Compact kod tražeći sigurnosne obrasce

Statička analiza pregledava izvorni kod bez potrebe da se ugovor pokrene. Nightshade koristi taj pristup kako bi tražio obrasce povezane s privatnošću, autorizacijom i drugim dijelovima logike ugovora.

Jedan primjer koji je Wu naveo uključuje privatnu tajnu koja se objavljuje u glavnu knjigu nakon što je iskorištena u provjeri autorizacije. Razvijatelj može namjeravati upotrijebiti tajnu za potvrdu korisnikova dopuštenja uz zadržavanje temeljne vrijednosti privatnom. Objavljivanje nakon toga moglo bi otkriti informacije koje su trebale ostati zaštićene.

Druge provjere traže odbačene rezultate provjere potpisa i slučajeve u kojima se vrijednosti svjedoka tretiraju kao dokaz identiteta. Alat također označava obrasce koji uključuju vrijeme koje dostavlja pozivatelj bez ograničenja temeljenog na vremenu lanca, kao i Merkleove dokaze koji se ne provjeravaju na članstvo.

Za svaki nalaz, Nightshade prema Wuu pruža relevantni redak izvornog koda, putanju koju podaci prolaze i predloženo rješenje. To razvijatelju daje polazišnu točku za ispitivanje kako se vrijednost kreće kroz ugovor i gdje se pojavljuje označeno ponašanje.

Upozorenje samo po sebi ne utvrđuje da je ugovor iskorišten ili da su informacije otkrivene. Slično tomu, dovršena analiza nije jamstvo da je ugovor siguran.

Dickson Wu dijeli rezultate Nightshade testiranja

Wu je procijenio Nightshade na testnim slučajevima koji su sadržavali namjerno ubačene greške. Izvijestio je da je alat otkrio 263 od 266 pozitivnih slučajeva obuhvaćenih evaluacijom.

Razvijatelj je također testirao ispravljene verzije tih slučajeva. Nightshade nije generirao upozorenje za 240 od 242 ispravljenih verzija, dok je za druge dvije izdao nalaze. Rezultati opisuju testne slučajeve korištene u toj evaluaciji i ne utvrđuju stopu detekcije za svaki mogući sigurnosni problem.

Wu je zatim pokrenuo alat nad 300 javnih Compact ugovora iz 144 repozitorija. Izvijestio je da tijekom tog postupka nije bilo padova i naveo 258 ugovora koji su dobili potpunu analizu.

Razlika je važna jer dovršiti skeniranje i ne pronaći probleme predstavljaju odvojene ishode. Prema Wuu, ugovori koji nisu dobili potpunu analizu prijavljeni su kao nepotpuni, a ne tretirani kao čisti.

Razvijatelj je uz alat objavio metodu evaluacije i broj testova, što drugima omogućuje da ispitaju kako su dobiveni prijavljeni rezultati.

[NEWSBREAK]

Izvanmrežna analiza i integracija za razvijatelje

Nightshade se pokreće lokalno i ne zahtijeva internetsku vezu ili Compact prevodilnik za skeniranje izvornog koda, navodi Wu. Alat podržava verzije Compact prevodilnika 0.28 do 0.35.

Razvijatelji mogu pregledavati nalaze kao tekst ili ih izvesti u JSON i SARIF formatima. Dostupan je i GitHub Action za prikaz rezultata tijekom pregleda predloženih izmjena koda, čime se nalazi smještaju u tijek rada koji razvijatelji možda već koriste za pregled nadopuna.

Alat je objavljen pod otvorenom licencom Apache 2.0. Wu je predstavio verziju 0.1.1 i pozvao razvijatelje da podijele povratne informacije, prijave lažno pozitivne rezultate i predlože dodatna pravila.