PassDetective: Shell Geçmişinizdeki Parolaları ve Secret'ları Tespit Etmek
Shell command history’nizde yanlışlıkla yazdığınız parolalar, API key’ler veya secret’lar olabilir. Bu bilgiler history dosyanızda saklanıyor ve güvenlik riski oluşturuyor. PassDetective, shell geçmişinizi tarayarak bu tür hassas bilgileri tespit eden bir komut satırı aracı. Hem Kali Linux’ta hem de NixOS’ta kullanılabilen bu araç, düzenli ifadeler kullanarak komut geçmişinizdeki potansiyel güvenlik açıklarını belirlemenize yardımcı oluyor.
PassDetective Nedir?
PassDetective, Go programlama dili ile yazılmış bir güvenlik aracı. Temel amacı, shell command history dosyalarınızı (ZSH ve Bash) tarayarak yanlışlıkla yazılmış parolaları, API key’leri ve diğer hassas bilgileri tespit etmek. Araç, güçlü regex pattern’leri kullanarak 40’tan fazla farklı secret tipini tanıyabiliyor.
Araç şu ana kadar GitHub’da 141 star topladı ve güvenlik topluluğu tarafından yaygın olarak kullanılıyor. Ayrıca Kali Linux’un resmi araçları arasında yer alıyor ve NixOS paket deposunda da mevcut.
Neden PassDetective?
Günlük kullanımda shell’de çalışırken, bazen parolaları veya API key’leri komut satırına yazmak zorunda kalıyoruz. Örneğin:
curl -u username:password123 https://api.example.com
Bu tür komutlar shell history’nize kaydediliyor ve .zsh_history veya .bash_history dosyalarında saklanıyor. Eğer bu dosyalar bir şekilde erişilebilir hale gelirse (örneğin bir backup’ta veya paylaşılan bir sistemde), hassas bilgileriniz açığa çıkabilir.
PassDetective, bu riski minimize etmek için history dosyalarınızı düzenli olarak tarayıp potansiyel tehlikeleri tespit ediyor. Böylece hassas bilgileri bulup gerekli önlemleri alabiliyorsunuz.
Kurulum
Kali Linux
PassDetective, Kali Linux’un resmi paket deposunda mevcut. Kurulum için:
sudo apt install passdetective
NixOS
NixOS’ta PassDetective’i kurmak için:
nix-env -iA nixpkgs.passdetective
Veya configuration.nix dosyanızda:
environment.systemPackages = with pkgs; [
passdetective
];
Go ile Kurulum
Kaynak koddan kurulum yapmak isterseniz:
go install github.com/aydinnyunus/PassDetective@latest
Kullanım
PassDetective’in temel kullanımı oldukça basit. Araç, extract komutu ile shell history dosyalarınızı tarayabiliyor.
Yardım Menüsü
Önce aracın tüm seçeneklerini görmek için:
PassDetective -h

Shell History Analizi
ZSH history’nizi taramak için:
PassDetective extract --zsh
Bash history’nizi taramak için:
PassDetective extract --bash
Her iki shell history’yi de taramak için:
PassDetective extract --all

Secret Tespiti
PassDetective, sadece parolaları değil, aynı zamanda API key’leri ve diğer secret’ları da tespit edebiliyor. Secret taraması için:
PassDetective extract --secrets --zsh
veya
PassDetective extract --secrets --bash

Tespit Edilen Secret Tipleri
PassDetective, aşağıdaki gibi birçok farklı secret tipini tespit edebiliyor:
- Cloudinary URL’leri:
cloudinary://ile başlayan URL’ler - Firebase URL’leri:
firebaseio.comiçeren URL’ler - Slack Token’ları:
xox[p|b|o|a]-formatındaki token’lar - RSA Private Key’ler:
-----BEGIN RSA PRIVATE KEY-----ile başlayan key’ler - SSH Private Key’ler: DSA, EC ve PGP private key’ler
- AWS Access Key ID’leri:
AKIA[0-9A-Z]{16}formatındaki key’ler - Google API Key’leri:
AIza[0-9A-Za-z\\-_]{35}formatındaki key’ler - GitHub Token’ları: GitHub API token’ları
- Stripe API Key’leri:
sk_live_ile başlayan key’ler - Twilio API Key’leri:
SK[0-9a-fA-F]{32}formatındaki key’ler - URL’lerdeki Parolalar:
https://username:password@example.comformatındaki URL’ler
Ve daha fazlası. PassDetective, secret-regex-list projesinden regex pattern’lerini kullanıyor.
Pratik Kullanım Senaryoları
Senaryo 1: Düzenli Güvenlik Kontrolü
Güvenlik açısından, shell history dosyalarınızı düzenli olarak taramak iyi bir pratiktir. Örneğin, aylık bir kontrol için:
PassDetective extract --all --secrets
Bu komut, hem ZSH hem de Bash history’nizi tarayıp tüm secret’ları tespit eder.
Senaryo 2: Yeni Bir Projeye Başlamadan Önce
Yeni bir projeye başlamadan önce, mevcut shell history’nizde hassas bilgi olup olmadığını kontrol edebilirsiniz:
PassDetective extract --zsh --secrets
Senaryo 3: Sistem Temizliği
Bir sistemden ayrılmadan önce veya bir backup oluşturmadan önce, history dosyalarınızı temizlemek istiyorsanız, önce ne tür hassas bilgiler olduğunu görmek için PassDetective kullanabilirsiniz.
Güvenlik Önerileri
PassDetective kullanırken dikkat edilmesi gereken birkaç nokta:
-
History Dosyalarını Temizleme: PassDetective sadece tespit ediyor, temizlemiyor. Tespit edilen hassas bilgileri manuel olarak temizlemeniz gerekiyor.
-
Düzenli Tarama: Shell history’nizi düzenli olarak tarayın. Özellikle production sistemlerinde çalışırken.
-
Backup Kontrolü: Backup’larınızı oluşturmadan önce history dosyalarınızı kontrol edin.
-
Alias Kullanımı: PassDetective, shell config dosyalarınızdaki alias’ları da kontrol ediyor. Bu sayede alias’larda saklanan hassas bilgileri de tespit edebiliyor.
Sonuç
PassDetective, shell command history’nizdeki hassas bilgileri tespit etmek için kullanışlı bir araç. Hem Kali Linux’ta hem de NixOS’ta kolayca kurulup kullanılabiliyor. Düzenli olarak kullanıldığında, yanlışlıkla history’ye yazılmış parolaları ve secret’ları bulmanıza yardımcı oluyor.
Araç açık kaynak ve GitHub’da aktif olarak geliştiriliyor. Daha fazla bilgi ve kaynak kod için GitHub deposunu ziyaret edebilirsiniz.
İlgili İçerikler: