Mengamankan Source Code Go kita menggunakan gosec

Budiaramdhan Rindi
3 min readJul 3, 2023

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:

  1. Rule Issue yang kena. Contoh di atas yaitu, G114 (CWE-676).
  2. Tingkatan confidentialnya. Ada HIGH, MEDIUM, LOW
  3. Tingkatan Severitynya. Ada HIGH, MEDIUM, LOG
  4. 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!

--

--

Budiaramdhan Rindi

Currently work as Coder since 2011 and still have to learn. Dota 2 and Football Manager are the games I still play to stay fresh.