Programování

Git Hound, kořen Truffle Hog z netěsností GitHub

Je to App Dev 101: Don't hard-code API tokens, encryption keys, and user credentials. Pokud to však uděláte, ujistěte se, že jste je dostali ze svého kódu, než se rozhodnete pro GitHub nebo jiná úložiště veřejného kódu.

Před čtyřmi lety GitHub představil funkci vyhledávání, která usnadňuje hledání hesel, šifrovacích klíčů a dalších citlivých informací ve veřejně dostupných úložištích. Problém se nezlepšil; V loňském roce našli vědci 1 500 žetonů Slack napříč projekty GitHub, které mohli ostatní zneužít k získání přístupu k chatům, souborům a dalším citlivým datům sdíleným v soukromých týmech Slack.

Truffle Hog a Git Hound jsou dva příklady dostupných nástrojů, které pomáhají správcům a vývojářům při hledání tajných klíčů, které náhodně unikly skrze jejich projekty na GitHubu. K řešení stejného problému používají různé přístupy, ale cíl je stejný: Pomozte správcům zastavit zveřejňování kryptografických tajemství na veřejné weby.

Truffle Hog "projde celou historii revizí každé větve a zkontroluje každý rozdíl z každé revize a vyhodnotí shannonskou entropii jak pro sadu znaků base64, tak pro hexadecimální sadu znaků pro každou blob textu větší než 20 znaků složený z těchto znaků sady v každém rozdílu, “řekl vývojář nástroje, Dylan Ayrey. Shannonova entropie, pojmenovaná podle matematika Clauda E. Shannona, určuje náhodnost a vysoká entropie by naznačovala, že se řetězec pravděpodobně používá pro kryptografická tajemství, jako je přístupový token nebo soukromý klíč. Truffle Hog vytiskne řetězce s vysokou entropií, které mohou správci bodů zkoumat, aby zjistili, co je v souboru. Napsaný v Pythonu, Truffle Hog potřebuje ke spuštění pouze knihovnu GitPython.

Git Hound má jiný přístup: Používá plugin Git napsaný v Go pro skenování souborů krátce před potvrzením na GitHub. Plugin hledá shody s regulárními výrazy zadanými v samostatném souboru .githound.yml a před povolením potvrzení vytiskne varování, nebo selže a zastaví pokračování potvrzení. Hound může „čichat změny od posledního spáchání a přejít na git-commit, když je čistý,“ řekl Ezekiel Gabrielse, vývojář nástroje. I když by bylo „docela jednoduché“ nastavit kontrolu v háku před spácháním, Gabrielse řekl, že plugin poskytuje větší flexibilitu.

Používání regulárních výrazů umožňuje Git Houndovi zpracovávat širokou škálu citlivých informací, protože seznam může obsahovat pověření, přístupové tokeny a dokonce i názvy souborů a systémů. Plugin lze použít k čichání změn od posledního potvrzení, celé databáze kódů nebo dokonce celé historie úložiště. Vzhledem k tomu, že soubor .githound.yml není přidán do úložiště GitHub, zůstávají regulární výrazy soukromé.

Načasování kontroly je důležité, protože Hound sniffuje kód před spácháním na GitHub a uvede tuto důležitou kontrolu zabezpečení do pracovního postupu vývojáře. Bezpečnostní nástroje, které zapadají do pracovního postupu vývojáře, budou pravděpodobněji použity ve správný čas.

Nemělo by se to stát, ale citlivé klíče, které byly omylem odeslány do veřejných úložišť kódu, protože byly pevně zakódovány uvnitř softwarových projektů, jsou příliš častým výskytem. Výzkumníci v oblasti zabezpečení našli ve veřejně přístupných úložištích GitHub téměř 10 000 přístupových klíčů pro služby Amazon Web Services a Elastic Compute Cloud, což přimělo společnost Amazon k praxi pravidelného skenování těchto klíčů na GitHubu a jejich odvolání dříve, než je lze zneužít.

I když je skvělé, že se Amazon tohoto úkolu ujal, je pravděpodobné, že k úniku dojde i u mnoha dalších typů tajemství. Truffle Hog a Git Hound umožňují správcům a vývojářům zachytit chyby dříve, než se stanou nákladnými nehodami.

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