C Skydd från. Serverskydd från hacking

De flesta program måste interagera med användaren genom att ange vissa data, oavsett om det är ett namn, höjd, vikt för att göra en databas eller geometriska dimensioner av ett objekt för vilket du behöver beräkna något. Alla dessa data går in i användaren - en person, vilket innebär att allt kan komma som svar. Vad kommer programmet att visa om användaren skriver sitt ord istället för åldern? Mest sannolikt kommer programmet nödsituation att sluta eller hänger, men inte bara om det ger "lurskydd".

Varför kan programmet vara klart eller hänga? Programmet kommer att försöka översätta en uppsättning tecken i numret att det inte är möjligt att göra, vilket innebär att användningen av applikationen inte är definierad. Så det är väldigt viktigt att organisera programmets struktur så att när du kommer in oväntat För dataprogrammet (felaktigt ur det önskade formatet: Behöver du ett nummer, men ordet är inmatat), ansökan "faller inte", men rapporterade användaren om vad ett fel har inträffat och erbjöd sig att upprepa inmatning. Detta är "lurskydd".

Genomförande av skydd mot idiot i språk C

För att implementera gott skydd från dåren för att komma in i olika numeriska (int, dubbla ...) data är det nödvändigt att läsa siffrorna själva, men hela infogningslinjen och sedan analysera ingången. På C-språket finns det en mycket bra sscanf-funktion (Const Char *, Const Char *, Args), som fungerar på samma sätt som Scanf-funktionen (Const Char *, Args), som återlämnar antalet framgångsrikt läsargument, endast läser data uppstår från Ett standardinmatningsflöde, men från strängen som överförs till det första argumentet.

Tänk på flera exempel på funktioner som genomför en dårskontroll med hjälp av SSCANF-funktionen.

Ange ett heltal med en inspektion av felaktig inmatning

INT GET_INTEGER (Char Svar; // String för att läsa Int n; // Final Integer Printf ("% s", msg); // visa inbjudan för att komma in i fgets (svar, storlek av (svar), stdin); // läs String // Fram till heltalet medan (sscanf (svar,% d ", & n)! \u003d 1) (Printf (" Felaktig inmatning. Försök igen: "); // visa ett meddelande om fgetsfel (svar, storlek (Svar), stdin); // och återläsa strängen) return n; // returnera rätt heltal)

För att läsa ett heltal läser algoritmen hela linjen och försöker sedan få ett heltal ut ur det. I händelse av att det misslyckades, visar funktionen ett felmeddelande med ett förslag om att upprepa ingången tills det korrekta värdet av ett heltal anges.

Ange ett riktigt nummer med en inspektion av felaktig inmatning

Dubbel Get_Double (Char * Msg) (Char Svar; // Row att läsa Dubbel X; // Final Real Number Printf ("% s", msg); // Displayinbjudan för att komma in i fets (svar, storlek av (svar), stdin ); // Läs strängen // tills det reella antalet medan (SSCANF (svar,% LF ", & X)! \u003d 1) (Printf (" Felaktig inmatning. Försök igen: "); // visa ett meddelande om Fets fel (svar, storlek av (svar), stdin); // och återläsa strängen) returnera x; // marknadsförbart korrekt reellt tal)

Ange punkt på koordinatplanet (struktur med två riktiga fält)

// Beskrivning av strukturen av daterad typ av Struct Point_T (dubbel X; // Koordinera X dubbel Y; // Koordinat Y) Punkt_t; Point_t get_point (char svar; // sträng för att läsa punkt_t punkt; // Final Point Printf ("% s", msg); // visa inbjudan för att komma in i fgets (svar, storlek av (svar), stdin); // läs String // tills båda koordinater av stundpunkten (SSCANF (svar "(% LF,% LF)", & Point.x, & Point.y)! \u003d 2) (Printf ("Felaktig inmatning. Försök igen:" ); // visa ett felmeddelande fgeter (svar, storlek av (svar), stdin); // och återläsa strängen) returpunkten; // returnera rätt punkt)

Som framgår av exempel kan funktionen att returnera SSCANF-funktionen av antalet läsargument att du kan styra korrektheten hos de angivna data i det angivna formatet, och läsningen av hela linjen skyddar mot det faktum att det kommer att förbli Ett utrymme eller överför symboler på linjen "\\ n" i ingångsströmmen, vilket ofta gör att du spenderar för att söka efter fel ingen timme eller till och med en dag.

Hej från PW-kommandot. Vi vill visa detta ämne för att visa frånvaron av oärlig konkurrens från vår sida och svart, ful, falsk tävling från projektet Newdestiny.

Här är en lista över lösningar från attacker som Newdestiny Loko9988 Administratörer någonsin använt, Tyrikman (gårdagens attack Oog var med IP-adresser Yoshkar Ola), Killer_Pooh (attacken fixades också från staden Volzhsky). Förutom attackerna på oss kom det till oss om attacken på ett antal andra servrar som var bundna med vår upptäckt. Vi demonstrerar vårt icke-engagemang för attacker på någon, trots den starkt berörda ståndpunkten för administratören Zzebra PW (Mirthost) på vårt projekt. Vi håller absolut inte ondska alls som uppfört sig på en gul artikel om oss, alla har sitt eget huvud på axlarna.


Och det är bara en del av sina konton.

En av anledningarna till publiceringen av detta ämne var rykten som nådde oss. Kärnan på dessa rykten är att Loko9988 attackerar servern inte bara på grund av konkurrens, utan också att erbjuda dessa servrar genom det.

Skydd mot OOG-attacker baserat på IPTABLES:
Först och främst skapar vi ett brandväggsskript, du kan ringa som du önskar.

iPTABLES -A-ingång -P TCP -M Multiport --Dports 29000-M Längd - Length 500: 65535 -J log --log-prefix "PW"

Klicka för att avslöja ...

Med denna regel registrerar vi alla spelpaket från Port 29000 från 500 till 65535 byte.

iPTABLES -A-ingång -P TCP -M Multiport --Dports 29000-M Längd - Length 500: 65535-Meten Senaste - Name Packets - Set
IPTABLE -A-ingång -P TCP -M Multiport --Dports 29000-mlängd - Length 500: 65535-mrankningar - SNAME PACKETS --Update --Seconds 1 --HITCount 100 -J-avvisa

Klicka för att avslöja ...

Genom dessa regler blockerar vi användaren om servern fick mer än 100 paket från IT-storlek 500 - 65535 byte i 1 sekund till 29 000 (spel) port.

iPTABLES-EN INPUT -P TCP -M MULTUMPRAND --DPPORTS 29000-M Längd - Length Size-Meth-Name Packet1 - Set
IPTABLES -A-ingång -P TCP -M Multiport --DPPORTS 29000-mlängd - Length Size-Meth --Seconds 15 - SPDate --Seconds 15 --HITCount 3 -J-avvisa

Klicka för att avslöja ...

Med dessa regler blockerar vi användare som skickade mer än 3 paket på 15 sekunder till port 29000. Storlek - storleken på paketet i byte.
Hur spårar du storleken på paketet i byte?
Efter den första regeln, där vi loggar in alla spelpaket, kan du se dem i filen / var / log / syslog eller lag dmesg.i serverns konsol.
När attacken går i Syslog kommer det att finnas många identiska paket på kort tid.

Pw in \u003d ipip1 out \u003d mac \u003d src \u003d Användar IP-adress DST \u003d *. *. *. * LEN \u003d 547 TOS \u003d 0x00 Prec \u003d 0x00 TTL \u003d 241 ID \u003d 13328 DF Proto \u003d TCP SPT \u003d 22511 DPT \u003d 63947 Fönster \u003d 254 Res \u003d 0x00 ACK PSH URGP \u003d 0

Klicka för att avslöja ...

I exemplet ovan är storleken på förpackningen "LEN \u003d 547".

Med Og-försvaret. Låt oss vända oss till andra sätt att konkurrera med Newdestiny.
Brutkonton. Allt är helt enkelt här:
#block brute force inloggning

iPTABLES-EN INPUT -P TCP -M MUNTUMPORT --DPPORTS 29000 -M CONNTRACK - NYHET NEW-MRESTRA --Name Brute - Set
IPTABLES-EN INPUT -P TCP -M MUNTUMPORT --DPORTS 29000 -M CONNTRACK - UCTSTATE NYHET -M Senaste - eSconds 30 --update --Seconds 30 --HITCount 3 -J-avvisa

Klicka för att avslöja ...

Genom denna regel blockerar vi undersökningsperioden i 30 sekunder om den gjorde mer än 3 anslutningsförfrågningar till Port 29000.
  • Gör en fullständig begränsning av portar utom spel via iptables.
  • Gör en anslutning till SSH-nyckelservern (tangenterna) med ett kodord.
  • Använda sig av senaste versionerna MySQL, Apache2 och andra viktiga paket.
  • Efter lasten genom Oog, använd Logrotate, annars backup kopiering Loggar bagge Din server kommer att användas fullt ut. Detta kan vara en konsekvens för hackning.
  • Använd inte utomstående på spelservern.
  • Använd ett lösenord för icke-standardiserat spelare. I flera timmar på vårt tillstånd fanns mer än 50 000 unfuldeal försök med tillstånd. I 30% av våra spelare sammanföll inloggningarna av dessa par av ett inloggnings lösenord.
Vi föredrar ärlig konkurrens, vi har inte tid och extra finansiering för attacker. Inte associera med dessa människor, det kanske inte slutar.

Det är omöjligt att skydda servern från extern åtkomst en gång för alla, för varje dag är nya sårbarheter detekterade och nya sätt att hacka server. Vi kommer att berätta om att skydda servrar från obehörig åtkomst i den här artikeln.

Alla företagsservrar förr eller senare kan bli ett mål för hackning eller viral attack. Typiskt blir resultatet av en sådan attack förlusten av data, rykte eller ekonomisk skada, så säkerheten för serverns säkerhet är värt att uppmärksamma den första platsen.

Det bör förstås att skydd mot servrar hacking är en uppsättning åtgärder, inklusive den ständiga övervakningen av servern och arbetar med att förbättra skyddet. Det är omöjligt att skydda servern från extern åtkomst en gång för alla, för varje dag är nya sårbarheter detekterade och nya sätt att hacka server.

Vi kommer att berätta om att skydda servrar från obehörig åtkomst i den här artikeln.

Metoder och metoder för att skydda servrar från obehörig åtkomst

Fysisk skyddsserver

Fysiskt skydd. Det är önskvärt att servern är i ett skyddat datacenter, ett stängt och skyddat rum, den externa bör inte vara åtkomst till servern.

Ställ in ssh-autentisering

När du konfigurerar serverns åtkomst, använd ssh-nycklar-autentisering istället för ett lösenord, eftersom sådana nycklar är mycket mer komplicerade, och ibland är det helt enkelt omöjligt att hacka med hjälp av utföringsformen.

Om du tror att du fortfarande behöver ett lösenord, var noga med att begränsa antalet försök att komma in.

Observera om du anger följande meddelande när du anger:

Senast misslyckad inloggning: tis sep 28 12:42:35 MSK 2017 från 52.15.194.10 på ssh: alty
Det fanns 8243 misslyckade inloggningsförsök sedan den senaste framgångsrika inloggningen.

Det kan indikera att din server försökte hacka. Ändra i det här fallet för att konfigurera serverns säkerhet, ändra SSH-porten, begränsa IP-listan från vilken åtkomst till servern är möjlig eller ställ in programvaran automatiskt blockerar alltför frekvent och misstänkt aktivitet.

Installera regelbundet de senaste uppdateringarna

För att säkerställa serverns skydd, installera de senaste uppdateringarna och serverns programvara som du använder - operativ system, hypervisor, databasserver.

Det är lämpligt att kontrollera tillgängligheten av nya patchar, uppdateringar och meddelanden om fel / sårbarheter varje dag för att förhindra attacker med hjälp av nolldags sårbarheter. För att göra detta, prenumerera på nyheterna från mjukvaruutvecklingsföretaget, följ sidorna i sociala nätverk.

Skydda lösenord

Hittills är ett av deras vanligaste sätt att komma åt servern ett lösenord för break Server. Därför följer det välkända, men ändå relevanta rekommendationer för att inte lämna servern utan skydd:

  • använd inte lösenord som är lätta att hämta, till exempel företagsnamn;
  • om du fortfarande använder ett standardlösenord för administratörskonsolen - ändra omedelbart det;
  • lösenord för olika tjänster bör vara olika;
  • om du behöver skicka ett lösenord till någon, skicka aldrig en IP-adress, inloggning och lösenord i samma bokstav eller meddelande i budbäraren.
  • du kan ställa in tvåstegsautentisering för att komma in i administratörens konto.

Brandvägg

  • Se till att det finns en server, den är konfigurerad och det fungerar hela tiden.
  • Skydda och inkommande och utgående trafik.
  • Se upp vilka hamnar som är öppna och för vilka ändamål, öppna inte något överflödigt för att minska antalet sannolika sårbara säten för att hacka servern.

I synnerhet hjälper brandväggen själv att skydda servern från DDOS-attacker, för Du kan snabbt skapa förbjudna brandväggsregler och ta med IP-adresserna till dem, från vilka en attack kommer, eller blockerar åtkomst till specifika applikationer, enligt specifika protokoll.

Övervakning och intrångsdetektering

  • Begränsa programvaran och tjänsterna som du arbetar på servern. Kontrollera regelbundet allt du har kört, och om vissa obekanta processer hittas, radera dem omedelbart och börja kontrollera om virus.
  • Kontrollera periodiskt förekomsten av spår av hacking. Om hacking kan indikera ny konton Användare som du inte skapade, flyttade eller tar bort en fil /etc/syslog.conf., fjärrfiler / etc / shadow och / etc / passwrd.
  • Övervaka din server, följ sin vanliga hastighet och genomströmningSå du kan märka avvikelser, till exempel när serverbelastningen har blivit mycket mer än vanligt.

Använda VPN och SSL / TLS-kryptering

Om nödvändigt fjärranslutning Till servern måste det endast tillåtas från specifika IP-adresser och förekommer av VPN.

Nästa säkerhetsfas kan upprättas SSL, vilket gör det möjligt för att inte bara kryptera data, utan också att kontrollera identiteten hos andra nätverksinfrastrukturdeltagare genom att utfärda relevanta certifikat till dem.

Säkerhetskontrollservern

En bra idé kommer att vara en oberoende säkerhetskontroll av servern med pentestmetoden, d.v.s. Attack modellering för att hitta potentiella sårbarheter och att likvidera dem i tid. Det är önskvärt att locka till dessa specialister på informationssäkerhetVissa test kan dock göras självständigt med hjälp av program för hackningsservrar.

Vad hotar servrar förutom hacking

Servern kan misslyckas med ett antal andra skäl, förutom hacking. Det kan till exempel vara en malwareinfektion eller helt enkelt en fysisk brottning av någon komponent.

Därför bör serverskyddshändelser innehålla:

  • Installations- och uppdateringsprogram för serverskydd - Antivirus.
  • Regelbundna krypterade kopior av data minst en gång i veckan, för, enligt statistik, hårddiskar Servrar i första hand i frekvensen av uppdelningar. Se till att säkerhetskopia Lagras i en fysiskt säker miljö.
  • Säkerställa oavbruten strömförsörjningsserver.
  • Tidig fysisk förebyggande av servrar, som inkluderar deras rengöring från damm och byt ut termisk pasta.

Erfarenheten av integrerade specialister berättar det för oss bästa försvaret Från denna typ av hot - detta är användningen av bästa praxis inom serverns skyddssystem.

För att säkerställa säkerheten hos våra kunder tillämpar vi en kombination av verktyg: brandväggar, antivirus, säkerhets- / evenemangshanteringsteknik (SIM / SEM), Intrusions- / skyddsdetekteringsteknik (IDS / IPS), Nätverksbetealteknik (NBA), Naturligtvis regelbundna förebyggande underhållsservrar och arrangemang av skyddad serverns nyckelfärdiga. Detta gör att du kan minska riskerna för hackning eller serverfel av andra skäl till ett minimum.

Klar att genomföra en säkerhetsrevision av dina företagsservrar, genomföra specialisters konsult, utföra alla typer av arbete på att konfigurera skydd av serverutrustning.

Dela med sig