Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Menyebarkan validasi keamanan pengkodean real-time dengan menggunakan server MCP dengan Kiro dan asisten pengkodean lainnya
Ivan Girardi dan Iker Reina Fuente, Amazon Web Services
Ringkasan
Pola ini menjelaskan bagaimana menerapkan server Model Context Protocol (MCP) yang mengintegrasikan tiga alat pemindaian keamanan standar industri untuk menyediakan analisis keamanan kode yang komprehensif. Server memungkinkan asisten pengkodean AI (seperti Kiro, Pengembang Amazon Q, dan Cline) untuk secara otomatis memindai cuplikan kode dan infrastruktur sebagai konfigurasi kode (IAc). Dengan pemindaian ini, asisten pengkodean dapat membantu mengidentifikasi kerentanan keamanan, kesalahan konfigurasi, dan pelanggaran kepatuhan.
Generator kode AI yang dilatih pada jutaan cuplikan kode menciptakan titik buta keamanan—seberapa amankah data pelatihan itu? Pola ini memberikan validasi keamanan real-time selama pembuatan kode, membantu pengembang mengidentifikasi dan memahami potensi masalah keamanan saat mereka membuat kode. Pendekatan ini membantu pengembang mengatasi kerentanan langsung dan risiko warisan dari dependensi. Dengan menjembatani kesenjangan antara efisiensi AI dan kepatuhan keamanan, pola ini membantu memungkinkan adopsi alat pengembangan bertenaga AI yang aman.
Pola ini membantu organisasi meningkatkan praktik keamanan pengembangan mereka melalui alat pengkodean berbantuan AI, menyediakan kemampuan pemindaian keamanan berkelanjutan di berbagai bahasa pemrograman dan definisi infrastruktur. Solusinya menggabungkan kemampuan alat-alat berikut:
Checkov untuk memindai file IAc, termasuk Terraform,, dan manifes AWS CloudFormation Kubernetes
Semgrep untuk menganalisis beberapa bahasa pemrograman seperti Python,, Java JavaScript, dan lainnya
Bandit untuk pemindaian keamanan Python khusus
Fitur utama dari solusi ini meliputi:
Pemindaian delta segmen kode baru, mengurangi overhead komputasi
Lingkungan alat keamanan yang terisolasi, mencegah kontaminasi lintas alat
Integrasi tanpa batas dengan asisten pengkodean AI (Kiro, Pengembang Amazon Q, Cline, dan lainnya)
Umpan balik keamanan waktu nyata selama pembuatan kode
Aturan pemindaian yang dapat disesuaikan untuk kepatuhan organisasi
Pola ini menyediakan antarmuka terpadu untuk pemindaian keamanan dengan format respons standar, sehingga lebih mudah untuk mengintegrasikan pemeriksaan keamanan ke dalam alur kerja pengembangan. Pola ini menggunakan Python dan kerangka MCP untuk memberikan umpan balik keamanan otomatis. Pendekatan ini membantu pengembang mengidentifikasi dan mengatasi masalah keamanan di awal proses pengembangan sambil belajar tentang praktik terbaik keamanan melalui temuan terperinci.
Prasyarat dan batasan
Prasyarat
Aktif Akun AWS dengan akses untuk menggunakan Kiro atau Amazon Q Developer, jika Anda ingin menggunakan salah satu asisten pengkodean tersebut
uvmanajer paket diinstalKeakraban dengan alat dan konsep pemindaian keamanan
Pemahaman dasar tentang IAc dan keamanan aplikasi
Batasan
Pemindaian bandit terbatas pada file Python saja.
Pemindaian waktu nyata dapat memengaruhi kinerja untuk basis kode yang besar.
Keterbatasan khusus alat didasarkan pada format dan bahasa file yang didukung.
Tinjauan manual diperlukan untuk memvalidasi temuan keamanan.
Hasil pemindaian keamanan memerlukan keahlian keamanan untuk interpretasi yang tepat.
Beberapa Layanan AWS tidak tersedia di semua Wilayah AWS. Untuk ketersediaan Wilayah, lihat AWS Layanan menurut Wilayah
. Untuk titik akhir tertentu, lihat Titik akhir dan kuota layanan, dan pilih tautan untuk layanan.
Versi produk
Python versi 3.10 atau yang lebih baru
Checkov versi 3.0.0 atau yang lebih baru
Semgrep versi 1.45.0 atau yang lebih baru
Bandit versi 1.7.5 atau yang lebih baru
MCP [cli] versi 1.11.0 atau yang lebih baru
Pydantic versi 1.10.0 atau yang lebih baru
Loguru versi 0.6.0 atau yang lebih baru
Arsitektur
Diagram berikut menunjukkan arsitektur untuk solusi ini.

Diagram menunjukkan alur kerja berikut:
Pengembang menggunakan asisten AI (misalnya, Kiro, Cline, Amazon Q Developer, atau Roo Code) untuk menghasilkan atau menganalisis kode. Asisten AI mengirimkan kode untuk pemindaian keamanan.
Server pemindai keamanan MCP memproses permintaan dengan merutekan ke pemindai khusus yang sesuai: Checkov untuk file IAC, Semgrep untuk analisis beberapa bahasa pemrograman, atau Bandit untuk pemindaian keamanan khusus Python.
Hasil pemindai dengan temuan keamanan, tingkat keparahan, deskripsi terperinci, dan perbaikan yang disarankan dikirim kembali ke pengembang melalui asisten AI.
Loop umpan balik berkelanjutan dibuat di mana pengembang menerima validasi keamanan waktu nyata, memungkinkan perbaikan otomatis melalui asisten AI dan mempromosikan praktik terbaik keamanan selama pengembangan.
Arsitektur mengurangi risiko keamanan umum berikut:
Injeksi perintah
Injeksi cepat
Jalur traversal
Serangan ketergantungan
Kelelahan sumber daya
Arsitektur mengurangi risiko keamanan umum ini dengan menerapkan praktik terbaik berikut:
Semua input model pengguna dan AI ditulis ke file sementara.
Tidak ada input langsung yang disediakan untuk perintah antarmuka baris perintah (CLI).
Akses sistem file dibatasi untuk direktori sementara dan file saja.
File sementara secara otomatis dibersihkan.
Respons pemindaian disanitasi.
Isolasi proses yang membatasi kemampuan proses diberlakukan.
Semua aktivitas pemindaian dicatat.
Otomatisasi dan skala
Pola ini mendukung otomatisasi melalui kemampuan berikut:
Integrasi dengan asisten pengkodean AI untuk pemindaian kode otomatis
Respons API standar untuk pemrosesan otomatis
Konfigurasi melalui file konfigurasi MCP
Support untuk pemrosesan batch dari beberapa file
Pemindaian yang dapat diskalakan di berbagai bahasa pemrograman dan format IAC
Proses pemindaian dapat diotomatisasi melalui titik akhir API yang disediakan:
scan_with_checkovuntuk pemindaian IAcscan_with_semgrepuntuk pemindaian kode multi-bahasascan_with_bandituntuk pemindaian khusus Pythonget_supported_formatsuntuk validasi format
Saat memperluas alat pemindaian, ikuti prinsip desain dan praktik terbaik yang dijelaskan sebelumnya di bagian ini. Lihat juga Praktik terbaik.
Alat
Layanan AWS
Kiro
adalah layanan pengkodean agen yang bekerja bersama pengembang untuk mengubah prompt menjadi spesifikasi terperinci, kemudian menjadi kode kerja, dokumen, dan pengujian. Agen Kiro membantu pengembang memecahkan masalah yang menantang dan mengotomatiskan tugas-tugas seperti menghasilkan dokumentasi dan pengujian unit. Amazon Q Developer adalah asisten percakapan bertenaga AI generatif yang dapat membantu Anda memahami, membangun, memperluas, dan mengoperasikan aplikasi. AWS
Alat lainnya
Bandit
adalah alat pemindai keamanan Python khusus. Ini mendeteksi masalah keamanan Python umum seperti fungsi tidak aman, rahasia hardcode, dan kerentanan injeksi. Bandit memberikan peringkat kepercayaan dan tingkat keparahan yang terperinci. Checkov
adalah alat analisis kode statis yang memeriksa IAc untuk kesalahan konfigurasi keamanan dan kepatuhan. Selain itu, Checkov mendeteksi pelanggaran kepatuhan dan praktik terbaik keamanan. Cline
adalah asisten pengkodean bertenaga AI yang berjalan di VS Code. Loguru
adalah pustaka validasi data untuk Python. Model Context Protocol (MCP)
adalah kerangka kerja open source untuk membangun alat pengembangan yang dibantu AI. Pydantic adalah pustaka
validasi data untuk Python. Semgrep
menganalisis kode sumber untuk kerentanan keamanan dan bug. Ini mendukung beberapa bahasa pemrograman. Semgrep menggunakan aturan yang berfokus pada keamanan untuk analisis komprehensif. Ini memberikan peringkat kepercayaan dan tingkat keparahan yang terperinci.
Repositori kode
Kode untuk pola ini tersedia di repositori GitHub MCP Security Scanner: Real-Time Protection for AI Code Assistants
Struktur repositori meliputi:
security_scanner_mcp_server/- Implementasi server utamadocs/- Dokumentasi dan materi demotests/- File ujimcp-config-example.json- Contoh konfigurasi MCPrequirements.txt- Ketergantungan proyek
Praktik terbaik
Implementasi pemindaian keamanan
Tinjau temuan keamanan untuk memvalidasi dan memprioritaskan masalah.
Tetap perbarui alat pemindaian (Checkov, Semgrep, dan Bandit) ke versi terbaru.
Gunakan alat keamanan MCP pola ini bersama dengan langkah-langkah dan alat keamanan lainnya.
Perbarui set aturan dan kebijakan keamanan secara teratur.
Manajemen konfigurasi
Gunakan file konfigurasi MCP di sumber kontrol versi resmi.
Dokumentasikan aturan dan konfigurasi kustom.
Integrasi
Integrasikan pemindaian keamanan di awal siklus pengembangan.
Siapkan pemindaian otomatis di kait pra-komit atau pipeline integrasi berkelanjutan dan penerapan berkelanjutan (CI/CD).
Konfigurasikan ambang batas keparahan yang sesuai untuk lingkungan Anda.
Menetapkan prosedur yang jelas untuk menangani temuan keamanan.
Pertimbangan operasional
Pantau kinerja pemindaian dan penggunaan sumber daya.
Menerapkan penanganan kesalahan dan logging yang tepat.
Pertahankan dokumentasi konfigurasi kustom.
Menetapkan proses untuk meninjau dan memperbarui aturan keamanan.
Juga, ingatlah praktik terbaik berikut:
Selalu validasi temuan keamanan dalam konteks spesifik Anda.
Tetap perbarui alat keamanan dan dependensi.
Gunakan beberapa alat keamanan untuk cakupan yang komprehensif.
Ikuti praktik terbaik keamanan dalam proses pengembangan Anda.
Epik
| Tugas | Deskripsi | Keterampilan yang dibutuhkan |
|---|---|---|
Konfigurasikan pengaturan MCP. | Anda dapat mengedit file konfigurasi di Kiro baik dengan (Opsi 1) secara manual menemukan file konfigurasi atau (Opsi 2) dengan menggunakan IDE Kiro.
| Pengembang aplikasi |
| Tugas | Deskripsi | Keterampilan yang dibutuhkan |
|---|---|---|
Konfigurasikan pengaturan MCP. | Untuk mengonfigurasi pengaturan MCP secara manual, gunakan langkah-langkah berikut:
| Pengembang aplikasi |
| Tugas | Deskripsi | Keterampilan yang dibutuhkan |
|---|---|---|
Konfigurasikan pengaturan MCP. | Untuk mengonfigurasi pengaturan MCP secara manual, gunakan langkah-langkah berikut:
| Pengembang aplikasi |
| Tugas | Deskripsi | Keterampilan yang dibutuhkan |
|---|---|---|
Lakukan analisis kode. | Untuk melakukan analisis kode dengan menggunakan Python dan Bandit, gunakan langkah-langkah berikut:
| Pengembang aplikasi |
| Tugas | Deskripsi | Keterampilan yang dibutuhkan |
|---|---|---|
Lakukan analisis kode. | Untuk melakukan analisis kode dengan menggunakan Terraform dan Checkov, gunakan langkah-langkah berikut:
| Pengembang aplikasi |
| Tugas | Deskripsi | Keterampilan yang dibutuhkan |
|---|---|---|
Lakukan pemindaian yang ditargetkan. | Berikut ini adalah contoh permintaan yang dapat Anda gunakan untuk melakukan pemindaian yang ditargetkan:
| Pengembang aplikasi |
Gunakan pemindaian keamanan dengan pembuatan kode. | Untuk menyelesaikan temuan keamanan dengan menggunakan loop pembuatan kode, gunakan langkah-langkah berikut (contoh ini menggunakan Kiro sebagai asisten pengkodean):
| Pengembang aplikasi |
Pemecahan masalah
| Isu | Solusi |
|---|---|
Masalah pengaturan lingkungan |
|
Masalah pemindai |
|
Masalah integrasi |
|
Dukungan Tambahan |
|
Sumber daya terkait
AWS dokumentasi
Infrastruktur sebagai kode (AWS Whitepaper Pengantar on) DevOps AWS
AWS Sumber daya lainnya
Sumber daya lainnya
Informasi tambahan
Contoh konfigurasi MCP dengan auto disetujui diaktifkan
Tanpa autoApprove dikonfigurasi, pengguna harus memberikan persetujuan untuk mengirim kode ke server keamanan MCP untuk pemindaian. Ketika autoApprove dikonfigurasi, asisten kode diizinkan untuk memanggil alat tanpa persetujuan pengguna. Alat-alat ini berjalan secara lokal di mesin, tidak ada data yang dikirim, dan hanya pemindaian kode yang dilakukan.
Konfigurasi berikut memungkinkan eksekusi otomatis semua fungsi pemindaian keamanan:
{ "mcpServers": { "security-scanner": { "command": "uvx", "args": [ "--from", "git+https://github.com/aws-samples/sample-mcp-security-scanner.git@main", "security_scanner_mcp_server" ], "env": { "FASTMCP_LOG_LEVEL": "ERROR" }, "disabled": false, "autoApprove": [ "scan_with_checkov", "scan_with_semgrep", "scan_with_bandit", "get_supported_formats" ] } } }
Untuk mengaktifkan logging debug, setel "FASTMCP_LOG_LEVEL" ke"DEBUG".
Format file yang didukung oleh alat pemindaian keamanan
Setiap alat pemindaian keamanan dalam solusi ini mendukung format file berikut:
Checkov (IAc)
Terraform — .tf, .tfvars, .tfstate
CloudFormation — .yaml, .yml.json, .template
Kubernetes — .yaml, .yml
Dockerfile — Dockerfile
ARM — .json (Manajer Sumber Daya Azure)
Bisep — .bisep
Tanpa server — .yml.yaml
Kemudi — .yaml, .yml.tpl
GitHub Tindakan — .yl, .yaml
GitLab_ci — .yml, .yaml
Ansible — .yml, .yaml
Semgrep (Kode sumber)
Python — .py
JavaScript — .js
TypeScript — .ts
Jawa — .java
Pergi — .go
C — .c
C++ — .cpp
C # — .cs
Ruby — .rb
PHP — .php
Scala — .scala
Kotlin — .kt
Karat — .rs
Bandit (hanya Python)
Python — .py
Demo
Untuk pemindaian kode, coba contoh petunjuk berikut dengan asisten AI Anda:
“Pindai skrip saat ini dan beri tahu saya hasilnya.”
“Pindai garis 20-60 dan beri tahu saya hasilnya.”
“Pindai sumber daya tabel Amazon DynamoDB ini dan beri tahu saya hasilnya.”
Untuk informasi selengkapnya, lihat demo pemindaian kode
Untuk menghasilkan kode aman, coba contoh petunjuk berikut:
“Hasilkan konfigurasi Terraform untuk membuat tabel DynamoDB dengan enkripsi diaktifkan dan pindai untuk masalah keamanan.”
“Buat fungsi Lambda Python yang menulis ke DynamoDB dan memindai kerentanan.”
“Buat CloudFormation template untuk bucket S3 dengan pengaturan keamanan yang tepat dan verifikasi itu melewati pemeriksaan keamanan.”
“Tulis skrip Python untuk menanyakan DynamoDB dengan pagination dan pindai praktik terbaik keamanan.”
“Buat manifes penerapan Kubernetes untuk layanan mikro dengan pengerasan keamanan dan validasi.”
Untuk informasi selengkapnya, lihat pembuatan kode ini dengan demo pemindaian keamanan