Ügynök nélküli kódvizsgálat konfigurálása (előzetes verzió)

A Microsoft Defender for Cloud ügynök nélküli kódvizsgálata gyors és méretezhető biztonsági lefedettséget biztosít az Azure DevOps és a GitHub összes adattárához. Automatikusan ellenőrzi a kódot, a nyílt forráskódú függőségeket és a kódként szolgáló infrastruktúrát (IaC) a biztonsági rések és a helytelen konfigurációk azonosítása érdekében. Nem kell módosítania a buildelési vagy üzembehelyezési folyamatokat. Ez a megközelítés egyetlen Azure DevOps vagy GitHub összekötővel egyszerűsíti a beállítást és a karbantartást, és széles körű lefedettséget, folyamatos elemzéseket és végrehajtható biztonsági megállapításokat biztosít. Lehetővé teszi, hogy a biztonsági és fejlesztési csapatok a fejlesztési munkafolyamatok megszakítása nélkül összpontosítsanak a kockázatok megoldására.

Testre szabhatja a futtatandó képolvasókat, és pontosan meghatározhatja, hogy mely szervezeteket, projekteket vagy adattárakat vegye fel vagy zárja ki a vizsgálatból.

Előfeltételek

Az ügynök nélküli kódvizsgálat engedélyezése előtt győződjön meg arról, hogy megfelel az alábbi követelményeknek:

Szerepkörök és engedélyek:

  • Az összekötő beállítása és konfigurálása:

    • Projektgyűjtemény-rendszergazda: Az Azure DevOpsban szükséges a kezdeti beállítás elvégzéséhez.
    • Előfizetés-közreműködő: Az Azure-előfizetésben szükséges az összekötő létrehozásához és konfigurálásához.
  • Biztonsági eredmények megtekintése:

    • Biztonsági rendszergazda: Kezelheti a biztonsági beállításokat, szabályzatokat és riasztásokat, de nem tudja módosítani az összekötőt.
    • Biztonsági olvasó: Megtekintheti a javaslatokat, riasztásokat és szabályzatokat, de nem végezhet módosításokat.

Fő előnyök

Az ügynök nélküli kódkeresés az Microsoft Defender for Cloud a következő előnyöket nyújtja:

  • Proaktív kockázatkezelés: A kockázatok azonosítása a fejlesztési folyamat korai szakaszában. Ez lehetővé teszi a biztonságos kódolási eljárásokat, és csökkenti a biztonsági réseket, mielőtt elérnék az éles üzemet. 
  • Egyszerű előkészítés: Gyors beállítás minimális konfigurációval és folyamatmódosítások nélkül. 
  • Nagyvállalati szintű, központosított felügyelet: Kód automatikus vizsgálata több adattárban egyetlen összekötő használatával. Ez széles körű lefedettséget biztosít a nagy környezetek számára. 
  • Gyors elemzések a gyors szervizeléshez: Közvetlenül az előkészítés után kaphat végrehajtható biztonságirés-megállapításokat. Ez lehetővé teszi a gyors javításokat, és csökkenti az expozíciós időt. 
  • Fejlesztőbarát és zökkenőmentes: Folyamatos integrációs és folyamatos üzembe helyezési (CI/CD) folyamatoktól függetlenül, módosítások és közvetlen fejlesztői beavatkozás nélkül működik. Ez lehetővé teszi a folyamatos biztonsági monitorozást anélkül, hogy megzavarná a fejlesztői hatékonyságot vagy a munkafolyamatokat.
  • Rugalmas lefedettség és vezérlés: Válassza ki, hogy mely képolvasók futnak, és mi legyen beolvasva. Alapértelmezés szerint mindent lefedhet, vagy testre szabhatja a beállításokat adott szervezetek, projektek vagy adattárak belefoglalásához vagy kizárásához. Ez lehetővé teszi, hogy a biztonsági lefedettség megfeleljen a kockázati profilnak és a működési igényeknek, extra összetettség nélkül.
  • Szoftveres anyagjegyzék (SBOM) létrehozása: Az SBOM automatikus létrehozása minden vizsgálaton pontos, lekérdezhető leltárt biztosít a csapatoknak a függőségekről és verziókról az adattárakban, további munkafolyamat-módosítások nélkül. Ez lehetővé teszi a gyors hatáselemzést, az újonnan közzétett biztonsági résekre való gyorsabb reagálást, valamint az egyes csomagoknak vagy verzióknak való kitettség felmérése során a magabiztos döntéshozatalt.

Kockázatészlelési képességek

Az ügynök nélküli kódkeresés javítja a biztonságot azáltal, hogy célzott, végrehajtható javaslatokat tesz az alkalmazáskódok, az infrastruktúra-mint kód (IaC) sablonok és a külső függőségek között. Ez a felhőalapú biztonsági helyzetkezelési biztonsági javaslatokon kívül az összekötőn keresztül is elérhető. A kulcsészlelési képességek a következők:

  • Kód biztonsági rései: Gyakori kódolási hibák, nem biztonságos kódolási eljárások és ismert biztonsági rések keresése több programozási nyelven.
  • Infrastruktúrakódként való helytelen konfigurációk: A biztonsági konfigurációk észlelése IaC-sablonokban, amelyek nem biztonságos üzembe helyezéshez vezethetnek.
  • Függőségi biztonsági rések: Az adattárakban felderített nyílt forráskódú csomagok és operációsrendszer-csomagok ismert biztonsági réseinek azonosítása.
  • Szoftveres anyagjegyzék (SBOM):Automatikusan létrehoz egy átfogó, lekérdezhető leltárt a függőségek és azok verzióiról az egyes adattárakhoz.

Az összekötő létrehozása növeli a biztonságot azáltal, hogy alapvető felhőbeli biztonsági helyzetkezelési javaslatokat nyújt az adattárakhoz, folyamatokhoz és szolgáltatáskapcsolatokhoz.

Ellenőrző eszközök

Az ügynök nélküli kódvizsgálat nyílt forráskódú eszközökkel keresi meg a kód- és infrastruktúra-mint kódsablonok biztonsági réseit és helytelen konfigurációit:

Eszköz Támogatott IaC/Nyelvek Licenc
Sablonelemző ARM IaC-sablonok, Bicep IaC-sablonok MIT
Checkov Terraform IaC-sablonok, Terraform-tervfájlok, AWS CloudFormation-sablonok, Kubernetes-jegyzékfájlok, Helm-diagramfájlok, Dockerfile-fájlok, Azure Resource Manager (ARM) IaC-sablonok, Azure Bicep IaC-sablonok, AWS SAM-sablonok (kiszolgáló nélküli alkalmazásmodell), Kustomize-fájlok, Kiszolgáló nélküli keretrendszersablonok, OpenAPI-specifikációfájlok Apache 2.0
Bandita Python Apache 2.0
ESLint JavaScript, TypeScript, JSX, TSX MIT
Trivy Függőségi és operációsrendszer-csomagok biztonsági réseinek vizsgálata az adattárjegyzékekből és a lockfile-okból (fájlrendszer mód) Apache 2.0
Syft Alpine (apk), Bitnami csomagok, C (conan), C++ (conan), Dart (pubs), Debian (dpkg), Dotnet (deps.json), Objective-C (cocoapods), Elixir (mix), Erlang (rebar3), Go (go.mod, Go binárisok), GitHub (munkafolyamatok, műveletek), Haskell (cabal, stack), Java (jar, ear, war, par, sar, nar, rar, natív kép), JavaScript (npm, yarn), Jenkins beépülő modulok (jpi, hpi), Linux kernel archívumok (vmlinuz), Linux kernel modulok (ko), Nix (kimenetek a /nix/store-ban), PHP (composer, PECL, Pear), Python (wheel, egg, poetry, requirements.txt, uv), Red Hat (rpm), Ruby (gem), Rust (cargo.lock, ellenőrizhető bináris), Swift (cocoapods, swift-package-manager), Wordpress beépülő modulok, Terraform szolgáltatók (.terraform.lock.hcl) Apache 2.0

Ezek az eszközök számos nyelvet és infrastrukturális keretrendszert támogatnak, így teljes körű biztonsági elemzést biztosítanak a kódbázisban.

Támogatott rendszerek és fájltípusok

Verziókövetési rendszerek

Az ügynök nélküli kódvizsgálat a következő verziókövetési rendszereket támogatja:

  • Azure DevOps: Az Azure DevOps-összekötőn keresztül csatlakoztatott adattárak teljes körű támogatása.

  • GitHub: A GitHub-összekötőn keresztül csatlakoztatott adattárak teljes körű támogatása.

Programozási nyelvek

Az ügynök nélküli kódvizsgálat a következő programozási nyelveket és függőségi ökoszisztémákat támogatja:

  • Statikus kódelemzés: Python; JavaScript/TypeScript.

  • Függőségi ökoszisztémák (a Trivy-n keresztül):Node.js (npm, yarn), Python (pip, Pipenv, Poetry), Java (Maven, Gradle), .NET (NuGet), Go modulok, Ruby (RubyGems), PHP (Composer), Rust (Cargo) és egyéb támogatott nyelvek és csomag ökoszisztémák jegyzékek és lockfile-k segítségével.

Infrastruktúra kódként (IaC) platformok és konfigurációk

Az alábbi táblázat az ügynök nélküli kódkeresés által támogatott IaC-platformokat és fájltípusokat sorolja fel:

IaC-platform Támogatott fájltípusok Jegyzetek
Terraform .tf, .tfvars Támogatja a Terraform IaC-sablonokat HCL2 nyelven, beleértve a változó fájlokat is..tfvars
Terraform-terv JSON-fájlok Tartalmazza az elemzéshez és vizsgálathoz használt tervezett konfigurációkat képviselő JSON-fájlokat.
AWS CloudFormation JSON- és YAML-fájlok Támogatja az AWS CloudFormation-sablonokat az AWS-erőforrások meghatározásához.
Kubernetes YAML, JSON-fájlok Támogatja a Kubernetes-jegyzékfájlokat a fürtök konfigurációinak meghatározásához.
Kormányrúd Helm-diagram könyvtárszerkezete, YAML-fájlok A Helm szabványos diagramstruktúráját követi, és támogatja a Helm v3-diagramfájlokat.
Kikötőmunkás Dockerfile nevű fájlok Támogatja a Docker-fájlokat a tárolókonfigurációkhoz.
Azure ARM-sablonok JSON-fájlok Támogatja az Azure Resource Manager (ARM) IaC-sablonokat JSON formátumban.
Azure Bicep .bicep fájlok Támogatja a Bicep IaC-sablonokat, amely egy tartományspecifikus nyelv (DSL) az ARM-hez.
AWS SAM YAML-fájlok Támogatja a kiszolgáló nélküli erőforrásokhoz készült AWS kiszolgáló nélküli alkalmazásmodell-(SAM-) sablonokat.
Kustomize YAML-fájlok Támogatja a Konfigurációs fájlokat a Kubernetes testreszabásához (Kustomize).
Kiszolgáló nélküli keretrendszer YAML-fájlok Támogatja a kiszolgáló nélküli keretrendszer sablonjait a kiszolgáló nélküli architektúrák definiálása során.
OpenAPI YAML, JSON-fájlok Támogatja az OpenAPI specifikációs fájljait a RESTful API-k definiálása érdekében.

Ügynök nélküli kódvizsgálat engedélyezése az Azure DevOps- és GitHub-szervezeteken

Az ügynök nélküli kódvizsgálat engedélyezéséhez az Azure DevOps és a GitHub-szervezeteket is csatlakoztathatja a Defender for Cloudhoz. A kapcsolat beállításához használja az alábbi útmutatók egyikét:

Diagram, amely a Defender for Cloud-összekötő beállításának animált bemutatóját mutatja, amely lehetővé teszi az ügynök nélküli kódelemzést az Azure DevOpshoz és a GitHubhoz.

A képolvasó lefedettségének és hatókörének testreszabása

A GitHub és az Azure DevOps esetében is szabályozhatja, hogy mely szkennerek fussanak, és pontosan megadhatja, hogy mely adattárak legyenek az ügynök nélküli vizsgálat része vagy kizárása.

Képernyőkép az ügynök nélküli kódkeresési beállításokról, amelyek bemutatják a képolvasó kapcsolóit és egyéni hatókör-beállításait a szervezetek, projektek és adattárak számára.

  • Képolvasók kiválasztása: Az igényeinek megfelelően be- és kikapcsolhatja az egyes kód- és infrastruktúra-ellenőrzőket (IaC).

  • Keresési hatókör beállítása: Döntse el, hogy alapértelmezés szerint be szeretné-e vizsgálni az összes adattárat, vagy egyéni hatókört szeretne definiálni adott szervezetek, projektek vagy adattárak belefoglalásához vagy kizárásához.

    • Kizárási mód: Kivéve amit felsorolsz, mindent beolvas.
    • Belefoglalási mód: Csak azt olvasd be, amit felsorolsz.
  • Egyéni hatókör beállításai:

    • A GitHub esetében állítsa be a hatókört tulajdonos vagy adattár szerint.
    • Az Azure DevOps esetében állítsa be a hatókört szervezet, projekt vagy adattár szerint.
  • Új adattárak automatikus felderítése: Az új adattárak automatikus feltárása mindig az összekötő hatókörébe tartozó szervezetekre vagy projektekre korlátozódik. A kizárási mód használata esetén alapértelmezés szerint engedélyezve van, és nincs beállítva egyéni hatókörlista. Az újonnan létrehozott adattárakat a rendszer automatikusan ellenőrzi.

    Az automatikus észlelés nem érhető el befogadási módban, mert csak a felsorolt adattárak vannak beolvasva.

    Ezek a hatókörkonfigurációs lehetőségek lehetővé teszik a biztonsági igényeknek való egyeztetést, a környezet növekedésével a lefedettség naprakészen tartását, valamint a szükségtelen vizsgálatok és hiányosságok elkerülését.

Az ügynök nélküli kódvizsgálat működése

Az ügynök nélküli kódkeresés a CI-/CD-folyamatoktól függetlenül működik. Az Azure DevOps vagy a GitHub-összekötő használatával automatikusan ellenőrzi a kód- és az infrastruktúra mint kód konfigurációkat. Nem kell módosítania a folyamatokat, és nem kell bővítményeket hozzáadnia. Ez a beállítás széles körű és folyamatos biztonsági elemzést tesz lehetővé több adattárban. Az eredmények feldolgozása és megjelenítése közvetlenül a Microsoft Defender for Cloudban.

Az ügynök nélküli kódvizsgálat architektúráját bemutató ábra.

Szkennelési folyamat

Miután engedélyezte az ügynök nélküli kódkeresési funkciót egy összekötőn belül, a vizsgálati folyamat az alábbi lépéseket tartalmazza:

  1. Adattárfelderítés: A rendszer automatikusan azonosítja az Azure DevOps- és GitHub-összekötőn keresztül összekapcsolt összes adattárat közvetlenül az összekötő létrehozása után, majd 8 óránként.

  2. Kódlekérés: Biztonságosan lekéri a legújabb kódot az egyes adattárak alapértelmezett (fő) ágából elemzés céljából, kezdetben az összekötő beállítása után, majd naponta.

  3. Analysis: A rendszer beépített ellenőrző eszközöket használ, amelyeket Microsoft Defender for Cloud kezel és frissít. Ezek az eszközök biztonsági réseket és hibás konfigurációkat tárnak fel a kódban és az infrastruktúra mint kód (IaC) sablonokban. A rendszer egy SBOM-t is létrehoz a csomag-lekérdezések támogatásához.

  4. Megállapítások feldolgozása: A vizsgálati eredményeket Felhőhöz készült Defender háttérrendszerén keresztül dolgozza fel, hogy végrehajtható biztonsági javaslatokat hozzon létre.

  5. Results delivery: A rendszer biztonsági javaslatként jeleníti meg a Defender for Cloud eredményeit. További részletekért tekintse meg a DevOps biztonsági javaslatainak hivatkozását.

Vizsgálat gyakorisága és időtartama

Az ügynök nélküli kódvizsgálat a következő ütemezést használja:

  • Vizsgálat gyakorisága:

    • Az adattárak, folyamatok és szolgáltatáskapcsolatok biztonsági helyzetének felmérése az összekötő létrehozásakor, majd nyolc óránként történik.
    • A rendszer az összekötő létrehozása után, majd naponta, ellenőrzi a kód és infrastruktúra mint kód (IaC) sablonokat biztonsági rések keresése céljából.
  • Vizsgálat időtartama: A vizsgálatok általában 15–60 percen belül fejeződnek be az adattár méretétől és összetettségétől függően.

Vizsgálati eredmények megtekintése és kezelése

A vizsgálatok befejezése után hozzáférhet a Microsoft Defender for Cloud biztonsági megállapításaihoz.

Hozzáférési megállapítások

Az eredmények elérése:

  1. A Microsoft Defender for Cloudban lépjen a Biztonsági javaslatok lapra: Biztonsági javaslatok megnyitása.

  2. Tekintse át az Azure DevOps és a GitHub-adattárakra vonatkozó javaslatokat, például:

  3. A mindkét platformon támogatott javaslatok teljes skáláját a Azure DevOps és GitHub biztonsági javaslatokban talál.

    A javaslatok közé tartoznak az olyan elemek, mint a több véleményező általi jóváhagyás megkövetelése, a titkos kódokhoz való hozzáférés korlátozása, valamint az Ajánlott eljárások kikényszerítése mind az Azure DevOps, mind a GitHub-környezetek esetében.

    Válassza ki a kívánt javaslatot az érintett fájlok részleteinek, súlyosságának és szervizelési lépéseinek megtekintéséhez.

Különbség az ügynök nélküli kódvizsgálat és a csővezetéken belüli vizsgálat között

Ügynök nélküli kontra folyamatba épített ellenőrzés

A Microsoft Biztonság DevOps bővítményen keresztül az ügynök nélküli kódvizsgálat és a folyamatba épített vizsgálat egyaránt biztonsági vizsgálatot tesz lehetővé az Azure DevOpsban és a GitHubon. Különböző igényeket szolgálnak ki, és kiegészítik egymást. Az alábbi táblázat összefoglalja a főbb különbségeket, így kiválaszthatja a környezetének leginkább megfelelő lehetőséget.

Jellemző Ügynök nélküli kódvizsgálat Folyamaton belüli vizsgálat
A kis- és nagybetűk elférnek Széles körű lefedettséget biztosít a fejlesztők számára minimális fennakadásokkal Részletes, folyamatba integrált vizsgálatokat biztosít testre szabható vezérlőkkel
Vizsgálat hatóköre és lefedettsége A kódkénti infrastruktúra (IaC), a kód biztonsági rései és a nyílt forráskódú függőségek sebezhetőségeivel foglalkozik ütemezett alapon (naponta) Széles körű lefedettséget biztosít, beleértve a bináris fájlokat és a tárolólemezképeket, az egyes folyamatok futtatásakor aktiválva
Beállítás és konfiguráció Az összekötő létrehozása után nincs szükség további beállításra Manuális telepítést és konfigurálást igényel az egyes CI/CD-folyamatokban
Folyamatintegráció A CI-/CD-folyamatoktól függetlenül fut munkafolyamatok módosítása nélkül Integrálható a CI/CD-folyamaton belül, és konfigurálást igényel az egyes folyamatokban
Képolvasó testreszabása Lehetővé teszi, hogy kiválassza, mely képolvasók futnak Lehetővé teszi a testreszabást adott szkennerekkel, kategóriákkal, nyelvekkel, bizalmassági szintekkel és nem Microsoft-eszközökkel
Eredmények és visszajelzés Hozzáférést biztosít a megállapításokhoz a Felhőhöz készült Defender Közel valós idejű visszajelzést kínál a CI/CD folyamat során, az eredmények pedig láthatók a Védelmező Felhőben.
Törési és meghiúsulási feltételek Nem lehet megszakítani a buildeket Konfigurálható úgy, hogy a biztonsági megállapítások súlyossága alapján megszakítsa a buildeket

Méretezhetőség és teljesítményre gyakorolt hatás

Az ügynökmentes kódvizsgálat nem hoz létre erőforrásokat az előfizetésben, és nem igényel vizsgálatot a csővezeték folyamat során. Az Azure DevOps és a GitHub REST API-t használja a metaadatok és a kód lekéréséhez. Ez azt jelenti, hogy az API-hívások száma eléri az Azure DevOps és a GitHub sebességkorlátjait, de nem jár közvetlen adatátviteli költségekkel. A szolgáltatás úgy kezeli a vizsgálatokat, hogy azok a fejlesztési környezet megszakítása nélkül maradjanak az Azure DevOps és a GitHub sebességkorlátjai között. Ez a módszer hatékony, nagy teljesítményű vizsgálatot biztosít az adattárakban anélkül, hogy befolyásolná a DevOps-munkafolyamatokat. További információkért lásd az Azure DevOps sebesség- és használati korlátait , valamint a GitHub REST API sebességkorlátjait.

Adatbiztonság, megfelelőség és hozzáférés-vezérlés ügynök nélküli kódvizsgálathoz

Microsoft Defender for Cloud ügynök nélküli kódkeresési szolgáltatása adatbiztonsági és adatvédelmi vezérlőkkel segíti a kód védelmét:

  • Adattitkosítás és hozzáférés-vezérlés: A rendszer iparági szabványoknak megfelelő protokollokkal titkosítja az összes átvitel alatt lévő adatot. Csak a jogosult Defender for Cloud szolgáltatások férhetnek hozzá a kódodhoz.
  • Adattárolási hely és adatmegőrzés: A vizsgálatok az Azure DevOps- és GitHub-összekapcsolókkal azonos földrajzi régióban (USA vagy EU) futnak az adatvédelmi követelmények támogatása érdekében. A rendszer a beolvasás során feldolgozza a kódot, majd biztonságosan törli azt. Nem tárol kódot hosszú távon.
  • Hozzáférés az adattárakhoz: A szolgáltatás biztonságos hozzáférési tokent hoz létre az Azure DevOpshoz és a GitHubhoz a vizsgálatok elvégzéséhez. Ez a jogkivonat lehetővé teszi a szolgáltatás számára a szükséges metaadatok és kód lekérését anélkül, hogy erőforrásokat hoz létre az előfizetésben. Ezt a hozzáférést csak Defender for Cloud összetevők használhatják.
  • Megfelelőség támogatása: A szolgáltatás megfelel az adatkezelésre és adatvédelemre vonatkozó szabályozási és biztonsági szabványoknak az ügyfélkódok biztonságos, regionális feldolgozásának támogatása érdekében.

Ezek a mértékek biztonságos, megfelelő és hatékony kódolvasási folyamatot biztosítanak, fenntartva az adatok adatvédettségét és integritását.

Korlátozások (nyilvános előzetes verzió)

A nyilvános előzetes verziós fázisban a következő korlátozások érvényesek:

  • Nincs bináris vizsgálat: Csak a kód (SAST) és az IaC-ellenőrző eszközök lesznek végrehajtva.
  • Vizsgálat gyakorisága: Az ügynök nélküli kódvizsgálat a funkció engedélyezésekor, majd naponta egyszer megvizsgálja az adattárakat.
  • Tárház mérete: Az ügynök nélküli kódkeresés 1 GB-nál nem nagyobb tárházakat támogat.
  • Áglefedettség: A vizsgálatok csak az alapértelmezett ágat fedik le (általában main).
  • Eszköz testreszabása: A vizsgálati eszközök nem szabhatók testre.

A Syft (SBOM) jelenleg a következő korlátozásokkal rendelkezik:

  • Az SBOM-ek nem tölthetők le. A Syft-eredmények lekérdezésével megkeresheti azokat a csomagokat és adattárakat, amelyek azokat használják. Útmutatásért tekintse meg a Szoftverjegyzék lekérdezése című témakört.

  • Az adattárnak zárolási fájlra van szüksége. Ellenkező esetben csak közvetlen függőségek találhatók.

  • Az SBOM méretkorlátozása 1 MB-ra korlátozódik. Ha sok csomag van azonosítva, a felhőtérképbe való betöltés sikertelen lesz.

  • Az SBOM engedélyezése nem konfigurálható vagy letölthető. Minden ügynök nélküli vizsgálathoz létre kell hozni egy SBOM-t.

  • Az SBOM eszköz futtatásának időtúllépési beállítása 15 percre van állítva.

  • Az ügynök nélküli kódvizsgálat letiltása nem törli az SBOM-javaslatokat.

Következő lépések