Programmēšana

Git Hound, Truffle Hog izskauž GitHub noplūdes

Tas ir App Dev 101: nevajag kodēt API marķierus, šifrēšanas atslēgas un lietotāja akreditācijas datus. Bet, ja jūs to darāt, pārliecinieties, ka tos izņemat no sava koda, pirms veicat saistības ar GitHub vai citiem publiskiem kodu krātuvēm.

Pirms četriem gadiem GitHub ieviesa meklēšanas funkciju, kas ļāva viegli atrast paroles, šifrēšanas atslēgas un citu sensitīvu informāciju publiski pieejamos krātuvēs. Problēma nav uzlabojusies; pagājušajā gadā pētnieki GitHub projektos atrada 1500 Slack žetonus, kurus citi varēja ļaunprātīgi izmantot, lai piekļūtu tērzēšanai, failiem un citiem sensitīviem datiem, kas koplietoti privātajās Slack komandās.

Truffle Hog un Git Hound ir divi pieejamo rīku piemēri, kas administratoriem un izstrādātājiem palīdz meklēt slepenas atslēgas, kas nejauši noplūdušas viņu projektos GitHub. Viņi izmanto dažādas pieejas, lai atrisinātu vienu un to pašu problēmu, taču mērķis ir viens: Palīdziet administratoriem pārtraukt kriptogrāfisko noslēpumu ievietošanu publiskās vietnēs.

Trifeļu cūka "izies cauri katras filiāles visu saistību vēsturei un pārbaudīs katru diferenci no katra apņemšanās, kā arī novērtēs Šenona entropiju gan base64 rakstzīmju kopai, gan heksadecimālo rakstzīmju kopai katram teksta lāsei, kas sastāv no 20 rakstzīmēm un sastāv no šīm rakstzīmēm. komplekti katrā diff, "sacīja rīka izstrādātājs Dilans Arija. Šenonas entropija, kas nosaukta matemātiķa Kloda E. Šenona vārdā, nosaka nejaušību, un augsta entropija liecina, ka virkne, visticamāk, tiek izmantota kriptogrāfiskiem noslēpumiem, piemēram, piekļuves tokenam vai privātajai atslēgai. Truffle Hog izdrukā virknes ar augstu entropiju, kuras administratori var izpētīt, lai uzzinātu, kas atrodas failā. Rakstīts Python, Truffle Hog darbināšanai ir nepieciešama tikai GitPython bibliotēka.

Git Hound izmanto atšķirīgu pieeju: tas izmanto Git spraudni, kas rakstīts Go, lai skenētu failus neilgi pirms saistību ar GitHub. Spraudnis meklē atbilstību regulārajām izteiksmēm, kas norādītas atsevišķā failā .githound.yml, un vai nu izdrukā brīdinājumu pirms atļaujas veikt saistības, vai arī neizdodas un pārtrauc saistības turpināt. Hound var "šņaukt izmaiņas kopš pēdējās apņemšanās un pāriet uz git-saistību, kad tas ir tīrs", sacīja Ezekiel Gabrielse, rīka izstrādātājs. Lai gan pārbaudi iepriekš saistīt ar āķi būtu "diezgan vienkārši", Gabriels teica, ka spraudnis dod lielāku elastību.

Regulāru izteiksmju izmantošana ļauj Git Hound apstrādāt plašu sensitīvas informācijas klāstu, jo sarakstā var iekļaut akreditācijas datus, piekļuves žetonus un pat failu un sistēmu nosaukumus. Spraudni var izmantot, lai šņāktu izmaiņas kopš pēdējās saistības, visas koda bāzes vai pat visas repozitorija vēstures. Tā kā .githound.yml netiek pievienots GitHub krātuvei, regexps paliek privāti.

Pārbaudes laiks ir svarīgs, jo Hound pirms apņemšanās GitHub šņauc kodu, ieliekot šo svarīgo drošības pārbaudi izstrādātāja darbplūsmā. Drošības rīkus, kas iekļaujas izstrādātāja darbplūsmā, visticamāk izmantos īstajā laikā.

Tam nevajadzētu notikt, taču sensitīvas atslēgas nejauši tiek ievietotas publisko kodu krātuvēs, jo programmatūras projektos tās bija grūti kodētas, tas ir pārāk bieži. Drošības pētnieki publiski pieejamos GitHub krātuvēs atrada gandrīz 10 000 piekļuves atslēgu Amazon Web Services un Elastic Compute Cloud gadījumiem, mudinot Amazon pieņemt praksi regulāri meklēt GitHub šādus taustiņus un atsaukt tos, pirms tos var izmantot ļaunprātīgi.

Lai gan ir lieliski, ka Amazon ir uzņēmusies šo uzdevumu, daudzi citi noslēpumu veidi, iespējams, noplūdīs. Truffle Hog un Git Hound ļauj administratoriem un izstrādātājiem pieļaut kļūdas, pirms tās kļūst par dārgām avārijām.

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