Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Menerapkan pipeline yang secara bersamaan mendeteksi masalah keamanan di beberapa kiriman kode
Benjamin Morris, Tim Hahn, Sapeksh Madan, Dina Odum, dan Yesaya Schisler, Amazon Web Services
Ringkasan
Pemberitahuan: AWS CodeCommit tidak lagi tersedia untuk pelanggan baru. Pelanggan yang sudah ada AWS CodeCommit dapat terus menggunakan layanan seperti biasa. Pelajari selengkapnya
Simple Code Scanning Pipeline (SCSP)
Sebelum SCSP, memindai kode menggunakan rangkaian alat khusus ini mengharuskan pengembang untuk menemukan, menginstal secara manual, dan mengkonfigurasi alat analisis perangkat lunak. Bahkan all-in-one alat yang diinstal secara lokal, seperti Automated Security Helper (ASH), memerlukan konfigurasi kontainer Docker agar dapat dijalankan. Namun, dengan SCSP, serangkaian alat analisis kode standar industri berjalan secara otomatis di. AWS Cloud Dengan solusi ini, Anda menggunakan Git untuk mendorong kiriman kode Anda, dan kemudian Anda menerima output visual dengan at-a-glance wawasan tentang mana pemeriksaan keamanan gagal.
Prasyarat dan batasan
Aktif Akun AWS
Satu atau beberapa kiriman kode yang ingin Anda pindai untuk masalah keamanan
AWS Command Line Interface (AWS CLI), diinstal dan dikonfigurasi
Python versi 3.0 atau yang lebih baru dan pip versi 9.0.3 atau yang lebih baru, diinstal
Git, diinstal
Instal git-remote-codecommitdi workstation lokal Anda
Arsitektur
Tumpukan teknologi target
AWS CodeCommit repositori
AWS CodeBuild proyek
AWS CodePipeline pipa
bucket Amazon Simple Storage Service (Amazon S3)
AWS CloudFormation Template
Arsitektur target
SCSP untuk analisis kode statis adalah DevOps proyek yang dirancang untuk memberikan umpan balik keamanan pada kode yang dapat dikirim.

Di AWS Management Console, masuk ke target Akun AWS. Konfirmasikan bahwa Anda berada di Wilayah AWS tempat Anda ingin menyebarkan pipa.
Gunakan CloudFormation template dalam repositori kode untuk menyebarkan tumpukan SCSP. Ini menciptakan CodeCommit repositori dan CodeBuild proyek baru.
catatan
Sebagai opsi penerapan alternatif, Anda dapat menggunakan CodeCommit repo yang ada dengan menyediakan Amazon Resource Name (ARN) repositori sebagai parameter selama penerapan tumpukan.
Kloning repositori ke workstation lokal Anda, lalu tambahkan file apa pun ke folder masing-masing di repositori kloning.
Gunakan Git untuk menambahkan, melakukan, dan mendorong file ke CodeCommit repositori.
Mendorong ke CodeCommit repositori memulai pekerjaan. CodeBuild CodeBuild Proyek ini menggunakan alat keamanan untuk memindai kiriman kode.
Tinjau output dari pipa. Alat keamanan yang menemukan masalah tingkat kesalahan akan mengakibatkan tindakan gagal dalam pipeline. Perbaiki kesalahan ini atau tekan sebagai positif palsu. Tinjau detail keluaran alat di detail Tindakan di dalam CodePipeline atau di bucket S3 pipeline.
Alat
Layanan AWS
AWS CloudFormationmembantu Anda menyiapkan AWS sumber daya, menyediakannya dengan cepat dan konsisten, dan mengelolanya sepanjang siklus hidupnya di seluruh Akun AWS dan Wilayah.
AWS CodeBuildadalah layanan build yang dikelola sepenuhnya yang membantu Anda mengkompilasi kode sumber, menjalankan pengujian unit, dan menghasilkan artefak yang siap digunakan.
AWS CodeCommitadalah layanan kontrol versi yang membantu Anda menyimpan dan mengelola repositori Git secara pribadi, tanpa perlu mengelola sistem kontrol sumber Anda sendiri.
Alat-alat lainnya
Untuk daftar lengkap alat yang digunakan SCSP untuk memindai kiriman kode, lihat readme SCSP
Repositori kode
Kode untuk pola ini tersedia di repositori Simple Code Scanning Pipeline (SCSP)
Epik
| Tugas | Deskripsi | Keterampilan yang dibutuhkan |
|---|---|---|
Buat CloudFormation tumpukan. |
Ini membuat CodeCommit repositori, CodePipeline pipeline, beberapa definisi CodeBuild pekerjaan, dan bucket S3. Build run dan hasil pemindaian disalin ke bucket ini. Setelah CloudFormation tumpukan telah sepenuhnya digunakan, SCSP siap digunakan. | AWS DevOps, administrator AWS |
| Tugas | Deskripsi | Keterampilan yang dibutuhkan |
|---|---|---|
Periksa hasil pemindaian. |
| Pengembang aplikasi, AWS DevOps |
Pemecahan Masalah
| Isu | Solusi |
|---|---|
HashiCorp Terraform atau AWS CloudFormation file tidak dipindai. | Pastikan file Terraform (.tf) dan CloudFormation (.yl, .yaml, atau .json) ditempatkan di folder yang sesuai di repositori kloning. CodeCommit |
| Pastikan Anda telah menginstal |
Kesalahan konkurensi, seperti | Jalankan kembali pipeline dengan memilih tombol Release Change di CodePipeline konsol |
Sumber daya terkait
Memberikan umpan balik
Informasi tambahan
FAQ
Apakah proyek SCSP sama dengan Automated Security Helper (ASH)?
Tidak. Gunakan ASH saat Anda menginginkan alat CLI yang menjalankan alat pemindaian kode dengan menggunakan wadah. Automated Security Helper (ASH)
Gunakan SCSP saat Anda menginginkan pipeline pengaturan yang lebih mudah daripada ASH. SCSP tidak memerlukan instalasi lokal. SCSP dirancang untuk menjalankan pemeriksaan secara individual dalam pipeline dan menampilkan hasil dengan alat. SCSP juga menghindari banyak overhead dengan menyiapkan Docker, dan itu adalah sistem operasi (OS) agnostik.
Apakah SCSP hanya untuk tim keamanan?
Tidak, siapa pun dapat menerapkan pipeline untuk menentukan bagian mana dari kode mereka yang gagal dalam pemeriksaan keamanan. Misalnya, pengguna non-keamanan dapat menggunakan SCSP untuk memeriksa kode mereka sebelum meninjau dengan tim keamanan mereka.
Dapatkah saya menggunakan SCSP jika saya bekerja dengan jenis repositori lain, seperti,, atau GitLab Bitbucket GitHub?
Anda dapat mengonfigurasi repositori git lokal untuk menunjuk ke dua repositori jarak jauh yang berbeda. Misalnya, Anda dapat mengkloning GitLab repositori yang ada, membuat instance SCSP (menentukan, Terraform CloudFormation, dan folder AWS Config Rules Development Kit (AWS RDK), jika diperlukan), dan kemudian gunakan git remote add upstream <SCSPGitLink> untuk mengarahkan repositori lokal ke repositori SCSP juga. CodeCommit Ini memungkinkan perubahan kode dikirim ke SCSP terlebih dahulu, divalidasi, kemudian, setelah pembaruan tambahan dilakukan untuk mengatasi temuan, didorong ke, GitLab GitHub, atau repositori Bitbucket. Untuk informasi selengkapnya tentang beberapa remote, lihat Push commit ke repositori Git tambahan (AWS posting blog).
catatan
Hati-hati terhadap drift, seperti menghindari membuat perubahan melalui antarmuka web.
Berkontribusi dan menambahkan tindakan Anda sendiri
Pengaturan SCSP dipertahankan sebagai GitHub proyek, yang berisi kode sumber untuk aplikasi SCSP AWS Cloud Development Kit (AWS CDK) . Untuk menambahkan pemeriksaan tambahan ke pipeline, AWS CDK aplikasi perlu diperbarui dan kemudian disintesis atau disebarkan ke target Akun AWS tempat pipeline akan berjalan. Untuk melakukan ini, mulailah dengan mengkloning GitHub proyeklib folder.
Jika ada pemeriksaan tambahan yang ingin Anda tambahkan, StandardizedCodeBuildProject kelas dalam AWS CDK kode membuatnya sangat mudah untuk menambahkan tindakan. Berikan nama, deskripsi, dan install atau build perintah. AWS CDK membuat CodeBuild proyek dengan menggunakan nilai default yang masuk akal. Selain membuat proyek build, Anda perlu menambahkannya ke CodePipeline tindakan di tahap build. Saat merancang pemeriksaan baru, tindakan harus dilakukan FAIL jika alat pemindaian mendeteksi masalah atau gagal dijalankan. Tindakan harus dilakukan PASS jika alat pemindaian tidak mendeteksi masalah apa pun. Untuk contoh mengonfigurasi alat, tinjau kode untuk Bandit tindakan tersebut.
Untuk informasi selengkapnya tentang input dan output yang diharapkan, lihat dokumentasi repositori
Jika Anda menambahkan tindakan kustom, Anda perlu menerapkan SCSP dengan menggunakan cdk deploy atau. cdk synth + CloudFormation deploy Ini karena CloudFormation template tumpukan Quick create dikelola oleh pemilik repo.