Giriş
Governance, Risk ve Compliance (GRC) ekipleri, kurumsal güvenlik ve uyumluluk süreçlerinde kritik bir rol oynar. Ancak, manuel kontrollerin sürekli izlenmesi, kanıtların toplanması ve raporlanması gibi görevler zaman alıcı ve hataya açık olabilir. Yapay Zeka (AI) ve otomasyon araçları, bu süreçleri optimize ederek GRC analistlerinin stratejik görevlere odaklanmasını sağlar. Bu makalede, Red Team perspektifinden bir GRC ajanının nasıl tasarlandığı, geliştirildiği ve dağıtıldığı adım adım açıklanmaktadır. Bu ajan, sürekli olarak kontrolleri izleyecek, kanıt boşluklarını tespit edecek ve otomatik olarak düzeltme görevleri oluşturacaktır.
Zorluk Seviyesi ve Gereksinimler
Zorluk Seviyesi: Intermediate (Orta Düzey)
Gereksinimler:
- Temel Python programlama bilgisi
- API'ler ve otomasyon araçları hakkında farkındalık
- GRC süreçlerine (örneğin, NIST, ISO 27001) genel bir bakış
- Bir GRC platformuna (örneğin, ServiceNow, RSA Archer) erişim
Sorun Tanımı
GRC ekipleri aşağıdaki yaygın sorunlarla karşılaşır:
- Manuel Kontrol İzleme: Sürekli olarak yüzlerce kontrolün manuel olarak izlenmesi zaman alıcıdır ve insan hatalarına yol açabilir.
- Kanıt Boşlukları: Kontrollerin yerine getirildiğine dair kanıtların eksik olması, uyumluluk denetimlerinde sorunlara neden olabilir.
- Düzeltme Görevlerinin Yönetimi: Kanıt boşlukları tespit edildiğinde, düzeltme görevlerinin manuel olarak oluşturulması ve takip edilmesi gereklidir.
Bu sorunların çözümü için bir GRC aracı geliştirmek gerekmektedir. Bu araç, aşağıdaki özelliklere sahip olmalıdır:
- Kontrolleri sürekli olarak izleyebilme
- Kanıt boşluklarını otomatik olarak tespit edebilme
- Düzeltme görevlerini otomatik olarak oluşturabilme ve takip edebilme
Çözüm Adımları
1. GRC Platformuna Bağlantı Kurma
GRC aracının ilk adımı, GRC platformuna (örneğin, ServiceNow, RSA Archer) bağlanmaktır. Bu platformlar genellikle REST API'ler sunar. Aşağıdaki adımlar, ServiceNow örneği üzerinden açıklanmaktadır:
- API Kimlik Doğrulaması: ServiceNow API'sine erişim için bir API anahtarı veya OAuth token oluşturun.
# Python'da ServiceNow API'sine bağlanma örneği host = "https://yourinstance.service-now.com" username = "api_user" password = "secure_password" import requests from requests.auth import HTTPBasicAuth response = requests.get( f"{host}/api/now/table/control", auth=HTTPBasicAuth(username, password), headers={"Accept": "application/json"} ) print(response.json()) - API Uç Noktalarını Belirleme: Kontrolleri, kanıtları ve görevleri yönetmek için gerekli API uç noktalarını tanımlayın. Örneğin:
/api/now/table/control– Kontrolleri yönetmek için/api/now/table/evidence– Kanıtları yönetmek için/api/now/table/task– Düzeltme görevlerini yönetmek için
2. Kontrol İzleme ve Kanıt Toplama
GRC aracının en önemli görevi, kontrolleri sürekli olarak izlemek ve kanıt toplamaktır. Bunun için aşağıdaki adımlar izlenebilir:
- Kontrol Listesini Çekme: Tüm kontrolleri GRC platformundan çekin ve yerel bir veritabanında veya dosyada saklayın.
# Kontrolleri çekme ve saklama import json controls = response.json()["result"] with open("controls.json", "w") as f: json.dump(controls, f, indent=4) - Kanıt Toplama: Her kontrol için kanıt toplayın. Örneğin, bir sunucunun güvenlik güncellemelerini kontrol etmek için aşağıdaki komutu kullanabilirsiniz:
# Linux sunucusunda güvenlik güncellemelerini kontrol etme import subprocess result = subprocess.run(["apt", "list", "--upgradable"], capture_output=True, text=True) upgradable_packages = result.stdout.splitlines() if upgradable_packages: print("Güncellenebilir paketler bulundu:") for package in upgradable_packages: print(package) else: print("Tüm paketler güncel.") - Kanıtları Yükleme: Toplanan kanıtları GRC platformuna yükleyin. Örneğin, ServiceNow'a kanıt yüklemek için:
# Kanıtları ServiceNow'a yükleme evidence_data = { "control": "control_sys_id", "evidence_type": "manual", "file": "evidence_file.txt", "description": "Güvenlik güncellemeleri kontrolü" } response = requests.post( f"{host}/api/now/table/evidence", auth=HTTPBasicAuth(username, password), headers={"Accept": "application/json", "Content-Type": "application/json"}, json=evidence_data ) print(response.json())
3. Kanıt Boşluklarının Tespiti
Kanıt boşluklarını tespit etmek için aşağıdaki yöntemler kullanılabilir:
- Kanıtların Kontrol Edilmesi: Her kontrol için gerekli kanıtların mevcut olup olmadığını kontrol edin. Örneğin, bir sunucunun güvenlik güncellemelerini doğrulamak için bir kanıt dosyası gerekiyorsa, bu dosyanın GRC platformunda yüklenip yüklenmediğini kontrol edin.
# Kanıt boşluklarını tespit etme def check_evidence_gaps(controls, evidence_data): gaps = [] for control in controls: control_id = control["sys_id"] evidence_exists = any( e["control"] == control_id for e in evidence_data ) if not evidence_exists: gaps.append(control) return gaps missing_evidence = check_evidence_gaps(controls, evidence_data) print(f"Kanıt boşlukları bulundu: {len(missing_evidence)}") - Otomatik Uyarılar: Kanıt boşlukları tespit edildiğinde, ilgili ekiplere otomatik olarak uyarılar gönderin. Örneğin, bir Slack botu veya e-posta aracılığıyla:
# Slack'e uyarı gönderme import slack_sdk client = slack_sdk.WebClient(token="your_slack_token") message = f"Uyarı: {len(missing_evidence)} kanıt boşluğu tespit edildi!" client.chat_postMessage(channel="#grc-alerts", text=message)
4. Düzeltme Görevlerinin Oluşturulması
Kanıt boşlukları tespit edildiğinde, düzeltme görevleri otomatik olarak oluşturulmalıdır. Bunun için aşağıdaki adımlar izlenebilir:
- Görev Oluşturma: Her kanıt boşluğu için bir düzeltme görevi oluşturun. Örneğin, ServiceNow'da bir görev oluşturmak için:
# ServiceNow'da görev oluşturma task_data = { "short_description": "Kanıt boşluğu: Güvenlik güncellemeleri", "description": "Sunucuda güvenlik güncellemeleri yapılmalıdır.", "assignment_group": "IT_Security", "priority": "2", "state": "1" } response = requests.post( f"{host}/api/now/table/task", auth=HTTPBasicAuth(username, password), headers={"Accept": "application/json", "Content-Type": "application/json"}, json=task_data ) print(response.json()) - Görev Takibi: Oluşturulan görevlerin durumunu izleyin ve tamamlandığında kanıtları yükleyin. Örneğin, bir görev tamamlandığında otomatik olarak kanıt yüklemek için:
# Görev tamamlandığında kanıt yükleme if task["state"] == "3": # Tamamlandı upload_evidence(task["sys_id"])
İpuçları ve Uyarılar
⚠️ Uyarı: GRC platformuna bağlanırken API anahtarlarını ve kimlik bilgilerini güvenli bir şekilde saklayın. Sızdırılmaları durumunda, tüm sisteminizin güvenliği riske girebilir.
💡 İpucu: GRC aracınızı geliştirirken, hata yönetimine ve yeniden deneme mekanizmalarına önem verin. API'ler arızalandığında veya yanıt vermediğinde, aracın düzgün bir şekilde yeniden deneme yapabilmesi gerekir.
💡 İpucu: Kanıt toplarken, sadece dosya yüklemekle kalmayın, aynı zamanda kanıtların bütünlüğünü doğrulayın. Örneğin, SHA-256 hash değerlerini kullanarak kanıtların değiştirilmediğinden emin olun.
Sonuç
Bu rehberde, bir GRC aracının nasıl tasarlandığı, geliştirildiği ve dağıtıldığı adım adım açıklanmıştır. Bu araç, GRC ekiplerinin manuel kontrolleri izleme, kanıt boşluklarını tespit etme ve düzeltme görevlerini yönetme süreçlerini otomatikleştirerek verimliliği artırır. AI ve otomasyon araçları, GRC süreçlerini daha güvenilir ve ölçeklenebilir hale getirir. Gelecekte, bu tür araçların daha da gelişmesiyle birlikte, GRC ekiplerinin stratejik görevlere odaklanması kolaylaşacaktır.



