Github Remove Password

Tidak perlu kemampuan khusus, tidak pelu tools yang canggih, hanya bermodal kata kunci, kita sudah bisa mencuri password dan token API di Github. Teknik ini mirip seperti Google Dork.

Peringatan: Tulisan ini bukan untuk mengajarkan anda menjadi pencuri dan melakukan perusakan, melainkan untuk berbagi pengetahuan. Agar developer semakin teliti dan berhati-hati dalam melakukan commit.

Password dan Token API dalam Kode

Bayangkan kita lagi mengerjakan proyek web dengan PHP. Nanti kalau sudah jadi, kodenya akan kita sebar di Github dengan repositori publik.

Lalu, ditengah-tengah penulisan kode ini, kita melakukan testing dengan konfigurasi production dari server yang sudah kita sewa. Kira-kira konfigurasinya akan seperti berikut ini.

<?php
// file: config.php

$dbhost = "mysql.petanikode.com";
$dbuser = "petanikode";
$dbpass = "kopi";
$dbname = "petanikode_web";

$api_token = "09vasd9a7sdny7asdwqmnbe";

Kemudian kita melakukan commit.

git add .
git commit -m "blablablabla"

Beberapa saat kemudian, kode sudah hampir jadi dan siap untuk dipublikasikan ke Github. Lalu kita menghapus password pada konfigurasi yang tadi, agar tidak diketahui orang.

<?php
// file: config.php

$dbhost = "YOUR DB HOST";
$dbuser = "YOUR DB USERNAME";
$dbpass = "YOUR DB PASS";
$dbname = "YOUR DB NAME";

$api_token = "YOUR API KEY";

Setelah itu melakukan commit lagi.

git add .
git commit -m "remove password"

Kemudian melakukan push.

git push origin master

Nah! Di sinilah letak kesalahan fatalnya.

Tunggu sebantar, maksudnya apa? Saya kan sudah menghapus password dan token API dalam kode. Kesalahan fatal bagaimana maksudnya?

Berburu Password dan Token API di Github

Berdasarkan kronologi cerita di atas, si Developer secara tidak sadar sudah menyebar password dan token API-nya di Github. Perhatikan saja pada commit “remove password”. Pada saat itu dilakukan, Git akan menyimpan perubahan yang ia lakukan.

Lalu seseorang mencari di Github dengan kata kunci “remove password”, dan boom! Lihatlah apa yang ditemukan.

Pencaraian Commit Password

Coba lihat salah satu.

Password yang dibagikan di Github

Lihat, sekarang sudah tahu kan kesalahan fatalnya. Oke, mari kita coba tes.

Testing server hasil curian

Whihihi 😄 bisa.

Kata Kunci yang Lain

  • add password
  • add .env
  • remove .env
  • delete .env
  • rm .env
  • remove secrets
  • hapus password
  • DriverManager.getConnection(
  • password extension:yaml extension:yml extension:json
  • remove password extension:php
  • I don’t know
  • remove credentials
  • Root password
  • Hide password
  • remove api key
  • dll.

Solusi

Sebenarnya isu ini sedang ramai diperbincangkan di Hacker News. Orang-orang HN mengomentari commit yang dilakukan seperti di atas.

Komentar dari komunitas HN

Solusi yang mereka tawarkan diantaranya:

Penutup

Sekarang kita sudah tahu, bagaimana cara pencurian password dan token API di Github. Setidaknya kita bisa berhati-hati agar tidak melakukan kesalahan seperti di atas. Bayangkan kalau password server production yang kita sebar itu milik perusahaan atau pemerintah, apa yang akan terjadi?

Referensi: HN