Nightshade prinaša varnostno analizo v Compact pogodbe na Midnightu

Razvijalec Dickson Wu je preizkusil odprtokodno orodje na namensko vgrajenih hroščih in 300 javno dostopnih pogodbah.

By SongMarketCap

Midnight News - Nightshade prinaša varnostno analizo v Compact pogodbe na Midnightu

Nightshade je orodje za statično analizo, zasnovano za pomoč razvijalcem pri pregledu pametnih pogodb, napisanih v Compactu, programskem jeziku, ki se uporablja za gradnjo aplikacij na Midnightu.

Orodje, ki ga je Wu predstavil 29. oktobra na forumu Midnight, preverja izvorno kodo glede na 96 pravil in označi vzorce, ki morda zahtevajo podrobnejši pregled. Njegove ugotovitve navedejo ustrezno vrstico kode in vključujejo informacije, namenjene pomoči razvijalcem pri preiskavi težave.

Nightshade preverja kodo v Compactu za varnostne vzorce

Statična analiza pregleduje izvorno kodo, ne da bi bilo treba pogodbo zagnati. Nightshade s tem pristopom išče vzorce, povezane z zasebnostjo, avtorizacijo in drugimi deli logike pogodbe.

Eden od primerov, ki jih je izpostavil Wu, vključuje objavo zasebne skrivnosti v verigi blokov potem, ko je bila uporabljena pri preverjanju pooblastil. Razvijalec lahko namerava skrivnost uporabiti za potrditev dovoljenja uporabnika ob tem, da osnovna vrednost ostane zasebna. Njena objava po tem lahko razkrije informacije, ki bi morale ostati zaščitene.

Drugi pregledi iščejo zavržene rezultate preverjanja podpisa in primere, ko se vrednosti prič obravnavajo kot dokaz istovetnosti. Orodje tudi označi vzorce, ki vključujejo čas, ki ga poda klicatelj, brez meje na podlagi časa verige, pa tudi Merkleove dokaze, ki niso preverjeni glede članstva.

Za vsako ugotovitev Nightshade zagotovi ustrezno vrstico izvorne kode, pot, po kateri potujejo podatki, in predlagan popravek, navaja Wu. To razvijalcu daje izhodišče za pregled, kako se vrednost premika skozi pogodbo in kje se pojavi označeno vedenje.

Opozorilo samo po sebi ne potrjuje, da je bila pogodba izkoriščena ali da so bile informacije razkrite. Prav tako zaključena analiza ni jamstvo, da je pogodba varna.

Dickson Wu predstavi rezultate preizkusov Nightshade

Wu je ocenil Nightshade na testnih primerih z namensko vgrajenimi hrošči. Poročal je, da je orodje zaznalo 263 od 266 pozitivnih primerov, zajetih v oceni.

Razvijalec je preizkusil tudi popravljene različice teh primerov. Nightshade ni izdal nobenega opozorila za 240 od 242 popravljenih različic, pri drugih dveh pa je podal ugotovitve. Rezultati opisujejo testne primere, uporabljene v tej oceni, in ne določajo stopnje zaznavanja za vsako možno varnostno težavo.

Wu je nato zagnal orodje na 300 javnih Compact pogodb iz 144 repozitorijev. Med izvajanjem ni poročal o sesutjih in je identificiral 258 pogodb, ki so prejele popolno analizo.

Razlika je pomembna, ker sta zaključeno skeniranje in odsotnost ugotovljenih težav ločena izida. Po Wujevih besedah so bile pogodbe, ki niso prejele popolne analize, označene kot nepopolne in ne obravnavane kot brezhibne.

Razvijalec je objavil metodo ocenjevanja in število testov skupaj z orodjem, kar drugim omogoča pregled, kako so bili pridobljeni navedeni rezultati.

[NEWSBREAK]

Brezpovezavna analiza in vključitev za razvijalce

Nightshade teče lokalno in za pregled izvorne kode ne potrebuje internetne povezave ali prevajalnika za Compact, navaja Wu. Orodje podpira različice prevajalnika za Compact od 0.28 do 0.35.

Razvijalci si lahko ugotovitve ogledajo kot besedilo ali jih izvozijo v formatih JSON in SARIF. Na voljo je tudi GitHub Action za prikaz rezultatov med pregledom predlaganih sprememb kode, ki ugotovitve postavi v tok dela, ki ga razvijalci morda že uporabljajo za pregled posodobitev.

Orodje je izdano pod odprtokodno licenco Apache 2.0. Wu je predstavil različico 0.1.1 in povabil razvijalce, naj delijo povratne informacije, prijavijo lažno pozitivne zadetke in predlagajo dodatna pravila.