Hvad er kodescanning?
Kodescanning bruger CodeQL til at analysere koden i et GitHub-lager for at finde sikkerhedsrisici og kodningsfejl. Kodescanning er tilgængelig for alle offentlige lagre og for private lagre, der ejes af organisationer, hvor GitHub Advanced Security er aktiveret. Hvis kodescanning finder en potentiel sikkerhedsrisiko eller fejl i din kode, viser GitHub en besked under fanen Sikkerhed i lageret. Når du har rettet den kode, der udløste beskeden, lukker GitHub beskeden.
Du kan bruge kodescanning til at finde, triage og prioritere rettelser til eksisterende problemer i din kode. Kodescanning forhindrer også udviklere i at introducere nye problemer. Du kan planlægge scanninger for bestemte dage og tidspunkter eller udløse scanninger, når der opstår en bestemt hændelse i lageret, f.eks. et push.
I dette undermodul får du mere at vide om CodeQL, de tre muligheder for at konfigurere kodescanning, og hvordan du føjer CodeQL-arbejdsprocessen til dit lager.
Om kodescanning med CodeQL
CodeQL er det kodeanalyseprogram, som GitHub har udviklet til at automatisere sikkerhedskontroller. Du kan analysere din kode ved hjælp af CodeQL og få vist resultaterne som beskeder om kodescanning. Der er tre primære måder at konfigurere CodeQL-analyse til kodescanning på:
- Brug standardkonfigurationen til hurtigt at konfigurere CodeQL-analyse til kodescanning på dit lager. Standardopsætningen håndterer valg af de sprog, der skal analyseres, forespørgselspakke, der skal køres, og hændelser, der udløser scanninger, med mulighed for manuelt at konfigurere sprogene og forespørgselspakkerne. Denne indstilling kører kodescanning som en GitHub-handling.
- Brug avanceret konfiguration til at føje CodeQL-arbejdsprocessen direkte til dit lager. Hvis du føjer CodeQL-arbejdsprocessen direkte til dit lager, oprettes der en arbejdsprocesfil, der kan tilpasses, og som bruger github/codeql-handlingen til at køre CodeQL-kommandolinjegrænsefladen som en GitHub-handling.
- Kør CodeQL-kommandolinjegrænsefladen direkte i et eksternt CI-system, og upload resultaterne til GitHub.
CodeQL behandler kode som data, så du kan finde potentielle sikkerhedsrisici i din kode med større sikkerhed end traditionelle statiske analysatorer. Du genererer en CodeQL-database for at repræsentere din kodebase og kører derefter CodeQL-forespørgsler på den pågældende database for at identificere problemer i kodebasen. Forespørgselsresultaterne vises som beskeder om kodescanning i GitHub, når du bruger CodeQL med kodescanning.
CodeQL understøtter både kompilerede og fortolkede sprog, og den kan finde sikkerhedsrisici og fejl i kode, der er skrevet på følgende understøttede sprog:
- C eller C++
- C#
- Gå
- Java/Kotlin
- JavaScript/TypeScript
- Pyton
- Ruby
- Hurtig
I næste afsnit forklares det, hvordan du føjer CodeQL-arbejdsprocessen til dit lager. Du får mere at vide om, hvordan du konfigurerer CodeQL ved hjælp af eksterne værktøjer i afsnittet Aktivér kodescanning med tredjepartsværktøjer .
Aktivér CodeQL i dit lager med standardopsætningen
Hvis du har skriverettigheder til et lager, kan du konfigurere kodescanning for det pågældende lager.
Følg disse trin for at konfigurere kodescanning ved hjælp af arbejdsprocessen CodeQL GitHub-handlinger:
På GitHub.com skal du gå til lagerets hovedside.
Under navnet på dit lager skal du vælge Sikkerhed.
Vælg Konfigurer kodescanning. Hvis denne indstilling ikke er tilgængelig, skal du bede en organisationsejer eller lageradministrator om at aktivere GitHub Advanced Security.
Vælg Standard på rullelisten Konfigurer.
Gennemse standardindstillingerne. Hvis det er nødvendigt, skal du vælge knappen Rediger i nederste venstre hjørne af det nye vindue for at tilpasse, hvordan CodeQL kører.
Udløserne
on:pull_requestogon:pusher standarden for kodescanning, der hver især er nyttige til forskellige formål. Du får mere at vide om disse udløsere i enheden Konfigurer kodescanning .Vælg Aktivér CodeQL , når du er klar til at aktivere kodescanning.
I standardarbejdsprocessen for CodeQL-analyse er kodescanning konfigureret til at analysere din kode, hver gang du enten overfører en ændring til beskyttede forgreninger eller udløser en pullanmodning i forhold til standardforgreningen. Når pushen er foretaget, køres kodescanning automatisk.
I forrige afsnit aktiverede vi kodescanning ved hjælp af standardkonfigurationen, som kører kodescanninger som en GitHub-handling uden at skulle vedligeholde en arbejdsprocesfil. Den anden indstilling er Avanceret konfiguration, som genererer den standardarbejdsprocesfil, du kan redigere til avanceret konfiguration og flere trin. Vi dækker brugen af den avancerede konfiguration til konfiguration af kodescanning i et senere undermodul.
Kørsel af kodescanning med GitHub-handlinger påvirker dine månedlige faktureringsminutter. Hvis du vil bruge GitHub-handlinger ud over det lager eller de minutter, der er inkluderet i din konto, faktureres du for mere forbrug.
Om fakturering for handlinger
Kodescanning bruger GitHub-handlinger, og hver kørsel af en kodescanningsarbejdsproces bruger minutter til GitHub-handlinger. Brug af GitHub-handlinger er gratis for både offentlige lagre og selv hostede løbere. For private lagre modtager hver GitHub-konto et bestemt antal gratis minutter og lagerplads, afhængigt af det produkt, der bruges sammen med kontoen. Forbrugsgrænser styrer enhver brug ud over de inkluderede beløb. Hvis du er månedligt faktureret kunde, har din konto en standardforbrugsgrænse på nul USD (USD), hvilket forhindrer ekstra brug af minutter eller lagerplads til private lagre ud over de beløb, der er inkluderet i din konto. Hvis du betaler din konto via faktura, har din konto en ubegrænset standardforbrugsgrænse. Minutter nulstilles hver måned, mens lagerforbruget ikke gør det.