Mengorek Secuil Informasi Sensitif dari GitHub

GitHub merupakan layanan web hosting untuk git repositori. Kalau saya biasa menyebutnya sebagai social coding. Karena didalamnya terdapat banyak sekali software-software yang terbuat atas bantuan dari para penggiat Open Source. Dari mulai project berbasis Web sampai project berbasis mesin ada.

Pada proses commit dan push code ke GitHub, kadang kita melakukan kecerobohan atau mungkin keteledoran. Apa itu? Ya, informasi sensitif yang kita tinggalkan. Informasi tersebut bisa berupa banyak hal, mungkin bisa berupa password, akun, atau kredensial informasi lainnya yang dimana bisa menjadikan abuse atau penyalahgunaan.

Pada pembahasan kali ini, kita akan memanfaatkan kecerobohan dan keteledoran yang dilakukan. Kita akan menggunakan Gitrob sebagai alat untuk melakukan uji coba dan pencarian informasi sensitif yang berada pada repo publik. Sebelum memulai, saya perlu ingatkan bahwa apa yang akan dilakukan hanya untuk pelajaran dan Do with your own risk :p

Jadi apa itu Gitrob?

Gitrob merupakan sebuah CLI tool yang ditujukan kepada organisasi atau security professional untuk melakukan pencarian informasi sensitif yang terdapat pada berkas yang tersedia dalam publik repositori. Gitrob ini akan melakukan keseluruhan pencarian terhadap suatu repositori yang terdapat dalam organisasi ataupun repositori pada setiap member organisasi yang bersifat publik repositori dan melakukan pencocokan dengan pattern Gitrob yang sudah dikategorikan termasuk kedalam informasi sensitif.

Sebelum melakukan instalasi terhadap Gitrob, ada beberapa hal yang harus diperhatikan.

Requirements

  • Ruby 1.9.3+
  • RubyGems
  • PostgreSQL
  • GitHub Access Tokens

Install Ruby & Rubygems

Karena Gitrob ini ditulis dalam bahasa Ruby, pastikan kamu sudah memasang Ruby pada mesin yang akan dipakai. Kalau belum, lakukan pemasangan terlebih dahulu seperti yang ada pada halaman berikut https://www.ruby-lang.org/en/documentation/installation/ . Untuk memastikan versi Ruby mana yang sedang berjalan, lakukan ruby –version untuk melakukan cek versi. Pastikan versi Ruby yang terpasang adalah 1.9.3 atau diatasnya.

Gitrob pun dipaketkan sebagai Ruby gem untuk memudahkan proses pemasangan atau pembaruan. Kalau di ArchLinux ketika melakukan pemasangan ruby sudah disertakan juga rubygems. Tapi kalau kurang yakin, cek saja dengan menggunakan gem -v. Setelahnya, kita lakukan pembaruan terhadap paket ruby yang terpasang dengan melakukan perintah:

Bila dua langkah diatas sudah selesai dan berjalan dengan lancar, maka kita lanjutkan ke langkah selanjutnya.

Mempersiapkan Database

Gitrob menggunakan PostgreSQL sebagai database untuk melakukan penyimpanan keseluruhan data yang sudah didapatkan. Berikut daftar panduan pemasangan PostgreSQL sesuai distro yang digunakan:

Gitrob juga membutuhkan dependensi PostgreSQL. Lakukan pemasangan untuk paket berikut juga:

Setelah selesai pada tahap pemasangan database, pastikan bahwa service postgresql sudah berjalan. Selanjutnya kita perlu mengatur user dan database yang akan dipakai untuk Gitrob dengan perintah berikut:

Nah, sekarang kita sudah memiliki database dengan nama gitrob serta user gitrob dan password sesuai dengan yang sudah kita masukkan sebelumnya. Kita pun sudah memberikan hak akses kepada user gitrob terhadap database gitrob.

Github Access Tokens

Gitrob ini bekerja dengan cara melakukan query terhadap Github API untuk mendapatkan data, jadi kita membutuhkan access token untuk menjalankan aplikasi ini agar terhindar dari rate limit saat melakukan query terhadap API. Untuk membuat token nya sangat mudah, cukup ke halaman https://github.com/settings/tokens dan klik Generate New Token, pastikan kamu sudah memiliki akun GitHub dan sedang dalam keadaan login.

Karena kita hanya akan melakukan scanning terhadap public repo, jadi kita tidak perlu memberikan akses apapun terhadap tokens yang akan kita buat ini. Disini saya akan menamai dengan Gitrob-tutorial-tokens seperti gambar berikut:

Gitrob Tutorial Tokens
Gitrob Tutorial Tokens

Klik Generate Token, dan kita akan disuguhkan dengan peringatan Make sure to copy your new personal access token now. You won’t be able to see it again!. Nah, simpan baik-baik token yang diberikan, karena itu yang akan kita gunakan nantinya. Maka akan muncul token baru seperti berikut :

Ok, token sudah kita dapatkan. Lanjut ke langkah pemasangan Gitrob itu sendiri.

Pemasangan Gitrob

Setelah semua proses sebelumnya selesai. Sekarang saatnya kita melakukan pemasangan terhadap Gitrob.

Yey! kita sudah berhasil melakukan pemasangan Gitrob. Lakukan perintah gitrob -h untuk mengetahui apa saja help yang tersedia. Bagi yang menggunakan versi terbaru dari paket github_api-0.14.5 dan mendapatkan pesan error seperti berikut saat menjalankan Gitrob:

Maka cukup lakukan perubahan terhadap berkas  client.rb yaitu dengan cara melakukan comment pada bagian namespace :say seperti berikut:

Kalau sudah selesai, tahap selanjutnya adalah melakukan konfigurasi terhadap Gitrob itu sendiri:

Gitrob Configure
Gitrob Configure

Informasi yang kita masukkan pada configuration wizard akan tersimpan di ~/.gitrobrc . Ok, Gitrob sudah terpasang dan terkonfigurasi, saatnya kita jalankan Gitrob.

Kita dapat melakukan analyze terhadap single user GitHub ataupun Organization dengan perintah:

Pada kasus ini, kita akan melakukan pencarian terhadap organisasi yang dimana saya sudah mendapatkan ijin untuk dijadikan sebagai target pada pembahasan kali ini.

Secara default, saat melakukan analyze akan menjalankan pula web server, jadi kita tidak perlu menjalankan web server lagi. Dari hasil yang kita peroleh bahwa ada 2 berkas yang mengandung informasi sensitif dari 2 repositori.

Buka laman http://127.0.0.1:9393/ untuk melihat hasil dari yang sudah kita dapatkan. Maka akan terlihat seperti berikut:

Gitrob Main Web
Gitrob Main Web

Klik pada Organization/User untuk melihat informasi lebih lengkap. Maka, akan muncul beberapa berkas dan repositori yang diidentifikasikan mengandung informasi sensitif.

Gitrob FIndings Result
Gitrob Findings Result

Bila kita klik salah satu, maka akan menampilkan bagian mana yang dianggap sebagai informasi sensitif oleh Gitrob:

Gitrob Informasi Sensitif
Gitrob Informasi Sensitif

Hore! kita sudah memasuki akhir dari pembahasan tentang Gitrob ini. Ingat, artikel ini tidak ditujukan untuk tujuan selain sebagai bahan pembelajaran. Baiknya bila kita menemukan informasi sensitif langsung dilaporkan ke pihak yang terkait. Semoga artikel ini bermanfaat.

Aan Wahyu

Aan Wahyu

Hanya seorang penyuka Wayang( Terutama Wayang Golek) dan penggiat Open Source serta penikmat dan pembuat puisi. Saat ini memakai distro Arch Linux sebagai OS yang digunakan untuk kebutuhan sehari-hari. Founder dari Sinau Development. Tertarik dengan Research Development dan Non-Profit Organization yang bersifat Open Source dan juga sebagai kontributor di RumahVOIP serta Indonesian Research and Development Center( RNDC ) dan aktif juga diforum Open Source lainnya.
Aan Wahyu