GitHub schakelt scannen op secrets standaard in voor alle gebruikers

GitHub gaat 'push protection' automatisch inschakelen voor alle openbare repository's. Daarmee is het mogelijk om repo's vooraf te scannen op de aanwezigheid van 'secrets' of api-sleutels.

GitHub schrijft dat het de functie voortaan standaard inschakelt voor alle gebruikers, ook die zonder betaald abonnement. Als gebruikers een 'git push' naar een repo doen waarin een secret is opgenomen, dan wordt die push geblokkeerd. Behalve om secrets kan het ook gaan om wachtwoorden of api-keys.

'Secret scanning' bestaat al sinds twee jaar op GitHub. Het bedrijf begon toen een pilot, die het vorig jaar uitbreidde naar alle openbare repo's. Nu biedt GitHub de functie niet alleen als optie aan, maar zet het die standaard aan voor alle repo's en voor alle gebruikers, ongeacht of die een betaald abonnement hebben zoals Advanced Security of juist niet.

GitHub gaat proactief naar secrets scannen

Door Tijs Hofmans

Nieuwscoördinator

01-03-2024 • 15:32

16

Submitter: Anonymoussaurus

Reacties (16)

Sorteer op:

Weergave:

Hij zou ook een scan moeten doen bij het aanpassen van een repo van private naar public.
Zou inderdaad wel mooie toevoeging zijn! Maar hoe zit het dan met historisch commits waar die secrets in staan? Die kan je niet zomaar even aanpassen (naja github zou dat misschien wel kunnen doen natuurlijk) of de hele history verwijderen (dus eigenlijk gewoon een nieuwe repo met die andere als beginpunt).

Zijn er überhaupt redenen waarom je die controle in een (private) repository niet zou willen? Lijkt me eigenlijk altijd wenselijk, en dus dat het bij alle repo's (standaard) aan staat, dus ook bij private, maar misschien zie ik wat over het hoofd waarom dat niet handig is...

[Reactie gewijzigd door watercoolertje op 22 juli 2024 22:43]

Al mijn repo's staan op private maar toch zou ik die check best willen op mijn repo's. Die code leeft niet alleen in die repo maar staat ook op andere plekken die misschien wat minder prive zijn.
Ja lijkt mij ook wenselijk, ik zou sowieso niet weten waarom je dat soort zaken in je code wilt hebben. Dat soort dingen hou je (iig in mijn werk) gescheiden in een .env file die je uiteraard nooit in je repo wilt terugzien.
Ben zelf pas begonnen met GitHub maar het eerst wat ik bij een nieuwe repo doe instellen is de gitignore om te zorgen dat de file waar bijvoorbeeld een api key instaat niet te laten syncen.
Maar ik zie dit werk als goede toevoeging voor elke repo of deze nu private of public is
Oh cool, daar was ik nog niet van op de hoogte, thanks!
Betekent alleen niet dat je een in github gelekt secret niet alsnog gewoon moet vervangen. Wat helaas vaak meer werk veroorzaakt.
Ja dit kun je gebruiken om nog even die perfecte commit heatmap op je profiel te krijgen :P
De scan is een goed idee. Naar mijn idee zou de scan op alle repositories moeten. Zowel bij een push als bij dergelijke grotere veranderingen.

Daarnaast zou je zelf het resultaat van de scan moeten zien en daar een reële optie op moeten krijgen wat je daar mee wilt doen. De minimale keuze moet zijn 'stop en draai terug wat ik deed' en 'vooral doorgaan, het is de bedoeling'. Eventueel ook zaken als 'scip deze maar ga voor de rest door'.

Misschien ook tussenvormen zoals 'dit is geen secret' om een false-positive in deze door te geven. Of eventueel de mogelijkheid: 'ja maar dit is de public-key die juist wel beschikbaar moet komen'.

Aan de andere kant: verwijs graag naar alternatieve/betere routes om secrets op te slaan: In een 'vault': Een wachtwoord kluis met de mogelijkheid om daar op de juiste manier de juiste gegevens uit te trekken.
Het gaat hierbij om public repositories. Dus niet private repositories ;)
Er staat toch ook dat het gaat om openbare repo's?

Of doel je bij dat ene stukje op
voor alle repo's
Mja, lijkt mij best logisch aangezien het twee keer eerder vermeld is dat het om openbare gaat.

[Reactie gewijzigd door Anonymoussaurus op 22 juli 2024 22:43]

Dit zinnetje: . Als gebruikers een 'git push' naar een repo doen waarin een secret is opgenomen, dan wordt die push geblokkeerd.

Is verkeerd vertaalt van: "If a secret is detected in any push to a public repository, your push will be blocked." (zie bron)

Het woordje publieke hoort ook in die zin thuis.
Fair, maar denk wel dat het uit de rest van het artikel duidelijk is dat het om publieke repo's gaat.
Ik dacht dat ze dit al standaard deden. In het bericht van vorig jaar ging ik er van uit dat het standaard aan stond...blijkbaar niet.
Nope... op zakelijke accounts en private repo's was dit een vrij dure toevoeging ;)
We gebruiken hier teams (4,- pp/maand, maar voor code-scanning had je dan meteen enterprise nodig, a 21,- per user per maand)

Op dit item kan niet meer gereageerd worden.