author Ahmad Muhardian

Bahaya! Password dan Token API Bisa Dicuri dengan Sangat Mudah di Github


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

Baca Juga ini

Tutorial Git #4: Melihat Catatan Log Revisi

Tutorial Git #4: Melihat Catatan Log Revisi

Pada tutorial sebelumnya, kita sudah membuat dua revisi pada repositori project-01. Sekarang bagaimana caranya kita melihat catatan log dari revisi-reivisi tersebut? Git sudah menyediakan perintah git log untuk melihat catatan log perubahan pada respositori. Contoh penggunaannya: git log Maka kita akan melihat log perubahan apa saja yang sudah dilakukan dalam repositori. Pada gambar di atas, terdapat dua revisi perubahan yang telah dilakuan. Log yang Lebih PendekUntuk menampilkan log yang lebih pendek, kita bisa menambahkan argumen --oneline.

Tutorial Git #3: Simpan Perubahan Revisi dengan Git Commit

Tutorial Git #3: Simpan Perubahan Revisi dengan Git Commit

Pada tutorial Git yang kedua, kita sudah membuat repositori kosong. Belum ada apa-apa di sana. Sekarang coba tambahkan sebuah file baru. Sebagai contoh, saya akan menambahkan tiga file HTML kosong. Setalah ditambahkan, coba ketik perintah git status untuk melihat status repositorinya. Berdasarkan keterangan di atas, saat ini kita berada cabang (branch) master dan ada tiga file yang belum ditambahkan ke Git. Tiga Kelompok Kondisi File dalam GitSebelum kita membuat revisi, kita akan berkenalan dulu dengan tiga kondisi file dalam Git.

Tutorial Git #2: Cara Membuat Repositori Baru dalam Proyek

Tutorial Git #2: Cara Membuat Repositori Baru dalam Proyek

Repositori (repository) dalam bahasa indonesia artinya gudang. Repositori merupakan istilah yang digunakan untuk direktori proyek yang menggunakan Git. Jika kita memiliki sebuah direktori dengan nama proyek-01 dan di dalamnya sudah menggunakan git, maka kita sudah punya repositori bernama proyek-01. Membuat RepositoriPembuatan repositori dapat dilakukan dengan perintah git init nama-dir. Contoh: git init proyek-01 Perintah tersebut akan membuat direktori bernama proyek-01. Kalau direktorinya sudah ada, maka Git akan melakukan inisialisasi di dalam direktori tersebut.

Tutorial Git #1: Cara Install Git dan Konfigurasi Awal yang Harus Dilakukan

Tutorial Git #1: Cara Install Git dan Konfigurasi Awal yang Harus Dilakukan

Kita sudah mengenal Git pada tulisan sebelumnya. Selanjutnya Kita akan melakukan instalasi dan persiapan untuk mulai belajar Git. Tulisan ini terbagi menjadi tiga bagian: Cara Instalasi Git di Linux. Cara Instalasi Git di Windows. Konfigurasi Awal yang Harus dilakukan Setelah Menginstal Git. Mari kita mulai… 1. Cara Install Git di LinuxInstalasi Git pada Distro keluarga Debian dapat menggunakan perintah apt. sudo apt install git atau sudo apt-get install git Pada Fedora:

Apa itu Git dan Kenapa Penting bagi Programmer?

Apa itu Git dan Kenapa Penting bagi Programmer?

Git adalah salah satu tool yang sering digunakan dalam proyek pengembangan software. Git bahkan menjadi tool yang wajib dipahami oleh programmer, karena banyak digunakan di mana-mana. Pada kesempatan ini kita akan belajar Git dari dasar. Artikel ini hanya akan membahas pengenalan Git saja. Untuk mempelajari Git lebih lanjut, saya sudah menyediakan link di bagian akhir. Mengenal GitGit adalah salah satu sistem pengontrol versi (Version Control System) pada proyek perangkat lunak yang diciptakan oleh Linus Torvalds.

Cara Membuat Bot Telegram Simsimi dengan Layanan Webhook Hook.io

Cara Membuat Bot Telegram Simsimi dengan Layanan Webhook Hook.io

Simsimi bisa kita pinjam otaknya untuk mengendalikan bot Telegram. Sehingga bot bisa berbicara layaknya simsimi. Kita bisa mengakses kecerdasan Simsimi dengan API Key/Kunci API/Token. Ada dua kunci API/Token yang diberikan oleh simsimi: Kunci Trial (gratis) Kunci Berbayar Kunci trial hanya berlaku 7 hari dengan batasan 100 request/hari. Kalau melewati batas itu, Simsimi tidak mau merespon. Tapi tenang saja, ada triknya. (update: sudah tidak bisa) Nanti saya kasih tahu dibagian akhir panduan ini 😄.