Pemindaian Rahasia dan Kredensial Hardcode
Cegah kunci API dan kata sandi ikut dikomit menggunakan git-secrets, gitleaks, dan hook pre-commit.
Pemindaian Rahasia dan Kredensial Hardcode adalah pelajaran Cyber Security Academy gratis di CoddyKit. Ini adalah pelajaran 3 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Cyber Security Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Cyber Security Academy mencakup 4 pelajaran total.
Masalah Rahasia yang Ditanam Langsung dalam Kode
Pengembang tanpa sengaja melakukan komit terhadap kunci API, kata sandi, kunci privat, dan token ke repositori kode sumber. Setelah masuk ke riwayat git, rahasia tersebut tetap ada meskipun sudah dihapus. Repositori publik dipindai oleh bot dalam hitungan detik setelah dilakukan push.
Apa Saja yang Dikomit
Rahasia umum yang ditemukan dalam repositori:
- Kunci akses AWS (
AKIA...) - Token akses pribadi GitHub
- Kata sandi basis data dalam berkas config
- Kunci API Stripe/pembayaran
- Kunci privat TLS/SSH
- URL webhook Slack
Pengait Prakomit untuk Pencegahan
Cegah rahasia masuk ke git sejak awal:
# Install gitleaks as a pre-commit hook:
pip install pre-commit
# .pre-commit-config.yaml:
repos:
- repo: https://github.com/zricethezav/gitleaks
rev: v8.18.1
hooks:
- id: gitleaksMemindai Repositori yang Sudah Ada
Pindai repos untuk mencari rahasia:
# gitleaks: scan entire git history
gitleaks detect --source . --log-opts="--all"
# truffleHog: high-entropy string + regex detection
trufflehog git file://.
# GitHub secret scanning (automatic for public repos)
# Alerts under Security → Secret scanning alertsPemindaian Rahasia GitHub
GitHub secara otomatis memindai repositori publik untuk mencari pola rahasia yang dikenal (kunci AWS, token GitHub, dan sebagainya), lalu memberi tahu penyedia terkait. Untuk repositori privat, GitHub Advanced Security memperluas kemampuan ini. Penyedia seperti AWS secara otomatis mencabut kunci saat mendeteksi rahasia.
Solusi .gitignore (dan Batasannya)
Menambahkan .env ke .gitignore mencegah komit yang tidak disengaja. Namun, pengembang tetap dapat melakukan komit terhadap rahasia dalam berkas lain, dan .gitignore tidak membantu jika berkas tersebut sudah pernah dikomit. Pertahanan berlapis: gitignore + pengait prakomit + pemindaian CI.
Menggunakan Variabel Lingkungan
Rahasia tidak boleh pernah muncul dalam kode. Gunakan variabel lingkungan yang dimuat saat runtime:
# Python:
import os
api_key = os.environ["API_KEY"]
# Node.js with dotenv (for local dev only):
require("dotenv").config()
const apiKey = process.env.API_KEY
# Never commit .env to gitPengelola Rahasia
Aplikasi produksi sebaiknya menggunakan pengelola rahasia khusus:
- AWS Secrets Manager — rotasi otomatis, akses yang dikendalikan IAM
- HashiCorp Vault — sumber terbuka, untuk perusahaan, dengan banyak backend
- Azure Key Vault / GCP Secret Manager
Rahasia tidak pernah disimpan dalam kode atau variabel lingkungan di disk.
Merotasi Rahasia yang Disusupi
Jika sebuah rahasia terekspos:
- Segera cabut rahasia tersebut (sebelum melakukan penyelidikan)
- Periksa log akses untuk mengetahui penggunaan yang tidak sah
- Buat rahasia baru
- Perbarui semua sistem yang menggunakan rahasia lama
- Hapus dari riwayat git dengan
git-filter-repoatau BFG Repo Cleaner
Menghapus Rahasia dari Riwayat Git
Setelah mencabut rahasia, hapus rahasia tersebut dari riwayat:
# BFG Repo Cleaner (faster than filter-branch):
java -jar bfg.jar --delete-files .env repo.git
git reflog expire --expire=now --all
git gc --prune=now --aggressive
git push --force
# Note: force push rewrites history - coordinate with teamRahasia dalam Alur CI/CD
Sistem CI/CD memiliki pengelolaan rahasianya sendiri:
- GitHub Actions: Rahasia disimpan dalam pengaturan repositori/organisasi → diakses sebagai
${{ secrets.API_KEY }} - GitLab CI: Variabel CI/CD
- Jenkins: pengaya Kredensial
Samarkan rahasia dalam log. Jangan pernah mencetaknya dalam keluaran penelusuran kesalahan.
Pemeriksaan Singkat: Pemindaian Rahasia
Apa pertahanan lini pertama yang paling efektif untuk mencegah rahasia masuk ke repositori?
Rangkuman Pelajaran
Rahasia yang ditanam langsung dalam kode git merupakan risiko kritis — repos publik dipindai oleh bot dalam hitungan detik. Pencegahan: pengait prakomit (gitleaks), gitignore. Deteksi: truffleHog, pemindaian rahasia GitHub. Simpan rahasia dalam variabel lingkungan atau pengelola rahasia khusus (Vault, AWS Secrets Manager). Segera lakukan rotasi saat rahasia terekspos; hapus dari riwayat git dengan BFG Repo Cleaner.
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Pemindaian Rahasia dan Kredensial Hardcode” gratis?
Ya — teks lengkap “Pemindaian Rahasia dan Kredensial Hardcode” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Cyber Security Academy, upgrade ke CoddyKit PRO. Kursus Cyber Security Academy mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Pemindaian Rahasia dan Kredensial Hardcode”?
Cegah kunci API dan kata sandi ikut dikomit menggunakan git-secrets, gitleaks, dan hook pre-commit. Kamu berlatih Cyber Security Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai Cyber Security Academy?
Tidak diperlukan pengalaman sebelumnya. Cyber Security Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 3 dari 4.
Berapa lama pelajaran “Pemindaian Rahasia dan Kredensial Hardcode” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran Cyber Security Academy ini?
Ya. Setiap pelajaran Cyber Security Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- SAST dan DAST dalam Pipeline CI/CD
- Analisis Komposisi Perangkat Lunak (SCA)
- Pemindaian Rahasia dan Kredensial Hardcode
- Security Champion dan Pemodelan Ancaman