Currently viewing the category: "Noutati"
Articol bazat pe: RedHat Security Blog.
 

Bash, sau Bourne again shell, este un shell UNIX, ce este probabil unul din cele mai instalate utilitare pe orice sistem Linux. Din 1980 de când a fost creat, bash a evoluat dintr-un interpretor simplu de comenzi într-un utilitar complex.

În Linux, variabilele de mediu reprezintă o modalitate prin care funcționarea utilitarelor din sistemul de operare poate fi influențată. În mod uzual aceste variabile au un nume și o valoare asociată acestuia și sunt folosite de mai multe aplicații și utilitare, inclusiv de către shell-uri. Este de asemenea uzual pentru mai multe programe să folosească în fundal un shell, pentru a oferi funcționalități precum parsarea script-urilor CGI sau suport limitat pentru executarea anumitor comenzi (ex: git).

Vulnerabilitatea CVE-2014-6271 este derivată din faptul că se pot crea variabile de mediu ce conțin anumite valori, înainte de a lansa în execuție shell-ul. Aceste variabile pot conține cod ce va fi executat de îndată ce shell-ul este pornit. Nu este necesar ca variabilele de mediu să aibă o denumire specială, în schimb este necesar ca valoarea acestora să fie într-o anumită formă pentru a permite executarea codului. Din această cauză, vulnerabilitatea poate fi exploatată în mai multe contexte, de exemplu:

  • parametrul ForceCommand este folosit în configurarea serviciului ssh pentru a pune la dispoziție anumitor utilizatori execuția de comenzi specifice, limitate. Vulnerabilitatea poate fi folosită pentru a ocoli restricțiile impuse și pentru a putea executa orice comenzi pe un sistem. În anumite cazuri, serverele ce oferă servicii folosind Git sau Subversion pot folosi astfel de shell-uri. Serviciile oferite prin SSH (OpenSSH, SSH, etc) nu sunt afectate întrucât utilizatorii ce se conectează de la distanță au oricum posibilitatea de a rula orice comenzi;
  • serverele web Apache ce au activate modulele mod_cgi sau mod_cgid sunt afectate dacă pe acestea există script-uri CGI ce folosesc bash pentru execuție sau pentru a oferi alte funcționalități (execută comenzi externe în background, folosind bash). Astfel de funcționalități sunt folosite implicit de system/popen în C, os.system/os.popen în Python, system/exec în PHP (atunci când este rulat în mod CGI) și open/system în Perl dacă este folosit un shell (acest lucru depinde de comanda ce trebuie executată);
  • clienții de DHCP (la nivelul sistemului de operare) folosesc script-uri shell pentru a configura diverși parametri ai sistemului de operare. Un atacator ce are acces la un server de DHCP, se poate folosi de acesta pentru a trimite odată cu parametrii necesari și variabile de mediu construite astfel încât îi permit acestuia să execute comenzi arbitrare cu drepturi administrative (derivate din drepturile programului client de DHCP) pe sistemul client;
  • alte servicii și programe cu acces privilegiat (programe și aplicații ce au setat flag-ul SUID) pot folosi diverse script-uri shell pentru oferirea de funcționalități;
  • orice altă aplicație ce folosește un shell sau rulează script-uri shell folosind bash.

Nu sunt vulnerabile:

  • script-urile PHP ce sunt executate folosind mod_php nu sunt afectate chiar dacă execută bash în background;
  • script-urile shell ce nu exportă variabilele de sistem nu sunt vulnerabile chiar dacă lucrează cu variabile ce conțin cod malițios.

Detalii tehnice ale vulnerabilității

Precum limbajele de programare “reale”, Bash are funcții. Deși acestea sunt limitate ca funcționalități, este posibil ca aceste funcții să fie folosite în variabilele de mediu. Vulnerabilitatea este declanșată atunci când se adaugă comenzi la sfârșitul definirii acestor funcții (în interiorul unei variabile de mediu). De exemplu:

$ env x='() { :;}; echo vulnerable' bash -c "echo this is a test" vulnerable this is a test

În momentul de față majoritatea distribuțiilor de Linux au inclus în actualizările de securitate un patch ce adresează acestă vulnerabilitate și se asigură că nu este permisă includerea de comenzi la sfârșitul definirii unei funcții bash. Prin urmare, dacă rulați comanda de mai sus pe un sistem ce are toate actualizările, mesajul primit de la bash ar trebui să fie similar cu:

$ env x='() { :;}; echo vulnerable’ bash -c “echo this is a test”
bash: warning: x: ignoring function definition attempt
bash: error importing function definition for `x’
this is a test

Aplicarea patch-ului pe sistemele afectate de acestă vulnerabilitate nu afectează în nici un fel aplicațiile și utilitarele ce folosesc script-uri shell. Desigur, acele script-uri ce sunt scrise ca în exemplu vor fi afectate de aplicarea patch-ului însă definirea funcțiilor ca în exemplu este oricum considerată o practică greșită în programarea aplicațiilor.

Alte articole și date relevante:

  1. National Vulnerability Database
  2. Alertă US-CERT
  3. Listă de email Bash
Tagged with:
 

Despre

Bug-ul denumit “The Heartbleed Bug” este o vulnerabilitate critică a librăriei de funcții criptografice OpenSSL. Această vulnerabilitate permite accesul la informații ce sunt protejate în mod normal de utilizarea criptării SSL/TLS. Criptarea folosind SSL/TLS pune la dispoziție mecanisme de securizare a datelor ce sunt transmise prin Internet de către aplicații pentru web, email, mesagerie instant și rețele virtuale private (VPN).
Bug-ul Heartbleed permite oricărei persoane ce are acces la fluxul de date criptate să citească o porțiune a memoriei sistemelor ce folosesc OpenSSL pentru criptare. Acest lucru duce la compromiterea cheilor secrete folosite în criptarea unui flux de date, chei ce pot fi folosite pentru decriptarea în timp real, pe resurse hardware comune, a întregului flux, bug-ul permițând astfel unui atacator accesul la datele transmise prin intermediul Internetului, date ce pot fi: nume de utilizator și parole, email-uri, conversații, etc.

Exact, ce date pot fi extrase ?

Din testele efectuate de terți au fost trase următoarele concluzii:

  1. serverele ce pun la dispoziție servicii criptate pot fi atacate fără ca atacatorul să lase nici o urmă;
  2. fără a fi necesare date suplimentare de acces, este posibilă extragerea de pe servere a cheilor private corespunzătoare certificatelor digitale utilizate pentru criptarea comunicării;
  3. după extragerea cheilor private, toate datele transmise printr-o conexiune ce folosește certificatul digital corespunzător cheii extrase pot fi citite.

Cum ne putem proteja ?

Cât timp folosiți o versiune vulnerabilă de OpenSSL nu există nici o modalitate de protecție. Pentru ca datele să fie în siguranță trebuie să actualizați versiune de OpenSSL folosită în cadrul sistemului de operare. Sunt disponibile deja noi versiuni de OpenSSL ce au rezolvat această problemă. Ele sunt disponibile prin canalele oficiale de distribuție a actualizărilor sistemelor de operare sau direct de la OpenSSL.

Ce versiuni de OpenSSL sunt afectate ?

Versiunile de OpenSSL:

  • OpenSSL 1.0.1 la 1.0.1f (inclusiv) sunt vulnerabile
  • OpenSSL 1.0.1g nu este vulnerabil
  • OpenSSL 1.0.0 nu este vulnerabil
  • OpenSSL 0.9.8 nu este vulnerabil

Bug-ul a fost introdus în OpenSSL în Decembrie 2011 și este prezent începând cu versiunea 1.0.1 a OpenSSL din 14 Martie 2012. OpenSSL 1.0.1g lansat pe 7 Aprilie 2014 rezolvă acest bug.

Acest articol este o traducere parțială a sursei disponibile la http://heartbleed.com/.

 

Înainte de sfârșitul anului 2013, Symantec a observat o creștere semnificativă a numărului de atacuri reflexive ce folosesc protocolul NTP. NTP (Network Time Protocol), este un protocol mai puțin cunoscut ce folosește portul 123 (UDP) și este folosit pentru a sincroniza timpul pe echipamentele conectate la o rețea de comunicații de date. NTP, este unul din serviciile de tipul “configurează și uită”.

Cum funcționează atacurile reflexive ce folosesc NTP ?

La fel ca și atacurile DNS reflexive cu amplificare, atacatorul trimite un pachet cât mai mic (ce are ca adresă IP sursă adresa IP a victimei), ce generează un răspuns cât mai mare (ca și număr de octeți). În cazul de față, atacatorul se folosește de comanda NTP “monlist”. Această comandă este specifică versiunilor mai vechi de NTP și poate fi trimisă de la distanță fără a fi necesare operații de autentificare sau autorizare la nivel de utilizator sau adresă IP. Comanda “monlist”  trimite către adresa IP de la care a fost inițiată comanda o listă cu ultimele 600 de echipamente care s-au conectat la serverul de NTP, fiind astfel o sursă excelentă pentru a genera atacuri reflexive cu grad foarte mare de amplificare (sunt necesari doar câțiva octeți pentru a genera un trafic de 1000 de ori mai mare). Cele mai uzuale utilitare folosite pentru scanare claselor de adrese IP precum NMAP, au module speciale pentru NTP ce includ suport pentru acestă comandă, folosind-o pentru a aduna mai multe informații.

Cum ne putem elimina riscul ca serverul NTP să fie folosit în astfel de atacuri ?

Cea mai simplă cale este să facem upgrade la NTP versiunea 4.2.7, în care suportul pentru comanda “monlist” este scos definitiv. Atunci când upgrade-ul nu este o opțiune, se poate porni serviciul de NTP cu opțiunea noquery activată în fișierul de configurare. Această opțiune nu va permite accesul la pachetele de tip mod 6 și mod 7 ale NTP (ce includ și comanda monlist).

O rezolvare mult mai elegantă și mai sigură în același timp presupune configurarea corectă și completă a serviciului NTP. Un exemplu de bune practici în acest sens poate fi găsit pe site-ul Team Cymru.

Cum putem verifica dacă serverul nostru de NTP are comanda monlist activată ?

Cea mai simplă cale de a verifica dacă un server are comanda monlist activată este folosind utilitarul ntpdc , mai precis:

[root@server ~]# ntpdc -c monlist «adresă IP server NTP»

Dacă rezultatul arată ca în lista de mai jos atunci serverul dvs de NTP are suport pentru comanda monlist și poate fi folosit în atacuri NTP reflexive cu amplificare.

remote address          port local address      count m ver code avgint  lstint
===============================================================================
localhost.localdomain  53949 127.0.0.1              1 7 2      0      0       0
tock.usshc.com           123 xxx.xxx.xxx.xxx         1 4 4    5d0      0      53
198.52.198.248           123 xxx.xxx.xxx.xxx         1 4 4    5d0      0      54
rook.slash31.com         123 xxx.xxx.xxx.xxx       1 4 4    5d0      0      55
eightyeight.xmission.c   123 xxx.xxx.xxx.xxx         1 4 4    5d0      0      56

Referințe:

  1. Articol inițial – Symantec – http://www.symantec.com/connect/blogs/hackers-spend-christmas-break-launching-large-scale-ntp-reflection-attacks
  2. Ghid de bună practică a configurării serviciului NTP – Team Cymru – http://www.team-cymru.org/ReadingRoom/Templates/secure-ntp-template.html
Tagged with:
 

Documentul de descriere a serviciilor, in care sunt descrise in amanunt serviciile oferite de catre RoCSIRT, a fost revizuit si este acum la versiunea 2.0 .

 

RoCSIRT pune la dispozitia utilizatorilor sai un scurt howto despre cum se poate creste gradul de siguranta al conexiunilor HTTPS, daca folositi Apache si mod_ssl: Configurare mod_ssl (Apache).

Tagged with:
 

Bucuresti, 27 mai 2013: Peste 150 de experți in securitate informatica și oficiali guvernamentali din Uniunea Europeana și din SUA au venit saptamana trecuta la București pentru a dezbate cele mai noi soluții privind prevenirea și combaterea fenomenului de criminalitate informatica. Romania a fost anul acesta gazda a doua evenimente internaționale pe teme de securitate informatica.

“Romania a ales sa fie anul acesta gazda celor doua evenimente, in contextul dezvoltarii din ultimii ani a relațiilor de cooperare intre instituțiile de profil din țara și cele existente deja la nivel european. Este prima data cand Romania pașește in fața, asumandu-și rolul de gazda și de partener de incredere al partenerilor europeni mai ales in contextul in care numarul atacurilor informatice in care au fost implicate entitați din Romania a crescut in ultimii ani”, a declarat Manuel Șubredu, coordonator al RoCSIRT, serviciul de tip CERT al Agenției ARNIEC / RoEduNet, co-organizator al evenimentelor.

Cum sa gestionezi un atac asupra unei infrastructuri critice, ce soluții pentru protecția datelor pot fi folosite in sistemele de tip cloud, sau cum trebuie abordate problemele legate de amenințarile informatice care vizeaza telefoanele mobile au fost doar cateva dintre subiectele discutate in cadrul workshop-ului desfașurat in perioada  21 – 22 mai, organizat de catre Agenția ARNIEC/RoEduNet in parteneriat cu ENISA. Printre participanții la aceste dezbateri s-au aflat oficiali din structurile naționale și guvernamentale (denumite (CERT- Computer Emergency Response Team) care se ocupa de protecția instituțiilor conectate la rețelele nationale de comunicații și de  asistența tehnica in tratarea incidentelor de securitate.

Cele doua zile de workshop au fost completate de inca doua zile de dezbateri și discuții ce au avut ca scop gasirea celor mai bune soluții pentru combaterea criminalitații informatice. In perioada 23 – 24 mai, tot la Bucuresti a avut loc și cea de-a 39-a intalnire a TI (Trusted Introducer) și a TF-CSIRT (grupul de lucru pe probleme de securitate informatica a TERENA), doua grupuri de lucru constituite la nivel european, cu rolul de a sprijini și dezvolta colaborarea in domeniul securitații informatice precum și de a combate incidentele de criminaliate in domeniu. Exemple de bune practici in cazuri de alerte sau amenințari in securitatea informatica, clasificarea tipurilor de incidente sau chiar aplicații informatice ce vin in ajutorul echipelor de tip CERT au fost doar cateva dintre tematicile abordate de catre experții participanți la unul dintre cele mai importante evenimente de profil din acest an.

 

Despre evenimente:

“CERTs in Europe”, cel de-al optulea workshop anual al ENISA – Partea I,  s-a desfașurat in perioada 21 – 22 mai 2013 la București, la hotelul Radisson Blu. Evenimentul a constat in furnizarea de exerciții și programe de training personalizate pentru experții CERT.

The 39th TF-CSIRT meeting – un eveniment organizat la București in perioada 23 – 24 mai 2013 la hotelul Radisson Blu – este unul dintre cele mai importante evenimente internaționale in domeniul securitații informatice.

Despre organizatori:

Agentia ARNIEC/RoEduNet (Agenția de Administrare a Rețelei Naționale de Informatica pentru Educație și Cercetare), aflata in subordinea Ministerului Educației Naționale, administreaza și dezvolta rețeaua RoEduNet care asigura servicii de comunicații de date pentru instituțiile de cercetare și academice de toate gradele din Romania. Agenția ARNIEC este membru al consorțiului european GEANT, rețeaua care interconecteaza toate rețelele pentru educație și cercetare din statele membre ale Uniunii Europene.

ENISA (The European Network and Information Security Agency) este agenția responsabila de activitațile de securitate informatica din cadrul Uniunii Europene, deservind atat instituțiile Uniunii Europene, cat și cele ale statelor membre. ENISA este un centru de expertiza care definește și promoveaza standardele de securitate informatica in Europa.

TERENA (The Trans-European Research and Education Networking Association) este asociația rețelelor pentru educație și cercetare din Europa, ce ofera cadrul in care acestea, inoveaza șI schimba cunoștințe menite sa dezvolte tehnologiile, infrastructura și serviciile de acces la Internet folosite de comunitațile de cercetare și educație.

TI (Trusted Introducer) este un serviciu de cooperare, comunicare și recunoaștere a echipelor de tip CERT fondat in anul 2000 de catre membrii comunitații CERT din Europa ce are ca scop dezvoltarea și facilitarea comunicarii și cooperarii membrilor sai.

 

RoCSIRT a publicat un articol despre cum să înlăturăm virusul Ukash de pe calculatoarele ce rulează Windows 7 sau Windows XP. Articolul poate fi citit aici.

 

RoCSIRT pune la dispoziția utilizatorilor rețelei RoEduNet și nu numai, un fișier de configurare BIND pentru serviciul DNS, ce poate fi utilizat pentru îmbunătățirea securității acestui serviciu. Articol complet …