C ochrana před. Ochrana serveru před hackováním. Fyzická ochrana serveru

Je nemožné chránit server před externím přístupem jednou provždy, protože každý den jsou objeveny nové zranitelnosti a objevují se nové způsoby, jak hacknout server. V tomto článku budeme hovořit o ochraně serverů před neoprávněným přístupem.

Servery jakékoli společnosti se dříve nebo později mohou stát cílem hackerů nebo virových útoků. Výsledkem takového útoku je obvykle ztráta dat, poškození reputace nebo finanční škody, takže otázkám zabezpečení serveru by měla být věnována prioritní pozornost.

Je třeba si uvědomit, že ochrana před hackingem serveru je soubor opatření, včetně neustálého sledování provozu serveru a práce na zlepšení ochrany. Je nemožné chránit server před externím přístupem jednou provždy, protože každý den jsou objeveny nové zranitelnosti a objevují se nové způsoby, jak hacknout server.

V tomto článku budeme hovořit o ochraně serverů před neoprávněným přístupem.

Způsoby a metody ochrany serverů před neoprávněným přístupem

Fyzická ochrana serveru

Fyzická ochrana. Je vhodné, aby byl server umístěn v zabezpečeném datovém centru, v uzavřené a střežené místnosti by k serveru neměly mít přístup cizí osoby.

Nastavte ověřování SSH

Při nastavování přístupu k serveru použijte místo hesla ověřování pomocí klíče SSH, protože takové klíče jsou mnohem obtížnější a někdy je prostě nemožné prolomit hrubou silou.

Pokud si myslíte, že stále potřebujete heslo, omezte počet pokusů o jeho zadání.

Vezměte prosím na vědomí, že když se při přihlášení zobrazí zpráva podobná této:

Poslední neúspěšné přihlášení: Út 28. září 12:42:35 MSK 2017 z 52.15.194.10 na ssh:notty
Od posledního úspěšného přihlášení došlo k 8243 neúspěšným pokusům o přihlášení.

Může to znamenat, že se někdo pokusil hacknout váš server. V tomto případě pro konfiguraci zabezpečení serveru změňte port SSH, omezte seznam IP adres, ze kterých je možný přístup na server, nebo nainstalujte software, který automaticky blokuje příliš častou a podezřelou aktivitu.

Pravidelně instalujte nejnovější aktualizace

Chcete-li zajistit ochranu serveru, okamžitě nainstalujte nejnovější záplaty a aktualizace serverového softwaru, který používáte – operační systém, hypervizor, databázový server.

Je vhodné každý den kontrolovat nové záplaty, aktualizace a hlášení o chybách/zranitelnostech, abyste zabránili útokům využívajícím zranitelnosti zero-day. Chcete-li to provést, přihlaste se k odběru novinek od společnosti pro vývoj softwaru, sledujte její stránky na sociálních sítích.

Chraňte svá hesla

Až dosud bylo jedním z nejběžnějších způsobů, jak získat přístup k serveru, hacknutí hesla serveru. Dodržujte proto známá, ale přesto relevantní doporučení, abyste server nenechali nechráněný:

  • Nepoužívejte hesla, která lze snadno uhodnout, jako je název vaší společnosti;
  • pokud stále používáte výchozí heslo pro administrátorskou konzoli, okamžitě ho změňte;
  • hesla pro různé služby musí být různá;
  • pokud potřebujete někomu sdělit heslo, nikdy neposílejte IP adresu, přihlašovací jméno a heslo ve stejném e-mailu nebo zprávě na messengeru;
  • Pro přihlášení ke svému administrátorskému účtu můžete nastavit dvoufaktorové ověření.

Firewall

  • Ujistěte se, že server má , je nakonfigurován a je neustále spuštěn.
  • Zabezpečte příchozí i odchozí provoz.
  • Sledujte, které porty jsou otevřené a pro jaké účely, neotevírejte nic zbytečného, ​​abyste snížili počet možných zranitelností pro hacknutí serveru.

Zejména firewall je velmi užitečný při ochraně serveru před útoky DDoS, protože můžete rychle vytvořit zakazující pravidla brány firewall a přidat adresy IP, ze kterých útok přichází, nebo zablokovat přístup k určitým aplikacím pomocí určitých protokolů.

Monitorování a detekce narušení

  • Omezte software a služby běžící na vašem serveru. Pravidelně kontrolujte vše, co máte spuštěné, a pokud najdete nějaké procesy, které vám nejsou známé, okamžitě je odstraňte a začněte skenovat na viry.
  • Pravidelně kontrolujte známky neoprávněné manipulace. Hackování může být signalizováno novými uživatelskými účty, které jste nevytvořili, přesunem nebo odstraněním souboru /etc/syslog.conf, smazané soubory /etc/shadow A /etc/passwrd.
  • Sledujte výkon svého serveru a sledujte jeho normální rychlost a propustnost, takže si můžete všimnout odchylek, například když zatížení serveru výrazně překročí obvyklé hodnoty.

Použití VPN a šifrování SSL/TLS

Pokud je nutný vzdálený přístup k serveru, měl by být povolen pouze z určitých IP adres a měl by probíhat přes VPN.

Dalším krokem k zajištění bezpečnosti by mohlo být nastavení SSL, které vám umožní nejen šifrovat data, ale také ověřit identitu ostatních účastníků síťové infrastruktury a vystavit jim příslušné certifikáty.

Kontrola zabezpečení serveru

Bylo by dobré nezávisle zkontrolovat zabezpečení serveru pomocí metody pentest, tzn. modelování útoků k nalezení potenciálních zranitelností a jejich včasnému odstranění. Je vhodné zapojit do toho specialisty na informační bezpečnost, ale některé testy lze provést nezávisle pomocí programů pro hackování serverů.

Co dalšího kromě hackování servery ohrožuje?

Server může selhat z mnoha jiných důvodů, než je hackování. Může se například jednat o napadení škodlivým softwarem nebo jednoduše o fyzické selhání kterékoli z komponent.

Opatření na ochranu serveru by proto měla zahrnovat:

  • Instalace a aktualizace programů pro ochranu serveru - antiviry.
  • Pravidelné šifrované kopie dat alespoň jednou týdně, protože podle statistik jsou pevné disky serverů na prvním místě v četnosti poruch. Ujistěte se, že záloha je uložena ve fyzicky zabezpečeném prostředí.
  • Zajištění nepřetržitého napájení serverovny.
  • Včasná fyzická prevence serverů, včetně jejich čištění od prachu a výměny teplovodivé pasty.

Zkušenosti specialistů Integrus nám říkají, že nejlepší ochranou proti tomuto typu hrozby je aplikace osvědčených postupů v oblasti systémů ochrany serverů.

K zajištění bezpečnosti serverů našich zákazníků používáme kombinaci nástrojů: firewally, antiviry, technologie zabezpečení / správy událostí (SIM / SEM), technologie detekce/ochrany narušení (IDS / IPS), technologie analýzy chování sítě (NBA) , a samozřejmostí je pravidelná preventivní údržba serverů a zajištění zabezpečených serveroven na klíč. To vám umožní snížit rizika hackování nebo selhání serveru z jiných důvodů na minimum.

Jsme připraveni provést bezpečnostní audit serverů vaší společnosti, poradit se s odborníky a provést všechny typy prací na nastavení ochrany serverového zařízení.

Zdravím všechny z týmu UNITWAY PW. Tímto tématem bychom chtěli demonstrovat absenci nekalé soutěže z naší strany a absenci černé, ošklivé, klamavé konkurence z projektu NewDestiny.

Zde je seznam řešení útoků, které kdy použili administrátoři NewDestiny loko9988, TyrikMan (včerejší OOG útok byl z IP adresy Yoshkar Ola), Killer_Pooh (byl zaznamenán i útok z města Volzhsky). Kromě útoků na nás jsme obdrželi informaci o útoku na řadu dalších serverů, který souvisel s naším objevem. Zveřejněním řady oprav z těchto útoků prokazujeme naši neangažovanost v útocích na kohokoli, a to navzdory jasně znepokojenému postoji správce Zzebra PW (mirthost) ohledně našeho projektu. Nemáme absolutně žádnou zášť vůči každému, kdo propadl žlutému článku o nás, každý má svou hlavu na ramenou.


A to je jen část jejich účtů.

Jedním z důvodů zveřejnění tohoto tématu byly fámy, které se k nám dostaly. Podstatou těchto fám je, že loko9988 útočí na servery nejen kvůli konkurenci, ale také proto, aby svým prostřednictvím nabídl těmto serverům ochranu.

Ochrana proti OOG útokům na základě iptables:
Nejprve vytvoříme skriptovaná pravidla firewallu, můžete je nazývat, jak chcete.

iptables -A INPUT -p tcp -m multiport --dports 29000 -m délka --length 500:65535 -j LOG --log-prefix "PW"

Kliknutím rozbalíte...

S tímto pravidlem zaznamenáváme všechny herní pakety z portu 29000 s velikostí od 500 do 65535 bajtů.

iptables -A INPUT -p tcp -m multiport --dports 29000 -m délka --length 500:65535 -m recent --name packets --set
iptables -A INPUT -p tcp -m multiport --dports 29000 -m délka --délka 500:65535 -m recent --name packets --update --seconds 1 --hitcount 100 -j REJECT

Kliknutím rozbalíte...

Pomocí těchto pravidel zablokujeme uživatele, pokud od něj server obdržel více než 100 paketů o velikosti 500 - 65535 bajtů za 1 sekundu na portu 29000 (hra).

iptables -A INPUT -p tcp -m multiport --dports 29000 -m délka --délka SIZE -m poslední --name packet1 --set
iptables -A INPUT -p tcp -m multiport --dports 29000 -m délka --length SIZE -m poslední --name packet1 --update --seconds 15 --hitcount 3 -j REJECT

Kliknutím rozbalíte...

Pomocí těchto pravidel blokujeme uživatele, kteří odeslali více než 3 pakety za 15 sekund na port 29000. SIZE - velikost paketu v bajtech.
Jak sledovat velikost paketu v bajtech?
Po prvním pravidle, kde logujeme všechny balíčky her, je můžete vidět v souboru /var/log/syslog nebo tým dmesg v konzole serveru.
Když dojde k útoku v syslog, bude v krátké době mnoho stejných paketů.

PW IN=ipip1 OUT= MAC= SRC= IP ADRESA UŽIVATELE DST=*.*.*.* LEN=547 TOS=0x00 PREC=0x00 TTL=241 ID=13328 DF PROTO=TCP SPT=22511 DPT=63947 WINDOW=254 RES=0x00 ACK PSH URGP=0

Kliknutím rozbalíte...

Ve výše uvedeném příkladu je velikost paketu "LEN=547".

Vyřešili jsme ochranu OOG. Pojďme k dalším způsobům, jak NewDestiny soutěží.
Hrubé účty. Zde je vše naprosto jednoduché:
#blokovat přihlášení hrubou silou

iptables -A INPUT -p tcp -m multiport --dports 29000 -m conntrack --ctstate NEW -m recent --name brute --set
iptables -A INPUT -p tcp -m multiport --dports 29000 -m conntrack --ctstate NEW -m recent --name brute --update --seconds 30 --hitcount 3 -j REJECT

Kliknutím rozbalíte...

S tímto pravidlem zablokujeme IP uživatele na 30 sekund, pokud provedl více než 3 požadavky na připojení k portu 29000.
  • Udělejte úplné omezení portů, kromě toho herního přes iptables.
  • Připojte se k serveru pomocí ssh klíče (klíčů) s kódovým slovem.
  • Používejte nejnovější verze mysql, apache2 a dalších důležitých balíčků.
  • Po načtení přes OOG použijte logrotate, jinak bude při zálohování logů zcela využita RAM vašeho serveru. To může mít za následek hack.
  • Na herním serveru nepoužívejte software třetích stran.
  • Použijte vlastní filtr hesel hráče. Během několika hodin došlo k více než 50 000 neplatných pokusů o autorizaci našeho přihlášení. 30 % našich hráčů mělo stejné přihlašovací údaje z těchto párů přihlašovací jméno-heslo.
Preferujeme férovou soutěž, nemáme čas ani finance navíc na útok. Nezahrávejte si s těmi lidmi, mohlo by to skončit špatně.

Většina programů musí komunikovat s uživatelem zadáním určitých údajů, ať už je to celé jméno, výška, váha, která se má zadat do databáze, nebo geometrické rozměry nějakého objektu, pro který je potřeba něco vypočítat. Všechny tyto údaje zadává uživatel – osoba, což znamená, že odpověď může přijít cokoli. Co program vytvoří, pokud jej uživatel napíše slovy namísto věku, který vyžaduje? S největší pravděpodobností se program zhroutí nebo zamrzne, ale ne, pokud má „ochranu bláznů“.

Proč může program selhat nebo zamrznout? Program se pokusí převést sadu znaků na číslo, což nebude možné, což znamená, že další provoz aplikace není definován. Proto je velmi důležité uspořádat strukturu programu tak, aby při vstupu neočekávané u datového programu (nesprávné z hlediska požadovaného formátu: je potřeba číslo, ale je zadáno slovo) aplikace nespadla, ale informovala uživatele, že došlo k chybě a požádala o opakování zadání. Toto je „blbý důkaz“.

Implementace zabezpečení proti chybám v C

Pro implementaci dobrého foolproofingu pro zadávání různých číselných (int, double...) dat je nutné číst nikoli samotná čísla, ale celý vstupní řetězec a teprve poté analyzovat vstup. Jazyk C má velmi dobrou funkci sscanf(const char *, const char *, args) , která funguje podobně jako funkce scanf(const char *, args) vrací počet úspěšně přečtených argumentů, pouze data se nečtou ze standardního vstupního proudu, ale z řetězce, který je mu předán jako první argument.

Podívejme se na některé příklady funkcí, které implementují kontrolu bláznů pomocí funkce sscanf.

Zadání celého čísla s kontrolou nesprávného zadání

int get_integer(const char *msg) ( char odpověď; // řádek pro čtení int n; // konečné celé číslo printf("%s", msg); // zobrazení výzvy fgets(odpověď, velikost(odpověď), stdin); // číst řádek // dokud se nepřečte celé číslo, zatímco (sscanf(answer, "%d", &n) != 1) ( printf("Nesprávný vstup. Zkuste to znovu: "); // vytiskne zprávu o chybě fgets (odpověď, sizeof(odpověď), stdin // a znovu přečti řádek ) return n // vrátí správné celé číslo )

Aby bylo možné přečíst celé číslo, algoritmus přečte celý řetězec a poté se z něj pokusí získat celé číslo. Pokud se to nezdaří, funkce zobrazí chybovou zprávu s výzvou k opakování zadání, dokud nebude zadána správná celočíselná hodnota.

Zadání reálného čísla s kontrolou nesprávného zadání

double get_double(const char *msg) ( char answer; // řádek pro čtení double x; // konečné reálné číslo printf("%s", msg); // zobrazení výzvy fgets(answer, sizeof(answer), stdin) ; // číst řádek // dokud se nenačte skutečné číslo (sscanf(odpověď, "%lf", &x) != 1) ( printf("Nesprávné zadání. Zkuste znovu: "); // vytiskněte zprávu o error fgets(answer, sizeof(answer), stdin // a znovu si přečti řádek ) return x // vrátí správné reálné číslo )

Zadání bodu na souřadnicové rovině (struktura se dvěma reálnými poli)

// popis datové struktury typedef struct bod_t ( double x; // souřadnice x double y; // souřadnice y ) bod_t; point_t get_point(const char *msg) ( char answer; // řádek pro čtení bodu point_t; // konečný bod printf("%s", msg); // zobrazení vstupní výzvy fgets(answer, sizeof(answer), stdin ); // číst řádek // dokud nejsou načteny obě souřadnice bodu while (sscanf(odpověď, "(%lf,%lf)", &point.x, &point.y) != 2) ( printf("Nesprávné zadání. Zkuste to znovu: "); // zobrazí chybovou zprávu fgets(answer, sizeof(answer), stdin); // a znovu si přečte řádek ) return point; // vrátí správný bod )

Jak je patrné z příkladů, funkce funkce sscanf vracející počet přečtených argumentů umožňuje kontrolovat správnost zadávaných dat v určeném formátu a čtení celého řádku chrání před tím, že mezery nebo zalomení řádků „\n“ zůstane ve vstupním toku, což vás velmi často nutí plýtvat. Nalezení chyby netrvá hodinu ani den.




Nahoru