Çdo version Mbrojtje gjithëpërfshirëse nga sulmi (OOG dhe të tjerët). Mbrojtja e serverit nga hakerimi Mbrojtja fizike e serverit

Shumica e programeve duhet të ndërveprojnë me përdoruesin duke futur të dhëna të caktuara, qofshin emri i plotë, lartësia, pesha që duhet të futen në bazën e të dhënave, ose dimensionet gjeometrike të ndonjë objekti për të cilin diçka duhet të llogaritet. Të gjitha këto të dhëna futen nga përdoruesi - një person, që do të thotë se çdo gjë mund të vijë si përgjigje. Çfarë do të prodhojë programi nëse, në vend të moshës së kërkuar, përdoruesi e shkruan me një fjalë? Me shumë mundësi, programi do të rrëzohet ose do të varet, por jo nëse ka "mbrojtje për budallenj" në të.

Pse një program mund të përfundojë ose ngrijë? Programi do të përpiqet të konvertojë grupin e karaktereve në një numër, i cili do të dështojë, që do të thotë punë të mëtejshme aplikimi nuk është i përcaktuar. Prandaj, është shumë e rëndësishme të organizoni strukturën e programit në mënyrë që kur të hyni e papritur për programin e të dhënave (i pasaktë për sa i përket formatit të kërkuar: nevojitet një numër, por futet një fjalë), aplikacioni nuk "ra", por informoi përdoruesin se kishte ndodhur një gabim dhe ofroi të përsëriste hyrjen. Kjo është "e pamend".

Zbatimi i gabimeve në C

Për të zbatuar gabime të mira për futjen e të dhënave të ndryshme numerike (int, double...), është e nevojshme të lexoni jo vetë numrat, por të gjithë vargun e hyrjes dhe vetëm atëherë të analizoni hyrjen. Gjuha C ka një funksion shumë të bukur sscanf(const char *, const char *, args), i cili funksionon në mënyrë të ngjashme me funksionin scanf(const char *, args), duke kthyer numrin e argumenteve të lexuara me sukses, vetëm të dhënat nuk lexohen nga rrjedha standarde e hyrjes, por nga vargu i kaluar atij si argument i parë.

Le të shohim disa shembuj të funksioneve që zbatojnë një kontroll të marrë duke përdorur funksionin sscanf.

Futja e një numri të plotë duke kontrolluar për hyrje të pavlefshme

int get_integer(const char *msg) (përgjigje char; // varg për të lexuar int n; // numër i plotë përfundimtar printf("%s", msg); // print prompt fgets(përgjigje, sizeof(përgjigje), stdin); // lexo vargun // derisa të lexohet një numër i plotë ndërsa (sscanf(përgjigje, "%d", &n) != 1) ( printf("Input i pasaktë. Provo përsëri: "); // printo një mesazh rreth gabimit fgets (përgjigje, sizeof(përgjigje), stdin); // dhe rilexoni vargun ) ktheni n; // ktheni një numër të plotë të vlefshëm)

Për të lexuar një numër të plotë, algoritmi lexon të gjithë vargun dhe më pas përpiqet të nxjerrë një numër të plotë prej tij. Në rast se kjo dështoi, funksioni shfaq një mesazh gabimi me një sugjerim për të përsëritur hyrjen derisa të futet vlera e saktë e numrit të plotë.

Futja e një numri real me një kontroll për hyrje të pasaktë

double get_double(const char *msg) (përgjigje char; // varg për të lexuar dyfish x; // rezulton numri real printf("%s", msg); // prompt print fgets(përgjigje, sizeof(përgjigje), stdin) ; // lexoni vargun // derisa të lexohet një numër real ndërsa (sscanf(përgjigje, "%lf", &x) != 1) ( printf("Hyrje e pasaktë. Provo përsëri: "); // printo një mesazh rreth gabim fgets(përgjigje, sizeof(përgjigje), stdin); // dhe rilexoni vargun ) ktheni x; // ktheni një numër real të vlefshëm)

Futja e një pike në planin koordinativ (strukturë me dy fusha reale)

// përshkrimi i strukturës së të dhënave typedef struct point_t ( double x; // x koordinate double y; // y koordinate ) point_t; point_t get_point(const char *msg) (char përgjigje; // varg për të lexuar pikën_t; // pikë përfundimtare printf("%s", msg); // print prompt fgets(përgjigje, sizeof(përgjigje), stdin ); // lexo rreshtin // derisa të lexohen të dyja koordinatat e pikave ndërsa (sscanf(përgjigje, "(%lf,%lf)", &point.x, &point.y) != 2) ( printf("Input i gabuar. Provo sërish: "); // printoni mesazhin e gabimit fgets(përgjigje, madhësia(përgjigje), stdin); // dhe rilexoni vargun ) pikën e kthimit; // ktheni pikën e saktë)

Siç shihet nga shembujt, veçoria e kthimit të numrit të argumenteve të lexuara nga funksioni sscanf ju lejon të kontrolloni korrektësinë e të dhënave të futura në formatin e specifikuar, dhe leximi i të gjithë rreshtit mbron nga fakti që karakteret e hapësirës ose rreshti ndërprerjet "\n" mbeten në transmetimin e hyrjes, të cilat shumë shpesh ju detyrojnë të shpenzoni as një orë të vetme apo edhe një ditë për të kërkuar një gabim.

Përshëndetje të gjithëve nga ekipi i UNITWAY PW. Me këtë temë, ne dëshirojmë të demonstrojmë mungesën e konkurrencës së padrejtë nga ana jonë dhe konkurrencën e zezë, të shëmtuar, mashtruese nga projekti NewDestiny.

Këtu është një listë e zgjidhjeve nga sulmet që janë përdorur ndonjëherë nga administratorët e NewDestiny loko9988, TyrikMan (sulmi i djeshëm i OOG ishte nga adresa IP e Yoshkar Ola), Killer_Pooh (Është regjistruar gjithashtu një sulm nga qyteti i Volzhsky). Përveç sulmeve ndaj nesh, ne morëm informacion për një sulm në një numër serverësh të tjerë, i cili ishte i lidhur me zbulimin tonë. Duke publikuar një numër korrigjimesh nga këto sulme, ne demonstrojmë mospërfshirjen tonë në sulme ndaj kujtdo, pavarësisht nga pozicioni qartësisht i shqetësuar i administratorit Zzebra PW (mirthost) për projektin tonë. Ne absolutisht nuk mbajmë inat ndaj kujtdo që ra pas artikullit të verdhë për ne, secili ka kokën e tij mbi supe.


Dhe kjo është vetëm një pjesë e llogarive të tyre.

Një nga arsyet e publikimit të kësaj teme ishin thashethemet që kanë mbërritur tek ne. Thelbi i këtyre thashethemeve është se loko9988 po sulmon serverët jo vetëm për shkak të konkurrencës, por edhe për t'u ofruar këtyre serverëve mbrojtje përmes tij.

Mbrojtja kundër sulmeve OOG bazuar në iptables:
Para së gjithash, ne krijojmë rregulla të skriptuara të murit të zjarrit, ju mund t'i quani ato si të dëshironi.

iptables -A INPUT -p tcp -m multiport --dports 29000 -m gjatësi --gjatësi 500:65535 -j LOG --log-prefiksi "PW"

Klikoni për të zbuluar...

Me këtë rregull, ne shkruajmë të gjitha paketat e lojës nga porti 29000 në madhësi nga 500 në 65535 bajt.

iptables -A INPUT -p tcp -m multiport --dports 29000 -m gjatësi --gjatësi 500:65535 -m fundit --paketat e emrave --set
iptables -A INPUT -p tcp -m multiport --dports 29000 -m gjatësi --gjatësi 500:65535 -m të fundit --paketat e emrave --përditësim --sekonda 1 --hitcount 100 -j REFUZO

Klikoni për të zbuluar...

Me këto rregulla, ne bllokojmë përdoruesin nëse serveri ka marrë prej tij më shumë se 100 pako prej 500 - 65535 bajt në 1 sekondë në portin 29000 (lojë).

iptables -A INPUT -p tcp -m multiport --dports 29000 -m gjatësi --gjatësia SIZE -m e fundit --emri i paketës1 --set
iptables -A INPUT -p tcp -m multiport --dports 29000 -m gjatësi --gjatësia SIZE -m e fundit --emri i paketës1 --përditësim --sekonda 15 --hit 3 -j REFUZO

Klikoni për të zbuluar...

Me këto rregulla, ne bllokojmë përdoruesit që dërguan më shumë se 3 pako në 15 sekonda në portin 29000. SIZE - madhësia e paketës në bajt.
Si të gjurmoni madhësinë e paketës në bajt?
Pas rregullit të parë, ku regjistrojmë të gjitha paketat e lojës, mund t'i shihni ato në skedar /var/log/syslog ose ekipi dmesg në konsolën e serverit.
Kur një sulm është duke u zhvilluar, do të ketë shumë paketa identike në syslog në një kohë të shkurtër.

PW IN=ipip1 OUT= MAC= SRC= ADRESA E PERDORIMIT 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

Klikoni për të zbuluar...

Në shembullin e mësipërm, madhësia e shpërthimit është "LEN=547".

Ne kuptuam mbrojtjen OOG. Le të kalojmë në mënyra të tjera që NewDestiny konkurron.
Llogari brutale. Gjithçka është mjaft e thjeshtë këtu:
#block login for brute

iptables -A INPUT -p tcp -m multiport --dports 29000 -m conntrack --ctstate NEW -m fundit --emër brute --set
iptables -A INPUT -p tcp -m multiport --dports 29000 -m conntrack --ctstate E RE -m e fundit --name brute --përditëso --sekonda 30 --hitcount 3 -j REFUZO

Klikoni për të zbuluar...

Me këtë rregull, ne bllokojmë IP-në e përdoruesit për 30 sekonda nëse ai ka bërë më shumë se 3 kërkesa për lidhje në portin 29000.
  • Bëni një kufizim të plotë në portet, përveç lojërave përmes iptables.
  • Bëni një lidhje me serverin duke përdorur çelësin ssh (çelësat) me një fjalë kodi.
  • Përdorni versionet e fundit mysql, apache2 dhe paketa të tjera të rëndësishme.
  • Pas ngarkimit përmes OOG, përdorni logrotate, përndryshe, kur rezervë trungje RAM Serveri juaj do të përdoret plotësisht. Kjo mund të rezultojë në një hak.
  • Mos përdorni softuer të palëve të treta në serverin e lojës.
  • Përdorni një filtër të personalizuar të fjalëkalimit të luajtësit. Brenda pak orësh, pati mbi 50,000 përpjekje të pavlefshme autorizimi për autorizimin tonë. 30% e lojtarëve tanë kishin hyrje identike nga këto çifte hyrje-fjalëkalim.
Ne preferojmë zhvillimin e drejtë të konkurrencës, nuk kemi kohë dhe para shtesë për sulme. Mos u ngatërroni me këta njerëz, mund të përfundojë keq.

Është e pamundur të mbrosh një herë e mirë serverin nga aksesi i jashtëm, sepse çdo ditë zbulohen dobësi të reja dhe shfaqen mënyra të reja të hakimit të serverit. Ne do të flasim për mbrojtjen e serverëve nga aksesi i paautorizuar në këtë artikull.

Serverët e çdo kompanie herët a vonë mund të bëhen një objektiv për hakerim ose një sulm virusi. Në mënyrë tipike, rezultati i një sulmi të tillë është humbja e të dhënave, dëmtimi i reputacionit ose financiar, kështu që çështjet e sigurisë së serverit duhet të adresohen në radhë të parë.

Duhet të kuptohet se mbrojtja nga hakimi i serverit është një grup masash, duke përfshirë ato që nënkuptojnë monitorim të vazhdueshëm të funksionimit të serverit dhe punë për të përmirësuar mbrojtjen. Është e pamundur të mbrosh një herë e mirë serverin nga aksesi i jashtëm, sepse çdo ditë zbulohen dobësi të reja dhe shfaqen mënyra të reja të hakimit të serverit.

Ne do të flasim për mbrojtjen e serverëve nga aksesi i paautorizuar në këtë artikull.

Mënyrat dhe metodat e mbrojtjes së serverëve nga aksesi i paautorizuar

Mbrojtja fizike e serverit

Mbrojtje fizike. Është e dëshirueshme që serveri të jetë i vendosur në një qendër të sigurt të dhënash, një dhomë të mbyllur dhe të mbrojtur, të huajt nuk duhet të kenë akses në server.

Konfiguro vërtetimin SSH

Kur vendosni hyrjen në server, përdorni vërtetimin e çelësit SSH në vend të një fjalëkalimi, pasi çelësat e tillë janë shumë më të vështirë dhe ndonjëherë thjesht të pamundur për t'u thyer duke përdorur një kërkim me forcë brutale.

Nëse mendoni se ju duhet ende një fjalëkalim, sigurohuni që të kufizoni numrin e përpjekjeve për ta futur atë.

Kushtojini vëmendje nëse shihni një mesazh si ky kur identifikoheni:

Identifikimi i fundit i dështuar: Mar 28 shtator 12:42:35 MSK 2017 nga 52.15.194.10 në ssh:notty
Pati 8243 përpjekje të dështuara për hyrje që nga identifikimi i fundit i suksesshëm.

Mund të tregojë se serveri juaj është hakuar. Në këtë rast, për të konfiguruar sigurinë e serverit, ndryshoni portën SSH, kufizoni listën e IP-ve nga të cilat është e mundur qasja në server ose instaloni softuer që bllokon automatikisht aktivitetin tepër të shpeshtë dhe të dyshimtë.

Instaloni përditësimet më të fundit rregullisht

Për të siguruar mbrojtjen e serverit, instaloni arnimet dhe përditësimet më të fundit të softuerit të serverit që përdorni - sistemi operativ, hipervizor, server i bazës së të dhënave.

Këshillohet që çdo ditë të kontrolloni për arna, përditësime dhe gabime/dobësi të raportuara për të parandaluar sulmet që shfrytëzojnë dobësitë e ditës zero. Për ta bërë këtë, regjistrohuni në lajmet nga kompania e zhvillimit të softuerit, ndiqni faqet e saj në rrjetet sociale.

Mbroni fjalëkalimet

Deri tani, një nga mënyrat më të zakonshme për të fituar akses në një server është të hapni fjalëkalimin e serverit. Prandaj, ndiqni rekomandimet e njohura, por gjithsesi relevante në mënyrë që të mos e lini serverin të pambrojtur:

  • mos përdorni fjalëkalime që janë të lehta për t'u hamendësuar, siç është emri i kompanisë;
  • nëse jeni duke përdorur ende fjalëkalimin e paracaktuar për tastierën e administratorit, ndryshojeni menjëherë;
  • fjalëkalimet për shërbime të ndryshme duhet të jenë të ndryshme;
  • nëse keni nevojë të ndani fjalëkalimin tuaj me dikë, kurrë mos dërgoni adresën tuaj IP, emrin e përdoruesit dhe fjalëkalimin në të njëjtin email ose mesazh të dërguarit;
  • Mund të konfiguroni "Verifikimin me 2 hapa" për t'u identifikuar në llogarinë e administratorit.

muri i zjarrit

  • Sigurohuni që serveri të ketë , të jetë i konfiguruar dhe të funksionojë gjatë gjithë kohës.
  • Mbroni trafikun në hyrje dhe në dalje.
  • Mbani gjurmët e porteve të hapura dhe për çfarë qëllimi, mos hapni asgjë të panevojshme për të zvogëluar numrin e dobësive të mundshme për hakimin e serverit.

Në veçanti, një mur zjarri ndihmon shumë në mbrojtjen e serverit nga sulmet ddos, sepse mund të krijoni shpejt rregulla bllokimi të murit të zjarrit dhe të shtoni adresa IP nga vjen sulmi, ose të bllokoni aksesin në aplikacione të caktuara duke përdorur protokolle të caktuara.

Monitorimi dhe zbulimi i ndërhyrjeve

  • Kufizoni softuerin dhe shërbimet që funksionojnë në serverin tuaj. Kontrolloni periodikisht gjithçka që keni në punë dhe nëse gjenden procese të panjohura, fshijini ato menjëherë dhe filloni të kontrolloni për viruse.
  • Kontrolloni periodikisht për shenja të ngacmimit. Hakerimi mund të evidentohet me të reja Llogaritë përdoruesit që nuk keni krijuar, lëvizur ose fshirë një skedar /etc/syslog.conf, skedarë të fshirë/etc/hije dhe /etc/passwrd.
  • Monitoroni serverin tuaj, mbani një sy në shpejtësinë dhe xhiron e tij normale, në mënyrë që të vini re devijime, për shembull, kur ngarkesa në server është bërë shumë më e madhe se zakonisht.

Përdorimi i kriptimit VPN dhe SSL/TLS

Nëse është e nevojshme akses në distancë në server, duhet të lejohet vetëm nga disa adresa IP dhe të ndodhë përmes VPN.

Hapi tjetër për të garantuar sigurinë mund të jetë konfigurimi i SSL, i cili jo vetëm që do të kodojë të dhënat, por gjithashtu do të verifikojë identitetin e pjesëmarrësve të tjerë në infrastrukturën e rrjetit duke lëshuar certifikata të përshtatshme për ta.

Kontrolli i sigurisë së serverit

Do të ishte një ide e mirë që të kontrolloni në mënyrë të pavarur sigurinë e serverit duke përdorur metodën pentest, d.m.th. simulimi i sulmit për të gjetur dobësitë e mundshme dhe për t'i eliminuar ato në kohë. Këshillohet që të përfshihen specialistë në këtë siguria e informacionit, megjithatë, disa teste mund të bëhen në mënyrë të pavarur duke përdorur programe të hakimit të serverit.

Çfarë tjetër kërcënon serverët përveç hakerimit

Një server mund të dështojë për një sërë arsyesh të tjera përveçse për t'u hakuar. Për shembull, mund të jetë një infeksion malware ose thjesht një dështim fizik i njërit prej komponentëve.

Prandaj, masat për të mbrojtur serverin duhet të përfshijnë:

  • Instalimi dhe përditësimi i programeve për mbrojtjen e serverit - antiviruse.
  • Kopje të rregullta të koduara të të dhënave të paktën një herë në javë, sepse, sipas statistikave, hard disqet e serverëve janë në vendin e parë për sa i përket shpeshtësisë së prishjeve. Sigurohu kopje rezervë të ruajtura në një mjedis fizikisht të sigurt.
  • Sigurimi i furnizimit me energji të pandërprerë në dhomën e serverit.
  • Parandalimi fizik në kohë i serverëve, duke përfshirë pastrimin e tyre nga pluhuri dhe zëvendësimin e pastës termike.

Këtë na e tregon eksperienca e specialistëve të Integrus mbrojtja më e mirë kundër kërcënimeve të tilla është përdorimi Praktikat më të mira në fushën e sistemeve të mbrojtjes së serverëve.

Për të garantuar sigurinë e serverëve të klientëve tanë, ne përdorim një kombinim mjetesh: mure zjarri, antivirus, teknologji të sigurisë / menaxhimit të ngjarjeve (SIM / SEM), teknologjitë e zbulimit / mbrojtjes nga ndërhyrjet (IDS / IPS), teknologjitë e analizës së sjelljes në rrjet (NBA). , sigurisht serverët e rregullt të mirëmbajtjes parandaluese dhe rregullimi i dhomave të sigurta të serverëve me çelësa në dorë. Kjo ju lejon të minimizoni rreziqet e hakimit ose dështimit të serverit për arsye të tjera.

Ne jemi të gatshëm të kryejmë një auditim sigurie të serverëve të kompanisë suaj, të konsultojmë specialistë, të kryejmë të gjitha llojet e punës për vendosjen e mbrojtjes së pajisjeve të serverit.



Po ngarkohet...
Top