DevSecOps Learn Recap #1
Seminggu yang lalu dari blog ini ditulis, saya memutuskan untuk mempelajari konsep DevSecOps. Setelah mempelajari konsep tersebut, pandangan saya terhadap vulnerability menjadi berubah. Pada awalnya saya berpikir “kalau infrastruktur kita aman, maka aplikasi kita juga aman”, yang menjadikan bahwa security aplikasi cukup menjadi prioritas di level infrastruktur saja. Mindset seperti itulah yang selalu saya bawa hingga sampai saya memutuskan untuk belajar konsep DevSecOps
Saya memulai dengan menonton video youtube yang berjudul “How to Create a DevSecOps CI/CD Pipeline” dari DevOps Journey, dan “DevSecOps Tutorial for Beginners | CI Pipeline with GitHub Actions and Docker Scout” dari TechWorld with Nana. Dari kedua video tersebut saya mendapatkan pengetahuan, bahwasannya security vulnerability itu bisa terjadi di tiap step atau tahapan pada konsep DevOps.
Kedua video yang saya tonton tersebut, mereka mengajarkan terkait konsep dan praktik Shift Left Security. Shift Left Security merupakan praktik untuk melakukan security testing sedini mungkin daripada menunggu hingga masuk ke tahap production. Hal tersebut perlu dilakukan agar proses development aplikasi tidak hanya cepat, namun juga aman.
Dari kedua video tersebut, saya mempelajari apa saja vulnerability yang ada pada tiap tahapan DevOps Lifecycle serta bagaimana cara melakukan mitigasinya. Dari video tersebut juga saya belajar bagaimana cara menerapkan SAST dan Docker image scanning ke dalam CI/CD pipeline.
Setelah mendapatkan pengetahuan tersebut, saya langsung memperbaiki pipeline CI yang saya tulis di GitHub Action untuk repository saya. Pada pipeline tersebut saya menerapkan SAST dan Docker Image Scanning, serta mengekspor report yang dihasilkan oleh scanner tersebut.
name: CI
on: [push]
jobs:
sast_test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: "8.5"
- name: Install progpilot
run: composer require designsecurity/progpilot
- name: Run progpilot scan
run: vendor/bin/progpilot .
build_and_test_image:
needs: sast_test
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup Docker
uses: docker/setup-buildx-action@v3
- name: Set short SHA
run: echo "SHORT_SHA=${GITHUB_SHA:0:7}" >> $GITHUB_ENV
- name: Build image
run: docker build -f Dockerfile -t ${{ vars.DOCKERHUB_REPO }}:${{ env.SHORT_SHA }} .
- name: Setup Docker Scout
run: |
curl -fsSL https://raw.githubusercontent.com/docker/scout-cli/main/install.sh -o install-scout.sh
sh install-scout.sh
echo ${{ secrets.DOCKER_PWD }} | docker login -u ${{ secrets.DOCKER_USERNAME }} --password-stdin
docker scout quickview ${{ vars.DOCKERHUB_REPO }}:${{ env.SHORT_SHA }}
docker scout cves --only-severity critical,high --format sarif --output docker-scout-report.json ${{ vars.DOCKERHUB_REPO }}:${{ env.SHORT_SHA }}
- name: Upload artifact
uses: actions/upload-artifact@v7
with:
name: Docker Scout findings
path: docker-scout-report.json Kode di atas merupakan konfigurasi pipeline CI yang saya buat untuk repository saya. Saya menggunakan progpilot untuk melakukan SAST scan terhadap kode php saya. Selanjutnya saya membangun docker image dan melakukan scan terhadapnya menggunakan Docker Scout.
Gambar di atas merupakan hasil dari workflow CI yang di jalankan. Workflow tersebut menghasilkan report dari Docker Scout. Yang belum di tambahkan adalah report finding dari SAST test dan melakukan push image ke registry.
Get Keenan Emzed’s stories in your inbox
Join Medium for free to get updates from this writer.
Kesimpulan
Mempelajari konsep DevSecOps membuat pandangan saya terhadap security vulnerability menjadi berbeda. Mindset yang sebelumnya saya pegang, kini berubah menjadi “Saya harus memastikan bahwa seluruh tahapan dari SDLC ini menjadi aman”.
Mengembangkan aplikasi dengan cepat dan andal tidaklah cukup, kita juga harus memperdulikan sisi keamanan dari aplikasi yang kita buat. Tidak hanya aplikasi, lingkungan tempat aplikasi dibuat dan dijalankan juga harus aman. Hal-hal tersebut merupakan upaya untuk mencegah dan menutup celah terjadinya serangan siber. Apabila kita mengesampingkan security dari awal, maka akan ada harga besar yang perlu dibayar di akhir.
Key Takeaways
- Security bukan lagi dianggap sebagai langkah terakhir sebelum deployment. Security harus diterapkan di seluruh bagian SDLC
- Lebih baik menemukan vulenrability pada saat proses development daripada menemukannya di production
Terimakasih telah membaca blog saya. Tolong berikan claps untuk bantu memberikan semangat kepada saya. Apabila anda memiliki kritik dan saran atau insight tambahan, tolong respond blog ini, saya dengan senang hati menerima.
Lets Connect: Keenan Muhammad Otthmar Emzed | LinkedIn






