WEP Zayıflık İncelemesi
WEP'in Zayıflıkları
0x00 Ön Bilgi
Kablosuz ağların iyice yaygınlaştığı şu günlerde artık etrafınızda çok fazla WEP kullanan ağa rastlamamaktasınız. Aşağı yukarı herkes kablosuz ağının güvenlik konfigürasyonunu yaparken WEP yerine WPA tabanlı bir algoritma kullanması gerekliliğinden haberdardır.Fakat gerçekten WEP'in zayıflıklarını bilen kişi sayısı maalesef azdır. Genellikle insanlar olaya hiçbir bilgileri olmasa bile "WEP zayıf WPA süper" şeklindeki -kısmen doğru- önyargı ile bakmaktadır.Bu makaledeki amacımız WEP'in zayıflıklarını anlatmak; bu konuda Türkçe içerik yaratmaktır. Makale tamamen teorik amaçlarla yazıldığı için PoC tadında kısımlar yer almayacaktır; netekim atakların mantığını anlayan herhangi birisi -yeterince temeli varsa- kendi aracını yazabilir, ya da hiç kastırmadan varolan araçları kullanarak atakları gerçekleştirebilir.
0x01 Anahtar Kelimeler
wep, key recovery attack,fake authentication,icv,known-plaintext attack, iv collision,chopchop attack, weak iv
0x02 Yazar
H - Security Labs Güvenlik Editörü
GYTE Bilgisayar Mühendisliği
0x03 Ön Şartlar
0x03-i Sosyal Ön Şartlar
Makaleyi ben yazdım; yazıda yazım hataları ve hatta bilgi eksiklikleri / yanlışları olabilir. Bu bilgileri dikkate alıp bir şeyler yapmak,başınızı belaya sokmak tamamen sizin kendi sorumluluğunuzdadır.
Makale hakkındaki her türlü görüş, öneri ve hakaretlerinizi mail adresime yollayabilirsiniz.
0x03-ii Teknik Ön Şartlar
Bu yazı genel olarak kablosuz ağlar ve güvenlik ile ilgili temel konseptler ve terminolojiyi az çok bilen insanlara yönelik olarak yazılmıştır.Eğer kendinizi eksik hissediyorsanız google'a danışabilir; benden bir tavsiye istiyorsanız Ferruh Mavituna'nın Kablosuz Ağlara Saldırı ve Defans adlı makalesini okuyabilirsiniz.
0x04 WEP - Temel Bilgi
Kablosuz ağlarda güvenliği sağlamak amacıyla ortaya çıkmışsa da bir fiyaskodan öteye geçememiştir. 2. Katmanda :
-
Kimlik Doğrulama (Authentication -- > Shared Key)
-
Taşınılan Verinin Şifrelenmesi (RC4,Simetrik Şifreleme)
-
Verinin Bütünlüğü (Integrity, CRC32)
Birazdan göreceğiniz üzere yapması gereken hiçbir şeyi doğru şekilde yapamamış; bu kontrollerin hepsi kırılmıştır.
0x05 WEP - Kimlik Doğrulama
STA : Wireless kartınız (Station)
AP : Erişim Noktası (Access Point)
WEP'te kimlik doğrulama four-way handshake methoduyla gerçekleştirilmektedir.
1-) AP ----------------Bağlantı İsteği--------------------------- > STA
2-) AP < -------------Nonce ------------------------------------- STA
3-) AP ----------------Şifrelenmiş nonce -------------------- > STA
4-) AP < ------------- Onay Durum Kodu ------------------- STA
Şimdi buradaki problemler :
1. Veriler clear-text olarak akmaktadır.
2. Burada ağı dinleyerek 2.adımdaki nonce'ı ve 3.adımdaki şifreli nonce'ı alabiliriz
3. 4.adımda geriye sadece onay kodu döndüğü için aslında AP'nin STA'yi doğrulamak gibi bir durumu yoktur; bu da Rogue Access Point saldırılarına sebep olmaktadır.Detaylı bilgi için KARMA'nın web sitesini inceleyebilirsiniz.
Şimdi de kimlik doğrulamanın zayıflıklarını incelemeye başlıyoruz.
0x06 WEP - Fake Authentication Attack
WEP Şifreleme Mekanizması bölümünde bu şifrelemeyi daha iyi anlacayacağımız üzere önce keystream oluşturulur; sonra nonce keystream ile XOR'lanır ve böylece şifrelenmiş nonce oluşur.
XOR işlemine göre :
o A + B = C
o C + B = A
o C + A = B
Bundan dolayı herhangi bir XOR işlemindeki 2 elemanı biliyorsanız üçüncüyü bulabilirsiniz.
Eğer elimizde nonce ve şifreli nonce varsa; biz de kolaylıkla; bunlar XOR işlemine sokarak keystream'i bulabilir ve bu keystream'i kullanarak kimlik doğrulama kontrolünü by-pass edebiliriz.Yani AP'nin bize gönderdiği nonce'i alır keystream'imizle XOR işlemine sokarız; çıkan şifrelenmiş nonce'ı da AP'ye yollarız. Aslında key'i bilmeden kimlik doğrulama aşamasını geçmiş oluruz.
Fakat key'i bilmediğimiz için veri alış-verişlerinde şifrelenmiş veri paketlerini çözemeyeceğimiz için iletişimi devam ettiremeyiz.
O zaman ne işimize yarar bu kimlik doğrulama diyebilirsiniz; fakat kimliği doğrulanmış bir mac adresi Replay atakları sayesinde trafik üretebilir ve bu trafik sayesinde Key Recovery saldırıları için yeterli sayıda paket daha kısa sürede toplanır.
Bahsettiğim bu Fake Authentication Attack Air Replay'de implemente edilmiştir.
0x07 WEP - Şifreleme Mekanizması

IV : Initializion Vector
ICV : Integrity Check Value
Öncelikle biraz buradaki şifreleme mekanizmasından bahsetmek istiyorum.
Grafikte görüleceği üzere öncelikle bir IV ve secret key ile RC4 Keystream'i initialize edilir; sonrasında oluşan bu keystream ile mesaj ve bütünlük kontrolü XOR'lanır ve şifreli veri oluşur.Verinin başında IV ve KeyID koyulur ve paket decrypt işlemine gireceği zaman bu değerlerden yardım alınır.
Burada IV daima değişen bir değer olup görevi adından ve belirttiğimizden de anlaşılacağı üzere aynı mesajda bile farklı Keystream’lerin oluşmasını sağlayarak paketlerin farklılaşmasına yardımcı olacaktır.Böylece benzer girdilerin benzer çıktıların verilmesi önlenmiş olmakla birlikte böyle olmasa ; ataklar çok daha kolay şekilde başarılı olabilecektir.
IV'ler 24 bitlik olup ağ üzerinde plain-text olarak gezinirler.
Şifrenin açılması bölümünde ise; öncelikli olarak IV ve KeyID yardımıyla Keystream oluşturulur; ve gelen şifreli veri Keystream ile XOR işlemine sokularak mesaj şifreden arındırılır.
Burada ise bir ton problem mevcuttur.
IV'ler 24 bittir;bu da toplamda 16.777.216 farklı IV yapar.Meşgul bir AP saniyede 500 paket basabilirken bu şartlarda tum IV'ler 7 saat içerisinde kullanılmış olur.Bu nedenle tekrar aynı IV'ler kullanılır.
0x08 Key Recovery Attacks
WEP keyleri bulabilmek için kullanılan temel olarak iki teknikten söz edebiliriz.
-
PTW Atak
-
FMS/KoReK Atakları
İstatistiksel yöntemleri kullanırlar.WEP key’in her byte’ı ayrı ayrı ele alınır; ve WEP key’in doğru byte’ı için doğru IV’yi bulursanız; key’in ilgili byte’ını %15’lere kadar tahmin edebilirsiniz.Yani tüm sorun IV’lerin key’ler hakkında bilgi vermesinden kaynaklanmaktadır.
Öncelikli olarak FMS/KoReK Ataklarından bahsetmek istiyorum.
FMS Ataklarını ; RC4’un Key Scheduling Algorithm’indeki zayıflıkları bulan Scott Fluhrer, Itsik Mantin, ve Adi Shamir’den almaktadır.FMS atağını kullanarak WEP key’i kırmak için 4,000,000 ile 6,000,000 arası bir sayıda paket toplamak gerekmektedir.
FMS Atak’ta kullanmak için toplanması gereken örnek bir zayıf IV şablonu :
(A + 3, N - 1, X)
A : Kırılmak istenen key byte’ının indisi
N : 256
X : Hesaplamalarda kullanılacak diğer sayı.
KoReK atakları ise cok daha az sayıda paket; 500,000 ile 2,000,000 arası bir sayıda paket yeterli olabilmektedir.
PTW atağı ise 40000-60000 arası paketle başarılı olabilmekle birliktedir.Diğer atak türlerinde sadece IV’leri capture etmek yeterli olurken PTW Atak için tüm paketi kaydetmelisiniz.
Açıkçası bu atak türlerinin teorilerine pek girmek istemiyorum; zira girdikten sonra çıkamayabilirim. Fakat genel olarak yapılan matematiksel yöntemlerle doğru olabilecek key byte’larinin tahmini neticesiyle key’e yaklaşılmakta ve yaklaşılan alanda sonuca gitmek için brute-force denenmektedir.
0x09 IV Collision
IV Havuzunun WEP için 224 = 16.777.216 kadardır. Ve saniyede 500 paket basan bir AP için bu havuz yeterli değildir; 7 saat içerisinde tüm IV’ler kullanılmış olur ve aynı IV’nin tekrar kullanılmasıyla birlikte çakışmalar(collision) yaşanır.Keystream’de çeşitliliği IV’ler sağladığı için IV’lerin çakışması aynı zamanda Keystream’lerin de çakışması gerekmektedir.
Collision’lar neticesinde WEP key’i bilmekten paketi deşifre edebilirsiniz.
WEP şifreleme mekanızmasını hatırlamak gerekirse :
• P : PlainText
• C: Chipher Text
• R : Key Stream(RC4(IV+KeyID))
• + işareti XOR işlemini tanımlamak üzere :
• C1 = P1 + R1
• C2 = P2 + R2
• C1 + C2 = P1 + P2 + R1+ R2
• R1 == R2 => C1 + C2 = P1 + P2
• Bu eşitlikten yola çıkarak :
– Eğer P1 biliniyorsa; P2 öğrenilebilir.
– Şimdiki soru; P1’i, nasıl öğreneceğiz
Paketler sadece havada dolaşırken şifrelidir; internete çıkıyorsanız AP paketi kabloya verirken önce deşifre edecek ; sonra hedefine gönderecektir. İnternette bizim kontrol ettiğimiz bir host ile WLAN’daki herhangi bir client iletişime geçerse; internet tarafından PlainText’i ; WLAN’i dinleyerek te ChiperText’i ele geçirebiliriz.
Ve böylece denklemde bilinmeyen sayısı 1’e düşer.
C1 + C2 = P1 + P2
C1 ve C2 ‘yi zaten sniff ettik; P1’i de yukarıdaki senaryoda ele geçirdik. Bu durumda eşitliğin her iki tarafını P1 ile XOR işlemine sokarsak :
P2= C1 + C2 + P1
Buradan P2’yi elde edebiliriz.
0x0A WEP-Veri Bütünlüğü (ICV)
-
WEP’in; havadaki verinin AP ile STA arasındaki iletişimde herhangi bir modifikasyona uğramaması için yaptığı kontroldür.
-
Crc32 algoritmasının bir implementasyonudur.
-
Güvenlik mantığıyla değil de aktarım sırasında yaşanacak fiziksel problemlerden sonra verinin bozulup bozulmadığını kontrol amacıyla tasarlanmıştır.
-
Data’nın ICV’si hesaplanır ve paketin sonuna eklenir.
-
4 byte’lık bir değerdir.
-
Bu işi yapmanın en mantıklı yolu hashing algoritmalarından faydalanmaktır (bkz : SHA – 256)
0x0B KoReK’s ChopChop Attack
WEP Key’i bilmeden de yakaladığınız paketleri deşifre etmenize olanak veren atak türüdür.ICV kontrolünün doğru düzgün yapılamamasından kaynaklanmaktadır.
Atak şu şekilde gerçekleşir.
1. Mesajın son byte’ı silinir(chop off)
2. Son byte’ın x=00 olması durumunda ICV’nin değerinin nasıl değişeceği bulunur ve bu değişiklik sonucunda da ICV’nin yeni değeri tespit edilip pakete eklenir.
a. 7.adımdan her dönüşte x değeri bir artar.
3. Bir byte 8 bit olduğu için; bu byte’ın 256 (28) farklı ihtimali vardır.
4. Modifikasyona uğramış paket erişim noktasına gönderilir.
5. Ağ dinlenilmeye başlanır.
6. Eğer AP aynı paketi söz konusu istemciye gönderirse son byte bulunmuş demektir.
7. Eğer AP paketi drop ederse 2.adıma geri dönülür.
8. Eğer AP pakete onay verirse bir önceki byte için bu süreç yinelenir.
Bu şekilde paket byte-byte deşifre edilir.
Bazı AP’ler bu zayıflığa düşmemekle birlikte belli bir byte’tan az olan paketleri drop etmektedirler.
0x0C Son Sözler ve Korunma Notları
Bu metinde, sizlere WEP’in ne kadar zayıf olduğunu ve bu zayıflıkların özünde neler olduklarını ve nelere dayandıklarını anlatmaya çalıştım.
Alacağınız tek bir önlem, sizi bu zayıflıklardan koruyacaktır : WPA tabanlı bir şifreleme algoritması kullanmak.
0x0D Referanslar,Daha Fazla Bilgi , vs
• Kablosuz Ağlara Saldırı ve Defans , Ferruh Mavituna
http://ferruh.mavituna.com/makale/kablosuz-aglara-saldiri-ve-defans/
http://ferruh.mavituna.com/makale/kablosuz-aglara-saldiri-ve-defans/
• AirCrack-ng Resmi Web Sitesi
http://www.aircrack-ng.org/
http://www.aircrack-ng.org/
• The Final Nail in WEP’s Coffin, Andrea Bittau - Mark Handley - Joshua Lackey,
http://tapir.cs.ucl.ac.uk/bittau-wep.pdf
http://tapir.cs.ucl.ac.uk/bittau-wep.pdf
• WEP Weak IVs Revisited,Kazukuni Kobara and Hideki ImaiIIS, Univ. of Tokyo
http://abelard.flet.keio.ac.jp/seminar/security-slides/kobara.pdf
http://abelard.flet.keio.ac.jp/seminar/security-slides/kobara.pdf
• What’s Wrong With WEP, iLabs Wireless Security Team
http://www.networkworld.com/research/2002/0909wepprimer.html
http://www.networkworld.com/research/2002/0909wepprimer.html
• Cracking WEP Keys, Black Hat 2001/USA, Tim Newsham
http://www.blackhat.com/presentations/bh-usa-01/TimNewsham/bh-usa-01-Tim-Newsham.ppt
http://www.blackhat.com/presentations/bh-usa-01/TimNewsham/bh-usa-01-Tim-Newsham.ppt
• KARMA, KARMA Wireless Client Security Assessment Tools http://www.theta44.org/karma/
• Weaknesses in the Key Scheduling Algorithm of RC4, Scott Fluhrer, Itsik Mantin, Adi Shamir
http://www.drizzle.com/~aboba/IEEE/rc4_ksaproc.pdf
http://www.drizzle.com/~aboba/IEEE/rc4_ksaproc.pdf
• aircrack-ptw
http://www.cdc.informatik.tu-darmstadt.de/aircrack-ptw/
http://www.cdc.informatik.tu-darmstadt.de/aircrack-ptw/
Haricinde, WEP'in şifreleme mekanizmasını anlatan resim alıntıdır, lakin nereden bulduğumu hatırlamıyorum, bileniniz varsa comment yazın ekleyelim.