Konfigurace pokročilého zabezpečení GitHubu pro GitHub a Azure DevOps
GitHub Advanced Security je sada funkcí zabezpečení a možností nabízených GitHubem, které organizacím pomáhají identifikovat a zmírnit ohrožení zabezpečení, zabezpečit kód a chránit svůj dodavatelský řetězec softwaru. Skládá se z následujících klíčových komponent:
- Kontrola kódu automaticky prohledá kód v úložištích kvůli ohrožením zabezpečení a chybám kódování pomocí technik statické analýzy, které poskytuje CodeQL nebo nástroje třetích stran. Identifikuje potenciální ohrožení zabezpečení, včetně těch, které souvisejí s zastaralými závislostmi a slabými šiframi.
- Kontrola tajných kódů detekuje a pomáhá napravit přítomnost tajných kódů, jako jsou tokeny rozhraní API a kryptografické klíče v úložištích a potvrzeních. Automaticky prohledá obsah úložišť a vygeneruje výstrahy na základě jeho zjišťování.
- Kontroly závislostí pomáhají identifikovat a spravovat závislosti v softwarových projektech na základě přímých a tranzitivních závislostí načtených z manifestů balíčků a dalších konfiguračních souborů. Umožňují vyhodnotit úplný dopad změn na závislosti, včetně podrobností o všech ohrožených verzích před sloučením žádosti o přijetí změn.
- Vlastní pravidla automatického třídění pomáhají spravovat upozornění Dependabot ve velkém měřítku. Pomocí vlastních pravidel automatického třídění určujete, které výstrahy je možné ignorovat a které vyžadují použití aktualizace zabezpečení.
- Informační zpravodaje zabezpečení poskytují kurátorované informační zpravodaje zabezpečení a výstrahy týkající se ohrožení zabezpečení zjištěných v opensourcových závislostech.
GitHub Advanced Security se nativně integruje s GitHubem i Azure DevOps.
GitHubu
GitHub zpřístupňuje funkce Advanced Security v privátních úložištích na základě licencování Advanced Security. Po zakoupení licencí GitHub Advanced Security pro vaši organizaci můžete tyto funkce povolit a zakázat na úrovni organizace nebo úložiště. Tyto funkce jsou také trvale povoleny ve veřejných úložištích na GitHub.com bez jakýchkoli licenčních požadavků a je možné je zakázat pouze v případě, že změníte viditelnost projektu.
Pokud chcete nakonfigurovat GitHub Advanced Security pro vaši organizaci, vyberte v pravém horním rohu GitHub.com ikonu profilu a pak vyberte Vaše organizace. Dále vyberte Nastavení a v části Zabezpečení bočního panelu vyberte Zabezpečení a analýzu kódu. Zobrazí se stránka, která umožňuje povolit nebo zakázat všechny funkce zabezpečení a analýzy úložišť ve vaší organizaci.
Dopad změn konfigurace je určený viditelností úložišť ve vaší organizaci:
- Vytváření sestav privátních ohrožení zabezpečení – pouze veřejná úložiště.
- Graf závislostí – pouze privátní úložiště, protože funkce je vždy povolená pro veřejná úložiště.
- Upozornění Dependabotu – všechna úložiště
- Aktualizace zabezpečení Dependabot – všechna úložiště
- GitHub Advanced Security – pouze privátní úložiště, protože GitHub Advanced Security a související funkce jsou vždy povolené pro veřejná úložiště.
- Kontrola tajných kódů – veřejná a privátní úložiště, kde je povolené GitHub Advanced Security. Tato možnost určuje, jestli jsou povolená upozornění kontroly tajných kódů pro uživatele.
- Kontrola kódu – veřejná a privátní úložiště, kde je povolené GitHub Advanced Security.
Můžete také spravovat funkce zabezpečení a analýzy jednotlivých privátních úložišť. Uděláte to tak, že v GitHub.com přejdete na hlavní stránku úložiště a vyberete Nastavení. V části Zabezpečení bočního panelu vyberte Zabezpečení a analýzu kódu. V podokně Zabezpečení a analýza kódu zakažte nebo povolte jednotlivé funkce. Ovládací prvek pro GitHub Advanced Security je zakázaný, pokud váš podnik nenakoupil požadované licence.
Všimněte si, že pokud zakážete GitHub Advanced Security, kontrolu závislostí, upozornění kontroly tajných kódů pro uživatele a kontrolu kódu jsou účinně zakázány. V důsledku toho všechny pracovní postupy, které zahrnují kontrolu kódu, selžou.
Po povolení jsou funkce zabezpečení integrované přímo do platformy GitHub a poskytují nepřetržité monitorování zabezpečení a výstrahy přímo v rozhraní GitHubu. Správci úložiště a vývojáři můžou přistupovat k přehledům zabezpečení, doporučením a akčním krokům, aby vyřešili zjištěná ohrožení zabezpečení a posílili celkový stav zabezpečení svých softwarových projektů. Kromě toho můžou organizace přizpůsobit zásady zabezpečení, nakonfigurovat automatizované pracovní postupy a integrovat GitHub Advanced Security s dalšími nástroji a službami zabezpečení, aby splňovaly konkrétní požadavky na zabezpečení a požadavky na dodržování předpisů.
Azure DevOps
GitHub Advanced Security pro Azure DevOps cílí na Azure Repos a zahrnuje:
- Kontrola nabízené ochrany pro kontrolu tajných kódů, pokud vložení kódu zahrnuje potvrzení, která zpřístupňují tajné kódy.
- Úložiště Pro kontrolu tajných kódů prohledává úložiště pro vyhledávání vystavených tajných kódů.
- Kontrola závislostí identifikuje přímá a přenosná ohrožení zabezpečení v opensourcových závislostech.
- Kontrola kódu používá statickou analýzu CodeQL k identifikaci ohrožení zabezpečení aplikace na úrovni kódu, jako je injektáž SQL a obejití ověřování.
Pokročilé zabezpečení je možné zapnout na úrovni organizace, projektu nebo úložiště. Tím se automaticky povolí ochrana před nabízenými oznámeními pro kontrolu tajných kódů a prohledávání úložiště. Všechny budoucí nabízení obsahující tajné kódy se automaticky zablokují, zatímco kontrola tajných kódů běží na pozadí.
Kontrola závislostí je nástroj pro kontrolu na základě kanálu. Výsledky se agregují na každé úložiště. Doporučujeme přidat úlohu kontroly závislostí do všech kanálů, které chcete zkontrolovat. Pro nejpřesnější výsledky kontroly nezapomeňte přidat úlohu kontroly závislostí podle kroků sestavení kanálu, který sestaví kód, který chcete zkontrolovat. Úlohu Advanced Security Dependency Scan (AdvancedSecurity-Dependency-Scanning@1) můžete přidat přímo do souboru kanálu YAML nebo ji vybrat z pomocníka pro úlohy.
Skenování kódu je také nástroj pro kontrolu na základě kanálu, kde se výsledky agregují na úložiště. Obvykle se jedná o časově náročnou úlohu sestavení, proto zvažte přidání úlohy kontroly kódu do samostatného naklonovaného kanálu hlavního produkčního kanálu nebo vytvoření nového kanálu. V kanálu přidejte úlohy v následujícím pořadí:
- Advanced Security Initialize CodeQL (AdvancedSecurity-Codeql-Init@1)
- Vlastní kroky sestavení
- Advanced Security Perform CodeQL Analysis (AdvancedSecurity-Codeql-Analyze@1)
Kromě toho budete muset pomocí úlohy Advanced Security Initialize CodeQL zahrnout čárkami oddělený seznam jazyků, které analyzujete. Mezi podporované jazyky patří csharp, cpp, go, java, JavaScript, python, ruby a swift.