Tüm yazılar
·7 dk okuma·ShamashAi Ekibi

ShamashAi Discovery: Credential Öncesi Keşif ile Demo İlk 5 Saniye

ShamashAi Discovery modülü MX, website ve M365 prob ile credential gerekmeden domain yüzeyini tespit eder. Demo'da 5 saniyede mail provider, TLS cert ve Intune envanteri görünür — etki anında başlar.

Demo Salonunda Sessizlik

Salı 14:37, toplantı odası. IT Müdürü monitöre bakıyor: "Tamam, kurulu bir şeyimiz yok henüz. ShamashAi altyapımızı gerçekten görür mü?" Klasik soru. Ekranda sadece bir domain input kutusu var. Müşteri ornekkurum.com.tr yazıyor, Enter. 3 saniye sonra ekranda 4 panel belirir: MX kaydı Microsoft 365, TLS sertifikası Let's Encrypt (Cloudflare), Azure AD tenant ID doğrulandı, Intune'da 247 cihaz. Hiçbir agent yok, credential girilmedi. Müdür kaşını kaldırıyor: "Bunu nasıl yaptı?" Bu yazı ShamashAi Discovery modülünün credential öncesi keşif özelliklerini — MX lookup, website lookup, M365 probe — teknik detayıyla anlatıyor. Demo aşamasında etki yaratmak isteyen satış ekipleri ve PoC öncesi yüzey tespiti yapan güvenlik ekipleri için.

Discovery Modülü ve Credential Öncesi Keşif

ShamashAi Discovery modülü, organizasyonun dijital yüzeyini agent veya kimlik bilgisi olmadan keşfetmek için 3 probe kullanır: 1. MX Lookup: Domain'in MX kayıtlarını sorgular, mail provider tespit eder (Microsoft 365, Google Workspace, Yandex, Zoho, on-prem Exchange). 2. Website Lookup: A kaydı, TLS sertifikası ve hosting ipuçlarını toplar (Cloudflare, AWS, Azure, GCP). 3. M365 Probe: Azure AD tenant doğrulaması, izin matrisi ve Intune envanter (maksimum 1000 cihaz). Tüm problar public DNS, TLS handshake ve Microsoft Graph API'nin kimlik doğrulama uç noktalarını kullanır. Hassas log gönderilmez; sadece public erişilebilir veri ve sertifika hash'leri işlenir.

Demo Aşamasında Etki

Geleneksel SIEM demo'ları şu soruyla takılır: "Agent kurulu mu? Credential var mı?" ShamashAi Discovery bu engeli kaldırır. Satış mühendisi toplantı salonunda domain girer, 5 saniye sonra:
  • Mail altyapısı Microsoft 365 mu, Google Workspace mü?
  • Web sitesi Cloudflare arkasında mı, AWS'te mi?
  • Azure AD tenant geçerli mi?
  • Intune'da kaç cihaz var?
Bu bilgiler pilot kapsamını şekillendirmek, agent kurulum stratejisi belirlemek ve güvenlik posture'ını hızlıca anlamak için kritik.

MX Lookup: Mail Provider Tespiti

Endpoint ve Mantık

javascript // ShamashAi API örneği (Node.js Fastify) const response = await fetch('https://shamashai.local/discovery/mx-lookup', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': 'Bearer <token>' }, body: JSON.stringify({ domain: 'ornekkurum.com.tr' }) }); const mxData = await response.json(); console.log(mxData.provider); // "Microsoft365", "GoogleWorkspace", "Yandex", "Zoho", "OnPrem" POST /discovery/mx-lookup endpoint'i domain alır, MX kayıtlarını sorgular ve pattern matching ile provider tespit eder:
  • *.mail.protection.outlook.com → Microsoft 365
  • aspmx.l.google.com → Google Workspace
  • mx.yandex.net → Yandex
  • mx.zoho.com → Zoho
  • Diğer → On-prem (kendi sunucu)
SQL Server'da dbo.discovery_mx tablosuna kaydedilir: sql SELECT domain, provider, mx_records, discovered_at FROM dbo.discovery_mx WHERE domain = 'ornekkurum.com.tr';

Demo'da Kullanım

Mail provider tespiti, pilot kapsamında şu kararları hızlandırır:
  • Microsoft 365 tespit edilirse: M365 Risky SignIn, Exchange audit log, Teams activity gibi connector'lar önceliklendirilir.
  • Google Workspace: Google Workspace audit log entegrasyonu.
  • On-prem Exchange: SMTP log, IIS log veya Syslog agent stratejisi.
Müşteri "mail altyapımız cloud'da" dese bile, MX kaydı Yandex çıkabilir — gerçek yapılandırmayı görmek, yanlış varsayımları önler.

Website Lookup: TLS ve Hosting Hint

Endpoint ve Mantık

javascript const response = await fetch('https://shamashai.local/discovery/website-lookup', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': 'Bearer <token>' }, body: JSON.stringify({ domain: 'ornekkurum.com.tr' }) }); const webData = await response.json(); console.log(webData.tls_issuer); // "Let's Encrypt", "DigiCert", "Sectigo" console.log(webData.hosting_hint); // "Cloudflare", "AWS", "Azure", "GCP", "OnPrem" POST /discovery/website-lookup şu adımları gerçekleştirir: 1. A Kaydı Sorgusu: Domain'in IP adresini alır. 2. TLS Handshake: HTTPS bağlantısı kurar, sertifika zincirini toplar. 3. Sertifika Hash: SHA-256 hash'ini dbo.discovery_certs tablosuna kaydeder. 4. Hosting Hint: IP aralığı, ASN, HTTP header (Server, X-Powered-By, CF-Ray) ile provider ipucu üretir. sql SELECT domain, tls_issuer, tls_expiry, hosting_hint, ip_address FROM dbo.discovery_website WHERE domain = 'ornekkurum.com.tr';

Güvenlik Posture İpucu

  • Let's Encrypt + Cloudflare: Modern, otomatik sertifika yönetimi. DDoS koruması aktif.
  • Self-signed + on-prem IP: Sertifika yönetimi manuel, güvenlik posture risk taşıyabilir.
  • TLS 1.0/1.1: Eski protokol, CERT_EXPIRING veya TLS_DEPRECATED event'leri önceliklendirilebilir.
Demo'da bu bilgiler müşteriye "web güvenlik duruşu" perspektifi verir. Örneğin: "Sertifikanız 18 gün sonra sona eriyor, ShamashAi CERT_EXPIRING event'ini tetikleyebilir."

M365 Probe: Tenant ve Intune Envanter

Tenant Doğrulama

javascript const response = await fetch('https://shamashai.local/discovery/m365/probe', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': 'Bearer <token>' }, body: JSON.stringify({ domain: 'ornekkurum.com.tr' }) }); const m365Data = await response.json(); console.log(m365Data.tenant_id); // "a1b2c3d4-..." console.log(m365Data.tenant_valid); // true/false POST /discovery/m365/probe endpoint'i: 1. Tenant ID Doğrulama: https://login.microsoftonline.com/<domain>/.well-known/openid-configuration sorgular, tenant ID alır. 2. İzin Matrisi: ShamashAi Azure App Registration için gereken izinleri (Directory.Read.All, AuditLog.Read.All, DeviceManagementManagedDevices.Read.All) listeler. 3. Tenant Geçerliliği: Tenant'ın aktif olup olmadığını kontrol eder. sql SELECT domain, tenant_id, tenant_valid, discovered_at FROM dbo.discovery_m365 WHERE domain = 'ornekkurum.com.tr';

Intune Cihaz Envanteri

Eğer müşteri demo sırasında Azure App Registration oluşturursa (5 dakika), ShamashAi POST /discovery/m365/devices ile Intune envanterini çeker: javascript const response = await fetch('https://shamashai.local/discovery/m365/devices', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': 'Bearer <token>' }, body: JSON.stringify({ tenant_id: 'a1b2c3d4-...', client_id: '...', client_secret: '...' }) }); const devices = await response.json(); console.log(devices.count); // 247 console.log(devices.devices[0].deviceName); // "LAPTOP-5A3B" Maksimum 1000 cihaz çekilir (Microsoft Graph API limiti). dbo.discovery_m365_devices tablosuna kaydedilir: sql SELECT device_id, device_name, os, last_sync, compliance_state FROM dbo.discovery_m365_devices WHERE tenant_id = 'a1b2c3d4-...';

Demo'da Kullanım

Intune envanteri, pilot kapsamında şu soruları yanıtlar:
  • Kaç Windows, kaç macOS, kaç mobil cihaz?
  • Compliance durumu nasıl? Non-compliant cihazlar BEHAVIORAL_ANOMALY event'i tetikleyebilir mi?
  • Hangi cihazlar ShamashAi .NET agent'ını öncelikle almalı?
Müşteri "250 cihazımız var" dese bile, Intune 247 gösterebilir — 3 cihaz Entra'da kayıtlı değil veya devre dışı. Bu tutarsızlık güvenlik açığı olabilir.

Hassasiyet ve Mahremiyet

ShamashAi Discovery modülü hassas log göndermez:
  • MX Lookup: Sadece public DNS kayıtları sorgulanır.
  • Website Lookup: TLS handshake'te sertifika zinciri alınır, ancak HTTP body içeriği çekilmez. Sadece SHA-256 hash kaydedilir.
  • M365 Probe: Tenant ID ve cihaz envanter metadata'sı (isim, OS, compliance) alınır. Kullanıcı activity log veya email içeriği çekilmez.
KVKK Madde 12 uyarınca, kişisel veri işleme amacı "güvenlik altyapısı keşfi" olarak tanımlanır. Veri sahibi (IT organizasyon) açık rıza verir.

Pilot ve Production Akışı

1. Demo Aşaması (Gün 0)

Satış mühendisi müşteri domain'ini girer: javascript POST /discovery/mx-lookup { "domain": "ornekkurum.com.tr" } POST /discovery/website-lookup { "domain": "ornekkurum.com.tr" } POST /discovery/m365/probe { "domain": "ornekkurum.com.tr" } 5 saniye sonra ekranda:
  • Mail provider: Microsoft 365
  • TLS issuer: Let's Encrypt (Cloudflare)
  • Tenant ID: a1b2c3d4-...
  • İzin matrisi: "Azure App Registration için 3 izin gerekli"

2. Pilot Başlangıcı (Gün 1-3)

Müşteri Azure App Registration oluşturur, ShamashAi'ya credential verir: javascript POST /discovery/m365/devices { "tenant_id": "a1b2c3d4-...", "client_id": "...", "client_secret": "..." } Intune envanter dbo.discovery_m365_devices tablosuna dolar. IT ekibi agent kurulum stratejisi belirler: önce domain controller'lar, sonra endpoint'ler.

3. Production (Gün 30+)

Discovery modülü periyodik (günlük) tarama yapar: sql SELECT domain, provider, tls_expiry, discovered_at FROM dbo.discovery_mx WHERE tls_expiry < DATEADD(day, 30, GETDATE()); Eğer TLS sertifikası 30 gün içinde sona erecekse, CERT_EXPIRING event'i tetiklenir, SOAR action (email bildirim) çalışır.

C# .NET Agent ve Discovery Entegrasyonu

ShamashAi .NET 8 agent endpoint'lerde çalışır, ancak Discovery modülüyle doğrudan etkileşim yapmaz. Agent sadece log toplar, dbo.events tablosuna yazar. Discovery modülü bu event'leri zenginleştirir: csharp // .NET agent örneği (log toplama) using System.Net.Http; using System.Text.Json; var logEvent = new { event_type = "AUTH_FAIL_USER", username = "ahmet", device_name = "LAPTOP-5A3B", timestamp = DateTime.UtcNow }; var client = new HttpClient(); var response = await client.PostAsJsonAsync( "https://shamashai.local/events", logEvent ); ShamashAi backend bu event'i alır, dbo.discovery_m365_devices ile eşleştirir: sql UPDATE dbo.events SET device_compliance = d.compliance_state, device_os = d.os FROM dbo.events e INNER JOIN dbo.discovery_m365_devices d ON e.device_name = d.device_name WHERE e.event_type = 'AUTH_FAIL_USER'; Eğer LAPTOP-5A3B Intune'da non-compliant ise, event severity yükseltilir, BEHAVIORAL_ANOMALY tetiklenir.

SQL Server Sorgular ve Raporlama

IT ekibi Next.js web panelinde Discovery raporlarını görür. Arka planda SQL Server sorguları: sql -- Mail provider dağılımı SELECT provider, COUNT(*) AS domain_count FROM dbo.discovery_mx GROUP BY provider; -- TLS sertifikası sona erme takvimi SELECT domain, tls_issuer, tls_expiry, DATEDIFF(day, GETDATE(), tls_expiry) AS days_remaining FROM dbo.discovery_website WHERE tls_expiry < DATEADD(day, 60, GETDATE()) ORDER BY tls_expiry ASC; -- M365 cihaz compliance durumu SELECT compliance_state, COUNT(*) AS device_count FROM dbo.discovery_m365_devices GROUP BY compliance_state; Bu sorgular GET /reports/evidence-pack endpoint'inde ISO 27001:2022 Annex A.8.16 (log toplama) ve A.12.4.1 (event logging) uyumluluk raporu oluşturur.

SOAR Entegrasyonu

Discovery modülü SOAR Engine ile entegre çalışır. Örneğin: 1. CERT_EXPIRING event tetiklenir (TLS sertifikası 15 gün sonra sona eriyor). 2. SOAR action POST /soar/notify çalışır, IT ekibine email gönderir. 3. dbo.soar_actions tablosuna kaydedilir: sql INSERT INTO dbo.soar_actions (action_type, target, status, executed_at) VALUES ('EMAIL_NOTIFY', 'it@ornekkurum.com.tr', 'SUCCESS', GETDATE()); SOAR playbook şöyle tanımlanır: javascript const playbook = { trigger: { event_type: 'CERT_EXPIRING' }, actions: [ { type: 'EMAIL_NOTIFY', recipients: ['it@ornekkurum.com.tr'] }, { type: 'SLACK_NOTIFY', channel: '#security' } ] };

Limitler ve Dürüst Notlar

  • Maksimum 1000 Intune Cihaz: Microsoft Graph API limiti. Daha büyük envanter için pagination desteği roadmap'te.
  • Public DNS Bağımlılığı: MX ve A kaydı sorguları public DNS'e bağlı. Internal domain'ler (on-prem AD) discovery dışında kalır.
  • TLS Handshake Timeout: Website lookup 5 saniye timeout'u var. Yavaş sunucular tespit edilemeyebilir.
  • M365 İzin Gereksinimi: Intune envanter için Azure App Registration manuel oluşturulmalı. Otomatik provisioning roadmap'te.
  • GDPR Yerine KVKK: Türkiye'de KVKK Madde 12 geçerli. GDPR referansı bu dokümanda yok.

Sonuç

ShamashAi Discovery modülü credential öncesi keşif ile demo aşamasında etki yaratır. MX lookup, website lookup ve M365 probe sayesinde IT ekibi agent kurmadan altyapı yüzeyini görür. 5 saniyede mail provider, TLS sertifikası ve Intune envanteri ekranda belirir. Pilot kapsamı şekillenir, agent kurulum stratejisi netleşir. Node.js Fastify backend, Next.js web panel ve SQL Server raporlama altyapısı 100-500 cihazlı Türk firmalarına on-prem SIEM gücü verir. ISO 27001:2022 Annex A uyumlu, KVKK Madde 12 kapsamında. Pilot programı 30 gün ücretsiz: shamashai.com.tr/iletisim
Paylaş

Bu konuyu projenize uygulayalım

Pilot programı kapsamında ürünü gerçek altyapınızda 30 gün ücretsiz deneyin.