Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Jalankan pemindaian kode diferensial dengan S3
Jalankan pemindaian kode diferensial (diff) untuk menganalisis hanya baris yang diubah dalam kode sumber Anda, daripada melakukan pemindaian repositori penuh. Pemindaian diferensial lebih cepat daripada pemindaian penuh dan menghasilkan temuan yang ditargetkan untuk perubahan kode tertentu, menjadikannya ideal untuk validasi pra-penggabungan dalam alur kerja pengembangan.
Tidak seperti tinjauan kode berbasis permintaan tarik yang dipicu secara otomatis oleh peristiwa penyedia kontrol sumber pihak ketiga (lihatTinjau temuan keamanan kode dalam permintaan tarik), pemindaian diferensial dimulai secara terprogram melalui AWS Security Agent API atau SDK. Anda mengunggah file diff terpadu ke S3 dan mereferensikannya saat memulai pekerjaan peninjauan kode.
Cara kerja pemindaian diferensial
Pemindaian diferensial menganalisis perubahan kode Anda dalam konteks penuh repositori Anda. Saat Anda membuat sumber peninjauan kode dengan kode sumber yang diunggah ke S3, pemindaian diferensial menggunakan repositori lengkap sebagai konteks sambil memfokuskan temuan secara khusus pada baris yang diubah di diff Anda. Ini memungkinkan pemindaian untuk mengidentifikasi masalah keamanan yang timbul dari bagaimana perubahan Anda berinteraksi dengan kode yang ada — seperti alur otentikasi yang rusak, penanganan data yang tidak aman di seluruh modul, atau perubahan yang mengekspos kerentanan yang ada.
Proses pemindaian:. Anda mengunggah file diff terpadu (outputgit diff) ke bucket S3 yang terhubung ke Ruang Agen Anda. Anda memanggil StartCodeReviewJob API dengan diffSource parameter yang menunjuk ke lokasi S3 diff Anda. AWS Security Agent hanya menganalisis kode yang diubah dalam perbedaan untuk kerentanan keamanan dan kepatuhan terhadap persyaratan keamanan organisasi Anda. Temuan mencakup garis yang diubah, dengan peringkat keparahan, lokasi kode, dan panduan remediasi.
Prasyarat
Sebelum Anda mulai, pastikan Anda memiliki:
-
Ruang Agen dengan peninjauan kode diaktifkan (lihatAktifkan peninjauan kode)
-
Sumber daya peninjauan kode sudah dibuat untuk repositori target, dengan kode sumber lengkap yang diunggah ke bucket S3 terhubung ke Ruang Agen Anda. Repositori lengkap menyediakan konteks yang memungkinkan analisis lebih dalam tentang bagaimana perubahan Anda berinteraksi dengan kode yang ada. Lihat Buat ulasan kode petunjuk tentang cara membuat tinjauan kode dan mengunggah kode sumber.
-
Bucket S3 yang terhubung ke Ruang Agen Anda
-
Izin IAM untuk mengunggah ke bucket S3 dan menelepon
securityagent:StartCodeReviewJob -
File diff terpadu yang dihasilkan dari perubahan kode Anda (misalnya, output dari)
git diff main..feature-branch
Tip
Untuk hasil yang paling akurat, pastikan sumber peninjauan kode Anda memiliki versi terbaru dari kode sumber lengkap Anda yang diunggah ke S3. Pemindaian diff menggunakan repositori lengkap ini sebagai konteks untuk memahami arsitektur aplikasi, aliran data, dan kontrol keamanan yang ada saat menganalisis baris yang diubah.
Langkah 1: Buat file diff
Hasilkan perbedaan terpadu yang mewakili perubahan kode yang ingin Anda pindai.
git diff main..feature-branch > changes.diff
Atau, buat diff untuk perubahan bertahap:
git diff --cached > changes.diff
Tip
File diff harus dalam format diff terpadu standar. AWS Security Agent mem-parsing jalur file dan mengubah baris dari header diff untuk mencakup analisisnya.
Langkah 2: Unggah perbedaan ke S3
Unggah file diff ke bucket S3 yang terhubung ke Ruang Agen Anda.
aws s3 cp changes.diff s3://my-security-agent-bucket/diffs/changes.diff
penting
Bucket S3 haruslah yang sudah terhubung ke Ruang Agen Anda. Peran layanan IAM yang terkait dengan Ruang Agen Anda harus memiliki akses baca ke lokasi ini. Lihat Aktifkan peninjauan kode petunjuk tentang menghubungkan bucket S3.
Langkah 3: Mulai pekerjaan peninjauan kode diferensial
Panggil StartCodeReviewJob API dengan diffSource parameter untuk memulai pemindaian diferensial.
Menggunakan AWS CLI
aws securityagent start-code-review-job \
--agent-space-id "your-agent-space-id" \
--code-review-id "your-code-review-id" \
--diff-source '{"s3Uri": "s3://my-security-agent-bucket/diffs/changes.diff"}'
Menggunakan AWS SDK (Python)
import boto3 client = boto3.client('securityagent') response = client.start_code_review_job( agentSpaceId='your-agent-space-id', codeReviewId='your-code-review-id', diffSource={ 's3Uri': 's3://my-security-agent-bucket/diffs/changes.diff' } ) print(f"Job started: {response['codeReviewJobId']}")
Menggunakan AWS SDK () JavaScript/TypeScript
import { SecurityAgentClient, StartCodeReviewJobCommand } from '@aws-sdk/client-securityagent'; const client = new SecurityAgentClient({ region: 'us-east-1' }); const response = await client.send(new StartCodeReviewJobCommand({ agentSpaceId: 'your-agent-space-id', codeReviewId: 'your-code-review-id', diffSource: { s3Uri: 's3://my-security-agent-bucket/diffs/changes.diff', }, })); console.log(`Job started: ${response.codeReviewJobId}`);
API segera kembali dengan a codeReviewJobId dan status dariIN_PROGRESS.
Langkah 4: Pantau pemindaian
Polling kode meninjau status pekerjaan sampai selesai.
aws securityagent get-code-review-job \ --agent-space-id "your-agent-space-id" \ --code-review-id "your-code-review-id" \ --code-review-job-id "the-job-id"
Pekerjaan berlangsung melalui fase yang sama dengan tinjauan kode lengkap: Preflight → Analisis statis → Finalisasi. Pemindaian diferensial biasanya selesai lebih cepat daripada pemindaian penuh karena mereka menganalisis lebih sedikit baris kode.
Langkah 5: Tinjau temuan
Setelah pekerjaan selesai, buat daftar temuan untuk pekerjaan peninjauan kode.
aws securityagent list-findings \ --agent-space-id "your-agent-space-id" \ --code-review-id "your-code-review-id" \ --code-review-job-id "the-job-id"
Setiap temuan meliputi:
-
Deskripsi masalah keamanan
-
Tingkat keparahan (Kritis, Tinggi, Sedang, atau Rendah)
-
Lokasi kode yang mereferensikan baris tertentu dalam diff
-
Alasan risiko menjelaskan dampak potensial
-
Panduan remediasi
Untuk informasi lebih lanjut tentang memahami dan bertindak berdasarkan temuan, lihatTinjau temuan dari tinjauan kode.
Kuota dan batas
-
Jumlah maksimum file yang diubah dalam diff: 3.000 file atau 5 MB total ukuran diff
-
Temuan dibatasi pada 30 per pemindaian, diprioritaskan berdasarkan tingkat keparahan (Kritikal > Tinggi> Sedang > Rendah)
Langkah selanjutnya
Setelah menjalankan pemindaian diferensial:
-
Tinjau temuan dan terapkan panduan remediasi (lihatTinjau temuan dari tinjauan kode)
-
Aktifkan komentar permintaan tarik untuk peninjauan kode otomatis pada setiap permintaan tarik (lihatAktifkan tinjauan kode permintaan tarik untuk GitHub repositori)
-
Jalankan tinjauan kode lengkap secara berkala untuk menangkap masalah di luar perubahan individual (lihatBuat ulasan kode)
-
Gunakan integrasi IDE untuk menjalankan pemindaian diferensial langsung dari lingkungan pengembangan Anda (lihat) Jalankan pemindaian keamanan kode dari IDE Anda