Jaké jsou některé běžné chyby zabezpečení SNMP a jak chráníte svou síť?
SNMP je jedním z nejrozšířenějších monitorovacích protokolů na světě. Bezpočet výrobců síťového hardwaru zahrnuje SNMP se zařízeními, aby podnikům usnadnil monitorování infrastruktury. Navzdory své popularitě však SNMP není bez omezení.
Kyberzločinci mohou využít zranitelnosti protokolu k proniknutí do sítě, krádeži vašich soukromých informací a spuštění DoS útoků. Znáte-li jen něco málo o základech zranitelností SNMP, může vám to pomoci náležitě připravit vaši obranu.
V tomto článku se podíváme na některé běžné chyby zabezpečení SNMP a na to, jak se proti nim můžete chránit.
Jak funguje SNMP? A jak je zranitelný vůči útočníkům? (Stringy veřejné komunity)
SNMP je protokol, který správci sítě používají ke sledování zařízení, jako jsou počítače, směrovače, přepínače, servery, tiskárny a tiskárny. SNMP funguje tak, že správce SNMP odesílá požadavky Get spolu s agentem SNMP umístěným uvnitř zařízení podporujícího SNMP. Požadavky také obsahují komunitní řetězec s ID nebo heslem.
Každý požadavek má identifikátor objektu (OID) nebo řetězec dotazu pro získání konkrétních informací ze zařízení. Na základě požadavků Get stahuje agent SNMP data ze spravovaných objektů v databázi Management Information Base (MIB) na místním zařízení. Agent poté odešle shromážděná data z MIB do správce SNMP, kde si je může lidský uživatel prohlédnout prostřednictvím adresy URL.
Agent může také iniciovat výstražné zprávy nebo SNMP pasti, které informují manažera, když se některý hardware přehřeje nebo selže. Depeše SNMP poskytují pravidelné informace o výkonu, takže uživatel může zjistit, zda zařízení funguje nebo ne.
Existují dva režimy, ve kterých SNMP funguje:
- Pouze ke čtení– Režim, kdy agent může dotazovat zařízení a číst informace, ale nemůže měnit konfigurace. Obsahuje řetězec „veřejné“ komunity.
- Číst psát– Režim, ve kterém může agent provádět změny v zařízení a jeho konfiguraci. Obsahuje „soukromý“ komunitní řetězec.
Jednou z klíčových zranitelností řady verzí protokolu SNMP (SNMPv1 a SNMPv2) je to, že zprávy SNMP jsou odesílány po síti nešifrované, což znamená, že někdo s programem pro sledování paketů může číst řetězec komunity v prostém textu. Jinými slovy, mohou ukrást přihlašovací údaje a poté je použít k odposlechu obsahu zprávy nebo k převzetí kontroly nad zařízeními podporujícími SNMP.
Verze protokolu SNMP (SNMPv1, SNMPv2c, SNMPv3)
Existují tři typy SNMP, o kterých musíte vědět:
SNMPv1
Původní protokol SNMP, který podporuje pouze 32bitové čítače. SNMPv1 se snadno nastavuje, ale je chráněn pouze komunitním řetězcem. Ze zařízení v rozsahu povolených IP adres je odesílán prostý textový komunitní řetězec.
Pokud tedy škodlivé entity získají přístup k síti, budou moci objevit řetězec komunity v prostém textu. Jakmile získají komunitní řetězec, mohou vytvořit podvrženou IP adresu a komunikovat s vaší sítí. Nejlepší způsob, jak toto riziko kontrolovat, je omezit zařízení na přístup pouze pro čtení SNMP, pokud to není nezbytně nutné pro poskytnutí přístupu pro zápis.
SNMPv2c
Aktualizovaná verze SNMP přepracována v roce 1993, která přidala podporu pro 64bitové čítače s vylepšeným zpracováním chyb a příkazy SET. Vylepšená podpora zpracování chyb nyní znamená, že můžete zobrazit rozšířené chybové kódy pro rozlišení chyb.
Je důležité si uvědomit, že tato verze SNMP stále odesílá komunitní řetězce jako čistý text bez možností šifrování, takže je zranitelná vůči stejným bezpečnostním problémům jako SNMPv1.
SNMPv3
Nejnovější verze SNMP s dalšími funkcemi zabezpečení, jako je User-based Security Model (USM) a View-based Access Control Model (VACM), ověřování a šifrování. Aby bylo zajištěno, že zprávy SNMP nemohou číst neoprávněné entity, šifruje SNMPv3 zprávy depeší SNMP. Snad jedinou nevýhodou SNMPv3 je, že je složitější než jiné verze kvůli vylepšeným funkcím zabezpečení.
Která verze SNMP je nejlepší?
Pokud jde o bezpečnost, SNMPv3 vyhodí SNMPv1 a SNMPv2c z vody. Nedostatek ochrany soukromí, ověřování a řízení přístupu činí SNMPv1 a SNMPv2 mnohem zranitelnějšími vůči kompromitaci než SNMPv3. Šifrování SNMPv3 omezuje, kdo může zobrazit provoz SNMP, zatímco SHA a MD5 ověřují, že zprávy SNMP mohou číst pouze oprávnění uživatelé.
Přestože je SNMPv3 nejbezpečnější, jeho složitost a nároky na výkon sítě znamenají, že byste jej měli používat pouze v případě, že potřebujete zachovat přístup pro čtení a zápis po delší dobu. V opačném případě budete pravděpodobně v pořádku používat SNMPv1 nebo SNMPv2c a nastavovat oprávnění pouze pro čtení.
Klíčové chyby zabezpečení SNMP
Nyní, když jsme se krátce podívali na různé verze SNMP, podíváme se na bezpečnostní problémy, které mají SNMPv1, SNMPv2c a SNMPv3. Je důležité zdůraznit, že ani SNMPv3 není bez bezpečnostních slabin.
Chyby zabezpečení SNMP: Řetězce veřejné komunity v SNMPv1 a SNMPv2c
The CVE je seznam známých bezpečnostních zranitelností, které můžete použít k identifikaci rizikových faktorů ve vašem IT prostředí. CVE obsahuje rozsáhlý seznam SNMP zranitelnosti, které můžete použít ke sledování rizik ohrožujících vaši síť. Je jich příliš mnoho na to, abychom je zde uvedli, proto se níže podíváme na několik těchto zranitelností:
- CVE-2002-0013– Útočníci mohou zneužít SNMPv1 ke spuštění DoS útoku nebo získat přístupová oprávnění přemožením SNMP odesláním velkého počtu zpráv GetRequest, GetNextRequest nebo SetRequest.
- CVE-2002-0012– Útočníci mohou použít zpracování depeší SNMPv1 k provedení útoku DoS nebo získání přístupových práv.
CVE-2002-0013 a CVE-2002-0012 jsou obzvláště zničující, protože hacker může spustit útok DoS nebo získat přístup správce k vašim souborům. K většině útoků DoS dochází, když útočník použije sniffer paketů k infiltraci vaší sítě a získání komunitních řetězců v prostém textu.
Jakmile hackeři získají komunitní řetězec, mohou jej použít k proniknutí do více zařízení a odeslání velkého množství zpráv GetRequests, GetNextRequests nebo SetRequest, aby zahltili zdroje sítě škodlivým provozem. Takové útoky povedou k tomu, že síťová služba nebude dostupná ostatním uživatelům a způsobí nákladné prostoje.
Alternativně může kyberzločinec zaujmout pasivnější přístup a zahájit útok typu man-in-the-middle a odposlouchávat komunikaci mezi dvěma hostiteli, aby shromáždil soukromá data. Útoky typu Man-in-the-middle jsou nebezpečné, protože způsobují úniky dat.
Jak původní SNMPv1, tak SNMPv2c jsou zranitelné vůči tomuto typu útoku, protože zobrazují řetězce komunity jako čistý text. V důsledku toho je jedním z nejlepších způsobů, jak se chránit před útoky DoS a man-in-the-middle, vyhnout se používání SNMPv1 a SNMPv2c a zároveň omezit zařízení s povoleným SNMP na přístup pouze pro čtení.
Zranitelnost mechanismu zjišťování SNMPv3
SNMPv3 se pokusil řešit zranitelnost veřejného řetězce SNMPv1 a SNMPv2c přímo přidáním šifrování a ověřování, aby bylo pro kyberzločince těžší zachytit provoz SNMP. Zatímco ověřování a šifrování byly užitečnými doplňky SNMP, SNMPv3 stále existuje zranitelnost, kterou mohou hackeři použít ke čtení šifrované komunikace a vytváření falešných zpráv.
V Pod novou správou: Praktické útoky na SNMPv3 Nigel Lawrence a Patrick Traynor naznačují, že SNMP má „zásadní chybu“ a že mechanismus zjišťování SNMPv3 „může být manipulován tak, aby útočníkovi umožnil vybrat šifrovací a ověřovací klíče používané protokolem“.
Pokud útočníci získají kontrolu nad šifrovacími a ověřovacími klíči SNMPv3, budou moci nejen shromažďovat informace o zařízeních, ale také zařízení ovládat. Naštěstí existuje řada kroků, které mohou správci použít k ochraně před touto chybou zabezpečení, včetně:
- Ujistěte se, že žádní agenti SNMP nepoužívají DHCP (snížená šance na falšování).
- Použijte IPsec (k ochraně procesu zjišťování).
- K zabezpečení provozu použijte Transport Security Model (TSM).
SNMP Command Injection (GE a Symantec Web Gateway)
S protokolem SNMP se nemusíte starat pouze o zranitelnost protokolu, ale také o aktualizaci svých zařízení. Zastaralý firmware zařízení by mohl dát útočníkům příležitost začít vykonávat příkazy, což by způsobilo celou řadu problémů.
Níže uvádíme dvě známé chyby zabezpečení vkládání příkazů:
- General Electric Industrial Solutions UPS SNMP/Web adaptér zařízení se zastaralým firmwarem (4.8 a nižší) umožňují vzdáleným uživatelům provádět příkazy.
- SNMPConfig.php v konzole Symantec Web Gateway umožňuje vzdáleným uživatelům spouštět příkazy (ve verzích 5.2.1 a nižších)
Udržování aktualizovaného síťového firmwaru, ať už ručně nebo pomocí nástroje pro správu konfigurace, eliminuje zranitelnosti, které mohou útočníci zneužít. To jim ztěžuje získat přístup k vašim zařízením a zahájit útoky s příkazovým vstřikováním.
Jak najít zranitelnosti SNMP: Penetrační testování
Jedním jednoduchým způsobem, jak identifikovat problémy s konfigurací, je provést penetrační testování. Penetrační testování je místo, kde se vžijete do role útočníka a pokoušíte se proniknout do vaší sítě s cílem objevit zranitelnosti, abyste je mohli opravit dříve, než je bude mít skutečný útočník šanci zneužít.
V této části se podíváme na to, jak najít řetězce komunity SNMP pomocí NMAP (Network Mapper) v systému Linux. NMAP je bezplatný nástroj pro skenování zranitelnosti, který funguje prostřednictvím příkazového řádku. SNMP funguje na portu UDP 161. Skenování UDP v NMAP můžete spustit zadáním následujícího příkazu (sU určuje port, sV určuje detekci verze a IP adresu vašeho routeru):
|_+_|Dokončení skenování UDP bude trvat několik minut. Po dokončení skenování uvidíte STAV, SLUŽBU a VERZI portů 161 a 162
Po ověření, že je port otevřený, můžete spustit skript NMAP k hrubému vynucení přihlašovacích údajů pro řetězec komunity. To lze provést zadáním následujícího příkazu:
|_+_|Po dokončení skenování se zobrazí seznam komunitních řetězců objevených NMAP. Pokud nebudou nalezena žádná pověření, NMAP nevytvoří žádný výstup.
Jak můžete vidět, pokud používáte starší verzi SNMP, je pro hackera velmi snadné vyhledávat řetězce komunity. Použití SNMPv3 vypne tento potenciální vstupní bod, takže kyberzločinci musí pracovat mnohem tvrději, aby získali přístup k vašim informacím.
Jak se chránit před chybami zabezpečení SNMP: Nejlepší postupy
I když SNMP otevírá spoustu možností pro práci v síti, je třeba jej pečlivě zabezpečit, aby nedošlo k narušení bezpečnosti. Pokud není správně zabezpečeno, bude narušitel schopen získat informace o tabulkách ARP, uživatelských jménech a připojeních TCP. SNMP můžete zabezpečit podle níže uvedených doporučených postupů:
1. Zakažte SNMP na hostitelích, když je nepoužíváte
Pokud na hostiteli nepoužíváte SNMP, deaktivujte jej. Deaktivace SNMP přestane protokol fungovat jako vstupní bod pro útočníky, takže nebude příležitost k neoprávněnému naslouchání.
2. Změňte výchozí řetězec čtení komunity SNMP
Většina výrobců zařízení s podporou SNMP poskytuje zařízení s výchozím komunitním řetězcem „public“. I když je výchozí řetězec komunity vhodný pro nastavení zařízení, je třeba jej změnit, jinak by jej mohl útočník použít ke shromažďování informací z vaší sítě.
3. Zablokujte provoz SNMP na portech 161 a 162
Pokud jsou otevřené porty UDP 161 a 162, pak mají útočníci příležitost získat přístup k vašemu provozu SNMP a potenciálně příležitost překonfigurovat vaše zařízení a narušit normální provoz. Abyste tomu zabránili, můžete blokovat provoz na portech 161 a 162 na bráně firewall. Případně se můžete rozhodnout sledovat provoz a dávat si pozor na škodlivou aktivitu.
4. Vytvořte seznamy řízení přístupu (ACL)
Seznamy řízení přístupu (ACL) jsou užitečné, protože umožňují omezit přístup k počítačům tak, aby k zařízení SNMP měly přístup pouze autorizované počítače. Filtrování přístupu chrání před útočníky a snižuje pravděpodobnost úniku dat. Vytvořte ACL pro všechna zařízení s oprávněními SNMP pro čtení a zápis.
5. Pravidelně aktualizujte software v celé síti
Pravidelná aktualizace softwaru vašich zařízení zajišťuje, že neexistují žádná neopravená zranitelnost, která by hackeři mohli použít k narušení vašeho zařízení. Udržování aktualizovaného softwaru zařízení se také doporučuje pro obecné zabezpečení sítě a pro předcházení dalším typům hrozeb, jako je malware a ransomware.
6. Omezte přístup k zařízením SNMP
Omezte přístup k zařízením s povoleným protokolem SNMP omezením toho, které uzly mají oprávnění ke čtení a zápisu, a tam, kde je to možné, přiřaďte oprávnění pouze pro čtení. Konfigurace zařízení s oprávněním pouze pro čtení omezí možnost uživatelů měnit parametry zařízení, čímž se sníží riziko útoků DoS a dalších škodlivých změn, pokud je zařízení kompromitováno.
7. Zvolte silné komunitní řetězce
Řetězce komunity jsou jako hesla v tom smyslu, že by měly být co nejsilnější. Vytvořte řetězce komunity delší než 20 znaků se směsí velkých písmen, malých písmen, čísel a speciálních znaků. Je také dobré vyhnout se slovům ze slovníku nebo slovům souvisejícím s vámi nebo vaší společností. Pamatujte, že útočníci se mohou pokusit hrubou silou vynutit vaše heslo, aniž by byli zablokováni!
8. Vyhněte se NoAuthNoPriv a použijte AuthNoPriv nebo AuthPriv (SNMPv3)
Nepoužívejte režim NoAuthNoPriv, protože nešifruje přenosy. Místo toho použijte režim AuthNoPriv k šifrování ověřovacích pověření a nakonfigurujte jej tak, aby používal MD5 a SHA pro extra zabezpečení. Pokud požadujete větší zabezpečení, můžete použít režim AuthPriv k šifrování ověřovacích pověření a odpovědí zařízení na úkor výkonu systému.
9. Konfigurace uživatelů SNMP s pohledy (SNMPv3)
Pomocí příkazu SNMP view můžete omezit, která OID a data o výkonu mohou zobrazit. Omezení přístupu k údajům o výkonu znamená, že pokud dojde ke kompromitaci zařízení, narušitel má přístup pouze k částečným informacím.
Jsou zranitelnosti protokolu SNMP stále hrozbou?
I když je mnohem pravděpodobnější, že budete terčem hrozeb, jako je malware, pokusy o phishing a malware, zranitelnosti protokolu SNMP byste neměli ignorovat, když jeden útok může vést k nákladnému narušení dat nebo útoku DoS, který vás vyřadí z akce. Věnovat čas implementaci některých základních konfigurací se vyplatí, když uvážíte, že průměrné náklady na prostoje jsou 5 600 USD za minutu.
Zvolte SNMPv3 (pokud můžete!)
SNMP je nezbytný protokol pro monitorování sítě pro správce sítě a poskytuje spoustu cenných informací o monitorování, ale je důležité si být vědom rizik. Právě jsme poškrábali službu některých zranitelností, které má SNMP, od slabin v samotném protokolu až po zneužití prostřednictvím zařízení třetích stran.
Při používání SNMP se tedy chcete ujistit, že věnujete zvláštní pozornost tomu, jakou verzi používáte (ideálně SNMPv3 – ale pamatujte, že stále existují zranitelnosti, před kterými je třeba se bránit!) a verze firmwaru vašich síťových zařízení. Pouhé udržování aktualizovaných zařízení vám může výrazně usnadnit život.
Pamatujte, že SNMP verze 1, 2 a 2c představují nejvyšší úroveň rizika, protože řetězce komunity jsou sdělovány v čistém textu a útočníci je mohou během útoku použít.
Nejčastější dotazy o zranitelnostech SNMP
Je SNMP bezpečnostní riziko?
SNMP se často používá bez jakéhokoli šifrování, což z něj činí bezpečnostní riziko. To znamená, že je velmi důležité chránit vaši síť před narušením. SNMP v3 je bezpečný. Jelikož je však nastavení složité, mnoho správců sítí na něj raději neupgraduje.
Je SNMP bezpečný protokol?
SNMP v3 je bezpečný. SNMP v1 a SNMP v2c však nejsou bezpečné. SNMP v3 obsahuje procesy pro ověřování a zprávy jsou šifrovány.
Měl by být SNMP vystaven internetu?
Zprávy SNMP by měly být chráněny. Pokud monitorovací systémy fungují přes internet za účelem konsolidace monitorování více stránek, měl by být přenos zpráv SNMP přes internet šifrován. Jednou z technik pro tuto aktivitu je vytvořit VPN mezi lokalitami a použít ji k ochraně streamu SNMP.