CVE-2018-7445: MikroTik RouterOS Stack-Based Buffer Overflow Vulnerability
Zorluk Seviyesi: Orta | Kaynak: CISA KEV
Zafiyet Analizi ve Giriş
CVE-2018-7445, MikroTik RouterOS üzerinde bulunan bir stack-based buffer overflow (yığın tabanlı tampon taşması) zafiyetidir. Bu zafiyet, özellikle NetBIOS oturum taleplerini işleme sırasında ortaya çıkmaktadır. Proxy gibi çalışarak kötü niyetli kullanıcılar, bu zafiyeti istismar ederek hedef sistem üzerinde uzaktan kod yürütme (RCE - Remote Code Execution) yeteneğine sahip olabilirler. MikroTik, dünya genelinde birçok şirkete ağ çözümleri sunan bir üretici olduğundan, bu zafiyetin potansiyel etkileri oldukça geniştir.
Zafiyetin doğasına derinlemesine baktığımızda, MikroTik'in RouterOS yazılımının belli başlı bileşenlerinde bir hata olduğunu görüyoruz. NetBIOS protokolü, dosya paylaşımı ve ağ üzerindeki kaynak erişimini sağlamak için sıklıkla kullanılan bir protokoldür. Ancak MikroTik RouterOS, bu protokol aracılığıyla gelen istekleri işlerken gerekli bellek kontrollerini yapmamaktadır. Bu noktada kötü niyetli bir saldırgan, belirli bir uzunlukta veri gönderebilir ve bu, yığının aşılmasına yol açarak sistemde istenmeyen davranışlara sebep olabilir.
Gerçek dünya senaryolarında, bir saldırganın MikroTik RouterOS tabanlı bir yönlendiriciye erişim sağlaması durumunda, bu zafiyetin kötüye kullanılma riskini göz önünde bulundurmalıyız. Ağ adminleri veya yöneticileri, herhangi bir oturum açmadan bu zafiyeti istismar edebilme potansiyeline sahiptir. Örneğin, bir işletim veya eğitim kurumu, MikroTik RouterOS kullanan bir yönlendiriciye sahipse ve zafiyetten haberdar değilse, saldırganlar yönlendiriciyi ele geçirerek ağ üzerinde tam kontrol sağlayabilir. Bu durum, yalnızca hassas verilerin sızmasına değil, aynı zamanda ağın performansının düşmesine de yol açabilir. Örneğin, bir eğitim kurumunun ağı üzerinden erişim sağlanarak sınav sonuçları veya diğer kritik bilgilerin ele geçirilmesi söz konusu olabilir.
Zafiyetin etkileri, farklı sektörlerdeki MikroTik kullanıcılarını da kapsamaktadır. Özellikle finans, eğitim, sağlık ve kamu hizmetleri gibi kritik sektörlerde, güvenlik açıkları son derece tehlikelidir. Bu tür sektörler, zamanla daha fazla siber saldırıya maruz kalmakta ve bu durum, kullanıcı verilerinin gizliliği açısından son derece endişe vericidir. Bu nedenle MikroTik kullanıcılarının, RouterOS üzerinde mevcut güncellemeleri takip etmesi ve zafiyeti gidermek için gerekli önlemleri alması hayati önem taşımaktadır.
Sonuç olarak, CVE-2018-7445 zafiyeti, MikroTik RouterOS kullanıcıları için ciddi bir güvenlik tehdidi oluşturmaktadır. Stack-based buffer overflow (yığın tabanlı tampon taşması) gibi zafiyetler, doğru bir şekilde ele alınmadığında sistemlerde çok büyük hasarlara yol açabilir. Ağa sızan bir kötü niyetli karakter, hem kullanıcıları hem de kurumları hedef alarak ciddi kayıplara neden olabilmektedir. Bu nedenle, ağ yöneticileri için bu tür açıkların farkında olmak ve sistem güvenliğini artırmak amacıyla sürekli güncellemeler sağlamak, zafiyetlerin etkisini en aza indirmek için kritik bir adım olacaktır.
Teknik Sömürü (Exploitation) ve PoC
MikroTik RouterOS üzerinde bulunan CVE-2018-7445 zafiyeti, kötü niyetli kişilerin sistem üzerinde uzaktan kod çalıştırmasına (RCE - Remote Code Execution) olanak tanıyan bir yalıtım tabanlı tampon taşması (Buffer Overflow) güvenlik açığıdır. Bu zafiyet, NetBIOS oturum istek mesajlarının işlenmesi sırasında meydana gelir ve uzaktan saldırganlar bu açığı kullanarak cihazın kontrolünü ele geçirebilir.
Saldırının başarılı bir şekilde gerçekleştirilmesi için, önce MikroTik RouterOS cihazına erişim sağlanması gerekir. Saldırganların hedeflerine ulaşabilmesi için genellikle kendi bilgisayarlarında bir yamanın (exploit) yazılı olarak geliştirilmesi gerekir. Aşağıda, bu sürecin adım adım nasıl gerçekleştirileceği ile ilgili bir kılavuz bulacaksınız.
İlk adım olarak, sistemde zafiyetin var olduğundan emin olmak gerekir. Aşağıdaki gibi basit bir NetBIOS istemci mesajı göndererek bunu test edebilirsiniz:
import socket
# MikroTik RouterOS cihazının IP adresi
target_ip = "192.168.1.1"
port = 445 # NetBIOS üzerinden kullanılacak port
# Basit bir NetBIOS mesajı oluşturuyoruz
message = b"\x00" * 200 # 200 byte boş mesaj
# Cihazla iletişim kurma
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.connect((target_ip, port))
sock.send(message)
response = sock.recv(1024)
print(f"Response from target: {response}")
sock.close()
Eğer sistem doğru bir şekilde yanıt veriyorsa, bu, potansiyel bir zafiyet olduğunu gösterir. İkinci adımda, tampon taşmasının nasıl gerçekleştirileceğini planlamanız gerekecek. Bu aşamada, yığın (stack) bellek düzenini incelemek ve saldırı payload'unuzu oluşturmak için yazılım üzerindeki incelemeleri yapmalısınız.
Saldırı payload’unuzu oluşturmak için, bir yığın taşması gerçekleştirmek üzere tasarlanmış özel veri gövdesini kullanacaksınız. Bu veri gövdesi, yığındaki kritik alanları aşmayı sağlayacak şekilde tasarlanmalıdır. Örnek bir payload aşağıdaki gibi görünebilir:
payload = b"A" * 260 # Yığın taşması için
payload += b"\xef\xbe\xad\xde" # Çalıştırılacak kod (örnek bir adres)
Payload tamamlandıktan sonra, bu veriyi hedef sisteme göndermek için bir NetBIOS oturum isteği oluşturmanız gerekir. Bu, yukarıdaki UDP üzerinden yapılmış örneğe benzer bir işlem içerir. Aşağıda, payload’un nasıl gönderileceğine dair örnek bir kod bulabilirsiniz:
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.connect((target_ip, port))
sock.send(payload)
response = sock.recv(1024)
print("Payload gönderildi, cevap: ", response)
sock.close()
Eğer bu adımlar başarıyla uygulanırsa, hedef cihazda uzaktan kod çalıştırma yeteneğine sahip olacaksınız. Ancak, unutmamanız gerekir ki bu tür eylemler yalnızca etik sınırlar içinde, yasal izinlerle ve test amaçlı yapılmalıdır. "White Hat Hacker" bakış açısıyla, bu tür bilgiler yalnızca sistem güvenliğini artırmak ve saldırılara karşı hazırlıklı olmak amacıyla kullanılmalıdır.
Bu tür zafiyetlerin belirlenmesi ve sömürülmesi, ağ güvenliği uzmanları için önemli bir hesaba katma konusudur. Kötü niyetli saldırganlar bu tür açıklardan yararlanmak için oldukça sofistike yöntemler kullanabilir, bu yüzden MikroTik RouterOS gibi yaygın kullanılan sistemlerin sürekli güncellenmesi ve denetlenmesi kritik öneme sahiptir.
Forensics (Adli Bilişim) ve Log Analizi
MikroTik RouterOS üzerinde CVE-2018-7445 olarak bilinen stack tabanlı buffer overflow (tampon taşması) zafiyeti, özellikle NetBIOS oturum istekleri işlenirken ortaya çıkmaktadır. Bu zafiyet, uzaktan bir saldırganın sistem üzerindeki kodları çalıştırmasına (RCE - Uzak Kod Çalıştırma) olanak tanır. Temel olarak, saldırganın bu zafiyeti kullanarak MikroTik RouterOS cihazına erişip kötü niyetli yazılımlar yüklemesi mümkün hale gelir. Bu tür bir saldırı için genellikle, hedef sistemdeki servislerin açık olması ve saldırganın bu servislere erişim yetkisinin bulunması gereklidir.
Bir siber güvenlik uzmanı olarak, bir MikroTik RouterOS cihazında bu tür bir saldırının gerçekleştirildiğini anlamak için belirli SIEM (Security Information and Event Management) çözümleri veya log dosyalarındaki belirli imzalara (signature) odaklanmak önemlidir. Özellikle, aşağıdaki log türlerine ve imzalara bakmak kritik bir aşama olacaktır:
Access Log (Erişim Logu): Bu loglar, sistemde gerçekleştirilen bağlantıları ve bunların sonuçlarını içerir. Saldırganların NetBIOS oturum istekleri gönderdiğine dair belirli bir model veya anormal IP adresi bağlantıları fark edilebilir. Söz konusu logda, sürekli tekrarlayan veya yüksek sayıda hata dönen bağlantılar dikkat çekici olabilir.
Error Log (Hata Logu): Hata logları, sistemin karşılaştığı sorunları detaylandırır. Eğer bu logda, NetBIOS ile ilgili hatalar sürekli bir biçimde görünüyorsa veya belirli bir ip adresinden gelen isteklerin büyük bir oranı hata veriyorsa, bu durum bir saldırı girişimi olduğunu gösterebilir.
Intrusion Detection Systems (IDS - Saldırı Tespit Sistemleri): MikroTik cihazlarına özel imza veritabanlarını kontrol ederek, bu tür bir saldırıyı tanımlamak mümkündür. Özellikle, NetBIOS üzerinde gerçekleşen olağandışı aksiyonlar, daha önce tanımlanmış imzalar ile karşılaştırılarak anomali tespit edilebilir.
Saldırının gerçekleştiğinin göstergesi olabilecek diğer durumlar; NetBIOS oturum isteklerinin belirli bir zaman dilimi içinde aşırı fazla olması veya sistemin beklenmedik bir biçimde yavaşlaması gibi anomalilerdir. Ayrıca, bu tür cihazlardaki logların zaman damgaları (timestamp) da dikkatlice incelenmelidir; çünkü farklı zaman dilimlerinde farklı IP'lerden gelen aşırı yüklemenin bir işareti olabilir.
Örneğin, elinizde bir MikroTik cihazının access logu var ve bu logda şöyle bir satır görüyorsunuz:
2023-10-12T12:34:56Z [ERROR] NetBIOS session request from 192.168.1.100 failed.
Bu tarz bir kayıt, potansiyel saldırı aktivitelerinin bir sinyali olabilir; zira normal operasyonlarda bu kayıtların sayısı minimum düzeydedir. Bunun yanında, sürekli olarak aynı IP adresinin hatalı isteklerde bulunması, daha derin bir soruşturma gerektirir. Loglar arasındaki bağlantıları (correlation) inceleyerek, bir saldırganın ağ üzerindeki hareketlerini daha iyi anlayabiliriz.
MikroTik RouterOS gibi cihazların güvenliğini sağlamak, henüz bir saldırı gerçekleşmeden önce uygun önlemler almak ve log analizi yapmakla başlar. Dolayısıyla, logların düzenli izlenmesi, anomali tespit sistemlerinin kullanılması ve güncel yazılımların kullanılması, tam zamanında müdahale için kritik öneme sahiptir.
Savunma ve Sıkılaştırma (Hardening)
MikroTik RouterOS üzerinde CVE-2018-7445 olarak bilinen bir zafiyet, uzaktan saldırganların belirli koşullar altında sistemde kod çalıştırmasına (RCE - Remote Code Execution) olanak tanımaktadır. Bu güvenlik açığı, NetBIOS oturum istekleri işlenirken ortaya çıkan stack tabanlı bir buffer overflow (tampon taşması) durumu ile ilgilidir. Saldırganlar, bu zafiyeti kullanarak hedef sistem üzerinde kontrol elde edebilir. Bu bağlamda, MikroTik RouterOS üzerinde bu tür bir güvenlik açığının önlenmesi ve sistemin sıkılaştırılması büyük öneme sahiptir.
Öncelikle, MikroTik RouterOS cihazlarınızda bu tür zafiyetlerden etkilenmemek için güncellemeleri düzenli olarak kontrol etmelisiniz. Yazılımınızın güncel tutulması, bilinen güvenlik açıklarının kapatılmasını sağlamak adına kritik bir adımdır. MikroTik, sık sık güvenlik güncellemeleri yayınlamaktadır ve bu güncellemeleri uygulamak sisteminizin güvenliğini güçlendirecektir. Güncelleme işlemi için şu adımları kullanabilirsiniz:
- MikroTik RouterOS web arayüzüne ya da WinBox uygulamasına giriş yapın.
- “System” bölümünden “Packages” sekmesine gidin.
- Güncel sürümü kontrol edebilir ve gerekli güncellemeleri indirerek uygulayabilirsiniz.
Güncellemeler dışında, MikroTik cihazlarınızı sıkılaştırmak için bazı yapılandırma değişiklikleri yapabilirsiniz. Özellikle NetBIOS gibi hizmetlerin devre dışı bırakılması, sisteminizi bu tür zafiyetlere karşı korumanın en etkili yollarından biridir. Bu hizmeti devre dışı bırakmak için aşağıdaki adımları izleyebilirsiniz:
/ip service set netbios disabled=yes
Alternatif olarak, MikroTik cihazlarınızda bir firewall (güvenlik duvarı) kullanarak belirli trafiği filtrelemeniz faydalı olacaktır. Örneğin, yalnızca belirli IP adreslerine NetBIOS servisinin erişimine izin veren kurallar oluşturabilirsiniz:
/ip firewall filter add chain=input protocol=tcp dst-port=137,138,139 src-address=<IP_ADRESİ> action=accept
/ip firewall filter add chain=input protocol=tcp dst-port=137,138,139 action=drop
Bu kurallar, belirlenen IP adresi dışında gelen tüm NetBIOS isteklerini engelleyecektir. Sizin belirlediğiniz güvenli IP adresleri dışında kimsenin bu servise ulaşamaması, sistemin güvenliğini artıracaktır.
Sıkılaştırma sürecinde, içerideki güvenlik politikalarınızı da gözden geçirmeniz önemlidir. Böylece kullanıcı yetkilerini daraltarak, yetkisiz erişimlerin önüne geçebilirsiniz. Özellikle varsayılan şifreleri değiştirmek ve güçlü şifre politikaları benimsemek, ihlallerin önlenmesi açısından kritik bir diğer noktadır.
Son olarak, MikroTik RouterOS üzerinde güvenliğinizi artırmak için güncel tehdit bilgilerine ve siber güvenlik trendlerine sürekli olarak dikkat etmelisiniz. Ayrıca, düzenli güvenlik testleri (pentest) gerçekleştirerek sisteminizin zayıf noktalarını belirleyebilir ve gerekli önlemleri alabilirsiniz. Bu şekilde, MikroTik RouterOS cihazlarınızı daha güvenilir hale getirerek hem kendi ağınızı korumuş hem de potansiyel saldırganların hedeflerinden biri olma riskini azaltmış olursunuz.