Programiranje

Git Hound, Truffle Hog odstranijo puščanja GitHub

To je App Dev 101: ne trdno kodirajte žetonov API, šifrirnih ključev in uporabniških poverilnic. Če pa že, jih obvezno odstranite iz kode, preden se prijavite v GitHub ali druga javna skladišča kod.

Pred štirimi leti je GitHub predstavil funkcijo iskanja, ki je olajšala iskanje gesel, šifrirnih ključev in drugih občutljivih informacij v javno dostopnih skladiščih. Težava se ni izboljšala; lani so raziskovalci med projekti GitHub našli 1500 žetonov Slack, ki bi jih drugi lahko zlorabili, da bi dobili dostop do klepetov, datotek in drugih občutljivih podatkov, ki jih delijo zasebne ekipe Slack.

Truffle Hog in Git Hound sta dva primera razpoložljivih orodij, ki skrbnikom in razvijalcem pomagata pri iskanju skrivnih ključev, ki so po naključju ušli skozi njihove projekte na GitHub. Za reševanje iste težave uporabljajo različne pristope, vendar je cilj enak: pomagati skrbnikom, da preprečijo objavljanje kriptografskih skrivnosti na javnih spletnih mestih.

Truffle Hog "bo pregledal celotno zgodovino odobritev vsake veje in preveril vsako razliko od vsake zaveze ter ocenil entropijo shannona tako za nabor znakov base64 kot za šestnajstiški nabor znakov za vsak blob besedila, ki vsebuje več kot 20 znakov. v vsaki različici, "je dejal razvijalec orodja Dylan Ayrey. Shannonova entropija, poimenovana po matematiku Claudeu E. Shannonu, določa naključnost, visoka entropija pa bi nakazovala, da se niz verjetno uporablja za kriptografske skrivnosti, kot sta dostopni žeton ali zasebni ključ. Truffle Hog natisne nizke entropije, ki jih lahko skrbniki točk raziščejo, da ugotovijo, kaj je v datoteki. Napisan v Pythonu, Truffle Hog za zagon potrebuje samo knjižnico GitPython.

Git Hound ima drugačen pristop: uporablja vtičnik Git, napisan v Go, za skeniranje datotek tik pred odobritvijo v GitHub. Vtičnik išče ujemanja z regularnimi izrazi, navedenimi v ločeni datoteki, .githound.yml, in bodisi natisne opozorilo, preden dovoli objavo, bodisi ne uspe in ustavi nadaljevanje predaje. Hound lahko "povoha spremembe od zadnjega urejanja in preide v git-commit, ko je čist," je povedal Ezekiel Gabrielse, razvijalec orodja. Čeprav bi bilo "precej preprosto" nastaviti ček v kljuki pred prevzemom, je Gabrielse dejal, da vtičnik daje večjo prilagodljivost.

Uporaba regularnih izrazov omogoča Git Houndu, da obravnava široko paleto občutljivih informacij, saj lahko seznam vključuje poverilnice, žetone za dostop in celo imena datotek in sistemov. Vtičnik se lahko uporablja za vohanje sprememb od zadnjega urejanja, celotne zbirke kod ali celo celotne zgodovine repozitorija. Ker se .githound.yml ne doda v skladišče GitHub, regularni izrazi ostanejo zasebni.

Čas preverjanja je pomemben, saj Hound povoha kodo, preden se zaveže k GitHubu, tako da to pomembno varnostno preverjanje vnese v potek dela razvijalca. Verjetneje bodo ob pravem času uporabljena varnostna orodja, ki ustrezajo poteku dela razvijalca.

To se ne bi smelo zgoditi, vendar so občutljivi ključi, ki so po naključju objavljeni v javnih skladiščih kod, ker so bili trdo kodirani v programskih projektih, prepogost pojav. Raziskovalci varnosti so v javno dostopnih odlagališčih GitHub našli skoraj 10.000 dostopnih ključev za primere Amazon Web Services in Elastic Compute Cloud, kar je Amazon spodbudilo, da je sprejel prakso rednega pregleda GitHub za takšne ključe in jih preklical, preden jih je mogoče zlorabiti.

Čeprav je čudovito, da se je Amazon lotil te naloge, je verjetno, da bodo ušle številne druge vrste skrivnosti. Truffle Hog in Git Hound omogočata skrbnikom in razvijalcem, da ujamejo napake, preden postanejo drage nesreče.

$config[zx-auto] not found$config[zx-overlay] not found