Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
Love Lies Bleeding - 2024

Cum sterg mails din Promotions

Vanzare cumparare fara transfer b...

Receptie ciudata, in functie de t...
 Donez medicamente renale ptr pisica

Ce componenta e asta si ce ziceti...

Dupa 20 ani de facultate, am uita...

Mobile.de ofera imprumut de bani ...
 problema test grila

Digi24 a disparut de pe TV Lg

Drept de proprietate intelectuala...

Jante noi shitbox
 Trinitas TV 4K

Dacia 1316 cu 6 usi ...

Frecventa modificata radio

Un nou pericol pt batrani
 

Site atacat

- - - - -
  • Please log in to reply
27 replies to this topic

#19
-NeLuTu-

-NeLuTu-

    Junior Member

  • Grup: Members
  • Posts: 75
  • Înscris: 14.01.2008

View PostOriginalCopy, on 10 septembrie 2012 - 12:12, said:

Hai neluţule, oricât ai încerca să eviţi, la gunoi cu windows...

Eu d-aia nu folosesc, prea multă bătaie de cap. Să nu pot eu să stau liniştit când intru pe site-ul băncii de exemplu... Nu că teoretic n-aş avea grijă de sistem, dar pur şi simplu e o grijă în plus degeaba.

Sau poate îl cureţi acum, dar mereu vei sta cu frica-n ... ce ai.

La gunoi cu Windowsu', dar nu încă pentru mine. E calculatorul unui amic și nu știe să folosească altceva decât Windows, în cel mai rău caz o să fie două sisteme de operare pe el, dar poate reușesc să-l conving să folosească Linux. Sper ca sistemul de operare să fie problema și să scap de acest atac.

#20
-NeLuTu-

-NeLuTu-

    Junior Member

  • Grup: Members
  • Posts: 75
  • Înscris: 14.01.2008
Îmi pare rău pentru dublu post, dar nu cred că puteam face altceva.

Am ras hard-ul şi am instalat Linux (Ubuntu), acum să vedem ce se întâmplă...
O întrebare am. Acest atac ar fi putut venii prin URL? Dacă da, felul în care verific variabila GET, este suficient?
$pagini = array('despre', 'articole', 'prezentare', 'galeriefoto');
if (isset($_GET['p']) AND ctype_alnum($_GET['p']) AND in_array($_GET['p'], $pagini))
$pagina = $_GET['p'];
else $pagina = 'despre';

View PostOriginalCopy, on 07 septembrie 2012 - 18:30, said:

Metoda ta de apărare e fix pix, deoarece nu adresează vectorul critic de atac. Atacatorul tot va putea să injecteze orice vrea în paginile tale.

Dacă n-ai avea acea gaură în sistemul de operare, metoda de protecţie ar fi bună.

În altă ordine de idei, securitatea ori o ai, ori n-o ai. Nu merge "pe bucăţi".
Eu m-am gândit că e suficient dacă verific cu ctype(alnum) şi mai şi verific dacă valoarea e aceiaşi cu cea pusă de mine într-un array.

Există metode mai bune de a verifica GET şi POST?

Edited by -NeLuTu-, 11 September 2012 - 16:04.


#21
OriginalCopy

OriginalCopy

    I'm harmful, fear me please! :))

  • Grup: Senior Members
  • Posts: 27,268
  • Înscris: 10.08.2006
Este foarte ok verificarea ta în cazul arătat de tine.

Nici n-ai nevoie de ctype_alnum(), pentru că verifici oricum ceea ce ai pus tot tu în $pagini, şi nu vei pune ne-alfanumerice acolo.

Teoretic, să zicem că te-ar fi protejat acel ctype dacă codul ar fi arătat aşa:

$pagini = array('despre', 'articole', 'prezentare', 'galeriefoto');
//alte lucruri aici care sunt vulnerabile
if (isset($_GET['p']) AND ctype_alnum($_GET['p']) AND in_array($_GET['p'], $pagini))
$pagina = $_GET['p'];
else $pagina = 'despre';

şi dacă atacatorul ar fi nimerit fix o gaură de securitate între iniţializarea lui $pagini şi verificarea lui $_GET['p'], gaură prin care ar fi putut injecta cod străin aşa încât să suprascrie $pagini (şi să injecteze valori ne-alfanumerice), ABIA ATUNCI acel ctype ar fi fost de folos.

Chiar şi dacă ar fi aşa
//alte lucruri aici care sunt vulnerabile
$pagini = array('despre', 'articole', 'prezentare', 'galeriefoto');
if (isset($_GET['p']) AND in_array($_GET['p'], $pagini))
$pagina = $_GET['p'];
else $pagina = 'despre';
nu ar fi vulnerabil la aspectul $pagina (dar tot ar fi vulnerabil la alt gen de atacuri), pentru că tu oricum suprascrii $pagini, deci injecţia lui n-are niciun efect.

Însă aşa:

$pagini = array('despre', 'articole', 'prezentare', 'galeriefoto');
if (isset($_GET['p']) AND ctype_alnum($_GET['p']) AND in_array($_GET['p'], $pagini))
$pagina = $_GET['p'];
else $pagina = 'despre';
//alte lucruri aici care sunt vulnerabile
include $pagina.'.php';

e vulnerabil indiferent de ce ai face, poţi să pui şi mama lu' mama lu' mama lu' ctype.

Deci în loc să îţi faci griji de ctype, dacă vrei să securizezi împotriva suprascrierii lui $pagina, securizează celelalte segmente de cod "din împrejurimi", de dinainte, de după, intercalate...

Ideea e că celelalte secţiuni de cod trebuiesc securitate împotriva ALTOR (tuturor) tipurilor de atacuri care ar fi teoretic posibile, atacuri de care-ţi dai seama din structura codului.

Asta este ceea ce face securitatea grea, ca să te aperi împotriva unui anumit vector de atac, trebuie să acoperi întregul spaţiu de vectori posibili.

Nu există reţete de securitate şi securizare, trebuie să-ţi analizezi şi să-ţi înţelegi codul. Nu aplica reguli de securizare din auzite, rişti să îţi creezi un simţ fals al securităţii, nebazat pe realitate. Iar aia nu mai e securitate, e lăbăreală.

Edited by OriginalCopy, 11 September 2012 - 16:33.


#22
-NeLuTu-

-NeLuTu-

    Junior Member

  • Grup: Members
  • Posts: 75
  • Înscris: 14.01.2008
Fila arată cam aşa:
require_once 'administrare/inc/config.php'; //constante cu datele bazei de date

$pagini = array('despre', 'articole', 'prezentare', 'galeriefoto');

if (isset($_GET['p']) AND ctype_alnum($_GET['p']) AND in_array($_GET['p'], $pagini))
$pagina = $_GET['p'];
else $pagina = 'despre';

// aici mă conectez la baza de date
// la un moment dat folosesc un switch pentru a include filele de care am nevoie în functie de $pagina

if (isset($pagina)) {
switch ($pagina) {
case 'despre':
include_once 'inc/despre.php';
break;
 ......................
}
}

					


Edited by -NeLuTu-, 11 September 2012 - 16:59.


#23
OriginalCopy

OriginalCopy

    I'm harmful, fear me please! :))

  • Grup: Senior Members
  • Posts: 27,268
  • Înscris: 10.08.2006
Ai înţeles doar superficial ce am zis... Poate are cineva chef să-ţi explice de ce codul pe care l-ai arătat e destul de irelevant.

#24
RCG

RCG

    Senior Member

  • Grup: Senior Members
  • Posts: 2,386
  • Înscris: 20.09.2006
Problema ta poate fi de natura RFI (remote file injection) sau LFI (local file injection). Nu am avut timp să mă uit pe cod întrucât scriu de pe telefon.

Mai poate fi un cron care rulează la un interval de timp și îți adaugă acel cod.

O altă cauză poate fi serverul în sine : exploit-uri, vulnerabilități etc.

#25
-NeLuTu-

-NeLuTu-

    Junior Member

  • Grup: Members
  • Posts: 75
  • Înscris: 14.01.2008

View PostOriginalCopy, on 11 septembrie 2012 - 17:08, said:

Ai înţeles doar superficial ce am zis...
Se poate, totuşi încercam să-ţi că nu am mare lucru în acea pagină. Structura php/mysql ar fi aceasta:

- includ o filă ce conţine datele bazei de date, în constante;
- fac acea verificare a variabilei GET;
- mă conectez la baza de date;
- fac două-trei interogări ale bazei de date şi afişez conţinut în funcţie de rezultat;
- includ două trei file (antet, meniu) care nu fac altceva decât să interogheze şi ele, baza de date şi să afişeze conţinut în funcţie de rezultat (practic acelaşi lucru ca şi punctul anterior);
- includ o filă „inc/pagini/pagini.php”, care conţine acel switch şi care include file php din „inc/pagini”, în div-ul corespnzător
*în o parte din aceste file verific alte variabile GET, în acest fel:
if (isset($_GET['art']) && ctype_digit($_GET['art'])) $id_articol = (int)$_GET['art'];


Cam asta e tot.

View PostRCG, on 11 septembrie 2012 - 17:31, said:

Problema ta poate fi de natura RFI (remote file injection) sau LFI (local file injection). Nu am avut timp să mă uit pe cod întrucât scriu de pe telefon.

Mai poate fi un cron care rulează la un interval de timp și îți adaugă acel cod.

O altă cauză poate fi serverul în sine : exploit-uri, vulnerabilități etc.

Mi-ar plăcea să ştiu dacă problema e de la server, aş muta site-ul pe un alt server. Totuşi, aş vrea să fiu sigur de asta, dacă se poate. Site-ul e al unui prieten, n-aş vrea să plătească un alt server, în zadar.

Ca şi soluţie provizorie m-am gândit să redenumesc index.php în default.php, lucru care a funcţionat, codul maliţios nu a mai apărut, doar că serverul pe care e site-ul acum, nu vede „default.php” ca şi pagină de start şi îmi listează ce e în dosarul „www”. Pe un server gratuit, pe care îl folosesc ca şi server de testare, totul merge bine.

Pot să fac ceva ca şi serverul pe care e site-ul acum să vadă „default.php” ca fiind pagina de start a site-ului?

#26
OriginalCopy

OriginalCopy

    I'm harmful, fear me please! :))

  • Grup: Senior Members
  • Posts: 27,268
  • Înscris: 10.08.2006

View Post-NeLuTu-, on 13 septembrie 2012 - 10:44, said:

Se poate, totuşi încercam să-ţi că nu am mare lucru în acea pagină. Structura php/mysql ar fi aceasta:

Nu "se poate", chiar aşa este. Nu înţelegi regulile securităţii, şi apoi vii cu idei care ai impresia că sunt bune:

View Post-NeLuTu-, on 13 septembrie 2012 - 10:44, said:

Mi-ar plăcea să ştiu dacă problema e de la server, aş muta site-ul pe un alt server. Totuşi, aş vrea să fiu sigur de asta, dacă se poate. Site-ul e al unui prieten, n-aş vrea să plătească un alt server, în zadar.

View Post-NeLuTu-, on 13 septembrie 2012 - 10:44, said:

Ca şi soluţie provizorie m-am gândit să redenumesc index.php în default.php, lucru care a funcţionat, codul maliţios nu a mai apărut, doar că serverul pe care e site-ul acum, nu vede „default.php” ca şi pagină de start şi îmi listează ce e în dosarul „www”. Pe un server gratuit, pe care îl folosesc ca şi server de testare, totul merge bine.

Iar asta nu e securitate. E cârpeală.

În alte cuvinte, factorul determinant care duce la problemele tale este factorul psihologic:

View PostOriginalCopy, on 16 noiembrie 2010 - 11:24, said:

Salut

HTTP este un protocol stateless, deci este nevoie de cookies pentru a face asocierea dintre un client şi date de pe server la fiecare cerere.
Şi dacă nu este cookie, tot este un identificator unic, fie că este un parametru GET (practică FOARTE nerecomandată) sau adresa IP.

Asta doar tu poţi defini. Eu nu pot şti câte şi ale cui cărţi de credit le procesezi. Sistemul cu cookies în sinea lui este destul de sigur, DAR

Exploatarea unui sistem nu se face doar pe o singură cale, nu aşa funcţionează lucrurile în lumea securităţii. În securitate avem vectori de atac. Aceştia nu corespund neapărat 1:1 cu găuri de securitate (în aplicaţie, în reţea, în sistem, în necunoaşterea celor care crează/setează şi mentenează aceste lucruri), ci pot fi combinaţi astfel încât să fie atins punctul sensibil (ca la adunarea vectorilor, de aici numele "vector de atac").

Poate sistemul de operare în sinea lui este cel mai sigur, dar degeaba este sigur, dacă pe el rulează "scriptul" scris de copii de 16 ani.

Deci întrebarea ta este răspunsă: sistemul de login cu sesiuni este sigur, dar nu e suficient ca doar el să fie sigur, pentru ca întregul ecosistem să fie sigur.

Pentru siguranţă la nivel de reţea foloseşte HTTPS, pentru siguranţă la nivel de sistem foloseşte 1. un sistem respectabil *NIX, 2. oameni care ştiu ce fac. Pentru siguranţă la nivelul aplicaţiei, vezi cum te protejezi împotriva XSS, SQL injection, CSRF. Pentru siguranţă la nivelul "factorul uman", asigură-te că toţi cei care au voie să interacţioneze cu sistemul şi reţeaua ta a. ştiu ce fac b. documentează tot ce fac c. peer review must be in place!!!

Cam asta e povestea pe larg. Mare atenţie la factorul uman.


Addendum

Ah, şi am uitat de siguranţa fizică a sistemului.

Cine spune că dacă muţi scriptul, va fi mai sigur? Dacă dai iar de aceeaşi problemă? Ar trebui să foloseşti această oportunitate pentru a învăţa despre securitate, a o înţelege, şi a aplica înţelegerea, nu cunoaşterea. În domeniile tehnice, cunoaşterea rezultă de cele mai multe ori din înţelegere.

Învaţă să pui întrebările corecte, altfel te vei complace mereu într-o baltă de ignoranţă şi incompetenţă.

Sau în altă ordine de idei "What I cannot create, I do not understand" -- Richard Feynman.

Edited by OriginalCopy, 13 September 2012 - 11:16.


#27
-NeLuTu-

-NeLuTu-

    Junior Member

  • Grup: Members
  • Posts: 75
  • Înscris: 14.01.2008

View PostOriginalCopy, on 13 septembrie 2012 - 11:15, said:

Nu "se poate", chiar aşa este. Nu înţelegi regulile securităţii, şi apoi vii cu idei care ai impresia că sunt bune:
Sunt de acord, cunoştinţele mele despre securitate sunt minime, dar asta pentru că nu am găsit ceva din care să învăţ mai mult. Dacă mi-ai putea oferii o resursă din care să mă pun la punct cu securitatea aplicaţiilor web, ţi-aş fi recunoscător.

View PostOriginalCopy, on 13 septembrie 2012 - 11:15, said:

Iar asta nu e securitate. E cârpeală.
Aşa este, dar site-ul asta este foarte important pentru prietenul meu, situaţia durează deja de vre-o lună, chiar şi o soluţie provizorie m-ar ajuta, până am să reuşesc să fac lucrurile aşa cum trebuie.

View PostOriginalCopy, on 13 septembrie 2012 - 11:15, said:

În alte cuvinte, factorul determinant care duce la problemele tale este factorul psihologic:
Din cauza grabei am încercat toate „soluţile” pe care le-am găsit sau care mi-au trecut prin cap. Începe să mă obosească asta.

#28
OriginalCopy

OriginalCopy

    I'm harmful, fear me please! :))

  • Grup: Senior Members
  • Posts: 27,268
  • Înscris: 10.08.2006
Dacă gaura de securitate nu este în singurul script care rulează pe server, atunci gaura de securitate este în server.

Dacă nu este singurul script vulnerabil, atunci trebuie să analizaţi TOATE scripturile.

Spune-i prietenului tău să reinstaleze sistemul şi să pună serverul într-un box virtualizat cu xen, un honeypot în care monitorizezi ce se întâmplă, pentru a înţelege atacul, şi pentru a lua contra-măsurile necesare de securizare a maşinii.

Tu poţi redenumi în default.php, şi configura serverul să folosească aia ca index.php, dar asta cel mai probabil nu va rezolva cauza adevărată, gaura adevărată de securitate.

Anunturi

Neurochirurgie minim invazivă Neurochirurgie minim invazivă

"Primum non nocere" este ideea ce a deschis drumul medicinei spre minim invaziv.

Avansul tehnologic extraordinar din ultimele decenii a permis dezvoltarea tuturor domeniilor medicinei. Microscopul operator, neuronavigația, tehnicile anestezice avansate permit intervenții chirurgicale tot mai precise, tot mai sigure. Neurochirurgia minim invazivă, sau prin "gaura cheii", oferă pacienților posibilitatea de a se opera cu riscuri minime, fie ele neurologice, infecțioase, medicale sau estetice.

www.neurohope.ro

0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

Forumul Softpedia foloseste "cookies" pentru a imbunatati experienta utilizatorilor Accept
Pentru detalii si optiuni legate de cookies si datele personale, consultati Politica de utilizare cookies si Politica de confidentialitate