Krack Zafiyetinde Saldırı Tespiti ve Önlemler

Krack zafiyetine karşı saldırı tespiti ve alınabilecek önlemler ile karşınızdayız. KRACK, ismini “Key Reinstallation Attacks” kelimelerinin kısaltılması ile alan ve WPA2 protokolünü hedefleyen bir saldırıdır. Bu saldırıda saldırgan kişi kablosuz ağın parolasını ele geçirmeden içerideki trafiği okuyabilmektedir.

Saldırıdan Kimler Etkilenir?

İlgili zayıflığın protokolün kendisinde olmasından dolayı WPA/WPA2 kullanan tüm kablosuz ağların saldırıdan etkilenmesi beklenmektedir.

KRACK Zafiyeti Nasıl Çalışır?

Saldırgan tarafından hedef kablosuz ağ ile aynı SSID ye sahip olan ve farklı kanalda çalışan sahte bir ağ oluşturulur. Kullanıcı gerçek ağa bağlanmak istediğinde saldırganın gönderdiği paketler (CSA beacon) nedeniyle sahte ağa bağlanır. Ardından şifreleme protokolündeki zafiyet ile şifreleme anahtarı değiştirilir ve kullanıcı aktiviteleri görüntülenir.

krack zafiyeti istek

Kullanıcı gerçek AP e bağlanma isteği gönderir.

krack zafiyeti istek

Saldırgan CSA Beacon Injection saldırısı başlatır.

krack zafiyeti istek

CSA Beacon paketleri sonrası kullanıcı sahte AP e yönlendirilmiş olur.

Kablosuz Ağı Saldırıya Karşı Test Etmek

Zafiyeti keşfeden Mathy Vanhoef, kablosuz ağların saldırıdan etkilenip etkilenmeyeceğini kişilerin saldırıya maruz kalmadan önce test edebilmesi için bir script hazırlamış ve Github’da paylaşmıştır. Paylaşılan script ile test edilen AP in trafiği okunamaz, sadece zafiyetten etkilenip etkilenmediği test edilir.

Bknz: https://github.com/vanhoefm/krackattacks-test-ap-ft

Bu scriptte kablosuz ağın “FT Reassociation” isteğinin yeniden iletiminin veya tekrarlanmasının işleme alınıp alınmayacağı kontrol edilir. Eğer AP (Access Point) yeniden iletilen FT Reassociation isteğini işleme tabi tutmuyorsa veya çift anahtarını (pairwise key) yeniden yüklemiyorsa AP in zafiyetten etkilenmediği çıkarımı yapılır.

Testin Gerçekleştirilmesi

Bu bölümdeki test “TP LINK TL-WN722N” ürünü ve “Ubuntu 14.04” ortamında gerçekleştirilmiştir. Test için aynı ağa bağlı 3 AP kurulmuştur. Farklı ürün ve ortamlarda da testin gerçekleştirilmesi mümkündür. İlk olarak sisteme araştırmacının oluşturmuş olduğu scriptler indirilir.

krack download file

git clone https://github.com/vanhoefm/krackattacks-test-ap-ft

Teste başlamadan önce sistemin Wi-Fi özelliğinin kapatılması gerekmektedir. Ardından aşağıdaki komut ile scriptin halen Wi-Fi kullanabilmesi sağlanır.

sudo rfkill unblock wifi

Daha sonra “disable-hwcrypto.sh” çalıştırılarak donanım şifreleme devre dışı bırakılır.

krack disable sh file

./disable-hwcrypto.sh

Sistem yeniden başlatıldıktan sonra “wpa_supplicant” ile kablosuz ağa bağlanmak için konfigürasyon dosyası hazırlanır.Bu konfigürasyon dosyasında test edeceğimiz kablosuz ağın bilgilerini barındıracağız.

krack conf file

Örnek konfigürasyon dosyası // network.conf

ssid: Test edeceğimiz AP in yayın adı.
key_mgmt: Fast Transaction özelliği üzerinden test yapılacağı için bu bölümün FT-PSK olması gerekmektedir.
psk: AP in parolası

Buraya kadar gelinen kısmın doğruluğunu tespit etmek için “wpa_supplicant” ile ağa bağlantı kurmaya çalışılır.

sudo wpa_supplicant -D nl80211 -i wlan0 -c network.conf

-D ile driver
-i ile kablosuz ağ kartı
-c ile hazırlanan konfigürasyon dosyası seçilir.

Komutun ardından bağlantı gerçekleşti ise bir sonraki adıma geçilebilir. Eğer bağlantı kurulamazsa gerçekleştirilen adımlar tekrar gözden geçirilir. Bağlantı kurulamamasının nedeni kablosuz ağın FT (Fast Transaction) yi desteklemiyor olması olabilir.

krack fast transaction

Yukarıdaki görsel bağlantının sağlıklı bir şekilde kurulduğunu gösterir.

Bir sonraki adımda wpa_supplicant, “krack-ft-test.py” scripti ile birlikte çalıştırılır ve böylece ilgili testi gözlemleyebilmemiz için sanal monitör oluşturulur.

sudo ./krack-ft-test.py wpa_supplicant -D nl80211 -i wlan0 -c network.conf

-D Driver
-i Kablosuz ağ kartı
-c Konfigürasyon dosyasını temsil eder.

wpa supplicant network conf

sudo ./krack-ft-test.py wpa_supplicant -D nl80211 -i wlan0 -c network.conf

Bağlantıdan sonra “wpa_cli” ile aynı ağa bağlı olan farklı bir AP e geçiş yapılır.

sudo wpa_cli -i wlan0

-i ile ağ kartı seçilir.
“status” komutu ile mevcut durum gözlenir.

krack ağ kartı

Ağ kartının bağlı olduğu AP e ait bilgiler.

“scan_results” komutu ile taranan diğer AP ler görüntülenir.

krack kablosuz bilgiler

Ortamdaki kablosuz ağların bilgileri.

Ve “roam” komutu ile diğer AP e geçiş gerçekleştirilir.

 

roam 02:00:00:00:00:02

roam komutunun devamında geçilecek olan AP in MAC adresi girilir.

krack roam

Geçiş işlemi gerçekleştirildikten sonra farklı bir terminal üzerinden ağ üzerinde trafik oluşturulur.

krack ping

ping 10.0.0.102

Trafik oluşturulduğunda “krack-ft-test.py” scriptinin çalıştığı terminalde kablosuz ağın güvenlik açıklığı ile alakalı durumu gözükmektedir.

krack test

Böylelikle test edilen AP in saldırılardan etkilenebileceğini görülür.

Krack Zafiyeti Saldırı Tespiti

Kismet geliştiricileri yazılımın son verisoyonuna KRACK saldırısının tespiti için bazı özellikler eklemişlerdir.

Bunlar:

  • Sahte AP tespiti (MAC adresi kopyalanan ve farklı kanallarda yayın yapan APler)
  • Sadece sıfırlara sahip anahtar iletiminin tespiti
  • Tekrarlanan “Nonce” değerinin tespiti. (Farklı handshake ler içerisinde aynı Nonce değerleri kullanılması)

Kismet’in son versiyonuna Github adresinden ulaşılabilir.

Bknz: https://github.com/kismetwireless/kismet

Örnek Saldırı Tespiti

Kismet belirtilen kablosuz ağ kartı ile çalıştırılarak ortamdaki paketleri dinleyerek anormal bir davranış gerçekleştiğinde uyarı oluşturur.

kismet -c wlan1

-c parametresi ile kablosuz ağ kartı seçilir.

Kismet çalıştırıldıktan sonra “http://localhost:2501” adresine gidilerek ortamdaki kablosuz ağlar hakkında bilgi edinilebilir ve oluşturulan uyarılar görüntülenebilir.

kismet krack test

localhost:2501

Bir uyarı oluştuğunda sağ üstte bulunan zil kırmızı renge dönüşür.

kismet krack alert

Ortamda sahte AP oluşturulduğunda oluşan uyarı

Saldırıyı Hafifletmek İçin Yapılabilecekler

  • Üretici güncellemelerini yapmak.
  • 802.11r özelliğini devre dışı bırakmak. (Fast Transcation, Fast Roaming, FT olarak da geçmektedir.)
  • Kismet veya başka bir araç ile olası saldırıları erken fark etmek.

Referanslar

  • https://www.krackattacks.com
  • https://github.com/vanhoefm/krackattacks-test-ap-ft
  • https://www.kali.org/news/kali-on-krack/
  • http://blog.kismetwireless.net/2017/10/wpa-krack-attack-and-kismet.html
  • https://www.kaspersky.com/blog/krackattack/19798/

Yazar: Ömer Günal