Uç nokta güvenliğinin önemi, EPP ve EDR çözümleri,
Microsoft ATA ve osquery gibi yardımcı hızlı araçlar
Hazırlayan: Fevziye Taş, Bilgi Güvenliği Mühendisi
1. Uç Nokta(Endpoint) Güvenliği
Siber güvenlikte zincirin en zayıf halkası olarak tanımlanan insan faktörü, network veya host
bazında uygulanan güvenlik denetlemelerinin ve önlemlerinin çoğu zaman etkisiz kalmasına
neden olmaktadır. Bu, genel olarak kullanıcıların siber güvenlik farkındalığının düşük
olmasından kaynaklanmaktadır. Günümüzde saldırıların büyük çoğunluğunda güvenlik
cihazlarını veya denetim sistemlerini atlatmak gibi yöntemler yerine insan zafiyetlerini hedef
alan sosyal mühendislik teknikleri daha çok kullanılmaktadır. Bu nedenle saldırı tespit ve
engelleme sistemleri(IDS-IPS), anti-virüs, güvenlik konfigürasyonları, firewall, monitoring ve
SIEM gibi çözümleri destekleyecek ve kullanıcıların aktivitelerini güvenlik açısından
denetleyerek insani zafiyetlerin istismar edilmesini engelleyecek sistemler gittikçe önem
kazanmaktadır. Bu yeni güvenlik yaklaşımlarından biri olan uç nokta güvenliği tehdit avcılığı
ve kullanıcı davranışı analizi gibi sistemlere de katkı sağlamaktadır.
Uç Nokta(Endpoint) nedir?
Uç nokta, genel olarak kurumsal bir ağa bağlı olan ve o ağ içerisinde etkileşimlerde bulunan
masaüstü bilgisayarlar, laptoplar, akıllı telefonlar, tabletler, yazıcılar, BYOD gibi kişisel
cihazlar olarak tanımlanmaktadır. Bazı durumlarda bir veri merkezindeki sunucuların yanı
sıra SCADA bileşenleri veya POS terminalleri gibi dağıtık ağlara özel cihazlar da uç nokta
olarak tanımlanabilmektedir.
2. Uç Nokta Güvenliğinin Önemi
Oltalama saldırılarında gelen maildeki linklere tıklayarak parola gibi hassas bilgileri sızdırmak
ya da malware dosyasının bilgisayara inmesine neden olmak, kara listeye düşmüş zararlı
yazılımlar barındıran sitelere erişmeye çalışmak, ransomware saldırıları gibi tehditlere karşı
kişisel cihazlarda anti-malware yazılımı kurmamak, cihazların fiziksel güvenliğini sağlamamak
gibi çeşitli şekillerde örnekleyebileceğimiz kullanıcı bazlı zafiyetler otomatize güvenlik
kontrolleri tarafından çoğu zaman denetlenememektedir. Bu nedenle, bir ağın güvenlik
yapılandırması, kullanıcı davranışlarının analizi ve uç noktaların güvenliği sağlanmadan eksik
kalmaktadır. Bu açıdan uç nokta olarak tanımlanan bileşenlerin özellikle de kişisel cihazların
güvenliği, bir ağın tehditler ve siber saldırılar açısından korunması için bütüncül bir yaklaşım
sunmaktadır.
Uç nokta güvenliğinin önemli işlevleri:
Kullanıcı davranışlarını sınıflandırma
Siber saldırılara karşı koruma
Ağdaki iç tehditlere karşı koruma
Veri kaybı önleme
Ağ erişim kontrolü
Entegre güvenlik duvarı
Ayrıcalıklı kullanıcı kontrolü
Zararlı yazılım bulaşmasına karşı koruma
Diskler ve e-posta trafiği için şifreleme
Uç nokta tespiti ve gerekli prosedürleri uygulama
Beyaz liste oluşturarak çalıştırılacak uygulamaların kontrolü
Baseline oluşturarak normal kullanıcı davranışlarından sapmaları tespit etme
Filtreleme ve güvenli internet kullanımı sağlayarak web trafiğini kontrol
Uç nokta güvenliğiyle ilgili başlıca metodolojiler Endpoint Protection Platform (EPP) ve
Endpoint Detection and Response(EDR) çözümleridir.
Uç Nokta Koruması (EPP); uç nokta cihazlarına kurulan ve zararlı yazılım saldırılarını
önlemek, kötücül aktiviteleri tespit etmek ve olay müdahale için veriler sağlamak gibi
görevleri olan güvenlik platformudur. Saldırı göstergeleri olarak tanımlanan IOC’leri ve
davranışsal analiz yöntemlerini kullanır. EPP, ayrıca yapay zekânın yanı sıra tehdit avcılığı gibi
insana dayalı denetimler ve tuzak saldırı tespit sistemleri gibi özellikleriyle de öne
çıkmaktadır.
3. Uç Nokta Algılama ve Yanıt (EDR); endpoint cihazlara ait kullanıcılar, dosyalar, çalışan
prosesler, kayıt defteri, bellek ve ağ olayları gibi kritik verileri kayıt altına alıp lokal olarak uç
nokta cihazında veya merkezi bir veri tabanında saklayan güvenlik platformudur. Güvenliği
kırma girişimlerinin erken saptanması ve gerekli müdahalelerin yapılabilmesi için bu veriler
bilinen saldırı göstergeleri ve davranışsal analiz yöntemleri uygulanarak analiz edilir.
Uç Nokta Güvenlik Kontrolleri için Yardımcı Araçlar
1. Microsoft Advanced Threat Analytics - ATA
Microsoft’un geliştirdiği uç nokta güvenliği için alternatif sayılabilecek Advanced Threat
Analytics platformu derinlemesine paket inceleme(deep packet inspection), davranışsal
analiz ve makine öğrenmesi gibi yöntemleri kullanarak şüpheli aktiviteleri tespit ve kullanıcı
davranışlarını analiz gibi hizmetleri sunar. Geleneksel saldırı tespit çözümlerinde çok fazla
uygulama alanı bulmayan davranışsal analiz yöntemi kullanıcı hareketlerini izleyip analiz
ederek normal kullanıcı davranışlarından sapmaların tespit edilmesi, şüpheli aktivitelerin ve
saldırı izlerinin zamanında teşhis edilmesi gibi avantajları sağlamaktadır.
ATA; ağa bağlanmak, DNS sorguları veya kimlik doğrulama işlemleri yapmak gibi aktiviteleri
Aktif Dizin üzerinden gerçekleştiren tüm cihazlar için işletim sistemi ayrtetmeksizin tehdit
analizi desteği sağlamaktadır. Böylelikle kritik uç noktalar olarak tanımlanan Windows ve *nix
makineler agentless olarak ATA tarafından izlenebilmektedir. ATA aynı zamanda mobil
cihazlar için kimlik doğrulama ve yetkilendirme işlemlerinin izlenmesi, SIEM ile entegrasyon,
port aynalama yöntemiyle ağ trafiğini etkilemeden kurulum imkanı, donanımsal veya sanal
makine olarak yapılandırılma gibi işlevsel çözümler de sunar.
ATA’nın Önemli İşlevleri:
Aktif Dizin ve SIEM loglarını kullanarak kural, eşik değeri veya baseline oluşturmaya
gerek duymadan şüpheli aktiviteleri hızlıca tespit etmek
Kendine kendine öğrenebilme yeteneğine sahip davranışsal analiz modülü ile
olağandışı davranışları öğrenme ve teşhis etme
Şüpheli aktiviteye ait kim, ne, ne zaman ve nasıl gibi bilgileri gerçek zamana yakın bir
şekilde sağlayarak gerekli aksiyonların zamanında alınmasını sağlamak
Kullanıcıların, cihazların veya kaynakların kısaca varlıkların(entity) hareketlerini hem
kendi profili hem de etkileşim yolu üzerindeki diğer varlıkların davranışlarıyla da
kıyaslayabilme yeteneği
Kırık güven mekanizması, protokol zafiyetleri ve bilinen ve bilinmeyen tehditler gibi
güvenlik risklerini saptamak
4. Pass the hash ve kaba kuvvet saldırıları ile keşif(reconnaisance) faaliyetlerini tespit
etmek ve alarm üretmek
Olağandışı loginler, uzaktan kod çalıştırma, yanal hareket ve parola paylaşımı gibi
şüpheli hareketleri izlemek
Tehdit avcılığının önemli aşamalarından olan ve saldırı göstergelerinin doğru ve etkili
bir şekilde analizini amaçlayan saldırgana ait taktik, teknik ve prosedürlerin(Tactics,
Techniques, and Procedures -TTPs) tanımlanması sürecine önemli veriler sağlaması
2. Facebook Tarafından Geliştirilen osquery
osquery ağdaki sistemlerin genel durum veya güvenlik açısından hızlı bir şekilde
sorgulanmasını sağlayan; Windows, OS X (macOS), Linux ve FreeBSD gibi yaygın işletim
sistemlerini destekleyen; veri tabanı altyapısı SQL üzerine temellendirilmiş açık kaynak
kodlu bir güvenlik analizi aracıdır. osquery izleme ve analiz işlemlerini kolaylaştırmak için
incelenmek istenen işletim sistemine ait log ve status bilgilerini toplayarak daha önceden
tanımlanmış tablolardan oluşan büyük bir veri tabanına dönüştürür. Böylelikle analistler SQL
sorgularını çalıştırarak tablolardan gerekli verileri çekebilirler. Sorgular iki farklı şekilde
çalıştırılabilir:
osqueryi: İnteraktif SQL sorgularını yapmaya yarayan shell
osqueryd: Tekrar eden veya planlı sorgular için kullanılan arka planda çalışan daemon
osqueryctl: osquery’nin herhangi bir dağıtımını veya konfigürasyonunu test etmeyi sağlayan
yardımcı bu betik aynı zamanda osqueryd’nin start/stop/restart işlemleri için de
kullanılabilir.
osquery ile İşletim Sisteminde Neler Sorgulanabilir?
Çalışan prosesler
Loginler ve aktif kullanıcı hesapları
Yüklenmiş kernel modülleri
Aktif ağ bağlantıları
Tarayıcı eklentileri
Donanım olayları
Dosya hashleri
5. Sisteme login olmuş kullanıcılar
Soketler
Portlar
Depolama diskleri
Mount edilmiş sürücüler
Hazır Sorgu Paketleri(Query Packs)
Ortak bir kategoriye özel olarak önceden tanımlanmış sorgulardan oluşan derlenmiş hazır
sorgu paketleri olarak tanımlanırlar, bazıları osquery proje paketiyle birlikte gelmektedir.
Sorgu paketleri işletilirken osqueryd’nin sorguları zamana göre programlayan ve sistem
durumunu kaydeden mevcut scheduler özelliği kullanılır, paket içindeki sorgular belirlenen
aralıklarla çalıştırılır ve kritik faktörlere ait değer farkı ve alarm bilgileri anında alınır. osquery
geliştiricileri tarafından Github’da sunulan hazır sorgu paketleri ve içerdikleri query’lere
örnekler[1]:
incident-response.conf sorgu paketi
"installed_applications":
{
"query" : "select * from apps;",
"interval" : "3600",
"platform" : "darwin",
"version" : "1.4.5",
"description" : "Retrieves all the currently installed
applications in the target OSX system.",
"value" : "Identify malware, adware, or vulnerable
packages that are installed as an application."
"open_sockets":
{
"query" : "select distinct pid, family, protocol, local_address,
local_port, remote_address, remote_port, path from
process_open_sockets where path <> '' or remote_address <> '';",
"interval" : "86400",
"platform": "posix",
"version" : "1.4.5",
6. "description" : "Retrieves all the open sockets per process in the
target system.",
"value" : "Identify malware via connections to known bad IP
addresses as well as odd local or remote port bindings"
"open_files":
{
"query" : "select distinct pid, path from process_open_files where
path not like '/private/var/folders%' and path not like
'/System/Library/%' and path not in ('/dev/null', '/dev/urandom',
'/dev/random');",
"interval" : "86400",
"platform": "posix",
"version" : "1.4.5",
"description" : "Retrieves all the open files per process in the target
system.",
"value" : "Identify processes accessing sensitive files they shouldn't"
"logged_in_users":
{
"query" : "select liu.*, p.name, p.cmdline, p.cwd, p.root from
logged_in_users liu, processes p where liu.pid = p.pid;",
"interval" : "3600",
"platform": "posix",
"version" : "1.4.5",
"description" : "Retrieves the list of all the currently logged in
users in the target system.",
"value" : "Useful for intrusion detection and incident
response. Verify assumptions of what accounts should be
accessing what systems and identify machines accessed during a
compromise."
"arp_cache":
{
"query" : "select * from arp_cache;",
"interval" : "3600",
"version" : "1.4.5",
"description" : "Retrieves the ARP cache values in the target
system.",
"value" : "Determine if MITM in progress."
"disk_encryption":
{
"query" : "select * from disk_encryption;",
"interval" : "86400",
"platform": "posix",
"version" : "1.4.5",
7. "description" : "Retrieves the current disk encryption status
for the target system.",
"value" : "Identifies a system potentially vulnerable to disk
cloning."
windows-attacks.conf sorgu paketi
"CCleaner_Trojan_stage
2.Floxif": {
"query": "select h.md5, h.sha1, h.sha256, s.name,
s.service_type, s.display_name, s.module_path,
s.user_account from services s, hash h where h.path =
s.module_path and ((s.module_path like
'%GeeSetup_x86%' and h.sha256 =
'dc9b5e8aa6ec86db8af0a7aa897ca61db3e5f3d2e0942e319
074db1aaccfdc83') or (s.module_path like '%EFACli64%'
and h.sha256 =
'128aca58be325174f0220bd7ca6030e4e206b4378796e82d
a460055733bb6f4f') or (s.module_path like '%TSMSISrv%'
and h.sha256 =
'07fb252d2e853a9b1b32f30ede411f2efbb9f01e4a7782db5
eacf3f55cf34902'));",
"interval" : "3600",
"version": "2.1.0",
"description" :
"(https://sensorstechforum.com/ccleaner-trojan-floxif-
malware-how-to-remove/)",
"value" : "Artifact used by this malware"
"dllhost.exe_incorrect_path":
{
"query": "SELECT * FROM processes WHERE
LOWER(name)='dllhost.exe' AND
LOWER(path)!='c:windowssystem32dllhost.exe'
AND
LOWER(path)!='c:windowssyswow64dllhost.exe'
AND path!='';",
"interval": 3600,
"version": "2.2.1",
8. "description": "Detect processes masquerading as
legitimate Windows processes"
"svchost.exe_incorrect_parent_process":
{
"query": "SELECT name FROM
processes WHERE pid=(SELECT parent
FROM processes WHERE
LOWER(name)='svchost.exe') AND
LOWER(name)!='services.exe';",
"interval": 3600,
"version": "2.2.1",
"description": "Detect processes
masquerading as legitimate Windows
processes"
osquery’nin son sürümü 3.3.0 versiyonunda desteklenen 226 tablodan bazılarının
içerikleri[2]:
9.
10. osquery’den alınan verilerin depolanması ile ilgili çeşitli yöntemler bulunmaktadır:
osqueryi interaktif shell ile yapılan gerçek zamanlı sorgularda olduğu gibi sonuçların
herhangi bire kaydedilmemesi
Korelasyon ve analiz işlemlerinde kullanılmak üzere bir SIEM ürününe aktarılması
Güvenlik analiz platformlarında tehdit istihbaratı ve anomalilikleri tespit gibi
süreçlerde veri kaynağı olarak kullanılması
Kaynakça:
[1] https://github.com/facebook/osquery/tree/master/packs
[2] https://osquery.io/schema/3.3.0