Průvodce zabezpečením Github
GitHub je nejrozsáhlejší systém správy kódu na světě, ale je váš kód uložen bezpečně? I když GitHub bere své zabezpečení vážně, existuje několik věcí, které by všichni uživatelé GitHubu měli udělat, aby své projekty ještě více zabezpečili.
Co přesně je zabezpečení GitHubu?
Zabezpečení GitHubu je metodika ochrany vašeho prostředí GitHubu implementací vrstev ochrany na GitHubu i mimo něj. To může zahrnovat vše od auditování kódu až po použití dvoufaktorové autentizace k zabezpečení přihlášení.
Implementace správného zabezpečení GitHubu zajistí, že vaše duševní vlastnictví bude chráněno a že útočníci vloží do vašich projektů škodlivý kód pro pozdější použití. Bohužel povaha online úložiště je atraktivním cílem pro zkušené hackery, což vyvíjí další tlak na vlastníky úložiště GitHub, aby zintenzivnili svou bezpečnostní hru.
Ve výchozím nastavení GitHub implementuje mnoho různých funkcí na ochranu svých uživatelů, jako je identifikace kompromitace účtu na základě umístění přihlášení. Vzhledem ke kolaborativní povaze vývoje aplikací to ponechává velký prostor pro náhodné zavedení chyb zabezpečení. Bezpečnostní postupy GitHubu pomáhají zastavit a zmírnit poškození útoků souvisejících s GitHubem.
Co se stane, když je můj účet GitHub napaden?
Všechny útoky mohou mít různé výsledky v závislosti na cíli útočníka. V mnoha případech si útočníci přejí buď ukrást váš kód, unést přihlašovací údaje vaší aplikace nebo vložit svá zákeřná zadní vrátka do vaší kódové základny.
Nedávnou strategií pro kyberzločince je ukrást kód a smazat všechny commity. Tím zůstane vaše úložiště GitHub v podstatě prázdné. Útočník pak osloví bitcoinovou adresu a požaduje platbu výměnou za váš kód zpět.
Některé útoky mohou být rafinovanější než jiné. Útočníci mohou například pomalu krást kód pomocí kompromitovaného účtu GitHub a implementovat jej do svých nástrojů. V některých případech jsou privilegované přihlašovací údaje odcizeny a použity k rozesílání spamu nebo malwaru z vaší aplikace jejím uživatelům.
V každém případě nic z toho není dobré. Pojďme se tedy podívat na strategie, které můžete použít ke zlepšení zabezpečení GitHubu.
Jak zlepšit zabezpečení GitHubu
Zatímco většina bezpečnostních technik GitHubu zahrnuje změny na samotném GitHubu, některé zahrnují zásady a postupy mimo platformu. Úplná implementace a audit těchto zásad může chvíli trvat, zejména pokud pracujete s větším vývojovým týmem.
Udělejte své přihlašovací údaje GitHub jedinečnými
Mělo by být samozřejmé, že vaše přihlašovací údaje GitHub by měly být jedinečné a neměly by zahrnovat žádnou formu přihlašovacích údajů používaných jinde. Bohužel však mnoho útoků proti účtům GitHub stále využívá přihlašovací údaje k účtu, které jsou ukradeny jinde.
Když jsou webové stránky napadeny, jejich data jsou často vyhazována nebo prodávána online. Poté útočníci používají roboty k prohledávání ukradených uživatelských jmen a hesel a zkoušejí je na jiných webech v naději, že budou mít štěstí.
Použijte jedinečné přihlašovací údaje v kombinaci s dvoufaktorovým ověřením k uzamčení svého účtu.
Mějte místní kopii svého úložiště
Mít více záloh vašeho úložiště je klíčem k obnově po narušení nebo odcizení dat. Například místní záloha kódu vám umožní rychle se zotavit z útoku tím, že vynutíte vaši místní kopii do vašeho úložiště GitHub.
To šetří váš čas tím, že eliminuje potřebu auditovat váš kód a zcela uchovávat projekty, pokud jsou drženy za účelem výkupného. Kromě toho, zatímco můžete použít mnoho nástrojů a technik k porovnání svého místního kódu s kódem GitHub, spuštění místní obnovy je často dostupnější a efektivnější.
Vyvarujte se ukládání hesel jako kódu
Avid ukládá přihlašovací údaje do vašeho úložiště. Může to znít jako samozřejmost, ale významnější projekty mohou často obsahovat citlivé informace, které se dostanou náhodně.
Existuje několik skvělých nástrojů, které můžete použít k automatickému skenování citlivých dat v kódu. Git-tajemství analyzuje vaše potvrzení a kontroluje pověření a další formy citlivých dat. Můžete také auditovat své zprávy pomocí nástrojů, jako je např GitRob , která využívá porovnávání vzorů k identifikaci citlivých informací a rozpoznávání vzorů.
Implementujte ve svém vývojářském týmu přísné zásady a provádějte pravidelné audity vašeho kódu na uživatelská jména, hesla a další citlivé informace před tím, než budou odeslány potvrzení. Silné interní zásady v kombinaci s nástroji jako git-secrets mohou pomoci zlepšit pracovní postup vašich týmů a celkové zabezpečení vašeho prostředí GitHub.
Uzamkněte přístup k vašemu úložišti
Uzamčení přístupu má mnoho různých vrstev a nejlépe se implementuje prostřednictvím zásad a postupů v průběhu času. Můžete mít jedinečnou sadu přihlašovacích údajů pro svůj účet GitHub, ale to není dobré, pokud jsou tyto přihlašovací údaje nalepené na vašem monitoru. Často spěcháme s opravou komplikovaných vektorů útoků, aniž bychom viděli méně visící příležitosti pro útočníky nebo vnitřní zneužití.
Přísné kontroly zabezpečení účtu mohou pomoci zabránit narušení, která začínají uvnitř společnosti. Zařaďte například zrušení přístupu k účtu jako součást procesu ukončení. K účtům GitHub lze stále přistupovat, i když daný uživatel opustí společnost. Vytvoření podobných postupů pro všechny IT systémy je v souladu s osvědčenými postupy.
Účty GitHub by neměly být sdíleny a měly by být obecné, například mít jeden účet pro celý tým QA. Sdílení hesel vede k mnoha problémům, zejména kolem auditu. Sdílené účty vytvářejí slepou skvrnu, kde daný účet nemůže být dostatečně auditován a způsobuje problémy, když je jedna osoba s tímto přístupem k účtu ukončena. Každý účet by navíc měl mít jednoho vlastníka.
Zásady přístupu k hardwaru mohou také pomoci udržet vaše úložiště GitHub zabezpečené. Nařiďte, že jakýkoli hardware, který přistupuje ke zdrojovému kódu společnosti, musí být firemní počítač nebo musí být správně zabezpečen. Tím zajistíte, že malware nemůže ukrást přihlašovací údaje GitHubu ze zařízení zaměstnance.
Notebooky a další tablety lze také snadno ztratit nebo odcizit. Pokud tato zařízení přistupují k vaší kódové základně, ujistěte se, že jsou dostatečně zabezpečena. Povolení nástroje Bitlocker na zařízeních se systémem Windows automaticky zašifruje veškerý obsah v zařízení a poskytne informace, které v případě ztráty zařízení nelze ukrást.
Firemní zařízení lze snáze zabezpečit pomocí skupinových zásad, ověřování Active Directory a vašeho typu zabezpečení koncových bodů. Všechny tyto menší bezpečnostní zásady hrají významnou roli ve vašem celkovém zabezpečení GitHubu.
Ověřte oprávnění ve své aplikaci
Aplikace GitHub mohou rychle a pohodlně přidat další funkce do vašeho úložiště, ale tytéž aplikace mohou způsobit narušení bezpečnosti. Vyhněte se přidávání příliš mnoha zbytečných aplikací do vašeho úložiště a každou instalaci pečlivě prověřte.
Zkontrolujte autory aplikace a jejich důvěryhodnost. Jsou široce používány mezi jinými projekty? Byli ve vesmíru nějakou dobu? Mají na ně nějaké negativní recenze nebo komentáře?
U každé aplikace auditujte přesně, jaká oprávnění vyžadují, a ujistěte se, že nemají více oprávnění, než potřebují. Například nedbalé pluginy a aplikace mohou vyžadovat hromadný přístup, aby fungovaly, ale potřebují pouze úzké oprávnění, aby fungovaly ve skutečnosti.
Jakmile přesně určíte, jaká oprávnění aplikace potřebuje, zvažte, proč tato oprávnění potřebuje. Zkontrolujte, k čemu by tato aplikace mohla přistupovat nebo k čemu by mohla poškodit vzhledem k její úrovni přístupu k vašemu úložišti.
Otočte ověřovací klíče
Přístup k vašemu úložišti lze zabezpečit prostřednictvím osobních přístupových tokenů nebo klíčů SSH. Ale to je všechno marné, pokud jsou tyto žetony ukradeny. Zvažte tedy čas od času výměnu bezpečnostních klíčů, abyste zabránili zneužití odcizených klíčů k neoprávněnému přístupu.
Jiné zásady, jako je vynucení přístupu firemních zařízení na GitHub, mohou také pomoci zabránit krádeži klíčů. I když jsou zavedeny rigidní zásady, je stále nejlepším postupem tyto klíče každých několik měsíců obnovovat.
Používejte správná řešení GitHub
GitHub má několik různých nabídek produktů, které lze použít k uspokojení dalších organizačních a bezpečnostních potřeb. To je běžné u projektů, které musí dodržovat předpisy nebo vládní politiky.
Pokud je zabezpečení hlavní prioritou, GitHub Enterprise nabízí týmům možnost provozovat GitHub výhradně on-premise. To vám dává větší kontrolu nad vaší infrastrukturou a neumisťuje váš kód do hledáčku nebo útočníkům, kteří chtějí kompromitovat GitHub,
GitHub také nyní nabízí neomezená bezplatná soukromá úložiště až se třemi spolupracovníky na úložiště. Soukromá úložiště oddělují veřejné rozvětvení a poskytují vám větší kontrolu nad viditelností vašeho projektu.
Sbírejte protokoly GitHub
Protokoly GitHubu jsou zásobárnou bezpečnostních informací, které mohou telegrafovat, že dochází ke škodlivé činnosti. Pokud vaše protokolování není povoleno, zvažte jeho zapnutí a implementaci plánu sledování jeho obsahu.
Větší organizace mohou implementovat řešení SIEM, jako je SolarWinds Security Event Manager, aby automaticky skenovaly a identifikovaly náznaky kompromitace. Tyto nástroje lze také nakonfigurovat tak, aby spouštěly automatické výstrahy a kroky k nápravě, když je objevena hrozba, což z nich činí vysoce škálovatelné řešení zabezpečení.
Zahrnuje soubor SECURITY.md do vašeho úložiště
Soubor SECURITY.md je jako dokumenty readme, ale pro popis bezpečnostních postupů. Tento soubor je skvělý pro malé i velké projekty a pomáhá uživatelům pochopit, jak by měli postupovat s aktualizacemi a obecnými bezpečnostními postupy.
Informace o bezpečnostních odhaleních jsou často zahrnuty v dokumentaci a poskytují jasné a stručné informace o tom, jak mohou být zranitelná místa a chyby odhaleny a na koho by se měli obrátit. To pomáhá zajistit, aby správci projektu získali správné informace o svých rolích.
Součástí jsou také informace o zabezpečení související s konfigurací, které pomohou ostatním přizpůsobit váš projekt jejich jedinečnému prostředí. Výchozí a navrhovaná nastavení jsou často popsána v této části souboru a doporučené postupy zabezpečení pro aplikaci.
Zásady aktualizací zabezpečení v souboru pomáhají uživatelům pochopit, jak jim předáváte informace, pokud je zjištěna chyba zabezpečení. To je důležité zejména u populárních projektů, kde by chyba mohla ovlivnit tisíce uživatelů, kteří spoléhají na vaši aplikaci. Nejlepší je aktualizovat uživatele, jakmile zjistíte, že byla chyba objevena, a přesně nastínit, jak od vás mohou získat nejnovější opravy.
Auditujte své konfigurace Git/GitHub
Nesprávná konfigurace může být buď náhodná, nebo záměrná, v závislosti na povaze hrozby. Zvažte audit vašich konfigurací GitHubu, abyste zajistili, že sdílená aktiva a uživatelské účty mají správná oprávnění. Kromě toho lze k monitorování vašeho prostředí Git použít nástroje pro automatické monitorování konfigurace. Mnoho z těchto nástrojů využívá integrace SNMP ke sběru dat a monitorování různých prostředí.
Využijte skenování kódu v reálném čase
Nemusíte čekat, až bude váš kód dokončen, abyste v něm mohli prohledat zranitelnosti nebo úniky dat. Nástroje jako CodeQL mohou shromažďovat informace, když je kód vkládán do úložiště a kontrolován před každým odesláním.
Engine CodeQL funguje tak, že analyzuje datové toky přes aplikaci, aby našel zranitelnosti. To pomáhá odhalit chyby, jako jsou injekce SQL, vzdálené spouštění kódu a útoky skriptování mezi weby.
Hledejte tajemství
Tajné skenování je součástí pokročilého zabezpečení GitHub a funguje tak, aby automaticky detekovalo známá tajemství. Funguje tak, že automaticky skenuje úložiště, která jsou tlačena k získání přihlašovacích údajů nebo jiných citlivých informací. Pokud jsou nalezena tajemství, je poskytovatel tajemství informován. To jim umožňuje ověřit neznámé a poté zrušit nebo obnovit přístup.
Povolte bezpečnostní upozornění pro kritická aktiva
Pro závislosti a další oblasti vašeho účtu GitHub můžete povolit bezpečnostní upozornění pro vaše úložiště. To je výhodné pro všechna úložiště, ale je to užitečné zejména pro větší projekty, kde by zranitelnost nebo výpadek závislosti mohl způsobit značné prostoje.
Výstrahy zabezpečení také využívají Národní databázi zranitelností (NVD), která poskytuje neustálý zdroj aktuálních informací o zranitelnosti, které porovnávají váš projekt s nejnovějšími známými zranitelnostmi a hrozbami.
Provádějte pravidelné audity kódu/bezpečnosti
Před importem jakýchkoli projektů nebo velkých částí kódu do GitHubu zvažte důkladný audit kódu. I když to u menších projektů nemusí být nutné, větší úložiště by měla před přidáním nových kódů auditovat.
Závěr
Zajistit takové prostředí pro spolupráci, jako je GitHub, může být obtížné, ale se správnými postupy a myšlením to může být jako druhá přirozenost. Věnujte proto čas především začlenění těchto osvědčených postupů do zásad a postupů, které musí váš tým dodržovat.
Postupem času se tak vytvoří kultura zabezpečení a nejlepší bezpečnostní postupy GitHubu se zapracují přímo do jádra vašeho procesu vývoje aplikací.