Mengamankan Source Code Go kita menggunakan gosec
Latar Belakang Masalah
Penulis setiap membuat suatu code menggunakan bahasa pemrograman golang, selalu bertanya-tanya, ini apakah secure ya? Ini aman ga ya?
Sebelumnya untuk styling, kita terbantukan oleh golangci-lint
. Mungkin ini akan saya buatkan artikel lanjutan untuk membahas golangci-lint
ini. Tetapi untuk security issues? Apakah ada yang bisa membantu kita?
Tentu saja jawabannya setelah sekian purnama adalah gosec
.
Teman-teman bisa mengunjungi github ofisial dari gosec
ini disini
gosec
mengklaim dapat membantu kita dalam pengecekan terkait security code kita. Ternyata, di golang pun punya standarisasi terkait keamanan ini, yang mungkin kita sering skip terkait hal ini, karena fokus mengejar deadline delivery product. Untuk catatan lengkap terkait rule yang sbeaiknya diterapkan ada di sini.
Tanpa berlama-lama lagi, saya akan demokan cara penggunaan gosec
pada source code go kita.
Instalasi
Sebelumnya, pastikan sudah menginstall golang di komputer kita. Untuk mengeceknya bisa gunakan go version
di terminal kita.
Untuk pengguna homebrew, bisa menggunakan CLI
brew install gosec
Tunggu beberapa saat untuk proses instalasinya. Untuk pengguna di luar homebrew, bisa mengikuti langkah-langkah pada repository gosec
nya, ya.
Untuk pengecekan instalasi berhasil, kita dapat mengeksekusi which gosec
.
Penggunaan
gosec
ini layaknya golangci-lint
untuk cara penggunaannya, yaitu dengan mengeksekusi gosec ./...
pada folder source code go kita. Berikut hasilnya jika kita mengeksekusi.
Indikator security-nya ada pada Summary section. Disini terlihat bahwa Issues : 0 (angka 0 berwarna hijau), yang berarti tidak ada security issue yang terjadi. Tetapi, apabila muncul Issues lebih dari 0, maka ada issue security yang hadir di source code kita. Contohnya seperti ini.
Terlihat bahwa ada issue yang muncul. Issue yang muncul akan dijelaskan mengenai:
- Rule Issue yang kena. Contoh di atas yaitu, G114 (CWE-676).
- Tingkatan confidentialnya. Ada HIGH, MEDIUM, LOW
- Tingkatan Severitynya. Ada HIGH, MEDIUM, LOG
- Dimana issue itu muncul. Dimunculkan LOC-nya, beserta codenya.
Penanggulangan Issue yang muncul
Untuk penanggulangan issue yang muncul, tentu saja kita googling saja gais!
Karena kita sudah memegang code issue-nya apa, maka kita bisa googling code issue itu. Contohnya, penulis search issue yang muncul, ditambah di sebelumnya ada keyword golang
.
Saya sarankan membaca artikel dari DeepSource.com, karena sangat mudah dipahami cara solvingnya. Disana dijelaskan bahwa ada Bad Practice dan Recommended.
Sekian dari penulis. Semoga membantu meningkatkan performa level source code kita, agar lebih secure lagi. See you in the next article!