IoT Siber Güvenliği: ESP32 Firewall / Güvenlik Duvarı Uygulaması
Bu yazıda, ESP32 Firewall uygulaması ile, Wi-Fi güvenlik protokollerinin çalışma prensiplerini, yaygın açıklarını ve IoT cihazlarında güvenlik duvarlarının uygulanmasını inceleyeceğiz. Wi-Fi güvenlik protokolleri, ağları yetkisiz erişimden korumak için tasarlanmış mekanizmalardır. IoT cihazlarında güvenlik duvarları ise ağ trafiğini yöneterek siber tehditlere karşı ek bir koruma katmanı sağlar.
Bu içerik yalnızca eğitim ve bilgi amaçlı olarak hazırlanmıştır. İçerikte belirtilen yöntemlerin kötüye kullanımı yasalara aykırı olabilir ve sorumluluk tamamen kullanıcının kendisine aittir.
Her zaman yasalara uygun hareket etmeniz ve izinsiz girişimlerde bulunmamanız gerektiğini unutmayın. Yazar ve devreyakan.com, bu bilgilerin kötüye kullanılmasından doğabilecek yasal veya teknik sorunlardan sorumlu tutulamaz.
Wi-Fi Güvenlik Protokolleri Nedir?
WEP (Wired Equivalent Privacy)
Tarihçe ve Temel Özellikler
1997 yılında tanıtılan WEP, Wi-Fi ağlarının ilk güvenlik protokolüdür.
- Şifreleme Türü: RC4 akış şifreleme algoritmasını kullanır.
- Anahtar Uzunluğu: 40 bit veya 104 bit statik şifreleme anahtarları.
Avantajları
- İlk kablosuz güvenlik standardıdır.
- Basit bir yapı sunar ve cihazlar tarafından kolayca desteklenir.
Zayıflıkları
- Statik Anahtarlar: Tüm istemciler aynı anahtarı kullanır, bu da saldırganların şifreyi çözmesini kolaylaştırır.
- IV (Initialization Vector) Kısıtlamaları: IV uzunluğunun sadece 24 bit olması nedeniyle tekrarlar meydana gelir.
- Günümüzde güvenli olarak kabul edilmez ve kullanılması önerilmez.
WPA (Wi-Fi Protected Access):
Tarihçe ve Temel Özellikler
2003 yılında WEP’in zayıflıklarını gidermek amacıyla geliştirilmiştir.
- Şifreleme Türü: TKIP (Temporal Key Integrity Protocol).
- Dinamik Anahtar Yönetimi: Her paket için farklı bir şifreleme anahtarı oluşturur.
Avantajları
- WEP’e göre daha güçlü güvenlik sağlar.
- Paket başına anahtar değişimi ile veri gizliliği artırılmıştır.
Zayıflıkları
- TKIP Zayıflıkları: TKIP’in matematiksel limitleri nedeniyle saldırılara açık olabilir.
- WPA, sadece geçici bir çözüm olarak düşünülmüş ve yerini WPA2’ye bırakmıştır.
WPA2 (Wi-Fi Protected Access II)
Tarihçe ve Temel Özellikler
2004 yılında WPA’nın yerine standart hale gelmiştir ve uzun yıllar boyunca en yaygın güvenlik protokolü olmuştur.
- Şifreleme Türü: AES (Advanced Encryption Standard).
- Güvenlik Standardı: CCMP (Counter Mode CBC-MAC Protocol) kullanır.
Avantajları
- AES şifreleme sayesinde üst düzey güvenlik sağlar.
- Hem kişisel (PSK) hem de kurumsal (Enterprise) modlarda kullanılabilir.
Zayıflıkları
- WPA2 protokolü, KRACK (Key Reinstallation Attack) gibi saldırılara karşı zayıf olabilir.
- WPA2’de, açık ağlarda iletişim şifrelenmediği için ek önlemler alınması gerekebilir.
WPA3 (Wi-Fi Protected Access III)
Tarihçe ve Temel Özellikler
2018 yılında tanıtılan WPA3, WPA2’nin modern saldırılara karşı zayıflıklarını gidermek için geliştirilmiştir.
- Şifreleme Türü: SAE (Simultaneous Authentication of Equals) algoritması.
- 192-bit Güvenlik: Daha güçlü şifreleme ve güvenlik sağlar.
Avantajları
- Kaba Kuvvet Saldırılarına Dayanıklılık: SAE sayesinde WPA3, şifre tahmin saldırılarına karşı daha dirençlidir.
- Açık Ağlarda Şifreleme: Opportunistic Wireless Encryption (OWE) ile açık ağlardaki iletişim şifrelenir.
- IoT Güvenliği: Düşük güçlü IoT cihazları için kolay entegrasyon ve güvenlik sağlar.
- Forward Secrecy: Daha önce şifrelenmiş verilere erişilse bile anahtar yeniden kullanılamaz.
Zayıflıkları
WPA3 destekli bir ağa bağlanabilmek için hem yönlendirici hem de istemci cihazların WPA3 uyumlu olması gerekir. WPA3, eski cihazlar için desteklenmeyebilir.
Özellik | WEP | WPA | WPA2 | WPA3 |
---|
Yıl | 1997 | 2003 | 2004 | 2018 |
Şifreleme | RC4 | TKIP | AES | AES + SAE |
Güvenlik | Düşük | Orta | Yüksek | Çok Yüksek |
Anahtar Yönetimi | Statik Anahtar | Dinamik Anahtar | CCMP | Forward Secrecy |
Wi-Fi Güvenlik Açıkları Nasıl Analiz Edilir?
Paket Dinleme (Packet Sniffing):
Wireshark gibi araçlar kullanılarak ağ trafiği analiz edilebilir.
Sızma Testi (Penetration Testing):
Aircrack-ng gibi araçlar, protokol açıklarını test etmek için kullanılabilir.
IoT Cihazlarında Güvenlik Duvarı (Firewall) Uygulamaları
IoT cihazları, genellikle zayıf güvenlik önlemleri nedeniyle siber saldırılara karşı savunmasızdır. Güvenlik duvarları, ağ trafiğini kontrol ederek bu cihazlara yönelik tehditleri engeller.
ESP32 Firewall Uygulama Örneği
Aşağıdaki kod, ESP32’nin yalnızca belirli IP adreslerinden gelen trafiği kabul etmesini sağlar:
#include <WiFi.h>
#include <WiFiUdp.h>
// Wi-Fi ağ bilgileri
const char* ssid = "devreyakan";
const char* password = "devreyakan";
// Güvenlik duvarı kuralları
const char* blockedIPs[] = {"192.168.1.100", "192.168.1.101"}; // Engellenecek IP adresleri
const int allowedPorts[] = {80, 443}; // İzin verilen portlar
const char* allowedProtocols[] = {"TCP", "UDP"}; // İzin verilen protokoller
WiFiUDP udp;
void setup() {
Serial.begin(115200);
// Wi-Fi'ye bağlanma
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.println("Wi-Fi bağlantısı sağlanıyor...");
}
Serial.println("Wi-Fi bağlantısı başarılı!");
Serial.print("IP Adresi: ");
Serial.println(WiFi.localIP());
udp.begin(12345); // UDP bağlantısı için bir port aç
}
void loop() {
int packetSize = udp.parsePacket();
if (packetSize > 0) {
char packetBuffer[255];
IPAddress remoteIP = udp.remoteIP();
int remotePort = udp.remotePort();
// Paketi oku
udp.read(packetBuffer, 255);
packetBuffer[packetSize] = '\0';
Serial.print("Paket Alındı - IP: ");
Serial.print(remoteIP);
Serial.print(", Port: ");
Serial.println(remotePort);
// Güvenlik duvarı kontrolleri
if (isBlockedIP(remoteIP) || !isAllowedPort(remotePort)) {
Serial.println("Paket reddedildi: Güvenlik duvarı kurallarına uymuyor.");
} else {
Serial.println("Paket kabul edildi.");
// Paket işlemleri burada yapılabilir
}
}
}
// IP adresi kontrolü
bool isBlockedIP(IPAddress ip) {
String ipStr = ip.toString();
for (int i = 0; i < sizeof(blockedIPs) / sizeof(blockedIPs[0]); i++) {
if (ipStr == blockedIPs[i]) {
return true;
}
}
return false;
}
// Port kontrolü
bool isAllowedPort(int port) {
for (int i = 0; i < sizeof(allowedPorts) / sizeof(allowedPorts[0]); i++) {
if (port == allowedPorts[i]) {
return true;
}
}
return false;
}
// Protokol kontrolü
bool isAllowedProtocol(const char* protocol) {
for (int i = 0; i < sizeof(allowedProtocols) / sizeof(allowedProtocols[0]); i++) {
if (strcmp(protocol, allowedProtocols[i]) == 0) {
return true;
}
}
return false;
}
ESP32 Firewall Seri Ekran Görüntüleri
ESP32 Firewall uygulamasının kodunu yükledikten sonra WiFi ağınıza bağlanır ve DHCP tarafından bir ip adresi alır, devamında kodun içerisinde bulunan seri ekran çıktıları görseldeki gibi olacaktır;
IP Filtreleme:
blockedIPs[]
dizisi içinde listelenen IP adreslerinden gelen paketler engellenir.- Bu, ağ güvenliği ihlali riski taşıyan bilinen IP adreslerini engellemek için kullanılabilir. Ya da tam tersi şekilde sadece izin verilen IP adresleri eklenebilir.
Port Filtreleme:
- Sadece
allowedPorts[]
dizisinde belirtilen portlara izin verilir. - Örneğin, sadece HTTP (80) ve HTTPS (443) bağlantıları kabul edilir.
Protokol Filtreleme:
allowedProtocols[]
dizisinde listelenen protokoller dışındaki bağlantılar reddedilir.
Paket Analizi:
- UDP bağlantısı üzerinden gelen paketlerin IP adresi, port ve içerik bilgileri okunur.
- Gerekli durumlarda paket içeriği üzerinde daha fazla analiz yapılabilir.
Bu kod, ESP32’nin temel bir güvenlik duvarı gibi davranmasını sağlar.
Daha Gelişmiş Uygulamalar:
- Dinamik Kurallar: Kullanıcı, bir web arayüzü veya mobil uygulama üzerinden dinamik olarak IP veya port listelerini güncelleyebilir.
- Loglama: Kabul edilen ve reddedilen paketler bir SD karta veya bulut servisine loglanabilir.
- TLS Filtreleme: HTTPS trafiği için belirli sertifikaları veya alan adlarını filtreleyebilirsiniz.
ESP32 Firewall örneği, daha güvenli bir IoT cihazı haline getirmenin temel bir adımıdır. Daha karmaşık senaryolar için firewall kurallarını dinamik hale getirebilirsiniz
Yorum yapma özelliği, forum tarafından gelen istek sebebiyle kapatılmıştır. Lütfen tartışmalar ve sorularınız için topluluk forumumuza katılın.