Akákoľvek verzia Komplexná ochrana pred útokmi (OOG a iné). Ochrana servera pred hackermi Fyzická ochrana servera

Väčšina programov musí s používateľom interagovať zadaním určitých údajov, či už je to celé meno, výška, hmotnosť, ktorá sa má zadať do databázy, alebo geometrické rozmery nejakého objektu, pre ktorý treba niečo vypočítať. Všetky tieto údaje zadáva užívateľ – osoba, čo znamená, že odpoveďou môže byť čokoľvek. Čo program vyprodukuje, ak ho používateľ namiesto požadovaného veku napíše slovom? S najväčšou pravdepodobnosťou sa program zrúti alebo zamrzne, ale nie, ak má v sebe „ochranu bláznov“.

Prečo sa program môže ukončiť alebo zamrznúť? Program sa pokúsi previesť znakovú sadu na číslo, čo zlyhá, čo znamená ďalšiu prácu aplikácia nie je definovaná. Preto je veľmi dôležité usporiadať štruktúru programu tak, aby pri vstupe neočakávané pre dátový program (nesprávne z hľadiska požadovaného formátu: treba číslo, ale zadá sa slovo), aplikácia „nepadla“, ale informovala užívateľa, že nastala chyba a ponúkla zopakovanie zadania. Toto je „odolné voči hlúpostiam“.

Implementácia zabezpečenia proti chybám v C

Na implementáciu dobrého foolproofingu pre zadávanie rôznych číselných (int, double...) údajov je potrebné čítať nie samotné čísla, ale celý vstupný reťazec a až potom analyzovať vstup. Jazyk C má veľmi peknú funkciu sscanf(const char *, const char *, args) , ktorá funguje podobne ako funkcia scanf(const char *, args), vracia počet úspešne prečítaných argumentov, len dáta sa čítajú nie zo štandardného vstupného toku, ale z reťazca, ktorý mu bol odovzdaný ako prvý argument.

Pozrime sa na niekoľko príkladov funkcií, ktoré implementujú kontrolu hlúposti pomocou funkcie sscanf.

Zadanie celého čísla s kontrolou neplatného vstupu

int get_integer(const char *msg) ( char odpoveď; // reťazec na prečítanie int n; // konečné celé číslo printf("%s", msg); // vytlačenie výzvy fgets(odpoveď, veľkosť(odpoveď), stdin); // čítajte reťazec // kým sa neprečíta celé číslo (sscanf(answer, "%d", &n) != 1) ( printf("Nesprávne zadanie. Skúste znova: "); // vytlačí správu o chybe fgets (odpoveď, veľkosť(odpoveď), štandardná adresa); // a znova si prečítajte reťazec ) vráti n; // vráti platné celé číslo )

Ak chcete prečítať celé číslo, algoritmus prečíta celý reťazec a potom sa z neho pokúsi získať celé číslo. V prípade, že sa to nepodarí, funkcia zobrazí chybové hlásenie s návrhom zopakovať zadávanie, kým sa nezadá správna celočíselná hodnota.

Zadanie reálneho čísla s kontrolou nesprávneho zadania

double get_double(const char *msg) ( char answer; // reťazec na prečítanie double x; // výsledné reálne číslo printf("%s", msg); // výzva na tlač fgets(answer, sizeof(answer), stdin) ; // čítajte reťazec //, kým sa neprečíta skutočné číslo, zatiaľ čo (sscanf(answer, "%lf", &x) != 1) ( printf("Nesprávne zadanie. Skúste znova: "); // vytlačte správu o error fgets(answer, sizeof(answer), stdin); // a znova si prečítajte reťazec ) return x; // vráti platné reálne číslo )

Zadanie bodu na súradnicovej rovine (štruktúra s dvoma reálnymi poľami)

// popis dátovej štruktúry typedef struct bod_t ( double x; // x suradnica double y; // suradnica y ) bod_t; point_t get_point(const char *msg) ( char odpoveď; // reťazec na čítanie bod_t bod; // konečný bod printf("%s", msg); // výzva na tlač fgets(odpoved, veľkosť(odpoveď), stdin ); // čítať riadok // kým sa neprečítajú obe súradnice bodu (sscanf(odpoveď, "(%lf,%lf)", &point.x, &point.y) != 2) ( printf("Nesprávne zadanie. Skúste znova: "); // vytlačí chybové hlásenie fgets(answer, sizeof(answer), stdin); // a znovu si prečíta reťazec ) návratový bod; // vráti správny bod )

Ako je zrejmé z príkladov, funkcia vrátenia počtu argumentov prečítaných funkciou sscanf vám umožňuje kontrolovať správnosť zadaných údajov v zadanom formáte a čítanie celého riadku chráni pred tým, že medzery alebo riadky vo vstupnom toku zostávajú prestávky „\n“, ktoré vás veľmi často nútia nestráviť ani hodinu či dokonca deň hľadaním chyby.

Zdravím všetkých z tímu UNITWAY PW. Touto témou by sme chceli demonštrovať absenciu nekalej konkurencie z našej strany a čiernej, škaredej, klamlivej konkurencie zo strany projektu NewDestiny.

Tu je zoznam riešení z útokov, ktoré kedy použili administrátori NewDestiny loko9988, TyrikMan (včerajší OOG útok bol z IP adresy Yoshkar Ola), Killer_Pooh (Bol zaznamenaný aj útok z mesta Volzhsky). Okrem útokov na nás sme dostali informáciu o útoku na množstvo ďalších serverov, ktorý bol spojený s naším objavom. Zverejnením množstva opráv z týchto útokov demonštrujeme našu neangažovanosť v útokoch na kohokoľvek, a to aj napriek jasne znepokojenému postoju administrátora Zzebry PW (mirthost) k nášmu projektu. Absolútne nemáme zášť voči každému, kto prepadol žltému článku o nás, každý má svoju hlavu na pleciach.


A to je len časť ich účtov.

Jedným z dôvodov zverejnenia tejto témy boli fámy, ktoré sa k nám dostali. Podstatou týchto fám je, že loko9988 útočí na servery nielen kvôli konkurencii, ale aj preto, aby cez ňu ponúkol ochranu týmto serverom.

Ochrana proti OOG útokom na základe iptables:
V prvom rade vytvoríme skriptované pravidlá firewallu, môžete ich nazývať ako chcete.

iptables -A INPUT -p tcp -m multiport --dports 29000 -m dĺžka --dĺžka 500:65535 -j LOG --log-prefix "PW"

Kliknutím zobrazíte...

Pomocou tohto pravidla zapisujeme všetky herné pakety z portu 29000 vo veľkosti od 500 do 65535 bajtov.

iptables -A INPUT -p tcp -m multiport --dports 29000 -m dĺžka --dĺžka 500:65535 -m recent --name packets --set
iptables -A INPUT -p tcp -m multiport --dports 29000 -m dĺžka --dĺžka 500:65535 -m recent --name packets --update --seconds 1 --hitcount 100 -j ODMIETNUTIE

Kliknutím zobrazíte...

Pomocou týchto pravidiel zablokujeme používateľa, ak od neho server prijal viac ako 100 paketov s veľkosťou 500 - 65535 bajtov za 1 sekundu na 29000 (hernom) porte.

iptables -A INPUT -p tcp -m multiport --dports 29000 -m dĺžka --dĺžka SIZE -m posledný --name packet1 --set
iptables -A INPUT -p tcp -m multiport --dports 29000 -m dĺžka --dĺžka SIZE -m posledný --name packet1 --update --seconds 15 --hitcount 3 -j REJECT

Kliknutím zobrazíte...

Pomocou týchto pravidiel blokujeme používateľov, ktorí odoslali viac ako 3 pakety za 15 sekúnd na port 29000. SIZE - veľkosť paketu v bajtoch.
Ako sledovať veľkosť paketu v bajtoch?
Po prvom pravidle, kde logujeme všetky balíčky hier, ich môžete vidieť v súbore /var/log/syslog alebo tím dmesg v konzole servera.
Keď prebieha útok, v syslog bude v krátkom čase veľa rovnakých paketov.

PW IN=ipip1 OUT= MAC= SRC= ADRESA UŽÍVATEĽA 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 zobrazíte...

Vo vyššie uvedenom príklade je veľkosť série "LEN=547".

Prišli sme na ochranu OOG. Prejdime k iným spôsobom, akým NewDestiny súťaží.
Hrubé účty. Všetko je tu celkom jednoduché:
#blokovať prihlásenie 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 zobrazíte...

Pomocou tohto pravidla zablokujeme IP používateľa na 30 sekúnd, ak na port 29000 vykonal viac ako 3 žiadosti o pripojenie.
  • Urobte úplné obmedzenie portov, s výnimkou hrania cez iptables.
  • Vytvorte spojenie so serverom pomocou ssh kľúča (kľúčov) s kódovým slovom.
  • Použite najnovšie verzie mysql, apache2 a ďalšie dôležité balíky.
  • Po načítaní cez OOG použite logrotate, inak, keď zálohovanie protokoly RAM Váš server bude plne využitý. Výsledkom môže byť hack.
  • Na hernom serveri nepoužívajte softvér tretích strán.
  • Použite vlastný filter hesiel hráča. V priebehu niekoľkých hodín bolo na našej autorizácii viac ako 50 000 neplatných pokusov o autorizáciu. 30 % našich hráčov malo rovnaké prihlasovacie údaje z týchto párov prihlasovacie meno a heslo.
Preferujeme férový priebeh súťaže, nemáme čas a peniaze navyše na útoky. Nezahrávajte sa s týmito ľuďmi, môže to skončiť zle.

Je nemožné chrániť server pred vonkajším prístupom raz a navždy, pretože každý deň sa objavujú nové zraniteľnosti a objavujú sa nové spôsoby hackovania servera. V tomto článku budeme hovoriť o ochrane serverov pred neoprávneným prístupom.

Servery ktorejkoľvek spoločnosti sa môžu skôr či neskôr stať terčom hackingu alebo vírusového útoku. Výsledkom takéhoto útoku je zvyčajne strata údajov, poškodenie dobrej povesti alebo finančné škody, takže v prvom rade by sa mali riešiť otázky zabezpečenia servera.

Malo by sa chápať, že ochrana pred hackovaním servera je súbor opatrení vrátane tých, ktoré zahŕňajú neustále monitorovanie prevádzky servera a prácu na zlepšení ochrany. Je nemožné chrániť server pred vonkajším prístupom raz a navždy, pretože každý deň sa objavujú nové zraniteľnosti a objavujú sa nové spôsoby hackovania servera.

V tomto článku budeme hovoriť o ochrane serverov pred neoprávneným prístupom.

Spôsoby a metódy ochrany serverov pred neoprávneným prístupom

Fyzická ochrana servera

Fyzická ochrana. Je žiaduce, aby bol server umiestnený v zabezpečenom dátovom centre, uzavretej a stráženej miestnosti, cudzinci by na server nemali mať prístup.

Nastavte autentifikáciu SSH

Pri nastavovaní prístupu na server použite namiesto hesla autentifikáciu pomocou kľúča SSH, pretože takéto kľúče sú oveľa ťažšie a niekedy jednoducho nemožné ich prelomiť pomocou vyhľadávania hrubou silou.

Ak si myslíte, že stále potrebujete heslo, obmedzte počet pokusov o jeho zadanie.

Venujte pozornosť, ak sa vám pri prihlásení zobrazí takáto správa:

Posledné neúspešné prihlásenie: Ut Sep 28 12:42:35 MSK 2017 from 52.15.194.10 on ssh:notty
Od posledného úspešného prihlásenia sa vyskytlo 8243 neúspešných pokusov o prihlásenie.

Môže to znamenať, že váš server bol napadnutý. V takom prípade nakonfigurujte zabezpečenie servera, zmeňte port SSH, obmedzte zoznam adries IP, z ktorých je možný prístup na server, alebo nainštalujte softvér, ktorý automaticky blokuje príliš časté a podozrivé aktivity.

Pravidelne inštalujte najnovšie aktualizácie

Na zabezpečenie ochrany servera nainštalujte najnovšie záplaty a aktualizácie serverového softvéru, ktorý používate - operačný systém, hypervízor, databázový server.

Odporúča sa každý deň kontrolovať nové záplaty, aktualizácie a nahlásené chyby/slabosti, aby ste predišli útokom využívajúcim zraniteľnosti zero-day. Ak to chcete urobiť, prihláste sa na odber noviniek od spoločnosti zaoberajúcej sa vývojom softvéru, sledujte jej stránky na sociálnych sieťach.

Chráňte heslá

Jedným z najbežnejších spôsobov získania prístupu na server je prelomenie hesla servera. Preto sa riaďte známymi, no napriek tomu relevantnými odporúčaniami, aby ste server nenechali nechránený:

  • nepoužívajte heslá, ktoré sa dajú ľahko uhádnuť, ako napríklad názov spoločnosti;
  • ak stále používate predvolené heslo pre správcovskú konzolu, okamžite ho zmeňte;
  • heslá pre rôzne služby musia byť odlišné;
  • ak potrebujete s niekým zdieľať svoje heslo, nikdy neposielajte svoju IP adresu, používateľské meno a heslo v tom istom e-maile alebo správe;
  • Na prihlásenie do účtu správcu si môžete nastaviť dvojstupňové overenie.

POŽARNE DVERE

  • Uistite sa, že server má , je nakonfigurovaný a beží po celú dobu.
  • Chráňte prichádzajúcu aj odchádzajúcu prevádzku.
  • Sledujte, aké porty sú otvorené a na aký účel, neotvárajte nič zbytočné, aby ste znížili počet možných zraniteľností pri hackovaní servera.

Najmä brána firewall veľmi pomáha pri ochrane servera pred ddos útoky, pretože môžete rýchlo vytvoriť pravidlá blokovania brány firewall a pridať adresy IP, z ktorých útok prichádza, alebo zablokovať prístup k určitým aplikáciám pomocou určitých protokolov.

Monitorovanie a detekcia narušenia

  • Obmedzte softvér a služby spustené na vašom serveri. Pravidelne kontrolujte všetko, čo máte spustené, a ak sa nájdu nejaké neznáme procesy, okamžite ich vymažte a začnite s kontrolou vírusov.
  • Pravidelne kontrolujte známky manipulácie. Hackovanie môže byť dokázané novým účty používateľov, ktorých ste nevytvorili, presun alebo odstránenie súboru /etc/syslog.conf, odstránené súbory/etc/shadow A /etc/passwrd.
  • Monitorujte výkon svojho servera, sledujte jeho normálnu rýchlosť a priepustnosť, takže si môžete všimnúť odchýlky, napríklad keď je zaťaženie servera výrazne vyššie ako zvyčajne.

Používanie VPN a šifrovania SSL/TLS

V prípade potreby vzdialený prístup na server, malo by to byť povolené iba z určitých adries IP a malo by sa to diať cez VPN.

Ďalším krokom k zaisteniu bezpečnosti môže byť nastavenie SSL, ktoré bude nielen šifrovať dáta, ale aj overovať identitu ostatných účastníkov sieťovej infraštruktúry vydávaním príslušných certifikátov.

Bezpečnostná kontrola servera

Bolo by dobré nezávisle skontrolovať bezpečnosť servera pomocou metódy pentest, t.j. simuláciu útoku, aby ste našli potenciálne zraniteľné miesta a včas ich odstránili. Je vhodné zapojiť do toho špecialistov informačná bezpečnosť Niektoré testy však možno vykonať nezávisle pomocou programov na hackovanie serverov.

Čo ešte ohrozuje servery okrem hackovania

Server môže zlyhať z iných dôvodov, ako je napadnutie. Môže ísť napríklad o napadnutie škodlivým softvérom alebo len o fyzické zlyhanie jednej zo súčastí.

Preto by opatrenia na ochranu servera mali zahŕňať:

  • Inštalácia a aktualizácia programov na ochranu servera - antivírusy.
  • Pravidelné šifrované kópie údajov aspoň raz týždenne, pretože podľa štatistík sú serverové pevné disky na prvom mieste z hľadiska frekvencie porúch. Uistite sa, že záložná kópia uložené vo fyzicky zabezpečenom prostredí.
  • Zabezpečenie nepretržitého napájania serverovej miestnosti.
  • Včasná fyzická prevencia serverov, vrátane ich čistenia od prachu a výmeny tepelnej pasty.

Skúsenosti špecialistov Integrus nám to hovoria najlepšia ochrana proti takýmto hrozbám je použitie osvedčené postupy v oblasti systémov ochrany serverov.

Na zaistenie bezpečnosti serverov našich zákazníkov používame kombináciu nástrojov: firewally, antivírusy, technológie zabezpečenia / správy udalostí (SIM / SEM), technológie detekcie / ochrany pred narušením (IDS / IPS), technológie analýzy správania v sieti (NBA). , samozrejmosťou je pravidelná preventívna údržba serverov a zabezpečenie bezpečných serverovní na kľúč. To vám umožňuje minimalizovať riziká hackingu alebo zlyhania servera z iných dôvodov.

Sme pripravení vykonať bezpečnostný audit serverov vašej spoločnosti, poradiť sa s odborníkmi, vykonať všetky druhy prác pri nastavovaní ochrany serverových zariadení.



Načítava...
Hore