Vad är kodgenomsökning?
Kodgenomsökning använder CodeQL för att analysera koden på en GitHub-lagringsplats för att hitta säkerhetsrisker och kodfel. Kodgenomsökning är tillgängligt för alla offentliga lagringsplatser och för privata lagringsplatser som ägs av organisationer där GitHub Advanced Security är aktiverat. Om kodgenomsökning hittar en potentiell säkerhetsrisk eller ett fel i koden visar GitHub en avisering på lagringsplatsens fliken Säkerhet. När du har åtgärdat koden som utlöste aviseringen stänger GitHub aviseringen.
Du kan använda kodgenomsökning för att hitta, sortera och prioritera korrigeringar för befintliga problem i koden. Kodgenomsökning hindrar också utvecklare från att införa nya problem. Du kan schemalägga genomsökningar för vissa dagar och tider, eller utlösa genomsökningar när en specifik händelse inträffar på lagringsplatsen, till exempel en push-överföring.
I den här lektionen får du lära dig mer om CodeQL, de tre alternativen för att konfigurera kodgenomsökning och hur du lägger till CodeQL-arbetsflödet på lagringsplatsen.
Om kodgenomsökning med CodeQL
CodeQL är den kodanalysmotor som GitHub har utvecklat för att automatisera säkerhetskontroller. Du kan analysera koden med Hjälp av CodeQL och visa resultatet som aviseringar om kodgenomsökning. Det finns tre huvudsakliga sätt att konfigurera CodeQL-analys för kodgenomsökning:
- Använd standardkonfigurationen för att snabbt konfigurera CodeQL-analys för kodgenomsökning på lagringsplatsen. Standardinställningen hanterar val av språk att analysera, frågepaket som ska köras och händelser som utlöser genomsökningar med alternativet att manuellt konfigurera språk och frågesviter. Det här installationsalternativet kör kodgenomsökning som en GitHub-åtgärd.
- Använd avancerad konfiguration för att lägga till CodeQL-arbetsflödet direkt till lagringsplatsen. Om du lägger till CodeQL-arbetsflödet direkt i lagringsplatsen genereras en anpassningsbar arbetsflödesfil som använder github/codeql-action för att köra CodeQL CLI som en GitHub-åtgärd.
- Kör CodeQL CLI direkt i ett externt CI-system och ladda upp resultatet till GitHub.
CodeQL behandlar kod som data, så att du kan hitta potentiella säkerhetsrisker i koden med större förtroende än traditionella statiska analysverktyg. Du genererar en CodeQL-databas som representerar din kodbas och kör sedan CodeQL-frågor på databasen för att identifiera problem i kodbasen. Frågeresultatet visas som kodgenomsökningsaviseringar i GitHub när du använder CodeQL med kodgenomsökning.
CodeQL stöder både kompilerade och tolkade språk och kan hitta sårbarheter och fel i kod som skrivits på följande språk som stöds:
- C eller C++
- C#
- Sätt igång
- Java/Kotlin
- JavaScript/TypeScript
- python
- Rubin
- Snabb
I nästa avsnitt beskrivs hur du lägger till CodeQL-arbetsflödet på lagringsplatsen. Du får lära dig hur du konfigurerar CodeQL med hjälp av externa verktyg i enheten Aktivera kodgenomsökning med verktyg från tredje part .
Aktivera CodeQL på lagringsplatsen med standardkonfigurationen
Om du har skrivbehörighet till en lagringsplats kan du konfigurera kodgenomsökning för lagringsplatsen.
Följ dessa steg för att konfigurera kodgenomsökning med hjälp av CodeQL GitHub Actions-arbetsflödet:
På GitHub.com navigerar du till lagringsplatsens huvudsida.
Under namnet på lagringsplatsen väljer du Säkerhet.
Välj Konfigurera kodgenomsökning. Om det här alternativet inte är tillgängligt ber du en organisationsägare eller lagringsplatsadministratör att aktivera GitHub Advanced Security.
I listrutan Konfigurera väljer du Standard.
Granska standardalternativen. Om det behövs väljer du knappen Redigera i det nedre vänstra hörnet i det nya fönstret för att anpassa hur CodeQL körs.
Utlösare
on:pull_requestochon:pushär standard för kodgenomsökning är användbara för olika syften. Du får lära dig mer om dessa utlösare i enheten Konfigurera kodgenomsökning .Välj Aktivera CodeQL när du är redo att aktivera kodgenomsökning.
I standardarbetsflödet för CodeQL-analys konfigureras kodgenomsökning för att analysera koden varje gång du antingen skickar en ändring till skyddade grenar eller skapar en pull-begäran mot standardgrenen. När push-överföringen har gjorts körs kodgenomsökningen automatiskt.
I föregående avsnitt aktiverade vi kodgenomsökning med standardinställningen, som kör kodgenomsökningar som en GitHub-åtgärd utan att behöva underhålla en arbetsflödesfil. Det andra alternativet är Avancerad installation, som genererar den standardarbetsflödesfil som du kan redigera för avancerad konfiguration och fler steg. Vi går igenom hur du använder den avancerade konfigurationen för att konfigurera kodgenomsökning i en senare lektion.
Om du kör kodgenomsökning med GitHub Actions påverkas dina månatliga faktureringsminuter. Om du vill använda GitHub Actions utöver lagringen eller minuterna som ingår i ditt konto debiteras du för mer användning.
Om fakturering för åtgärder
Kodgenomsökning använder GitHub Actions, och varje körning av ett arbetsflöde för kodgenomsökning förbrukar minuter för GitHub Actions. GitHub Actions-användning är kostnadsfri för både offentliga lagringsplatser och lokalt installerade löpare. För privata lagringsplatser får varje GitHub-konto ett visst antal kostnadsfria minuter och lagringsutrymme, beroende på vilken produkt som används med kontot. Utgiftsgränser styr all användning utöver de inkluderade beloppen. Om du är en månatlig fakturerad kund har ditt konto en standardkostnadsgräns på noll US-dollar (USD), vilket förhindrar extra användning av minuter eller lagring för privata lagringsplatser utöver de belopp som ingår i ditt konto. Om du betalar ditt konto med faktura har ditt konto en obegränsad standardgräns för utgifter. Minuter återställs varje månad, medan lagringsanvändningen inte gör det.