Programovanie

Git Hound, hľuzovka Hog vykoreniť úniky GitHubu

Je to App Dev 101: Nekódujte tokeny rozhrania API, šifrovacie kľúče a prihlasovacie údaje používateľa pevne. Ak to však urobíte, uistite sa, že ste ich dostali zo svojho kódu skôr, ako sa prihlásite do GitHubu alebo iných verejných archívov kódu.

Pred štyrmi rokmi predstavil GitHub funkciu vyhľadávania, ktorá uľahčila hľadanie hesiel, šifrovacích kľúčov a ďalších citlivých informácií vo verejne dostupných úložiskách. Problém sa nezlepšil; minulý rok vedci našli 1 500 tokenov Slack v projektoch GitHub, ktoré mohli ostatní zneužiť na získanie prístupu k chatom, súborom a ďalším citlivým údajom zdieľaným v súkromných tímoch Slack.

Truffle Hog a Git Hound sú dva príklady dostupných nástrojov, ktoré pomáhajú správcom a vývojárom pri hľadaní tajných kľúčov, ktoré náhodne unikli cez ich projekty na GitHub. Pri riešení rovnakého problému používajú rôzne prístupy, ale cieľ je rovnaký: Pomôcť správcom zabrániť zverejneniu kryptografických tajomstiev na verejné stránky.

Truffle Hog "prejde celou históriou odovzdania každej vetvy a skontroluje každý rozdiel od každého potvrdenia a vyhodnotí shannonovu entropiu pre znakovú sadu base64 aj pre hexadecimálnu znakovú sadu pre každú blob textu, ktorý obsahuje viac ako 20 znakov množiny v každom rozdiele, “uviedol vývojár nástroja Dylan Ayrey. Shannonova entropia, pomenovaná po matematikovi Claude E. Shannonovi, určuje náhodnosť a vysoká entropia by naznačovala, že sa reťazec pravdepodobne používa na kryptografické tajomstvá, ako je prístupový token alebo súkromný kľúč. Truffle Hog vytlačí reťazce s vysokou entropiou, ktoré môžu správcovia bodov preskúmať a zistiť, čo je v súbore. Truffle Hog, napísaný v jazyku Python, potrebuje na spustenie iba knižnicu GitPython.

Git Hound má iný prístup: Využíva Git plugin napísaný v Go na skenovanie súborov krátko pred nasadením na GitHub. Plugin vyhľadáva zhody s regulárnymi výrazmi zadanými v samostatnom súbore .githound.yml a pred povolením potvrdenia vytlačí varovanie alebo zlyhá a zastaví pokračovanie potvrdenia. Hound dokáže „pričuchnúť k zmenám od posledného spáchania a prejsť na git-commit, keď je čistý,“ uviedol vývojár nástroja Ezekiel Gabrielse. Aj keď by bolo „celkom jednoduché“ nastaviť kontrolu v háku pred spáchaním, Gabrielse uviedol, že plugin poskytuje väčšiu flexibilitu.

Používanie regulárnych výrazov umožňuje Git Houndovi spracovávať širokú škálu citlivých informácií, pretože zoznam môže obsahovať poverenia, prístupové tokeny a dokonca aj názvy súborov a systémov. Plugin je možné použiť na pričuchnutie k zmenám od posledného potvrdenia, celej kódovej základne alebo dokonca celej histórie úložiska. Pretože súbor .githound.yml sa nepridáva do úložiska GitHub, zostávajú regexpy súkromné.

Načasovanie kontroly je dôležité, pretože Hound pred pripojením k GitHubu sniffuje kód a uvedie túto dôležitú bezpečnostnú kontrolu do pracovného postupu vývojára. Bezpečnostné nástroje, ktoré zapadajú do pracovného toku vývojára, sa pravdepodobne použijú v pravý čas.

Nemalo by sa to stávať, ale citlivé kľúče, ktoré sa omylom dostanú do úložiska verejných kódov, pretože boli pevne zakódované vo vnútri softvérových projektov, sú príliš častým javom. Vedci v oblasti zabezpečenia našli vo verejne prístupných úložiskách GitHub takmer 10 000 prístupových kľúčov pre inštancie Amazon Web Services a Elastic Compute Cloud, čo spoločnosť Amazon zaviedlo do praxe pravidelného skenovania týchto kľúčov v GitHube a ich odvolania skôr, ako by mohli byť zneužité.

Aj keď je skvelé, že sa spoločnosť Amazon zhostila tejto úlohy, je pravdepodobné, že k úniku dôjde aj u mnohých ďalších typov tajomstiev. Truffle Hog a Git Hound umožňujú správcom a vývojárom zachytiť chyby skôr, ako sa stanú nákladnými nehodami.

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