Windows - Biztonsági beállítások hálózati támadás ellen

SYN támadás

forráskód letöltése
Nap mint nap hallunk híreket különféle internetes férgek támadásairól, sőt sajnos a legtöbbször saját bőrünkön is tapasztalhatjuk kártékony hatásukat, pedig úgy gondoljuk, hogy minden lehetőt megtettünk rendszerünk védelme érdekében. Ha tovább szeretnénk növelni rendszerünk ellenállását, akkor az alábbi cikkben ismertetett módon néhány Registry beállítás segítségével finomhangolást végezhetünk számítógépünkön a nagyobb biztonság eléréséért.
Cikkünkhöz mellékeltük az alábbi beállítások mindegyikét tartalmazó registry állományt "xSECDENY.reg" néven. Futtatásával egy lépésben végrehajtjuk a biztonságot növelő beállításokat.
A mellékelt reg állomány futtatása előtt célszerű biztonsági másolatot készíteni a registry HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters kulcsáról.
Biztonsági beállítások hálózati támadás ellen
Az Internet világában néhány rosszindulatú egyén komoly fejtörést okoz a rendszergazdáknak, hogy vajon publikussá tegyék-e rendszerüket a világhálón. A legfrissebb szolgáltatás megtagadás (denial of service avagy DoS) támadások folytán ezen megfontolások minden eddiginél sürgetőbb megoldást kívánnak. A legtöbb ilyen támadás nagymértékű TCP/IP forgalmat generál. Általában a megtámadott oldal elérhetetlennek látszik az Internet felől a hálózati szegmens telítettsége miatt. Belülről a webkiszolgálók aligha tűnnek megtámadottnak. A Microsoft TCP/IP adatstruktúra a Windows operációs rendszercsalád részéről kellőképpen tesztelt, és bizonyítottan ellenáll a legtöbb támadásnak default beállítások esetén is. Az itt leírt képességeken felül bemutatunk néhány egyszerű eljárást, ami csökkenti weboldalunk sebezhetőségét a legtöbb támadással szemben:
  • Kísérjük figyelemmel hálózatunk korlátait támadások szemszögéből. Különféle szervezetek készítettek alkalmazásokat támadástípusok felismerésére. (Egy széles körben használt betörésvizsgáló eszköz található a http://www.iss.net/ oldalon.)
  • Bizonyosodjunk meg arról, hogy a router-ek nem konvertálnak layer 3 broadcast üzeneteket layer 2-be. A következő Cisco parancs kikapcsolja ezt: no ip directed-broadcast. Ez default router beállítás az IOS 12.0, vagy magasabb verziószámú útválasztóknál.
  • Korlátozzuk le az útválasztót, hogy csak azokon a portokon engedjen kommunikációt, amelyek az oldal működéséhez szükségesek.
  • Kapcsoljuk ki a szükségtelen, vagy opcionális eszközöket (pl.: Microsoft Networks kliens az IIS kiszolgálón.)
  • Kapcsoljunk be TCP/IP szűrést és korlátozzuk az elérést azokra a portokra, amelyek a szerver funkcionalitásához szükségesek. (Q150543 tudásbázis cikk foglalkozik a témával: WinNT, Terminal Server, & Exchange Services Use TCP/IP Ports for a list of ports that Windows services use.)
  • Kapcsoljuk ki a „NetBIOS a TCP/IP felett” beállítást, ahol nem szükséges.
  • Konfiguráljunk statikus IP címeket és paramétereket a publikus csatolóknak.
  • Állítsuk a Registry beállításokat maximális védelemre.
Registry beállítások a hálózati támadások elleni maximális védelem érdekében
A következő registry beállítások segítenek növelni NT vagy 2000 hálózatunk ellenállását a denial of service támadásokkal szemben:
SynAttackProtect
  • Kulcs: Tcpip\Parameters
  • Értéktípus: REG_DWORD
  • Érvényes értéktartomány: 0, 1, 2
Érték Jelentése
0 nincs synattack védelem
1 csökkentett ismételt átviteli próbálkozás és késleltetett route cache entry létrehozás, ha a TcpMaxHalfOpen és TcpMaxHalfOpenRetried érték túlhaladott
2 az előző beállítást kiegészítve a Winsock számára késleltetett jelzés
Magyarázat: amikor a rendszer felfedezi, hogy támadás alatt áll, a következő opciók bármely socket esetében már nem engedélyezettek: Méretezhető ablakok (RFC 1323) és adapterenként konfigurált TCP paraméterek (kezdeti RTT – átlagos menetidő, ablakméret). Mindez azért van, mert ha a védelem működik, a route cache bejegyzés lekérdezése nem történik meg a SYN-ACK válasz elküldése előtt, és a Winsock opciók nem elérhetőek a kapcsolat ezen állapotában.
  • Alapértelmezett: 0 (False)
  • Javasolt érték: 2
  • Leírás: a Synattack védelemből következik, hogy a SYN-ACK adatismétlés mennyisége csökken, amitől csökken az erőforrások lefoglaltságának ideje is. A rout cache bejegyzés erőforrás kiosztása elhalasztódik a kapcsolat felépüléséig. Ha a SynAttackProtect = 2, akkor a kapcsolat AFD-nek szóló jelzése kitolódik addig, amíg a párbeszéd befejeződik. Fontos megjegyezni, hogy a védelmi mechanizmus által kifejtett eljárás akkor következik be, ha a TcpMaxHalfOpen és a TcpMaxHalfOpenRetried beállítás értéke túlhaladott.
TcpMaxHalfOpen
  • Kulcs: Tcpip\Parameters
  • Értéktípus: REG_DWORD-Number
  • Érvényes értéktartomány: 100-0xFFFF
  • Alapértelmezett: 100 (Professional, Server) 500 (Advanced Server)
  • Javasolt érték: alapértelmezett
  • Leírás: ez a paraméter kontrollálja a SYN-RCVD státuszú kapcsolatokat, mielőtt a SYN-ATTACK védelem működésbe lépne. Ha a SynAttackProtect 1-es állapotban van, biztosítja, hogy ez az érték kisebb, mint az AFD tartalék a port-on, amelyet védeni akarunk.
TcpMaxHalfOpenRetried
  • Kulcs: Tcpip\Parameters
  • Értéktípus: REG_DWORD—Number
  • Érvényes értéktartomány: 80–0xFFFF
  • Alapértelmezett: 80 (Professional, Server), 400 (Advanced Server)
  • Javasolt érték: alapértelmezett
  • Leírás: ez a paraméter kontrollálja azokat a SYN-RCVD státuszú kapcsolatokat, amelyek esetén legalább egy ismételt SYN átvitel indult mielőtt a SYN-ATTACK támadásvédelem működésbe lépne.
EnablePMTUDiscovery
  • Kulcs: Tcpip\Parameters
  • Értéktípus: REG_DWORD—Boolean
  • Érvényes értéktartomány: 0, 1 (False, True)
  • Alapértelmezett: 1 (True)
  • Javasolt érték: 0
  • Leírás: amikor ez a paraméter 1 (True) értékű, a TCP megpróbálja feltárni a maximum transmission unit (MTU, vagy largest packet size) értékét a távoli gépig tartó úton. Az MTU út feltárása és a TCP csomagok ezen értékre történő korlátozása alatt a TCP képes kiküszöbölni az útválasztók felaprózódását az összefüggő hálózat útvonala mentén különböző MTU-k segítségével. A felaprózódás ellentétesen hat a TCP áteresztőképességére és a hálózat terheltségére. A paraméter 0-ra állítása 576 byte méretű MTU-t idéz elő, ami minden olyan kapcsolatra érvényes, amely nem a lokális alhálózatról várja a kiszolgálást.
NoNameReleaseOnDemand
  • Kulcs: Netbt\Parameters
  • Értéktípus: REG_DWORD—Boolean
  • Érvényes értéktartomány: 0, 1 (False, True)
  • Alapértelmezett: 0 (False)
  • Javasolt érték: 1
  • Leírás: ez a paraméter meghatározza, hogy a számítógép feloldja-e NetBIOS nevét, ha névfeloldó kérést kap a hálózatból. Ez lehetővé teszi a rendszergazdáknak, hogy megvédjék a gépet rosszindulatú névfeloldó támadásokkal szemben.
EnableDeadGWDetect
  • Kulcs: Tcpip\Parameters
  • Értéktípus: REG_DWORD—Boolean
  • Érvényes értéktartomány: 0, 1 (False, True)
  • Alapértelmezett: 1 (True)
  • Javasolt érték: 0
  • Leírás: ha ez a paraméter 1 értékű, a TCP engedélyt kap halott, kiesett átjárók felismerésére. Ezen szolgáltatás bekapcsolásával a TCP kérheti az IP-t, hogy válasszon másik átjárót (backup gateway), ha több kapcsolat esetében zavart tapasztal. Backup átjárót definiálhatunk a TCP/IP konfigurációs beállításoknál a vezérlőpulton.
KeepAliveTime
  • Kulcs: Tcpip\Parameters
  • Értéktípus: REG_DWORD—milliszekundumban megadott idő
  • Érvényes értéktartomány: 1–0xFFFFFFFF
  • Alapértelmezett: 7,200,000 (2 óra)
  • Javasolt érték: 300,000
  • Leírás: a paraméter segítségével kontrollálható, hogy a TCP milyen gyakran próbáljon megvizsgálni egy várakozó kapcsolatot, ami még nem küldött keep-alive csomagot. Ha a távoli rendszer még elérhető és működésképes, akkor nyugtázza a keep-alive adást. Keep-alive csomag alapértelmezésben nem kerül küldésre. Ez a lehetőség a kapcsolat életbenntartására alkalmazás szinten kapcsolható.
PerformRouterDiscovery
  • Kulcs: Tcpip\Parameters\Interfaces\
  • Értéktípus: REG_DWORD
  • Érvényes értéktartomány: 0,1,2
Érték Jelentése
0 kikapcsolt
1 bekapcsolt
2 akkor bekapcsolt, ha DHCP szerver küld útválasztó keresési opciót
  • Alapértelmezett: 2, DHCP-kontroll, de kikapcsolt alapértelmezésben.
  • Javasolt: 0
  • Leírás: ez a paraméter kontrollálja, hogy a Windows 2000 kezdeményezze-e az útválasztó keresését (RFC 1256) hálózati csatolónként.
EnableICMPRedirect
  • Kulcs: Tcpip\Parameters
  • Értéktípus: REG_DWORD
  • Érvényes értékkészlet: 0, 1 (False, True)
  • Alapértelmezett: 1 (True)
  • Javasolt érték: 0 (False)
  • Leírás: ez a paraméter beállítja, hogy a Windows 2000 módosítsa-e útvonaltábláját válaszolva az ICMP átirányított üzenetekre, amelyet a hálózati eszközök, pl. útválasztók küldenek.