Ohjelmointi

Git Hound, Truffle Hog poistaa GitHub vuotaa

Se on App Dev 101: Älä koodaa API-tunnuksia, salausavaimia ja käyttäjän kirjautumistietoja. Mutta jos teet niin, muista poistaa ne koodistasi ennen sitoutumista GitHubiin tai muihin julkisiin koodivarastoihin.

Neljä vuotta sitten GitHub esitteli hakuominaisuuden, joka helpotti salasanojen, salausavainten ja muun arkaluontoisen tiedon löytämistä julkisesti saatavilla olevista arkistoista. Ongelma ei ole parantunut; Viime vuonna tutkijat löysivät 1500 Slack-tunnusta GitHub-projekteista, joita muut olisivat voineet käyttää väärin saadakseen pääsyn chatteihin, tiedostoihin ja muihin arkaluontoisiin tietoihin, jotka jaettiin yksityisissä Slack-tiimeissä.

Truffle Hog ja Git Hound ovat kaksi esimerkkiä käytettävissä olevista työkaluista, jotka auttavat järjestelmänvalvojia ja kehittäjiä etsimään vahingossa vuotaneita salaisia ​​avaimia GitHubissa. He käyttävät eri tapoja ratkaista sama ongelma, mutta tavoite on sama: Auta järjestelmänvalvojia estämään salaussalaisuuksien lähettäminen julkisille sivustoille.

Truffle Hog "käy läpi jokaisen haaran koko sitoutumishistorian ja tarkistaa jokaisen suorituksen jokaisen erotuksen ja arvioi Shannon-entropian sekä base64-merkistöille että heksadesimaalimerkkisarjoille jokaiselle merkistä koostuvalle yli 20 merkin suuruiselle tekstimerkille. sarjaa kussakin erotuksessa ", kertoi työkalun kehittäjä Dylan Ayrey. Shannonin entropia, joka on nimetty matemaatikko Claude E.Shannonin mukaan, määrittää satunnaisuuden, ja korkea entropia viittaa siihen, että merkkijono on todennäköisesti käytössä salaussalaisuuksissa, kuten pääsykoodi tai yksityinen avain. Truffle Hog tulostaa korkean entropian merkkijonot, joita järjestelmänvalvojat voivat tutkia saadakseen selville, mitä tiedostossa on. Pythonissa kirjoitettu Truffle Hog tarvitsee vain GitPython-kirjaston toimiakseen.

Git Hound käyttää erilaista lähestymistapaa: Se käyttää Go-laajennusta, joka on kirjoitettu Go-tiedostoon, skannaamaan tiedostoja vähän ennen sitoutumista GitHubiin. Laajennus etsii vastaavuuksia erillisessä tiedostossa (.githound.yml) määriteltyjen säännöllisten lausekkeiden kanssa ja joko tulostaa varoituksen ennen sitoumuksen antamista tai epäonnistuu ja estää sitoumuksen jatkamisen. Hound voi "haistaa muutoksia viimeisimmän sitoutumisen jälkeen ja siirtää git-sitoutumaan puhtaana", sanoi työkalun kehittäjä Ezekiel Gabrielse. Vaikka olisi "melko yksinkertaista" asettaa tarkistus ennalta sitoutuneeseen koukkuun, Gabrielse sanoi, että laajennus antaa enemmän joustavuutta.

Säännöllisten lausekkeiden käyttö antaa Git Houndille mahdollisuuden käsitellä monenlaisia ​​arkaluontoisia tietoja, koska luettelo voi sisältää tunnistetiedot, käyttöoikeustunnukset ja jopa tiedostojen ja järjestelmien nimet. Laajennuksella voidaan haistaa muutoksia viimeisimmän sitoutumisen, koko koodipohjan tai jopa koko arkistohistorian jälkeen. Koska .githound.yml-tiedostoa ei lisätä GitHub-arkistoon, regexps pysyvät yksityisinä.

Tarkastuksen ajoitus on tärkeä, koska Hound haistaa koodin ennen sitoutumistaan ​​GitHubiin ja laittaa tämän tärkeän tietoturvatarkistuksen kehittäjän työnkulkuun. Kehittäjän työnkulkuun sopivia suojaustyökaluja käytetään todennäköisemmin oikeaan aikaan.

Sen ei pitäisi tapahtua, mutta arkaluontoiset avaimet lähetetään vahingossa julkisiin koodivarastoihin, koska ne on koodattu ohjelmistoprojektien sisällä, liian usein. Turvallisuustutkijat löysivät lähes 10 000 pääsyavainta Amazon Web Services- ja Elastic Compute Cloud -instansseille julkisesti saatavilla olevien GitHub-arkistojen sisällä, mikä sai Amazonin käyttämään käytäntöä, jonka mukaan GitHub tarkistaa säännöllisesti tällaiset avaimet ja peruuttaa ne ennen kuin niitä voidaan käyttää väärin.

Vaikka on hienoa, että Amazon on ottanut tämän tehtävän, monet muut salaisuudet todennäköisesti vuotavat. Truffle Hog ja Git Hound antavat järjestelmänvalvojien ja kehittäjien tarttua virheisiin ennen kuin niistä tulee kalliita onnettomuuksia.

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