GNU/Linux >> Znalost Linux >  >> Linux

Úvod do firewallů webových aplikací pro správce systému Linux

Firewally existují v té či oné podobě od počátku vytváření sítí. První firewally ani nebyly identifikovány jako firewally; nebyly ničím jiným než fyzickými bariérami mezi sítěmi. Až v 80. letech 20. století vyvinula společnost DEC první zařízení speciálně navržené jako (a pojmenované) jako firewall. Od té doby se firewally vyvinuly do nesčetných podob.

Ale co je firewall? Firewall je ve svém jádru zařízení navržené tak, aby povolovalo nebo zakazovalo provoz na základě sady pravidel. Tato pravidla mohou být jednoduchá jako „povolit HTTP a blokovat vše ostatní“, nebo mohou být nekonečně složitější, včetně protokolů, portů, adres a dokonce i otisků prstů aplikací. Některé moderní firewally dokonce začlenily strojové učení do mixu.

Představujeme soubor WAF

Stejně jako u jiných technologií byla s vývojem firewallů zjištěna některá specifická použití.

Firewally webových aplikací (WAF) jsou jedním z těch specializovaných použití. WAF je firewall speciálně navržený ke zpracování "webového" provozu; tedy provoz pomocí protokolu HTTP. Obecně řečeno, úlohou WAF je kontrolovat veškerý HTTP provoz určený pro webový server, zahazovat „špatné“ požadavky a předávat „dobrý“ provoz dál. Podrobnosti o tom, jak to funguje, jsou, jak možná tušíte, trochu složitější.

Podobně jako u "normálních" firewallů se očekává, že WAF bude blokovat určité typy provozu. Chcete-li to provést, musíte WAF poskytnout seznam toho, co má být blokováno. V důsledku toho jsou rané produkty WAF velmi podobné jiným produktům, jako je antivirový software, produkty IDS/IPS a další. To je to, co je známé jako detekce založená na signaturách. Podpisy obvykle identifikují specifickou charakteristiku paketu HTTP, kterou chcete povolit nebo zakázat.

Příklady WAF

WAF se například často používají k blokování útoků typu SQL injection. Velmi zjednodušený podpis může jen hledat klíčové identifikační prvky typického útoku SQL injection. Může to například vypadat jako ' AND 1=1 zahrnuto jako součást požadavku GET nebo POST. Pokud se toto shoduje s příchozím paketem, WAF jej označí jako špatný a zahodí jej.

Podpisy fungují docela dobře, ale vyžadují hodně údržby, aby bylo zajištěno, že falešné poplachy budou omezeny na minimum. Kromě toho je psaní podpisů často spíše formou umění než přímočarým programovacím úkolem. A psaní podpisu může být také docela složité. Často se snažíte porovnat obecný vzor útoku, aniž byste porovnali legitimní provoz. Upřímně řečeno, může to být pěkně nervy drásající.

Do plevele WAF

Abychom to trochu více ilustrovali, podívejme se na ModSecurity. Projekt ModSecurity je projekt WAF s otevřeným zdrojovým kódem, který začal jako modul pro webový server Apache, ale od té doby se vyvinul v modulární balíček, který funguje s IIS, Nginx a dalšími. ModSecurity je WAF založený na signaturách a často se dodává s výchozí sadou signatur známou jako OWASP ModSecurity Core Rule Set.

Core Rule Set (CRS) je vynikajícím výchozím bodem pro nasazení WAF založeného na signaturách. Zahrnuje podpisy pro všechna bezpečnostní rizika webových aplikací OWASP Top Ten a také pro širokou škálu dalších útoků. Vývojáři udělali vše, co bylo v jejich silách, aby zajistili, že CRS bude mít málo falešných výstrah, ale nevyhnutelně bude muset každý, kdo CRS nasadí, upravit pravidla. To zahrnuje naučení se jazyka pravidel a hluboké porozumění protokolu HTTP.

Technologie se však vyvíjí a novější poskytovatelé WAF používají jiné přístupy k blokování špatného provozu. Došlo k poměrně rozšířenému přesunu od statických konfiguračních přístupů, jako jsou seznamy povolení a blokování, k dynamičtějším metodám zahrnujícím rozhraní API a strojové učení. Tento krok se týkal mnoha technologií, včetně tradičních firewallů, antivirového softwaru a, uhodli jste, WAF.

[ Síť se vymkla kontrole? Podívejte se na Automatizaci sítě pro každého, bezplatnou knihu od Red Hat. ]

WAF se může učit

V odvážném novém světě dynamických sad pravidel používají WAF inteligentnější přístupy k identifikaci dobrého a špatného provozu. Jednou z „snazších“ používaných metod je uvést WAF do „učebního“ režimu, aby mohl monitorovat provoz proudící do az chráněného webového serveru. Cílem je zde „vycvičit“ WAF, aby identifikoval, jak vypadá dobrý provoz. To může zahrnovat provoz, který odpovídá vzorům označeným jako špatné, když byly použity podpisy. Jakmile je WAF vycvičen, přejde do režimu vynucení.

Trénink WAF je podobný tomu, co se stane, když trénujete e-mailový systém k identifikaci spamu. E-mailové systémy často používají k identifikaci spamu Bayesovský algoritmus filtrování. Tyto algoritmy fungují relativně dobře, ale mohou být otráveny, aby umožnily spam. Podobné problémy existují u algoritmů používaných poskytovateli WAF, zvláště když je WAF v režimu učení.

Pokročilejší poskytovatelé WAF používají proprietární techniky k povolení a blokování provozu. Tyto techniky zahrnují algoritmy, které dokážou identifikovat, zda určité útoky budou fungovat proti cílovému systému, a blokovat pouze ty, které by byly škodlivé. Pokročilé techniky, jako je tato, se však obvykle vyskytují pouze u poskytovatelů WAF SaaS a nikoli v samostatných zařízeních WAF.

[ Potřebujete větší zabezpečení sítě? VLAN pro systémové správce:Základy ]

Sbalit

WAF a firewally obecně se v průběhu let hodně vyvíjely, od statických k dynamickým metodám identifikace a blokování provozu. Tyto techniky se budou v budoucnu jen zlepšovat. Existuje celá řada dostupných řešení od open source až po komerční poskytovatele. Bez ohledu na to, jaké jsou vaše potřeby, je tu pro vás WAF.


Linux
  1. Moje oblíbené linuxové příkazy pro optimalizaci webových obrázků

  2. 10 odlehčených webových prohlížečů s otevřeným zdrojovým kódem pro Linux

  3. 80 Linux Monitorovací nástroje pro SysAdmins

  1. Demystifikování Ansible pro systémové správce Linuxu

  2. 5 pokročilých tipů pro rsync pro správce systému Linux

  3. ForeverNote – webový klient Evernote pro Linux

  1. 30 Cvičení procesů Linuxu pro systémové správce

  2. Linux – jakou aplikaci použít pro kalendář?

  3. Omezení přístupu k systémovému volání pro aplikaci Linux