Security - bayraktarozcan/Brave-Omega-Project GitHub Wiki
Language / Dil EN English · TR Türkçe
🛡️ Security — Safety Model & Threat Analysis
Brave Omega is designed with a security-first approach. Every design decision prioritizes user safety, transparency, and auditability.
Security Principles
| Principle | Implementation |
|---|---|
| Zero Obfuscation | 100% readable PowerShell source — no encoding, no compression, no hidden logic |
| Zero Network Calls | Script makes zero outbound network connections — fully offline operation |
| Zero Executables | Pure PowerShell — no binaries, no DLLs, no external dependencies |
| Least Privilege | Only requests Administrator for HKLM writes; HKCU/Omaha need no elevation |
| Auditability | Every registry change traceable to official ADMX/Chromium documentation |
Threat Model
| Threat | Mitigation |
|---|---|
| Malicious script modification | Full source on GitHub — verify checksums before running |
| Supply chain compromise | No external dependencies; no package manager; no binary blobs |
| Registry corruption | Automatic .reg backup before any HKLM writes; one-command rollback |
| Partial application | Per-operation try/catch with individual success/failure counters |
| Brave data loss | Process guard detects running Brave, prompts continue/cancel |
| Privilege escalation | Script only requests Admin for HKLM; HKCU/Omaha need no elevation |
| Stale policy application | Version pinning + Brave version check at runtime |
Security Controls
1. Pre-Flight Checks
├─ Administrator privilege verification
├─ Brave process detection (with continue/cancel prompt)
├─ Brave version validation against Compatibility Matrix
├─ Brave version detection (compares against validated version 1.96.59)
└─ Registry path ACL validation
2. Backup Before Write
- Automatic timestamped
.regexport ofHKLM:\SOFTWARE\Policies\BraveSoftware\Brave - Filename:
HKLM_BravePolicy_YYYYMMDD_HHMMSS.reg - Stored in
%TEMP%\BravePolicyBackupfor easy rollback -Resetproduces this backup itself: if either hive cannot be exported, no policy is removed
3. Idempotent Application
-Forceparameter enables safe re-execution- Per-policy try/catch with individual success/failure tracking
- Running multiple times = identical result, no duplicate entries
4. Rollback Capability
# One-command restoration
reg import "$env:TEMP\BravePolicyBackup\HKLM_BravePolicy_20260613_120000.reg"
- Backup includes full HKLM policy hive state
- Restore is atomic and complete
5. Execution Policy Safety (v1.2.2+)
# Single-command bypass — no persistence
PowerShell -ExecutionPolicy Bypass -File ".\BraveOmega.ps1"
- No
Set-ExecutionPolicycall — no permanent registry changes - Bypass applies only to child process — parent shell unaffected
- No attack surface exposure, no residual policy changes
6. Preview Mode (-WhatIf)
# Preview all changes without writing
PowerShell -ExecutionPolicy Bypass -File ".\BraveOmega.ps1" -WhatIf
- No registry writes occur in WhatIf mode
- All operations are guarded by if (-not $WhatIf)
- Backup and directory creation are entirely skipped
- Magenta [WhatIf] tags indicate what would change
7. Clean Uninstall (-Reset)
# Remove all Brave Omega policies
PowerShell -ExecutionPolicy Bypass -File ".\BraveOmega.ps1" -Reset
- Removes all 151 policies from HKLM, HKCU, and Omaha GUIDs
- Cleans up empty registry keys automatically
- Respects -WhatIf silently
Execution Policy Comparison
| Method | Persistence | Scope | Attack Surface | Used? |
|---|---|---|---|---|
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser |
Permanent | User-wide | ❌ High | ❌ No |
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass |
Session | Current process | ⚠️ Medium | ❌ No |
PowerShell -ExecutionPolicy Bypass -File ... |
Single command | Child process only | ✅ None | ✅ Yes |
Backup & Rollback Details
Backup File Format
Filename: HKLM_BravePolicy_YYYYMMDD_HHMMSS.reg
Location: %TEMP%\BravePolicyBackup
Format: Standard Windows REGEDIT4 format
Content: Full HKLM:\SOFTWARE\Policies\BraveSoftware\Brave hive
Rollback Procedure
# 1. Close Brave
# 2. Import backup
reg import "$env:TEMP\BravePolicyBackup\HKLM_BravePolicy_20260613_120000.reg"
# 3. Restart Brave
Manual Rollback (if backup lost)
# Remove HKLM policies
Remove-Item "HKLM:\SOFTWARE\Policies\BraveSoftware\Brave" -Recurse -Force
# Remove HKCU user preferences
Remove-Item "HKCU:\Software\BraveSoftware\Brave-Browser" -Recurse -Force
# Reset Omaha usagestats
Get-Item "HKCU:\Software\BraveSoftware\Update\ClientState\*" | ForEach-Object {
Set-ItemProperty $_.PSPath -Name "usagestats" -Value 1
}
Verification Checklist
Before running, verify:
- Script downloaded from official GitHub release
- SHA256 checksum matches release notes (if provided)
- Running on Windows 11 with latest updates
- Brave Browser latest stable installed
- Brave version matches Compatibility Matrix
- Running PowerShell as Administrator
- No critical applications running that might conflict
Post-Execution Verification
| Check | Method |
|---|---|
| All policies active | brave://policy → policies show Active (51 for Essential level; Chrome runs use chrome://policy) |
| Registry written | Get-ItemProperty HKLM:\SOFTWARE\Policies\BraveSoftware\Brave |
| Backup created | HKLM_BravePolicy_*.reg and HKCU_BraveSoftware_*.reg exist in %TEMP%\BravePolicyBackup |
| No errors in output | Script exits with code 0, no [ERROR] lines |
Incident Response
If unexpected behavior occurs:
- Immediate: Close Brave, import backup via
reg import - Investigate: Review script output for
[ERROR]lines - Report: Open GitHub issue with:
- Brave version (
brave://version) - Windows version (
winver) - Full script output
brave://policypage export
- Brave version (
- Rollback: Use backup or manual removal procedure
Related Pages
- 🔧 Installation — Safe execution procedure
- 🏗️ Architecture — Three-tier model
- 📋 Policy Reference — What policies are applied
- 🔍 Troubleshooting — Common issues
- 🗺️ Roadmap — Planned security enhancements
Test Security Notes (Phase 3)
The Pester test suite at Tests/ follows the same security model:
| Principle | Implementation |
|---|---|
| No live registry writes | Tests use mock paths or -WhatIf mode — no HKLM/HKCU modification |
| No network calls | Tests are fully offline — no internet dependency |
| Isolation | Each test file is self-contained; no cross-file state |
| Inspectable | 100% readable Pester code — no hidden test logic |
| Admin not required | Unit tests run without elevation; integration tests skip if not admin |
🧪 Run
Invoke-Pester -Path .\Tests\to validate the suite before any PR.
🛡️ Güvenlik — Güvenlik Modeli ve Tehdit Analizi
Brave Omega güvenlik öncelikli bir yaklaşımla tasarlanmıştır. Her tasarım kararı kullanıcı güvenliğini, şeffaflığı ve denetlenebilirliği önceliklendirir.
Güvenlik İlkeleri
| İlke | Uygulama |
|---|---|
| Sıfır Gizleme | %100 okunabilir PowerShell kaynağı — kodlama, sıkıştırma veya gizli mantık yok |
| Sıfır Ağ Çağrısı | Betik sıfır giden ağ bağlantısı yapar — tamamen çevrimdışı çalışma |
| Sıfır Çalıştırılabilir | Saf PowerShell — ikili dosya, DLL veya harici bağımlılık yok |
| En Az Ayrıcalık | Yalnızca HKLM yazmaları için Yönetici ister; HKCU/Omaha yükseltme gerektirmez |
| Denetlenebilirlik | Her kayıt defteri değişikliği resmî ADMX/Chromium belgelendirmesine izlenebilir |
Tehdit Modeli
| Tehdit | Önlem |
|---|---|
| Kötü amaçlı betik değişikliği | GitHub'da tam kaynak — çalıştırmadan önce sağlama toplamlarını doğrulayın |
| Tedarik zinciri ihlali | Harici bağımlılık yok; paket yöneticisi yok; ikili dosya yok |
| Kayıt defteri bozulması | HKLM yazmalarından önce otomatik .reg yedeği; tek komutla geri alma |
| Kısmi uygulama | İşlem başına try/catch ile bireysel başarı/hata sayaçları |
| Brave veri kaybı | Süreç koruyucusu çalışan Brave'i tespit eder, devam/iptal istemi gösterir |
| Ayrıcalık yükseltme | Betik yalnızca HKLM için Yönetici ister; HKCU/Omaha yükseltme gerektirmez |
| Güncel olmayan politika uygulaması | Sürüm sabitleme + çalışma zamanında Brave sürümü kontrolü |
Güvenlik Kontrolleri
1. Ön Uçuş Kontrolleri
├─ Yönetici ayrıcalığı doğrulaması
├─ Brave süreç tespiti (devam/iptal istemiyle)
├─ Brave sürümünün Uyumluluk Matrisine karşı doğrulaması
├─ Brave sürüm algılama (doğrulanmış sürüm 1.96.59 ile karşılaştırma)
└─ Kayıt defteri yolu ACL doğrulaması
2. Yazmadan Önce Yedekleme
- Otomatik zaman damgalı
.regdışa aktarımı:HKLM:\SOFTWARE\Policies\BraveSoftware\Brave - Dosya adı:
HKLM_BravePolicy_YYYYMMDD_HHMMSS.reg - Kolay geri alma için
%TEMP%\BravePolicyBackupaltında saklanır -Resetbu yedeği kendisi üretir: iki kovanın da yedeği alınamazsa hiçbir politika kaldırılmaz
3. Kararsız Olmayan Uygulama
-Forceparametresi güvenli yeniden çalıştırmayı sağlar- Politika başına try/catch ile bireysel başarı/hata takibi
- Birden fazla çalıştırma = özdeş sonuç, yinelenen kayıt yok
4. Geri Alma Yeteneği
# Tek komutla eski duruma dönüş
reg import "$env:TEMP\BravePolicyBackup\HKLM_BravePolicy_20260613_120000.reg"
- Yedek, tam HKLM politika kovası durumunu içerir
- Geri yükleme atomik ve eksiksizdir
5. Çalıştırma İlkesi Güvenliği (v1.2.2+)
# Tek komutla bypass — kalıcılık yok
PowerShell -ExecutionPolicy Bypass -File ".\BraveOmega.ps1"
Set-ExecutionPolicyçağrısı yok — kalıcı kayıt defteri değişikliği yok- Bypass yalnızca alt işlem için geçerlidir — üst kabuk etkilenmez
- Saldırı yüzeyi maruziyeti yok, artık politika değişikliği yok
6. Ön İzleme Kipi (-WhatIf)
# Tüm değişiklikleri yazmadan önizle
PowerShell -ExecutionPolicy Bypass -File ".\BraveOmega.ps1" -WhatIf
- WhatIf kipinde kayıt defterine yazma olmaz
- Tüm işlemler if (-not $WhatIf) ile korunur
- Yedekleme ve dizin oluşturma tamamen atlanır
- Macenta [WhatIf] etiketleri neyin değişeceğini belirtir
7. Temiz Kaldırma (-Reset)
# Tüm Brave Omega politikalarını kaldır
PowerShell -ExecutionPolicy Bypass -File ".\BraveOmega.ps1" -Reset
- 151 politikanın tümünü HKLM, HKCU ve Omaha GUID'lerinden kaldırır
- Boş kayıt defteri anahtarlarını otomatik temizler
- -WhatIf'e sessizce saygı duyar
Çalıştırma İlkesi Karşılaştırması
| Yöntem | Kalıcılık | Kapsam | Saldırı Yüzeyi | Kullanıldı mı? |
|---|---|---|---|---|
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser |
Kalıcı | Kullanıcı genelinde | ❌ Yüksek | ❌ Hayır |
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass |
Oturum | Geçerli işlem | ⚠️ Orta | ❌ Hayır |
PowerShell -ExecutionPolicy Bypass -File ... |
Tek komut | Yalnızca alt işlem | ✅ Hiçbiri | ✅ Evet |
Yedekleme ve Geri Alma Ayrıntıları
Yedek Dosyası Biçimi
Dosya adı: HKLM_BravePolicy_YYYYMMDD_HHMMSS.reg
Konum: %TEMP%\BravePolicyBackup
Biçim: Standart Windows REGEDIT4 biçimi
İçerik: Tam HKLM:\SOFTWARE\Policies\BraveSoftware\Brave kovası
Geri Alma Prosedürü
# 1. Brave'i kapat
# 2. Yedeği içe aktar
reg import "$env:TEMP\BravePolicyBackup\HKLM_BravePolicy_20260613_120000.reg"
# 3. Brave'i yeniden başlat
Manuel Geri Alma (yedek kaybolursa)
# HKLM politikalarını kaldır
Remove-Item "HKLM:\SOFTWARE\Policies\BraveSoftware\Brave" -Recurse -Force
# HKCU kullanıcı tercihlerini kaldır
Remove-Item "HKCU:\Software\BraveSoftware\Brave-Browser" -Recurse -Force
# Omaha usagestats'i sıfırla
Get-Item "HKCU:\Software\BraveSoftware\Update\ClientState\*" | ForEach-Object {
Set-ItemProperty $_.PSPath -Name "usagestats" -Value 1
}
Doğrulama Kontrol Listesi
Çalıştırmadan önce doğrulayın:
- Betik resmî GitHub sürümünden indirildi
- SHA256 sağlama toplamı sürüm notlarıyla eşleşiyor (varsa)
- Windows 11'de en güncel güncellemelerle çalışıyor
- Brave Browser en güncel kararlı sürümü yüklü
- Brave sürümü Uyumluluk Matrisi ile eşleşiyor
- PowerShell Yönetici olarak çalışıyor
- Çakışabilecek kritik uygulamalar çalışmıyor
Çalıştırma Sonrası Doğrulama
| Kontrol | Yöntem |
|---|---|
| Tüm politikalar etkin | brave://policy → 151 politikanın tümü Etkin gösteriyor (Katı seviye; Temel'de 51, Dengeli'de 83; Chrome koşuları chrome://policy kullanır) |
| Kayıt defteri yazıldı | Get-ItemProperty HKLM:\SOFTWARE\Policies\BraveSoftware\Brave |
| Yedek oluşturuldu | HKLM_BravePolicy_*.reg ve HKCU_BraveSoftware_*.reg %TEMP%\BravePolicyBackup içinde mevcut |
| Çıktıda hata yok | Betik kod 0 ile çıkıyor, [ERROR] satırı yok |
Olay Müdahalesi
Beklenmeyen davranış oluşursa:
- Acil: Brave'i kapat,
reg importile yedeği içe aktar - İncele:
[HATA]satırları için betik çıktısını gözden geçir - Raporla: GitHub sorunu aç:
- Brave sürümü (
brave://version) - Windows sürümü (
winver) - Tam betik çıktısı
brave://policysayfası dışa aktarımı
- Brave sürümü (
- Geri al: Yedek veya manuel kaldırma prosedürünü kullan
İlgili Sayfalar
- 🔧 Kurulum — Güvenli çalıştırma prosedürü
- 🏗️ Mimari — Üç katmanlı model
- 📋 Politika Başvurusu — Hangi politikalar uygulanır
- 🔍 Sorun Giderme — Sık karşılaşılan sorunlar
- 🗺️ Yol Haritası — Planlanan güvenlik iyileştirmeleri
Test Güvenlik Notları (Faz 3)
Tests/ dizinindeki Pester test paketi aynı güvenlik modelini izler:
| İlke | Uygulama |
|---|---|
| Canlı kayıt defteri yazımı yok | Testler sahte yollar veya -WhatIf modu kullanır — HKLM/HKCU değişikliği yoktur |
| Ağ çağrısı yok | Testler tamamen çevrimdışıdır — internet bağımlılığı yoktur |
| İzolasyon | Her test dosyası kendi kendine yeterlidir; dosyalar arası durum yoktur |
| Denetlenebilir | %100 okunabilir Pester kodu — gizli test mantığı yoktur |
| Yönetici gerekmez | Birim testleri yükseltme olmadan çalışır; yönetici değilse entegrasyon testleri atlanır |
🧪 Her PR'den önce paketi doğrulamak için
Invoke-Pester -Path .\Tests\çalıştırın.