Git Hound, Truffle Hog изкореняват изтичанията на GitHub

Това е App Dev 101: Не кодирайте твърдо API маркери, ключове за криптиране и идентификационни данни на потребителя. Но ако го направите, не забравяйте да ги извадите от вашия код, преди да се ангажирате с GitHub или други хранилища на публичен код.

Преди четири години GitHub представи функция за търсене, която улесни намирането на пароли, ключове за криптиране и друга чувствителна информация в публично достъпни хранилища. Проблемът не се е подобрил; миналата година изследователите откриха 1500 токена Slack в проекти на GitHub, които биха могли да бъдат злоупотребявани от други, за да получат достъп до чатове, файлове и други чувствителни данни, споделяни в частни екипи на Slack.

Truffle Hog и Git Hound са два примера за налични инструменти, които помагат на администраторите и разработчиците да търсят тайни ключове, случайно изтекли през техните проекти на GitHub. Те използват различни подходи за решаване на един и същ проблем, но целта е една и съща: Помогнете на администраторите да спрат криптографските тайни да бъдат публикувани на публични сайтове.

Truffle Hog "ще премине през цялата история на фиксиране на всеки клон и ще провери всяка разлика от всеки ангажимент и ще оцени ентропията на Шанън както за набора от знаци base64, така и за шестнадесетичния набор от символи за всяка капка текст, по-голям от 20 знака, съставен от тези знаци набори във всяка разлика ", заяви разработчикът на инструмента Дилън Ейри. Ентропията на Шанън, кръстена на математика Клод Е. Шанън, определя случайността и високата ентропия предполага, че низът вероятно се използва за криптографски тайни, като токен за достъп или частен ключ. Truffle Hog отпечатва низове с висока ентропия, които администраторите на точки могат да проучат, за да разберат какво има във файла. Написан на Python, Truffle Hog се нуждае само от библиотеката GitPython, за да стартира.

Git Hound използва различен подход: Използва приставка Git, написана в Go, за да сканира файлове малко преди да се ангажира с GitHub. Приставката търси съвпадения с регулярни изрази, посочени в отделен файл .githound.yml, или отпечатва предупреждение, преди да разреши фиксирането, или не успява и спира фиксирането да продължи. Hound може да „подуши промени от последния фиксиране и да премине към git-commit, когато е чист“, каза Ezekiel Gabrielse, разработчикът на инструмента. Въпреки че би било "доста просто" да настроите проверката в кука за предварително ангажиране, Gabrielse каза, че приставката дава по-голяма гъвкавост.

Използването на регулярни изрази позволява на Git Hound да обработва широк набор от чувствителна информация, тъй като списъкът може да включва идентификационни данни, маркери за достъп и дори имена на файлове и системи. Приставката може да се използва за подхранване на промените от последния фиксиране, цялата кодова база или дори цялата история на хранилището. Тъй като .githound.yml не се добавя към хранилището на GitHub, регулярните изрази остават частни.

Времето на проверката е важно, тъй като Hound подушва кода, преди да се ангажира с GitHub, поставяйки тази важна проверка за сигурност в работния процес на разработчика. Инструментите за сигурност, които се вписват в работния процес на разработчика, е по-вероятно да бъдат използвани в точното време.

Не бива да се случва, но чувствителните ключове, случайно публикувани в хранилищата на публичния код, тъй като са били кодирани в софтуерни проекти, са твърде често явление. Изследователите на сигурността откриха почти 10 000 ключове за достъп до екземпляри на Amazon Web Services и Elastic Compute Cloud в публично достъпни хранилища на GitHub, което накара Amazon да приеме практиката за редовно сканиране на GitHub за такива ключове и отмяната им, преди да могат да бъдат злоупотребявани.

Макар да е страхотно, че Amazon се е заел с тази задача, много други видове тайни са толкова вероятно да изтекат. Truffle Hog и Git Hound позволяват на администраторите и разработчиците да улавят грешките, преди да станат скъпи инциденти.