Familyhood Software Component Analysis, Grype x Syft

Muhammad Fajar Masputra

Software Development Life Cycle merupakan aktivitas utama dari sebagian besar industri di era saat ini, terutama apabila bisnis tersebut bergerak di layanan digital atau menghasilkan produk digital. Layanan digital yang mengejar pasar B2C (Business to Customer) atau biasa kita sebut retail, maupun B2B (Business to Business) pasti berlomba-lomba untuk memanjakan customer, partner ataupun client mereka. Termasuk salah satunya jaminan keamanan penggunaan dari produk mereka.

Kebutuhan akan assurance dan cepatnya kebutuhan industri saat ini membuat pengembangan produk digital harus diiringi dengan keamanan (security) sejak awal proses pengembangan. Proses tersebut sering kita istilah Secure Software Development life Cycle (SSDLC). Proses security testing dari SSDLC sendiri sudah sangat bervariasi mulai dari penetration testing, source code review, Static Application Security Testing (SAST), Dynamic Application Security Testing dan lainnya. Pada tulisan ini kami akan membahas salah satu security testing pada keamanan informasi yaitu Dependency Checker using Software Bill of Materials (SBOM).

SBOM sendiri adalah suatu dokumen/manifest yang berisi rincian dari komponen/library yang digunakan dalam membangun aplikasi perangkat lunak. SBOM sendiri digunakan untuk melakukan identifikasi komponen/library yang memiliki kerentanan. SBOM sendiri saat ini memiliki beberapa format dalam implementasi penggunaannya yaitu Tagging Swent, SPDX dan CycloneDX. Format yang sering digunakan dalam praktik SSDLC adalah CycloneDX yang dikelola oleh Open Worldwide Application Security Project® (OWASP).

Sumber Gambar: https://anchore.com/opensource/

Dalam menglola SBOM kali ini kami akan memperkenalkan ‘kakak-beradik’ pengelola SBOM (SBOM Manager) yaitu Syft and Grype. Grype dan Syft merupakan tools yang dikembangkan oleh Achore. Syft merupakan Command Line Tools (CLI) yang digunakan untuk melakukan penelusuran SBOM dari resource aplikasi yang kita miliki. Sedangkan Grype merupakan CLI yang digunakan untuk mengetahui library/komponen apa dari resource kita yang vulnerable. Dalam melakukan analisa Syft masih membutuhkan bantuan aplikasi lain untuk menentukan kerentanan dari suatu resource, Syft dapat dikombinasikan dengan OWASP Dependency-Check atau dengan saudaranya sendiri yaitu Grype dalam hal analisa. Berikut ini adalah proses instalasi dan penggunaan dari Grype dan Syft (Linux Recommended).

Instalasi Grype dan Syft

Contoh Penggunaan Sederhana Grype dan Syft

#1 - Grype

Pada gambar di atas merupakan eksekusi sederhana grype pada folder yang memang berisikan beberapa source code namun, tidak berisikan kerentanan. Command tersebut adalah

grype dir:<letak root folder source code> -o <format output>

Pada Gambar diatas merupakan hasil dari implementasi grype ketika source-code kita memiliki kerentanan pada library/komponen yang digunakan.

#2 - Syft

Perbedaan mendasar antara hasil eksekusi Syft dan Grype adalah bagaimana hasil akhirnya yang dihasilkan, Syft hanya memberikan list atas library/komponen yang digunakan tanpa ada vulnerabilty analysis, sedangkan Grype memberikan analisa kerentanan atas library/komponen terkait. Dalam proses penggunaan Syft, hasil yang didapatkan diakhir adalah file SBOM.

Untuk mendapatkan analisa lebih mendalam, Anda dapat menggunakan Grype atau GUI version dari Dependency-track dari OWASP. SBOM sendiri nantinya akan melakukan analisa atas library/komponen resource yang kita pergunakan dalam pengembangan produk. Syft dan Grype juga dapat dikombinasikan dengan Jenkins atau CI/CD management yang lain agar mempermudah proses testing bagi tim.

Pentingnya analisa library dalam suatu pengembangan juga membantu Perusahaan dalam mengurangi risiko keamanan rantai pasok (supply-chain) dari pengembangan suatu produk, karena tidak bisa kita pungkiri dalam suatu pengembangan produk pasti ada kebutuhan akan penggunaan library/komponen dari pihak ketiga baik yang berbayar ataupun tidak.

Grype dan Syft dapat diimplementasikan dalam memutus rantai keretanan yang dimiliki oleh library/komponen lain, di luar yang dikembangkan oleh Tim Pengembang. Implementasi library/component analysis akan membantu mendeteksi kerentanan sedini mungkin.

Referensi

  1. https://anchore.com/opensource/ (diakses pada 27 Februari 2023)

  2. https://dependencytrack.org/ (diakses pada 27 Februari 2023)

  3. https://github.com/anchore/grype (diakses pada 27 Februari 2023)

  4. https://github.com/anchore/syft (diakses pada 27 Februari 2023)

Tentang Penulis

Muhammad Fajar Masputra - Praktisi Keamanan Informasi

Tertarik pada bidang Cyber Security Operation, IT Audit, IT Governance dan Cloud Security

Last updated