Indførelsen

Fuldført

Moderne applikationer er stærkt afhængige af open source-komponenter og tredjepartsbiblioteker. Mens disse afhængigheder fremskynder udviklingen og giver dokumenteret funktionalitet, introducerer de også sikkerhedssårbarheder og risici for licensoverholdelse. Software Composition Analysis (SCA) giver automatiserede værktøjer og processer til at identificere, spore og styre sikkerheds- og overholdelsesrisici i din softwareforsyningskæde.

Uden systematisk afhængighedsanalyse forbliver organisationer uvidende om sårbarheder i deres applikationer, indtil der opstår brud. Sikkerhedsforskere opdager tusindvis af nye sårbarheder i open source-komponenter årligt, og applikationer, der bruger berørte versioner, forbliver sårbare, indtil afhængigheder opdateres. Manuel sporing af afhængigheder på tværs af hundredvis af applikationer er upraktisk, hvilket kræver automatiserede SCA-løsninger.

Dette modul giver omfattende vejledning i implementering af Software Composition Analysis i dine udviklingsarbejdsgange. Du lærer det grundlæggende om SCA, implementerer automatiseret registrering af sårbarheder med GitHub Dependabot, integrerer SCA-værktøjer i Azure Pipelines, automatiserer scanning af objektbeholdere og fortolker sikkerhedsbeskeder for at prioritere afhjælpning effektivt.

Hvad du lærer

Dette modul dækker væsentlig viden til implementering af softwaresammensætningsanalyse:

  • Forståelse af softwaresammensætningsanalyse: Du vil undersøge, hvad SCA er, hvorfor det er afgørende for moderne udvikling, hvad SCA-værktøjer registrerer, og fordelene ved automatiseret afhængighedsscanning. At forstå SCA's grundlæggende principper hjælper dig med at genkende, hvorfor manuel afhængighedsstyring ikke skaleres, og hvordan automatiserede værktøjer giver løbende synlighed i sikkerheds- og overholdelsesrisici.

  • Inspektion og validering af kodebaser: Du lærer, hvordan du opgør alle afhængigheder i dine programmer, validerer licensoverholdelse for at undgå juridiske problemer, registrerer kendte sikkerhedssårbarheder via CVE-databaser og vurderer afhængighedskvaliteten, herunder vedligeholdelsesstatus og community-tilstand.

  • Implementering af GitHub Dependabot: Du vil opdage, hvordan GitHub Dependabot automatisk scanner afhængigheder for sårbarheder, opretter pull-anmodninger med sikkerhedsopdateringer, genererer afhængighedsgrafer, der viser transitive afhængigheder, og integreres med fanen GitHub Security for centraliseret sårbarhedsstyring.

  • Integration af SCA i pipelines: Du vil undersøge, hvordan du implementerer automatiseret scanning i Azure Pipelines under build og udrulning, konfigurerer SCA-værktøjer, herunder Mend (WhiteSource), Snyk og OWASP Dependency-Check, etablerer kvalitetsporte, der fejler builds, når kritiske sårbarheder registreres, og genererer SBOM (Software Bill of Materials) for overholdelse af angivne standarder og gennemsigtighed.

  • Undersøgelse af SCA-værktøjer: Du vil sammenligne forskellige SCA-løsninger og forstå deres styrker, begrænsninger og ideelle brugssager. De værktøjer, der er dækket, omfatter kommercielle tilbud som Mend og Snuk, der giver omfattende scanning med understøttelse, muligheder med åben kildekode som OWASP-Dependency-Check til omkostningseffektiv scanning og platformsintegrerede løsninger som Azure Artifacts upstream-kilder og GitHub Dependabot.

  • Automatisering af containerscanning: Du får mere at vide om, hvordan du scanner objektbeholderbasafbildninger for sårbarheder, analyserer programafhængigheder i objektbeholdere, integrerer scanning af objektbeholdere i CI/cd-pipelines og konfigurerer objektbeholderregistre som Azure Container Registry og Docker Hub for automatisk at blokere sårbare afbildninger.

  • Fortolkning af scanneradvarsler: Du vil opdage, hvordan du vurderer sværhedsgraden af sårbarheder ved hjælp af CVSS-scorer, bestemmer udnyttelsesmuligheder i betragtning af, om sårbarheder kan nås i din applikation, prioriterer afhjælpning baseret på forretningspåvirkning og risiko og administrerer falske positiver, der kan overvælde teams, hvis de ikke filtreres korrekt.

Læringsmål

Når du har fuldført dette modul, kan du:

  • Forstå Software Composition Analysis (SCA), og anerkend, hvorfor automatiseret afhængighedsscanning er afgørende for at styre sikkerheds- og overholdelsesrisici i moderne applikationer, der er bygget af open source-komponenter.
  • Undersøg og valider kodebaser ved at registrere alle afhængigheder, herunder transitive afhængigheder, validere licensoverholdelse, registrere kendte sårbarheder via CVE-databaser og vurdere afhængighedskvaliteten.
  • Implementer GitHub Dependabot for automatisk at registrere sårbare afhængigheder, modtage pull-anmodninger med sikkerhedsopdateringer, visualisere afhængighedsgrafer og integrere sårbarhedsadvarsler med fanen GitHub Sikkerhed.
  • Integrer SCA-kontroller i Azure Pipelines ved at implementere automatiseret scanning under builds, konfigurere kvalitetsporte, der fejler builds for kritiske sårbarheder, generere rapporter om overholdelse af angivne standarder og oprette SBOM (Software Bill of Materials).
  • Undersøg og konfigurer SCA-værktøjer , herunder kommercielle løsninger som Mend (WhiteSource) og Snyk, værktøjer med åben kildekode som OWASP Dependency-Check og platformsintegrerede løsninger som Azure Artifacts upstream-kilder.
  • Automatiser scanning af objektbeholderafbildninger for at registrere sårbarheder i basisafbildninger og programafhængigheder, integrer scanning i CI/CD-arbejdsprocesser, og konfigurer registre for at forhindre udrulning af sårbare objektbeholdere.
  • Fortolk advarsler fra scanningsværktøjer ved at vurdere sværhedsgraden med CVSS-scorer, bestemme udnyttelsesmuligheder og tilgængelighed, prioritere afhjælpning baseret på forretningspåvirkning og administrere falske positiver effektivt.

Forudsætninger

Før du starter dette modul, skal du have:

  • Forståelse af softwareafhængigheder: Grundlæggende viden om, hvordan programmer bruger biblioteker, strukturer og pakker fra pakkehåndteringer som npm, pip, NuGet eller Maven.
  • Kendskab til DevOps-koncepter: Forståelse af kontinuerlig integration, kontinuerlig levering, build pipelines og softwareudviklingens livscyklus.
  • Oplevelse med versionskontrol: Grundlæggende erfaring med Git, pullanmodninger og arbejdsprocesser for kodegennemgang, hvor afhængighedsstyring typisk forekommer.
  • Bevidsthed om åben kildekode: Generel forståelse af, at open source-komponenter kan indeholde sikkerhedssårbarheder og har licenskrav (viden fra tidligere moduler er gavnlig).
  • Azure DevOps- eller GitHub-oplevelse: Kendskab til enten Azure Pipelines eller GitHub Actions til implementering af automatiseret scanning i CI/CD-arbejdsprocesser.

Erfaring med at arbejde i organisationer, der leverer software, er gavnlig, men ikke påkrævet. Dette modul bygger på open source-softwarekoncepter og giver praktisk implementeringsvejledning til softwaresammensætningsanalyse.