lt.phhsnews.com


lt.phhsnews.com / Kaip įsilaužėliai perkelia interneto svetaines naudodami SQL injekciją ir DDoS

Kaip įsilaužėliai perkelia interneto svetaines naudodami SQL injekciją ir DDoS


Net jei jūs tik laisvai stebėjote Anoniminių ir LulzSec hakerių grupių įvykius, tikriausiai girdėjote apie svetaines ir paslaugos buvo įsilaužta, kaip liūdnai pagarsėję "Sony". Ar kada nors susimąstėte, kaip jie tai daro?

Yra daug įrankių ir metodų, kuriuos naudoja šios grupės, ir, nors mes neketiname duoti jums vadovo, kad tai padarytumėte patys, naudinga suprasti, kas vyksta. Du iš išpuolių, kuriuos jūs nuolat girdite apie jų naudojimą, yra "(Distributed) Denial of Service" (DDoS) ir "SQL injekcijos" (SQLI). Štai kaip jie dirba.

Image by xkcd

Denial of Service Attack

Kas tai yra?

"Paslaugos atsisakymas" (kartais vadinamas "paskirstyta paslaugos neigimas" arba "DDoS") ataka įvyksta, kai sistema, šiuo atveju žiniatinklio serveris, vienu metu gauna tiek daug užklausų, kad serverio ištekliai yra perkrautos, sistema paprasčiausiai užrakina ir išjungia. Sėkmingo DDoS užpuolimo tikslas ir rezultatas yra tai, kad tikslinio serverio svetainės nėra teisėtos eismo užklausos.

Kaip tai veikia?

DDoS atakos logistika gali būti geriausiai paaiškinta pavyzdžiu.

Įsivaizduokite, kad milijonas žmonių (užpuolikai) kartu su tikslu užkirsti kelią įmonės "X" verslui užkerta kelią jų skambučių centrui. Puolėjai koordinuoja, kad antradienį, 9 val., Jie visi skambins "Company X" telefono numeriu. Labiausiai tikėtina, kad "X" telefono sistema negalės vienu metu tvarkyti milijono skambučių, taigi visos įeinančios linijos bus užblokuotos užpuolikų. Rezultatas yra tas, kad teisėti klientų skambučiai (t.y. tie, kurie nėra užpuolikai) nepasiekia, nes telefono sistema yra susieta su užpuolikų skambučiais. Taigi iš esmės "X" bendrovė gali prarasti verslą dėl teisėtų prašymų, kurių negalima pasiekti.

"DDoS" ataka žiniatinklio serveriu veikia taip pat. Kadangi praktiškai nėra jokio būdo žinoti, koks srautas yra gaunamas iš teisėtų užklausų ir užpuolikų, kol žiniatinklio serveris apdoroja užklausą, šis tipo atakas paprastai yra labai veiksmingas.

Užpuolimo vykdymas

Dėl "brute jėga "DDoS atakos pobūdžio, jums reikia turėti daug kompiuterių, kurie visi būtų suderinti atakuoti tuo pačiu metu. Pavyzdžiui, persvarsčius mūsų skambučių centro funkciją, visiems užpuolikai turėtų žinoti, kad skambinti 9 val. Ir tuo metu iš tikrųjų skambinti. Nors šis principas tikrai veiktų, kai kalbama apie ataka žiniatinklio serveriui, jis tampa žymiai lengvesnis, kai bus naudojami zombių kompiuteriai, o ne tik dirbtiniai kompiuteriai.

Kaip jūs tikriausiai žinote, yra daugybė kenkėjiškų programų ir trojanų variantų, kurie , vieną kartą savo sistemoje, atsigulkite, o kartais "telefonu namuose" instrukcijoms. Pavyzdžiui, viena iš šių instrukcijų galėtų būti pakartotinių užklausų siuntimas "Company X" žiniatinklio serveriui 9:00. Taigi, kai atsinaujina atitinkamos kenkėjiškos programos buveinės vieta, vienas užpuolikas gali greitai suderinti šimtus tūkstančių pažeistų kompiuterių, kad atliktų didžiulį "DDoS" ataką.

"Zombie" kompiuterių grožis yra ne tik veiksmingas, bet ir

SQL Injection Attack

Kas tai yra?

SQL injekcija (SQLI) ataka yra pasinaudoti prastais interneto kūrimo būdais ir paprastai kartu su klaidingu duomenų bazės saugumu. Sėkmingo atakos rezultatas gali būti nuo apsimestinės vartotojo abonemento iki visiškos atitinkamos duomenų bazės ar serverio kompromiso. Skirtingai nuo DDoS atakos SQLI ataka yra visiškai ir lengvai išvengiama, jei tinklalapis tinkamai užprogramuotas.

Užpuolimo vykdymas

Kiekvieną kartą, kai prisijungiate prie interneto ir įveskite savo vartotojo vardą ir slaptažodį, norėdami išbandyti savo žiniatinklio programa gali vykdyti tokį užklausą kaip:

PASIRINKITE naudotojo ID iš naudotojų WHERE UserName = "myuser" IR Password = "mypass";

Pastaba: SQL užklausoje esančios eilutės reikšmės turi būti pridėtos vienkartinėmis kabutėmis, todėl jos rodomos aplink vartotojo įvestas reikšmes.

Taigi įvesto vartotojo vardo (mano vartotojo) ir slaptažodžio ("mypass") derinys turi atitikti įrašą Naudotojų lentelė, kad naudotojo ID būtų grąžinta. Jei nėra atitikties, nė vienas UserID negrąžinamas, todėl prisijungimo duomenys yra netinkami. Nors konkretus įgyvendinimas gali skirtis, mechanika yra gana standartinė.

Taigi dabar pažvelkime į šablono autentifikavimo užklausą, kurią galime pakeisti vertėmis, kurias vartotojas įveda į interneto formą:

SELECT UserID FROM THE USERS WHERE UserName = " [user] "AND Password =" [pass] "

Iš pirmo žvilgsnio tai gali atrodyti kaip paprastas ir logiškas žingsnis norint lengvai patvirtinti vartotojus, tačiau jei šiame šablone atliekamas paprastas vartotojo įvesti verčių pakeitimas, tai yra jautrus SQLI atakai.

Pavyzdžiui, tarkime, kad vartotojo vardo lauke įvesti "myuser" ir "slaptažodis" įvedamas neteisingas slaptažodis. Naudojant paprastą pakeitimą mūsų šablono užklausoje, mes galėtume tai gauti:

SELECT UserID iš naudotojų WHERE UserName = "myuser" - 'AND Password =' ​​wrongpass '

Šio teiginio raktas yra dviejų brūkšnių įtraukimas(-). Tai yra "SQL" teiginių pradžios komentarų ženklais, todėl niekas, atsirandantis po dviejų brūkšnių (imtinai), bus ignoruojamas. Iš esmės, aukščiau esanti užklausa duomenų bazėje vykdoma taip:

SELECT UserID FROM THE USERS WHERE UserName = "myuser"

Čia akivaizdu, kad trūksta slaptažodžio patikrinimo. Įtraukdami du brūkšnius kaip naudotojo lauko dalį, mes visiškai apeitėme slaptažodžio tikrinimo būklę ir galėjome prisijungti kaip "myuser", nežinodami atitinkamo slaptažodžio. Šis veiksmas manipuliuoti užklausa generuoti nenumatytus rezultatus yra SQL injekcijos ataka.

Kokio žalos galima padaryti?

SQL injekcijos ataka sukeliama dėl aplaidumo ir neatsakingo programų kodavimo ir yra visiškai išvengiama (kurią mes apimsime akimirka), tačiau galimas žalos dydis priklauso nuo duomenų bazės nustatymo. Kad žiniatinklio programa galėtų bendrauti su duomenų centru, programa turi pateikti prisijungimą prie duomenų bazės (pastaba, tai skiriasi nuo vartotojo prisijungimo prie pačios svetainės). Atsižvelgiant į tai, kokie leidimai reikalingi žiniatinklio programai, ši atitinkama duomenų bazės sąskaita gali reikalauti bet kokio leidimo skaityti / rašyti esančiose lentelėse tik prie visiškos prieigos prie duomenų bazės.

Remdamiesi pirmiau pateiktu pavyzdžiu, galite pamatyti, kad įvesdami, pavyzdžiui,"youruser" - "," admin " - "" arba bet kuris kitas naudotojo vardas, mes galime nedelsiant prisijungti prie svetainės, nes šis vartotojas nežinodamas slaptažodžio. Kai mes esame sistemoje, nežinome, kad mes iš tikrųjų nėra tas vartotojas, todėl turime visą prieigą prie atitinkamos paskyros. Duomenų bazės leidimai nesuteikia tokio saugumo tinklo, nes paprastai tinklalapyje turi būti bent jau skaitymo / rašymo prieigos prie atitinkamos duomenų bazės.

Dabar įsitikinkime, kad tinklalapis visiškai kontroliuoja savo atitinkamą duomenų bazę, kuri suteikia galimybę ištrinti įrašus, pridėti / pašalinti lenteles, pridėti naujas saugos paskyras ir tt Svarbu pažymėti, kad kai kurioms interneto programoms gali prireikti tokio tipo leidimo, todėl automatiškai nėra blogo dalyko, kad visiškas valdymas būtų suteiktas.

Taigi iliustruoja žalą, kuri gali būti padaryta šioje situacijoje, mes panaudosime aukščiau pateiktą pavyzdį, įvardydami vartotojo vardo lauką:"Robert"; DROP TABLE Vartotojai; - ".Po paprastas pakeitimas autentiškumo užklausa tampa:

SELECT UserID iš naudotojų WHERE UserName = "Robert"; "DROP TABLE" Vartotojai; "AND Password =" wrongpass "

Pastaba: kabliataškis yra SQL užklausoje, naudojamas tam tikro teiginio pabaigoje ir naujo teiginio pradžioje.

Kurį paleidžia duomenų bazė kaip:

PASIRINKITE naudotojo ID iš naudotojų WHERE UserName = "Robert"

DROP TABLE Vartotojams

Taigi, mes naudojome SQLI ataką, kad ištrintume visą vartotojų lentelę.

Žinoma, galima padaryti daug blogiau, nes, priklausomai nuo leidžiamų SQL leidimų, užpuolikas gali keisti reikšmes, iškrovimo stalus (arba visą pačią duomenų bazę) į teksto failą, kurti naujas prisijungimo paskyras ar netgi užgrobti visą duomenų bazės įdiegimą.

Užkirsti kelią SQL injekcijos atakui

Kaip minėjome keletą kartų anksčiau, SQL injekcijos ataka yra lengvai išvengiama. Viena iš pagrindinių interneto svetainių kūrimo taisyklių yra tai, kad jūs niekada aklai nesuprantate naudotojo įvesties, kaip mes padarėme, kai atlikome paprastą pakeitimą aukščiau esančiame šablono užklausoje.

SQLI ataka yra lengvai sutrikdyta to, kas vadinama jūsų žaliavų dezinfekavimu (arba pašalinimu). Išvalomas procesas iš tikrųjų yra gana nereikšmingas, nes viskas iš esmės yra tai, kad kiekvienas vidinis vieno simbolio (") simbolis tinkamai tvarkomas tokiu būdu, kad jis nebūtų naudojamas priešlaikiniam SQL eilutės užbaigimui.

Pavyzdžiui, jei norėtumėte Paiešką "O'neil" duomenų bazėje negalėjote naudoti paprasto pakeitimo, nes vienintelė citata po O sukeltų eilutę anksčiau laiko. Vietoj to jūs jį išvalysite naudodamiesi atitinkamos duomenų bazės evakuacijos ženklu. Darome prielaidą, kad eskizinis simbolis, skirtas eilinei vienkartinei citatai, yra kiekvienos citatos su simboliu simbolis. Taigi "O'neal" bus išvalytas kaip "O " neil ".

Šis paprastas sanitarijos veiksmas gana daug užkerta kelią SQLI atakoms.

myuser - / netinkama :

PASIRINKITE naudotojo ID iš naudotojų WHERE UserName = " myuser "-" AND Password = "wrongpass"

Kadangi vienintelė citata po mano vartotojo yra ištrinta (tai reiškia, kad ji laikoma dalimi tikslinę vertę), duomenų bazė tiesiog ieškos"myuser" - ".Be to, kadangi brūkšneliai yra įtraukti į stringą, o ne pats SQL, jie bus laikomi tikslinės vertės dalimi, o ne interpretuojami kaip SQL komentaras.

" Robert "; "DROP TABLE" Vartotojai; - / wrongpass :

PASIRINKITE naudotojo ID iš naudotojų WHERE UserName = "Robert"; "DROP TABLE" Vartotojai; "AND Password =" wrongpass "

Paprasčiausiai ištrindami vienintelę citatą po Roberto, tiek kabliataškis, tiek brūkšniai yra" UserName "paieškos eiluteje, taigi duomenų bazė tiesiog ieškos" Robert " ; DROP TABLE Vartotojai; - "vietoj to, kad lentelė būtų ištrinta.

SANTRAUKA

Nors žiniatinklio ataka vystosi ir tampa vis sudėtingesni arba sutelkiamas į kitą įvažiavimo vietą, svarbu nepamiršti apsaugoti prieš bandytus ir tikrus išpuolius, kurie buvo įkvėpimas kelių laisvai prieinamų "įsilaužėlių įrankių", skirtų juos išnaudoti.

Negalima lengvai išvengti tam tikrų tipų išpuolių, pvz., DDoS, o kiti, pavyzdžiui, SQLI, gali. Tačiau žala, kurią gali sukelti tokie išpuoliai, gali priklausyti nuo nepatogumų iki katastrofiškumo priklausomai nuo taikomų atsargumo priemonių.


Ar ATA yra tas pats, kaip IDE / PATA ar SATA?

Ar ATA yra tas pats, kaip IDE / PATA ar SATA?

Kai perkate naują kietąjį diską, kartais gali būti šiek tiek painu, kai panaši ar ne tokia panaši terminologija sumaišyti produkto aprašyme. Atsižvelgiant į tai, šiandieninis "SuperUser Q & A" postas turi atsakymą į įdomų skaitytojo klausimą. Šiandienos klausimų ir atsakymų sesija ateina pas mus "SuperUser" - "Stack Exchange", bendruomenės pagrįstos Q & A svetainių grupės, padalinys.

(how-to)

Kaip sukurti stiprų slaptažodį (ir prisiminti jį)

Kaip sukurti stiprų slaptažodį (ir prisiminti jį)

"Būtinai naudoti stipraus slaptažodžio" yra patarimas, kurį mes nuolat žiūrime internete. Štai kaip sukurti tvirtą slaptažodį ir, svarbiausia, kaip iš tikrųjų prisiminti. Čia padeda naudoti slaptažodžių tvarkyklę, nes jis gali sukurti tvirtus slaptažodžius ir juos prisiminti. Bet net jei naudosite slaptažodžių tvarkytuvę, turėsite bent jau sukurti ir prisiminti tvirtą slaptažodį savo slaptažodžių tvarkytuvui.

(how-to)