Bármilyen verzió Átfogó védelem a támadások ellen (OOG és mások). A szerver védelme a hackelés ellen A szerver fizikai védelme

A legtöbb programnak bizonyos adatok megadásával kell interakcióba lépnie a felhasználóval, legyen az név, magasság, súly, hogy az adatbázisba kerüljön, vagy geometriai méretek valami tárgy, amihez valamit ki kell számítani. Mindezeket az adatokat a felhasználó – egy személy – adja meg, ami azt jelenti, hogy bármi válaszul jöhet. Mit fog kiadni a program, ha a felhasználó szavakkal írja le a megkövetelt kor helyett? Valószínűleg a program összeomlik vagy lefagy, de nem, ha „bolondvédelemmel” rendelkezik.

Miért állhat össze vagy lefagy egy program? A program megpróbálja a karakterkészletet számmá alakítani, ami nem lesz lehetséges, ami azt jelenti további munka alkalmazás nincs meghatározva. Ezért nagyon fontos a program felépítését úgy megszervezni, hogy belépéskor váratlan adatprogramhoz (a szükséges formátum szempontjából hibás: szám kell, de szó van beírva), az alkalmazás nem omlott le, hanem hiba lépett fel a felhasználóval, és kérte a bevitel megismétlését. Ez „bolond bizonyíték”.

A bolondvédelem megvalósítása C-ben

Ahhoz, hogy a különféle numerikus (int, dupla...) adatok bevitelénél jó hibabiztosságot tudjunk megvalósítani, nem magukat a számokat kell beolvasni, hanem a teljes bemeneti karakterláncot, és csak ezután kell elemezni a bemenetet. A C nyelvnek van egy nagyon jó sscanf(const char *, const char *, args) függvénye, ami a scanf(const char *, args) függvényhez hasonlóan működik, visszaadja a sikeresen beolvasott argumentumok számát, csak az adatok beolvasása nem a szabványos bemeneti adatfolyamból, hanem a neki első argumentumként átadott karakterláncból.

Nézzünk néhány példát azokra a függvényekre, amelyek az sscanf függvény segítségével bolondellenőrzést valósítanak meg.

Egész szám bevitele a hibás bevitel ellenőrzésével

int get_integer(const char *msg) ( char answer; // sor az int n olvasásához; // final integer printf("%s", msg); // prompt megjelenítése fgets(answer, sizeof(answer), stdin); // addig olvassa el a sort // amíg egy egész szám beolvasásra nem kerül míg (sscanf(answer, "%d", &n) != 1) ( printf("Hibás bevitel. Próbáld újra: "); // üzenet nyomtatása az fgets hibáról (válasz, sizeof(válasz), stdin // és olvassa újra a sort ) return n // visszaadja a helyes egész számot )

Egy egész szám beolvasásához az algoritmus beolvassa a teljes karakterláncot, majd megpróbál belőle egész számot kérni. Ha ez nem sikerül, a függvény hibaüzenetet jelenít meg, amely arra kéri, hogy ismételje meg a bevitelt mindaddig, amíg a helyes egész értéket meg nem adja.

Valós szám bevitele a hibás bevitel ellenőrzésével

double get_double(const char *msg) ( char answer; // sor a double x olvasásához; // végső valós szám printf("%s", msg); // prompt megjelenítése fgets(válasz, sizeof(answer), stdin) ; // addig olvassa a sort // amíg egy valós szám beolvasásra kerül, míg (sscanf(answer, "%lf", &x) != 1) ( printf("Hibás bevitel. Próbáld újra: "); // üzenetet nyomtat hiba fgets(válasz, sizeof(válasz), stdin // és olvassa újra a sort ) return x // visszatér a helyes valós szám )

Pont bevitele a koordinátasíkon (két valós mezővel rendelkező szerkezet)

// az adatstruktúra leírása typedef struct point_t ( double x; // x koordináta double y; // y koordináta ) pont_t; point_t get_point(const char *msg) ( char answer; // sor a point_t point olvasásához; // végső pont printf("%s", msg); // bemeneti prompt megjelenítése fgets(answer, sizeof(answer), stdin ); // addig olvassa a sort // amíg mindkét pontkoordináta beolvasásra kerül, míg (sscanf(answer, "(%lf,%lf)", &point.x, &point.y) != 2) ( printf("Hibás bevitel. Próbáld újra: "); // hibaüzenet megjelenítése fgets(válasz, sizeof(answer), stdin); // és olvassa el újra a sort ) return point; // a helyes pont visszaadása )

Ahogy a példákból is látható, az sscanf függvény beolvasott argumentumok számát visszaadó tulajdonsága lehetővé teszi a megadott formátumban bevitt adatok helyességének ellenőrzését, a teljes sor beolvasása pedig véd a szóköz karakterek vagy sortörések ellen. A „\n” a bemeneti adatfolyamban marad, ami gyakran vesztegetésre kényszeríti. Nem kell egy óra vagy akár egy nap sem, hogy megtaláljuk a hibát.

Üdvözlök mindenkit az UNITWAY PW csapatából. Ezzel a témával azt szeretnénk demonstrálni, hogy részünkről hiányzik a tisztességtelen verseny, illetve a fekete, csúnya, álságos verseny hiánya a NewDestiny projektből.

Íme a NewDestiny rendszergazdák által valaha is használt megoldások listája: loko9988, TyrikMan (a tegnapi OOG támadás a Yoshkar Ola IP-címről történt), Killer_Pooh (Rögzítettek egy Volzhsky városból érkező támadást is). A minket ért támadásokon kívül számos más szerver elleni támadásról is kaptunk információkat, amelyek a felfedezésünkhöz kapcsolódnak. A támadások számos javításának közzétételével demonstráljuk, hogy nem vettünk részt senkit ért támadásokban, annak ellenére, hogy a Zzebra PW (mirthost) adminisztrátor egyértelműen aggályos álláspontja van projektünkkel kapcsolatban. Egyáltalán nem tartunk haragot mindenkire, aki a rólunk szóló sárga cikkre esett, mindegyiknek a vállán van a feje.


És ez csak egy része a beszámolóiknak.

A téma közzétételének egyik oka a hozzánk eljutott pletykák voltak. Ezeknek a pletykáknak az a lényege, hogy a loko9988 nem csak a verseny miatt támad szervereket, hanem azért is, hogy rajta keresztül védelmet nyújtson ezeknek a szervereknek.

OOG támadások elleni védelem iptables alapján:
Mindenekelőtt scripted tűzfalszabályokat hozunk létre, hívhatod őket, ahogy akarod.

iptables -A BEMENET -p tcp -m többportos --dports 29000 -m long -length 500:65535 -j LOG --log-előtag "PW"

Kattintson a kibontáshoz...

Ezzel a szabállyal minden játékcsomagot rögzítünk a 29000-es portról 500 és 65535 bájt közötti méretben.

iptables -A BEMENET -p tcp -m multiport --dports 29000 -m hossz --hossz 500:65535 -m legutóbbi --name packets --set
iptables -A BEMENET -p tcp -m többportos --dportok 29000 -m hossz --hossz 500:65535 -m legutóbbi --name csomagok --frissítés --másodperc 1 --találatok száma 100 -j ELUTASÍTÁS

Kattintson a kibontáshoz...

Ezekkel a szabályokkal letiltjuk a felhasználót, ha a szerver 1 másodperc alatt több mint 100 500-65535 bájt méretű csomagot kapott tőle a 29000-es porton (játék).

iptables -A BEMENET -p tcp -m multiport -dports 29000 -m hosszúság -hosszúság SIZE -m legutóbbi
iptables -A BEMENET -p tcp -m többportos --dportok 29000 -m hosszúság --hosszúság MÉRET -m legutóbbi --name csomag1 --frissítés --másodperc 15 --találatok száma 3 -j ELUTASÍTÁS

Kattintson a kibontáshoz...

Ezekkel a szabályokkal blokkoljuk azokat a felhasználókat, akik 15 másodpercen belül 3-nál több csomagot küldtek a 29000-es portra. MÉRET – a csomag mérete bájtban.
Hogyan lehet nyomon követni a csomag méretét bájtban?
Az első szabály után, ahol minden játékcsomagot naplózunk, láthatjuk őket a fájlban /var/log/syslog vagy csapat dmesg a szerverkonzolban.
Ha támadás történik a syslogban, rövid időn belül sok azonos csomag lesz.

PW IN=ipip1 OUT= MAC= SRC= FELHASZNÁLÓI IP-CÍM 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

Kattintson a kibontáshoz...

A fenti példában a csomag mérete "LEN=547".

Megoldottuk az OOG védelmet. Térjünk át a NewDestiny versenyének más módjaira.
Brutális beszámolók. Itt minden teljesen egyszerű:
#blokkolja a brute force bejelentkezést

iptables -A BEMENET -p tcp -m multiport --dports 29000 -m conntrack --ctstate ÚJ -m legutóbbi --name brute --set
iptables -A BEMENET -p tcp -m multiport -dports 29000 -m conntrack

Kattintson a kibontáshoz...

Ezzel a szabállyal 30 másodpercre blokkoljuk a felhasználó IP-címét, ha 3-nál több kérést nyújtott be a 29000-es porthoz való csatlakozásra.
  • Tegyél teljes korlátozást a portokra, kivéve az iptables-on keresztüli játékokat.
  • Csatlakozzon a szerverhez az ssh kulcs (kulcsok) használatával egy kódszóval.
  • Használat legújabb verziói mysql, apache2 és más fontos csomagok.
  • Az OOG-n keresztüli betöltés után használja a logrotate-ot, ellenkező esetben amikor biztonsági mentés odúk RAM A szerver teljes mértékben kihasználva lesz. Ez feltörést okozhat.
  • Ne használjon harmadik féltől származó szoftvereket a játékszerveren.
  • Használjon egyéni játékos jelszószűrőt. Néhány óra leforgása alatt több mint 50 000 érvénytelen engedélyezési kísérlet történt a bejelentkezéssel. Játékosaink 30%-a ugyanazokkal a bejelentkezésekkel rendelkezett ezekből a bejelentkezési-jelszó párokból.
A tisztességes versenyt részesítjük előnyben, nincs időnk vagy plusz pénzünk a támadásra. Ne szórakozz ezekkel az emberekkel, rossz vége lehet.

Lehetetlen egyszer s mindenkorra megvédeni a szervert a külső hozzáféréstől, mert napról napra újabb sérülékenységeket fedeznek fel, és új módok jelennek meg a szerver feltörésére. Ebben a cikkben a szerverek jogosulatlan hozzáféréssel szembeni védelméről fogunk beszélni.

Bármely cég szerverei előbb-utóbb hackelés vagy vírustámadás célpontjává válhatnak. Az ilyen támadások eredménye általában adatvesztés, hírnév- vagy anyagi kár, ezért kiemelt figyelmet kell fordítani a szerverbiztonsági kérdésekre.

Meg kell érteni, hogy a szerver feltörése elleni védelem egy intézkedéscsomag, amely magában foglalja a szerver működésének folyamatos ellenőrzését és a védelem javítására irányuló munkát. Lehetetlen egyszer s mindenkorra megvédeni a szervert a külső hozzáféréstől, mert napról napra újabb sérülékenységeket fedeznek fel, és új módok jelennek meg a szerver feltörésére.

Ebben a cikkben a szerverek jogosulatlan hozzáféréssel szembeni védelméről fogunk beszélni.

A szerverek jogosulatlan hozzáférés elleni védelmének módjai és módszerei

A szerver fizikai védelme

Fizikai védelem. A szervert célszerű biztonságos adatközpontban elhelyezni, zárt és őrzött helyiségben kívülállók nem férhetnek hozzá a szerverhez.

SSH hitelesítés beállítása

A kiszolgálóhoz való hozzáférés beállításakor használjon SSH-kulcsos hitelesítést jelszó helyett, mivel az ilyen kulcsokat sokkal nehezebb, és néha egyszerűen lehetetlen nyers erővel feltörni.

Ha úgy gondolja, hogy továbbra is szüksége van jelszóra, mindenképpen korlátozza a megadási kísérletek számát.

Kérjük, vegye figyelembe, ha bejelentkezéskor ilyen üzenetet lát:

Utolsó sikertelen bejelentkezés: 2017. szeptember 28. kedd, 12:42:35 MSK, 52.15.194.10, ssh:notty
Az utolsó sikeres bejelentkezés óta 8243 sikertelen bejelentkezési kísérlet történt.

Azt jelezheti, hogy valaki megpróbálta feltörni a szerverét. Ebben az esetben a szerver biztonságának konfigurálásához módosítsa az SSH-portot, korlátozza azon IP-címek listáját, amelyekről elérhető a szerver, vagy telepítsen olyan szoftvert, amely automatikusan blokkolja a túl gyakori és gyanús tevékenységeket.

Rendszeresen telepítse a legújabb frissítéseket

A kiszolgáló védelmének biztosítása érdekében azonnal telepítse a használt kiszolgálószoftver legújabb javításait és frissítéseit - operációs rendszer, hypervisor, adatbázis-kiszolgáló.

Javasoljuk, hogy minden nap ellenőrizze az új javításokat, frissítéseket és hiba-/sebezhetőségi jelentéseket, hogy megelőzze a nulladik napi sebezhetőségeket kihasználó támadásokat. Ehhez iratkozzon fel a szoftverfejlesztő cég híreire, kövesse oldalait a közösségi hálózatokon.

Védje jelszavait

Eddig a szerverhez való hozzáférés egyik leggyakoribb módja a kiszolgáló jelszavának feltörése volt. Ezért tartsa be a jól ismert, de mégis releváns ajánlásokat, hogy ne hagyja védelem nélkül a szervert:

  • Ne használjon könnyen kitalálható jelszavakat, például a cég nevét;
  • ha továbbra is az alapértelmezett jelszót használja a rendszergazdai konzolhoz, azonnal módosítsa azt;
  • a különböző szolgáltatások jelszavainak eltérőnek kell lenniük;
  • ha valakinek jelszót kell adnia, soha ne küldje el az IP-címet, a bejelentkezési nevet és a jelszót ugyanabban az e-mailben vagy messenger üzenetben;
  • A rendszergazdai fiókba való bejelentkezéshez kétfaktoros hitelesítést állíthat be.

Tűzfal

  • Győződjön meg arról, hogy a kiszolgáló rendelkezik , be van állítva és folyamatosan fut.
  • Biztonságos a bejövő és a kimenő forgalom.
  • Kövesse nyomon, hogy mely portok vannak nyitva és milyen célból, ne nyisson meg semmi feleslegeset, hogy csökkentse a szerver feltörésével kapcsolatos lehetséges sebezhetőségek számát.

A tűzfal különösen nagy segítség a szerver védelmében ddos támadások, mert gyorsan létrehozhat tiltó tűzfalszabályokat, és hozzáadhatja azokat az IP-címeket, amelyekről a támadás érkezik, vagy letilthatja a hozzáférést bizonyos alkalmazásokhoz bizonyos protokollok használatával.

Felügyelet és behatolásészlelés

  • Korlátozza a kiszolgálón futó szoftvereket és szolgáltatásokat. Rendszeresen ellenőrizze mindazt, ami fut, és ha olyan folyamatokat talál, amelyek ismeretlenek az Ön számára, azonnal törölje azokat, és kezdje el a víruskeresést.
  • Rendszeresen ellenőrizze a manipuláció jeleit. Az új információk feltörésre utalhatnak Fiókok felhasználók, akiket nem Ön hozott létre, áthelyezett vagy törölt fájlt /etc/syslog.conf, törölt fájlok/etc/shadowÉs /etc/passwrd.
  • Kövesse nyomon a szerver teljesítményét, nézze meg a normál sebességét és áteresztőképesség, így észreveheti az eltéréseket, például amikor a szerver terhelése jelentősen megnőtt a szokásosnál.

VPN és SSL/TLS titkosítás használata

Ha szükséges távoli hozzáférés a szerverre, csak bizonyos IP-címekről engedélyezhető, és VPN-en keresztül történhet.

A következő lépés a biztonság biztosításában az SSL beállítása lehet, amivel nemcsak az adatok titkosítását, hanem a hálózati infrastruktúra többi résztvevőjének személyazonosságát is ellenőrizheti, kiadva nekik a megfelelő tanúsítványokat.

Szerver biztonsági ellenőrzés

Célszerű lenne önállóan ellenőrizni a szerver biztonságát pentest módszerrel, pl. támadásmodellezés a lehetséges sebezhetőségek felkutatása és azok időbeni megszüntetése érdekében. Ebbe célszerű szakembereket bevonni információ biztonság bizonyos tesztek azonban önállóan is elvégezhetők, a szerverek feltörésére szolgáló programokkal.

Mi fenyegeti még a szervereket a hackelésen kívül?

A szerver a feltörésen kívül számos más okból is meghibásodhat. Ez lehet például egy rosszindulatú programfertőzés, vagy egyszerűen az egyik összetevő fizikai meghibásodása.

Ezért a szerver védelmét szolgáló intézkedéseknek a következőket kell tartalmazniuk:

  • A szerver védelmét szolgáló programok telepítése és frissítése - vírusirtó.
  • Rendszeres titkosított adatmásolatok, legalább hetente, mivel a statisztikák szerint a szerver merevlemezei vannak az első helyen a meghibásodások gyakoriságában. Győződjön meg arról, hogy biztonsági másolat fizikailag biztonságos környezetben tárolják.
  • A szerverterem zavartalan áramellátásának biztosítása.
  • A szerverek időben történő fizikai megelőzése, beleértve a portisztítást és a hőpaszta cseréjét.

Az Integrus szakembereinek tapasztalata ezt mutatja legjobb védelem ez a fajta fenyegetés ellen – ez a haszna legjobb gyakorlatok a szervervédelmi rendszerek területén.

Ügyfeleink szervereinek biztonsága érdekében eszközök kombinációját alkalmazzuk: tűzfalak, vírusirtó, biztonsági / eseménykezelési technológiák (SIM / SEM), behatolásészlelő / védelmi technológiák (IDS / IPS), hálózati viselkedéselemző (NBA) technológiák , és természetesen rendszeres megelőző karbantartások és kulcsrakész, biztonságos szervertermek rendezése. Ez lehetővé teszi, hogy minimálisra csökkentse a feltörések vagy a szerver egyéb okok miatti meghibásodásának kockázatát.

Készek vagyunk cége szervereinek biztonsági auditjára, szakértőkkel konzultálni, és mindenféle munkát elvégezni a szerverberendezések védelmének beállításához.



Betöltés...
Top