Sensitive File Exposure: Mengenal Private SSH Key Disclosure

Apa Itu Private SSH Key Disclosure?

Private SSH Key Disclosure adalah situasi ketika kunci privat SSH (misalnya id_rsa, id_ed25519, atau file .pem) terekspos kepada pihak yang tidak berwenang. SSH key sendiri berfungsi sebagai mekanisme autentikasi yang lebih aman dibanding password biasa.

Jika kunci privat ini bocor, maka seorang penyerang dapat mengakses server tanpa perlu password, selama kunci publiknya masih terdaftar di server target. Itulah sebabnya kasus ini dikategorikan sebagai Sensitive File Exposure yang sangat berbahaya.


Mengapa Private SSH Key Sangat Sensitif?

Private SSH key adalah “identitas digital” seorang user atau server. Dalam model public key cryptography, ada dua komponen:

Public Key (id_rsa.pub) → bisa disebarkan ke server untuk autentikasi.

Private Key (id_rsa) → harus dirahasiakan, karena digunakan untuk “membuktikan identitas”.

Bayangkan private key seperti kunci rumah utama. Jika kunci ini hilang atau terekspos, siapa pun bisa masuk tanpa izin.


Dampak Private SSH Key Disclosure

  1. Akses Tanpa Password
    Attacker dapat langsung login ke server dengan perintah: ssh -i id_rsa [email protected] Tanpa perlu tahu password.
  2. Privilege Escalation
    Jika key milik akun dengan hak akses tinggi (misalnya root), maka server sepenuhnya berada di bawah kendali attacker.
  3. Data Breach
    Semua data sensitif seperti database, file konfigurasi, bahkan kredensial lain bisa dicuri.
  4. Penyebaran ke Server Lain (Lateral Movement)
    Banyak administrator menggunakan key yang sama di beberapa server. Jika satu kunci bocor, attacker bisa menggunakannya untuk menembus seluruh jaringan.
  5. Pintu Belakang (Backdoor)
    Attacker bisa menambahkan public key mereka ke file ~/.ssh/authorized_keys, sehingga tetap bisa masuk meski password diganti.

Penyebab Umum Private SSH Key Bocor

  1. Upload ke Repository Publik
    Banyak developer tidak sengaja commit file .ssh/id_rsa ke GitHub atau GitLab.
  2. Permission File Salah
    Private key seharusnya hanya bisa diakses oleh pemilik. Jika permission salah, user lain di server bisa membacanya.
  3. Backup File Bocor
    File backup (.zip, .tar.gz) yang berisi folder .ssh/ kadang ditempatkan di direktori publik.
  4. Exposure Melalui Log
    Beberapa aplikasi secara tidak sengaja menulis private key ke dalam file log.
  5. Misconfiguration pada Cloud Storage
    Private key tersimpan di bucket AWS S3 atau Google Cloud Storage yang diatur sebagai “public”.

Studi Kasus Nyata

  • GitHub Leak 2019
    Ribuan private SSH key ditemukan di repository publik akibat human error. Banyak di antaranya milik perusahaan besar.
  • AWS Key Exposure
    Ada kasus ketika private key developer tersimpan di S3 bucket tanpa proteksi. Hasilnya, attacker bisa mengakses infrastruktur cloud.
  • Incident di Layanan Hosting
    Salah satu provider hosting pernah mengalami kebocoran file backup yang berisi .ssh/. Akibatnya banyak server pelanggan bisa diakses tanpa autentikasi tambahan.

Kasus-kasus ini membuktikan bahwa private SSH key disclosure bukan sekadar teori, tapi ancaman nyata.


Cara Deteksi Kebocoran Private SSH Key

  1. Pencarian Manual
    Cari file .ssh/id_rsa atau string BEGIN OPENSSH PRIVATE KEY di repository atau server.
  2. Google Dorking "BEGIN OPENSSH PRIVATE KEY" site:github.com
  3. Gunakan Tools Security
  4. Audit Permission File ls -l ~/.ssh/id_rsa Permission yang benar harusnya: -rw------- 1 user user 1675 Aug 24 id_rsa

Tutorial: Cara Mengamankan Private SSH Key

1. Gunakan Permission File yang Tepat

chmod 600 ~/.ssh/id_rsa
chmod 700 ~/.ssh

Artinya hanya pemilik file yang bisa membaca dan menulis.


2. Jangan Pernah Upload ke GitHub Publik

Tambahkan .gitignore:

# Ignore SSH keys
*.pem
id_rsa
id_rsa.pub

3. Gunakan Passphrase

Saat membuat key baru:

ssh-keygen -t rsa -b 4096 -C "[email protected]"

Tambahkan passphrase agar lebih aman jika file key dicuri.


4. Rotasi Key Secara Berkala

  • Buat key baru setiap periode tertentu.
  • Hapus key lama dari authorized_keys.
  • Simpan key baru di lokasi aman.

5. Gunakan SSH Agent

Jangan simpan key di file teks biasa. Gunakan agent:

eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_rsa

6. Putuskan Kunci yang Bocor

Jika sudah terlanjur bocor:

  • Hapus kunci lama dari server (~/.ssh/authorized_keys).
  • Buat kunci baru dengan passphrase lebih kuat.
  • Audit log untuk deteksi aktivitas mencurigakan.

7. Monitoring & Alert

  • Gunakan SIEM untuk mendeteksi login mencurigakan.
  • Pasang alert jika ada perubahan di file .ssh/authorized_keys.
  • Gunakan tools seperti Fail2Ban untuk memblokir brute force login.

Best Practices Industri

  1. Gunakan Manajemen Kunci Terpusat (misalnya HashiCorp Vault).
  2. Hindari Reuse Key di banyak server.
  3. Audit Berkala repository, server, dan cloud storage.
  4. Gunakan MFA (Multi-Factor Authentication) jika memungkinkan.
  5. Isolasi Lingkungan Development agar tidak bercampur dengan production.

Kesimpulan

Private SSH Key Disclosure adalah ancaman serius yang bisa memberi akses penuh ke server tanpa password.

  • Penyebab: human error, permission salah, hingga misconfiguration.
  • Dampak: akses ilegal, data breach, dan pengambilalihan server.
  • Solusi: set permission yang benar, gunakan passphrase, monitoring aktif, dan rotasi key secara rutin.

Dengan kesadaran dan penerapan praktik keamanan yang baik, risiko kebocoran SSH key bisa diminimalisir.

BACA JUGA

Panduan Cyber Security untuk Pemula

SQL Injection dan Cara Patch

Avatar

By Svnsec