Skip to content

Latest commit

 

History

History
112 lines (89 loc) · 3.78 KB

vPermission-Audit.md

File metadata and controls

112 lines (89 loc) · 3.78 KB

vPermission-Audit

Proje Amacı

vCenter ortamındaki tüm permission atamalarını analiz ederek "kim neye erişiyor, propagation nereye kadar gidiyor, anomali var mı?" sorularını cevaplayıp denetim raporu üretir.

Hedef Kullanıcı

  • Bankalar ve finans kurumları (BDDK/SPK denetimleri)
  • Enterprise VMware ortamları
  • Güvenlik ve compliance ekipleri

Teknik Stack

  • PowerShell 7.2+
  • VMware.PowerCLI
  • Active Directory entegrasyonu (opsiyonel, -CheckAD)
  • Çıktı: HTML rapor, CSV, JSON

Temel Kavramlar — vCenter Permission Modeli

  • Permission = Principal (user/group) + Role + Object + Propagate flag
  • Object hiyerarşisi: vCenter → Datacenter → Cluster → Host → VM
  • Global Permissions: tüm vCenter'lara uygulanır
  • Propagation: alt objelere otomatik devralma

Check Kategorileri

1. Permission Inventory

  • Get-VIPermission ile tüm permission'ları topla
  • Her permission için: Principal, Role, Object, ObjectType, Propagate, IsGroup, FullObjectPath
  • Group membership expansion: AD grubu ise member'ları çöz

2. Anomali Tespiti

ANOMALY tipleri:

A) OverPrivileged — AdminRole outside of vCenter root Get-VIPermission | Where {$.Role -eq "Admin"} | Where {$.Entity.GetType().Name -ne "VCenterServer"} → Production VM'de Administrator rolü varsa CRITICAL

B) OrphanedPermission — Principal artık AD'de yok AD'de kullanıcı disabled veya deleted ama permission kalmış → WARN: potansiyel ghost access

C) DirectUserPermission — Group yerine direkt user atanmış Best practice: gruplar üzerinden yönet → INFO

D) PropagationAnomaly — Propagate=false olan izole permission'lar Genellikle kasıtlı ama audit trail gerektirir → INFO

E) ServiceAccountOverPrivilege — svc- prefix'li account'lara Admin rolü atanmışsa → HIGH

F) CrossDatacenterPermission — Bir user'ın birden fazla Datacenter'da permission'u varsa audit et → INFO

3. Role Analizi

  • Custom roller: ne yetkiler içeriyor?
  • Kullanılmayan roller: hiç atanmamış roller
  • En riskli roller: privilege count bazında sıralama

4. Permission Sprawl

  • En fazla permission'a sahip 10 kullanıcı/grup
  • Bir objeye atanmış permission sayısı > 5 → WARN
  • vCenter root'a direkt atama sayısı

PSCustomObject Çıktı Şeması

[PSCustomObject]@{ Principal = "DOMAIN\username" PrincipalType = "User" | "Group" Role = "Admin" | "ReadOnly" | "CustomRole" ObjectName = "vm-prod-db-01" ObjectType = "VirtualMachine" | "Cluster" | "Datacenter" ObjectPath = "/DC-Istanbul/host/CLUSTER-01/esxi-01/vm-db-01" Propagate = $true | $false AnomalyType = $null | "OverPrivileged" | "OrphanedPermission" vb. Severity = "CRITICAL" | "HIGH" | "MEDIUM" | "LOW" | "INFO" AdStatus = "Active" | "Disabled" | "NotFound" | "NotChecked" LastLoginDays = 45 | $null }

HTML Rapor İçeriği

  1. Özet dashboard:

    • Toplam permission sayısı
    • Anomali dağılımı (pie chart SVG)
    • Risk seviyesi özeti
    • En riskli 5 principal
  2. Anomali tablosu (filtreli, severity'ye göre sıralı)

  3. Permission matrisi:

    • Satırlar: Principal'lar
    • Sütunlar: Object tiplerinden seçili (DC, Cluster, Host, VM)
    • Cell'ler: Role adı, renkli
  4. Role inventory tablosu

  5. Remediation önerileri:

    • Kaldırılması önerilen permission'lar listesi
    • "Remove-VIPermission" PowerCLI komutları (hazır yapıştır)

Önemli Limitler

  • Read-only: araç hiçbir değişiklik yapmaz
  • Sadece önerir, "remediation mode" tasarlanmadı
  • AD sorgusu opsiyonel ve ayrı credential gerektirir

Güvenlik Notu

Bu araç hassas veri içerir (kim neye erişiyor). HTML rapor şifreli tutulmalı, --redact-principals flag ile kullanıcı adları maskelenebilir (dış paylaşım için).