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í.
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.