Server Security
Există servere 100% sigure? Hmm…nu prea. Nicio maşină conectată la Internet nu este 100% safe. Poţi lua măsuri pentru a evita compromiterea sistemului, dar nu poţi garanta că serverul tău este “invincibil”. Este acelaşi lucru ca şi o casă, când uşile şi ferestrele sunt larg deschise posibilitatea ca hoţii să pătrundă înăuntru este foarte mare, dar dacă ele sunt închise şi încuiate probabilitatea de a fi jefuiţi este mică, dar totuşi există.
Ce este securitatea informaţiei?
Din punctul nostru de vedere, securitatea informaţiei înseamnă toate metodele pe care le folosim pentru protejarea datelor sensibile faţă de userii neautorizaţi.
O mulţime de informaţii importante circulă pe Internet, ca de exemplu date ale cărţilor de credit, parole, fişiere importante. Întotdeauna există şansa ca cineva să vadă şi să modifice aceste date care circulă.
Security framework
Mai jos avem paşii necesari pentru implementarea unei politici de securitate.
-Analiza riscului şi Cerinţele business-ului
-Politica de securitate
-Serviciul de securitate, Mecanisme şi Obiecte
-Managementul securităţii, Monitorizare, Detectare şi Răspuns
Aceşti paşi sunt necesari pentru securizarea unui sistem. “Risk analysis” sau analiza de risc se referă la riscul asociat datelor stocate pe server. “Business requirements” acoperă studiul care se ocupă de condiţiile unei bune desfăşurări a afacerii. “Serviciul de securitate, Mecanisme şi Obiecte” este de fapt partea de implementare a securităţii. Ultima parte, “Security management, Monitoring, Detection and Response” este partea operaţională a securităţii, unde sunt descrise metode despre cum putem descoperi o gaură în securitate şi cum reacţionăm la un astfel de incident.
Politica de securitate (Security policy) este un document care acoperă următoarele aspecte:
-autentificarea(Authentication): ce fel de metode folosim pentru a depista dacă un user este real sau nu
-autorizarea(Authorization): clasificarea userilor şi a privilegiilor acestora
-protecţia datelor(Data protection): care date trebuiesc protejate şi care dintre useri pot accesa aceste date
-accesul la Internet(Internet access): ce useri au acces la Internet şi ce pot face ei acolo
-Servicii Internet(Internet services): ce servicii ale serverului sunt accesibile de pe Internet şi care nu
-Audit de securitate(Security audit ): auditarea şi verificarea ariilor de securitate specifice şi proceselor care vor avea loc
-Rezolvarea incidentelor(Incident handling): paşii şi măsurile care vor fi luate în cazul apariţiei unei găuri în secuirtate
-Responsabilităţi(Responsibilities): stabilirea persoanelor de contact în timpul unui incident şi a administratorilor în timpul şi după incident.
Sunt două tipuri de securitate: (1)Securitate fizică/Securitatea hostului şi (2)Securitatea reţelei(network security). Fiecare dintre aceste tipuri are trei părţi:
-protecţia(protection): încetinirea sau oprirea intruziunilor în sistem
-detectarea(detection): alertarea unei persoane dacă există o breşă în securitate cât şi definirea şi măsurarea pagubelor produse
Host security-Physical security
Securitatea fizică presupune securizarea severului împotriva accesului neautorizat. Putem seta o parolă în BIOS-ul sistemului, serverul se poate păstra într-o cameră încuiată unde doar userii autorizaţi pot avea acces şi bineînţeles nu trebuie să uităm de aplicarea patch-urilor de securitate OS-ului.. Mai trebuie să avem în vedere verificarea logurilor în permanenţă.
Network security
Trebuie să fim în permanenţă informaţi asupra noilor bug-uri şi exploit-uri apărute. Dacă nu vom face asta vom avea probleme.
Ce sistem de operare este mai sigur?
Fiecare sistem de operare are punctele sale forte si punctele sale slabe. Există căi de a face Windows-ul mai sigur, dar implementarea acestora ne costă cam mult. Linuxul este stabil şi destul de sigur. FreeBSD, RH(RedHat) sunt două dintre multele distribuţii pe care vă sfătuiesc să le încercaţi.
Este un firewall soluţia finală în a stopa hackerii obraznici?
Nu prea…firewall-ul este doar o parte necesară în implementarea securităţii. Dacă avem o configurare “super strong” a firewall-ului dar software-ul ce rulează pe server este outdated sau plin de bug-uri, hackerul exploatează aceste slăbiciuni.
Trebuie să fim conştienţi deasemenea că securizarea sistemelor IT este un proces care nu se opreşte niciodată…sau nu ar trebui să se oprească niciodată. “Security is a on-going and continous process”.
Putem să ne întrebăm dacă implementarea unei politici de securitate creează overhead sau reduce din performanţă. Păi cam da…dar cantitatea de overhead este minusculă dacă luăm în considerare ambele aspecte-performanţa şi securitatea- atunci când proiectăm şi implementăm această security policy.
Cum aflăm dacă serverul nostru a fost compromis?
1.Verificăm dacă performanţa maşinii(serverului) a scăzut şi dacă există procese necunoscute ce rulează. Încercaţi un vmstat, ps sau lsof. Cu aceste 3 comenzi puteţi vedea cam tot ce se întâmplă pe server.
2.Verifică uptime-ul serverului.
Şi acum haideţi să facem un rezumat al celor scrise mai sus. Principalii paşi pentru securizarea unui server.
Determinarea cerinţelor business-ului şi a factorilor de risc care vizează acest sistem.
Startul unui audit de securitate pe orice sistem existent pentru a determina vulnerabilităţile curente. Acest raport poate conţine:
-vulnerabilităţile software
-Kernel upgrades şi vulnerabilităţi
-verificarea porturilor
-căutarea şi verificarea tuturor proceselor necunsocute
-verificarea logurilor
-verificarea tuturor binarelor şi a RPM-urilor
-verificarea tuturor relay-urilor de email deschise
- intrări cron maliţioase
-verificarea directoarelor /dev, /tmp, /var
-backup-ul sistemului trebuie sa fie funcţionabil
-căutarea de useri şi grupuri nedorite pe sistem
-căutarea şi oprirea oricărui serviciu de care nu este nevoie
-localizarea scripturilor maliţioase
-verificarea query-lor de DNS
-găsiţi orice scripturi suid si nouser
-folosiţi tooluri de intrusion detection
-verificaţi performanţa sistemului cât şi utilizarea memoriei.
Implementarea politicii de securitate:
-Corectarea tuturor vulnerabilităţilor cunoscute prin aplicarea de patch-uri sau prin upgrade-ul software-ului
-protejarea sistemelor prin parole
-verificarea fişierelor de sistem şi setarea corectă a permisiunilor şi ownerships-urilor de directoare şi fişiere
-aplicarea patch-urilor de securitate programelor vulnerabile
-verificaţi /var/log/messages, /var/log/secure, etc
-setaţi o parolă pe boot loader(lilo sau grub)
-monitorizaţi sistemul(puteţi folosi nagios)
Implementarea network security:
-ştergeţi orice user sau group nedorit
-folosiţi scripturi care vă anunţă când se face ssh cu root sau când se creează useri cu uid 0
-parolele trebuie să aibă 16 caractere
-daţi disable la toate serviciile nedoritefolosind tcpwrapper sau xinet.d
-setaţi un idle timeout, astfel încât toţi userii idle să fie zburaţi de pe sistem după o anumită perioadă
-daţi disable la toate programele de access prin consolă(ex: rm -rf /etc/security/console.app/.)
-enable opţiunea nospoof în /etc/host.conf.
-restricţionaţi accesul la fişierul /etc/services astfel încât nimeni să nu îl poată modifica
-restricţionaţi accesul direct root login(comentaţi opţiunea PermitRootLogin din fişierul sshd_config)
-restricţionaţi su
-securizaţi /tmp(montaţi /tmp with noexec, nodev, nosuid)
-ascundeţi detaliile serverului(ştergeţi /etc/issues şi /etc/issues.net)
-daţi disable la fişierele suid şi sgid nedorite
-cu ajutorul iptables acceptaşi pingurile doar de la hosturi specifice
-luaţi măsuri specifice împotriva atacurilor de tip DoS, “ping of death”, etc.
-instalaţi un firewall(exemplu:iptables)
- instalaţi sisteme de intrusion detection
-ştergeţi fişierele fără user şi grup
-delete fişierele şi directoarele nedorite din htdocs
-verificaţi existenţa scripturilor în /root, /usr/local, /var/spool/mbox
-disable open email relaying.
Cam atât deocamdată despre o securizare a unui server la nivel de begginer. Lucrurile se pot complica mult mai mult…dar vom continua aces subiect în alte materiale viitoare şi focusat pe diferite tipuri de atacuri.
Vă salut!




