Bagikan melalui


Mengonfigurasi pemindaian kode tanpa agen (Pratinjau)

Pemindaian kode tanpa agen di Microsoft Defender for Cloud menawarkan cakupan keamanan yang cepat dan dapat diskalakan untuk semua repositori di Azure DevOps dan GitHub. Pemindaian kode tanpa agen secara otomatis memindai kode, dependensi sumber terbuka, dan infrastructure-as-code (IaC) untuk mengidentifikasi kerentanan dan kesalahan konfigurasi tanpa memerlukan perubahan apa pun pada alur build atau penyebaran Anda. Pendekatan ini menyederhanakan penyiapan dan pemeliharaan dengan satu konektor Azure DevOps atau GitHub, dan menyediakan cakupan yang luas, wawasan berkelanjutan, dan temuan keamanan yang dapat ditindak lanjuti. Ini memungkinkan tim keamanan dan pengembangan fokus pada perbaikan risiko dengan lancar tanpa mengganggu alur kerja pengembangan.

Anda dapat menyesuaikan pemindai mana yang akan dijalankan dan menentukan organisasi, proyek, atau repositori mana yang akan disertakan atau dikecualikan dari pemindaian.

Prasyarat

Peran dan izin:

  • Untuk menyiapkan dan mengonfigurasi konektor:

    • Admin Koleksi Proyek: Diperlukan di Azure DevOps untuk melakukan penyiapan awal.
    • Kontributor Langganan: Diperlukan pada langganan Azure untuk membuat dan mengonfigurasi konektor.
  • Untuk melihat hasil keamanan:

    • Admin Keamanan: Dapat mengelola pengaturan keamanan, kebijakan, dan pemberitahuan tetapi tidak dapat mengubah konektor.
    • Pembaca Keamanan: Dapat melihat rekomendasi, pemberitahuan, dan kebijakan tetapi tidak dapat membuat perubahan apa pun.

Manfaat utama

Beberapa manfaat utama pemindaian kode tanpa agen di Microsoft Defender for Cloud adalah:

  • Manajemen risiko proaktif: Mengidentifikasi risiko di awal proses pengembangan. Ini memungkinkan praktik pengkodan yang aman dan mengurangi kerentanan sebelum mencapai produksi. 
  • Onboarding yang mudah: Siapkan dengan cepat dengan konfigurasi minimal dan tanpa perubahan alur. 
  • Manajemen terpusat skala perusahaan: Memindai kode secara otomatis di beberapa repositori menggunakan satu konektor. Ini menawarkan cakupan yang luas untuk lingkungan besar. 
  • Wawasan cepat untuk remediasi cepat: Menerima wawasan kerentanan yang dapat ditindaklanjuti tepat setelah onboarding. Ini memungkinkan perbaikan cepat dan mengurangi waktu paparan. 
  • Ramah pengembang dan mulus: Beroperasi secara independen dari alur integrasi berkelanjutan dan penyebaran berkelanjutan (CI/CD), tanpa perubahan atau keterlibatan pengembang langsung yang diperlukan. Hal ini memungkinkan pemantauan keamanan berkelanjutan tanpa mengganggu produktivitas atau alur kerja pengembang.
  • Cakupan dan kontrol yang fleksibel: Pilih pemindai mana yang dijalankan dan apa yang akan dipindai. Anda dapat mencakup semuanya secara default atau menyesuaikan pengaturan untuk menyertakan atau mengecualikan organisasi, proyek, atau repositori tertentu. Ini memungkinkan Anda untuk mencocokkan cakupan keamanan dengan profil risiko dan kebutuhan operasional Anda, tanpa kompleksitas ekstra.
  • Pembuatan Software Bill of Materials (SBOM): Membuat SBOM secara otomatis pada setiap pemindaian memberi tim inventarit dependensi dan versi yang tepat dan dapat dikueri di seluruh repositori mereka, tanpa perubahan alur kerja tambahan. Ini memungkinkan analisis dampak cepat, respons yang lebih cepat terhadap kerentanan yang baru diungkapkan, dan pengambilan keputusan yang percaya diri saat menilai paparan paket atau versi tertentu.

Kemampuan deteksi risiko

Pemindaian kode tanpa agen meningkatkan keamanan dengan memberikan rekomendasi yang ditargetkan dan dapat ditindaklanjuti di seluruh kode aplikasi, templat infrastruktur sebagai kode (IaC), dan dependensi pihak ketiga. Sebagai tambahan, ini mencakup rekomendasi keamanan manajemen postur keamanan cloud yang disediakan melalui konektor. Kemampuan deteksi utama meliputi:

  • Kerentanan kode: Temukan kesalahan pengodean umum, praktik pengodean yang tidak aman, dan kerentanan yang diketahui dalam beberapa bahasa pemrograman.
  • Kesalahan konfigurasi infrastruktur sebagai Kode: Mendeteksi kesalahan konfigurasi keamanan dalam templat IaC yang dapat menyebabkan penyebaran yang tidak aman.
  • Kerentanan ketergantungan: Identifikasi kerentanan yang diketahui dalam paket open-source dan paket OS yang ditemukan di repositori.
  • Software Bill of Materials (SBOM): Secara otomatis menghasilkan inventarsi dependensi yang komprehensif dan dapat dikueri dan versinya untuk setiap repositori,

Membuat konektor meningkatkan keamanan dengan memberikan rekomendasi manajemen postur keamanan cloud dasar untuk repositori, alur, dan koneksi layanan.

Alat pemindaian

Pemindaian kode tanpa agen menggunakan berbagai alat sumber terbuka untuk menemukan kerentanan dan kesalahan konfigurasi dalam kode dan templat Infrastructure-as-Code (IaC):

Alat IaC/Bahasa yang Didukung Lisensi
Penganalisis Templat Templat IAC ARM, templat Bicep IaC MIT
Checkov Templat Terraform IaC, file paket Terraform, templat AWS CloudFormation, file manifes Kubernetes, file bagan Helm, Dockerfiles, templat IaC Azure Azure Resource Manager (ARM), templat IaC Azure Bicep, templat AWS SAM (Model Aplikasi Tanpa Server), File kustomisasi, templat kerangka kerja Tanpa Server, file spesifikasi OpenAPI Apache 2.0
Bandit Phyton Apache 2.0
ESLint JavaScript, TypeScript, JSX, TSX MIT
Trivy Pemindaian kerentanan paket ketergantungan dan paket OS dari manifest dan berkas kunci repositori (dalam mode sistem berkas) Apache 2.0
Syft Alpine (apk), Paket Bitnami, C (conan), C++ (conan), Dart (pub), Debian (dpkg), Dotnet (deps.json), Objective-C (cocoapods), Elixir (mix), Erlang (rebar3), Go (go.mod, Biner Go), GitHub (alur kerja, tindakan), Haskell (cabel, tumpukan), Java (jar, telinga, perang, par, sar, nar, rar, native-image), JavaScript (npm, yarn), Plugin Jenkins (jpi, hpi), arsip kernel Linux (vmlinz), modul kernel Linux (ko), Nix (output di /nix/store), PHP (komposer, PECL, Pear), Python (roda, telur, puisi, requirements.txt, uv), Red Hat (rpm), Ruby (gem), Rust (kargo.lock, biner yang dapat diaudit), Swift (cocoapods, swift-package-manager), Plugin Wordpress, penyedia Terraform (.terraform.lock.hcl) Apache 2.0

Alat-alat ini mendukung berbagai bahasa dan kerangka kerja infrastruktur sebagai kode (IaC), memastikan analisis keamanan menyeluruh di seluruh basis kode Anda.

Sistem dan jenis file yang didukung

Sistem kontrol versi

  • Azure DevOps: Dukungan penuh untuk repositori yang terhubung melalui konektor Azure DevOps.

  • GitHub: Dukungan penuh untuk repositori yang terhubung melalui konektor GitHub.

Bahasa pemrograman

  • Analisis kode statis: Python; JavaScript/TypeScript.

  • Ekosistem dependensi (melalui Trivy): Node.js (npm, yarn), Python (pip, Pipenv, Poetry), Java (Maven, Gradle), .NET (NuGet), modul Go, Ruby (RubyGems), PHP (Composer), Rust (Kargo), dan bahasa dan ekosistem paket lainnya yang didukung melalui manifes dan lockfiles.

Platform dan konfigurasi Infrastructure-as-Code (IaC)

IaC Platform Jenis file yang didukung Catatan
Terraform .tf, .tfvars Mendukung templat Terraform IaC dalam bahasa HCL2, termasuk file variabel di .tfvars.
Paket Terraform File JSON Termasuk file JSON yang mewakili konfigurasi yang direncanakan, digunakan untuk analisis dan pemindaian.
AWS CloudFormation File JSON, YAML Mendukung templat AWS CloudFormation untuk menentukan sumber daya AWS.
Kubernetes FILE YAML, JSON Mendukung file manifes Kubernetes untuk menentukan konfigurasi dalam kluster.
Helm Struktur direktori bagan Helm, file YAML Mengikuti struktur bagan standar Helm; mendukung file bagan Helm v3.
Docker File bernama Dockerfile Mendukung Dockerfiles untuk konfigurasi kontainer.
Templat Azure ARM File JSON Mendukung templat IaC Azure Resource Manager (ARM) dalam format JSON.
Azure Bicep .bicep file Mendukung templat Bicep IaC, bahasa khusus domain (DSL) untuk ARM.
AWS SAM File YAML Mendukung templat AWS Serverless Application Model (SAM) untuk sumber daya tanpa server.
Kustomisasi File YAML Mendukung file konfigurasi untuk kustomisasi Kubernetes (Kustomisasi).
Kerangka Kerja Tanpa Server File YAML Mendukung templat untuk kerangka kerja Tanpa Server dalam menentukan arsitektur tanpa server.
OpenAPI FILE YAML, JSON Mendukung file spesifikasi OpenAPI untuk menentukan API RESTful.

Mengaktifkan pemindaian kode tanpa agen di organisasi Azure DevOps dan GitHub Anda

Anda dapat menghubungkan organisasi Azure DevOps dan GitHub ke Defender for Cloud untuk mengaktifkan pemindaian kode tanpa agen. Ikuti langkah-langkah dalam Menyambungkan organisasi Azure DevOps Anda atau Menyambungkan organisasi GitHub Anda untuk memulai.

Gambar GIF memperlihatkan proses penyiapan untuk mengaktifkan pemindaian kode tanpa agen

Sesuaikan jangkauan dan lingkup pemindai

Untuk GitHub dan Azure DevOps, Anda dapat mengontrol pemindai mana yang berjalan dan menentukan repositori mana yang disertakan atau dikecualikan dari pemindaian tanpa agen.

Cuplikan layar memperlihatkan pengaturan kustom pemindaian kode tanpa agen.

  • Pilih pemindai: Aktifkan atau nonaktifkan setiap pemindai kode dan infrastruktur sebagai kode (IaC) berdasarkan kebutuhan Anda.

  • Atur cakupan pemindaian: Putuskan apakah Anda ingin memindai semua repositori secara default, atau menentukan cakupan kustom untuk menyertakan atau mengecualikan organisasi, proyek, atau repositori tertentu.

    • Mode pengecualian: Pindai semuanya kecuali apa yang Anda cantumkan.
    • Mode penyertaan: Hanya pindai daftar Anda.
  • Opsi cakupan kustom:

    • Untuk GitHub, atur cakupan menurut pemilik atau repositori.
    • Untuk Azure DevOps, atur cakupan menurut organisasi, proyek, atau repositori.
  • Temukan repositori baru secara otomatis: Penemuan otomatis repositori baru selalu terbatas pada organisasi atau proyek yang disertakan dalam cakupan konektor. Ini diaktifkan secara default saat menggunakan mode pengecualian dan tidak ada daftar cakupan kustom yang diatur. Repositori yang baru dibuat dipindai secara otomatis.

    Autodiscovery tidak tersedia dalam mode inklusi, karena hanya repositori yang tercantum yang dipindai.

    Ini memungkinkan Anda untuk mencocokkan pemindaian dengan kebutuhan keamanan Anda, menjaga cakupan tetap terbaru saat lingkungan Anda tumbuh, dan menghindari pemindaian yang tidak perlu atau area yang tidak dipindai.

Cara kerja pemindaian kode tanpa agen

Pemindaian kode tanpa agen berfungsi secara independen dari alur CI/CD. Ini menggunakan konektor Azure DevOps atau GitHub untuk memindai kode dan konfigurasi infrastruktur sebagai kode (IaC) secara otomatis. Anda tidak perlu memodifikasi alur atau menambahkan ekstensi. Penyiapan ini memungkinkan analisis keamanan yang luas dan berkelanjutan di beberapa repositori. Hasil diproses dan ditampilkan langsung di Microsoft Defender untuk Cloud.

Diagram memperlihatkan arsitektur pemindaian kode tanpa agen.

Proses pemindaian

Setelah Anda mengaktifkan fitur pemindaian kode tanpa agen dalam konektor, proses pemindaian mencakup langkah-langkah berikut:

  1. Penemuan repositori: Sistem secara otomatis mengidentifikasi semua repositori yang ditautkan melalui konektor Azure DevOps dan GitHub segera setelah pembuatan konektor dan kemudian setiap 8 jam.

  2. Pengambilan kode: Ini secara aman mengambil kode terbaru dari cabang default (utama) setiap repositori untuk analisis, pertama kali setelah pengaturan konektor dan kemudian setiap hari.

  3. Analisis: Sistem menggunakan serangkaian alat pemindaian bawaan yang dikelola dan diperbarui dalam Microsoft Defender for Cloud untuk menemukan kerentanan dan kesalahan konfigurasi dalam templat kode dan infrastruktur sebagai kode (IaC). Ini juga membuat SBOM untuk memungkinkan manajemen paket yang dapat diperiksa.

  4. Pemrosesan temuan: Ini memproses temuan pemindaian melalui backend Defender untuk Cloud untuk membuat rekomendasi keamanan yang dapat ditindaklanjuti.

  5. Pengiriman hasil: Sistem menunjukkan temuan sebagai rekomendasi keamanan di Defender untuk Cloud, memungkinkan tim keamanan untuk meninjau dan mengatasi masalah.

Frekuensi dan durasi pemindaian

  • Frekuensi pemindaian:

    • Postur keamanan repositori, alur, dan koneksi layanan dinilai saat Anda membuat konektor dan kemudian setiap delapan jam.
    • Sistem memindai kode dan templat infrastruktur sebagai kode (IaC) untuk kerentanan setelah konektor dibuat dan kemudian setiap hari.
  • Durasi pemindaian: Pemindaian biasanya selesai dalam waktu 15 hingga 60 menit, tergantung pada ukuran dan kompleksitas repositori.

Menampilkan dan mengelola hasil pemindaian

Setelah pemindaian selesai, Anda dapat mengakses temuan keamanan dalam Microsoft Defender untuk Cloud.

Mengakses temuan

  1. Navigasikan ke tab Rekomendasi keamanan di Microsoft Defender untuk Cloud.

  2. Tinjau rekomendasi untuk repositori Azure DevOps dan GitHub, seperti:

  3. Untuk berbagai rekomendasi yang didukung untuk kedua platform, lihat: Rekomendasi keamanan Azure DevOps dan GitHub.

    Rekomendasi mencakup item seperti memerlukan persetujuan multi-peninjau, membatasi akses rahasia, dan memberlakukan praktik terbaik untuk lingkungan Azure DevOps dan GitHub.

    Pilih rekomendasi apa pun untuk melihat detail tentang file, tingkat keparahan, dan langkah-langkah remediasi yang terpengaruh.

Perbedaan antara pemindaian kode tanpa agen dan pemindaian dalam alur

Pemindaian kode tanpa agen dan pemindaian dalam alur menggunakan ekstensi Microsoft Security DevOps keduanya menawarkan pemindaian keamanan dalam Azure DevOps dan GitHub. Mereka melayani kebutuhan yang berbeda tetapi saling melengkapi. Tabel berikut menyoroti perbedaan utama untuk membantu Anda memilih opsi yang paling sesuai dengan kebutuhan keamanan dan pengembangan Anda.

Aspek Pemindaian kode tanpa agen Pemindaian dalam alur
Gunakan kecocokan huruf besar/kecil Menawarkan cakupan luas dengan gangguan minimal kepada pengembang Menyediakan pemindaian terperinci yang terintegrasi dengan alur dengan kontrol yang dapat disesuaikan
Cakupan dan cakupan pemindaian Berfokus pada kerentanan infrastruktur sebagai kode (IaC), kerentanan kode, dan kerentanan dependensi sumber terbuka secara terjadwal (harian) Menawarkan cakupan yang luas, termasuk biner dan gambar kontainer, yang dipicu pada setiap eksekusi alur
Penyiapan dan konfigurasi Tidak memerlukan penyiapan lebih lanjut setelah membuat konektor Memerlukan penginstalan dan konfigurasi manual di setiap alur CI/CD
Integrasi alur Berjalan secara independen dari alur (CI/CD) tanpa memodifikasi alur kerja Terintegrasi dalam alur CI/CD, memerlukan konfigurasi di setiap alur
Kustomisasi pemindai Memungkinkan Anda memilih pemindai mana yang dijalankan Memungkinkan penyesuaian dengan pemindai, kategori, bahasa, tingkat sensitivitas, dan alat non-Microsoft tertentu
Hasil dan umpan balik Menyediakan akses ke temuan dalam Defender untuk Cloud Menawarkan umpan balik mendekati real-time dalam alur CI/CD, dengan hasil juga terlihat di Defender untuk Cloud
Kriteria putus dan gagal Tidak dapat memutus build Dapat dikonfigurasi untuk memutus build berdasarkan tingkat keparahan temuan keamanan

Skalabilitas dan dampak performa

Pemindaian kode tanpa agen menghindari pembuatan sumber daya dalam langganan dan tidak memerlukan pemindaian selama proses alur. Ini menggunakan Azure DevOps dan GitHub REST API untuk menarik metadata dan kode. Ini berarti panggilan API dihitung dalam batas tarif Azure DevOps dan GitHub, tetapi Anda tidak dikenakan biaya transfer data langsung. Layanan ini mengelola pemindaian untuk memastikan mereka tetap berada dalam batas laju Azure DevOps dan GitHub tanpa mengganggu lingkungan pengembangan. Metode ini menyediakan pemindaian berkinerja tinggi yang efisien di seluruh repositori tanpa memengaruhi alur kerja DevOps. Untuk informasi selengkapnya, lihat Tarif Azure DevOps dan batas penggunaan dan Batas tarif untuk REST API GitHub.

Keamanan data, kepatuhan, dan kontrol akses untuk pemindaian kode tanpa agen

layanan pemindaian kode tanpa agen Microsoft Defender untuk Cloud memastikan penanganan kode Anda yang aman dan patuh dengan menerapkan langkah-langkah keamanan dan privasi data yang ketat:

  • Enkripsi data dan kontrol akses: Sistem mengenkripsi semua data saat transit menggunakan protokol standar industri. Hanya layanan Defender untuk Cloud resmi yang dapat mengakses kode Anda.
  • Residensi dan retensi data: Pemindaian terjadi di geo yang sama dengan konektor Azure DevOps dan GitHub Anda (AS atau UE) untuk mematuhi undang-undang perlindungan data. Sistem memproses kode hanya selama pemindaian dan menghapusnya dengan aman setelahnya, tanpa penyimpanan jangka panjang.
  • Akses ke repositori: Layanan ini menghasilkan token akses aman untuk Azure DevOps dan GitHub untuk melakukan pemindaian. Token ini memungkinkan pengambilan metadata dan kode yang diperlukan tanpa membuat sumber daya dalam langganan Anda. Hanya komponen Defender untuk Cloud yang memiliki akses, melindungi integritas data.
  • Dukungan kepatuhan: Layanan ini selaras dengan standar peraturan dan keamanan untuk penanganan dan privasi data, memastikan pemrosesan dan pemindaian kode pelanggan yang aman sesuai dengan persyaratan perlindungan data regional.

Langkah-langkah ini memastikan proses pemindaian kode yang aman, sesuai, dan efisien, menjaga privasi dan integritas data Anda.

Batasan (pratinjau publik)

Selama fase pratinjau publik, batasan berikut berlaku:

  • Tidak ada pemindaian biner: Hanya alat pemindaian kode (SAST) dan IaC yang dijalankan.
  • Frekuensi pemindaian: Ini memindai repositori setelah diaktifkan, lalu setiap hari.
  • Ukuran repositori: Ini membatasi pemindaian ke repositori di bawah 1 GB.
  • Cakupan cabang: Pemindaian hanya mencakup cabang default (biasanya main).
  • Kustomisasi alat: Anda tidak dapat menyesuaikan alat pemindaian.

Syft (SBOM) saat ini memiliki batasan berikut:

  • SBOM tidak dapat diunduh, hasil Syft dapat digunakan untuk mengkueri paket tertentu dan repositori yang menggunakannya.

  • Repositori memerlukan file kunci jika tidak, hanya dependensi langsung yang akan ditemukan

  • Batasan ukuran SBOM dibatasi hingga 1MB. Jika ada banyak paket yang diidentifikasi, proses penyerapan kami ke dalam Cloud Map akan gagal.

  • Pengaktifan SBOM tidak dapat dikonfigurasi atau dapat diunduh. SBOM akan dihasilkan pada setiap pemindaian Tanpa Agen.

  • Batas waktu diatur ke 15 menit agar alat SBOM berjalan.

  • Menonaktifkan Agentless tidak menghapus rekomendasi SBOM.