Ak ste čítali posledné moje dva články týkajúce sa spoločnosti Azet.sk a úrovne jej ochrany, zaiste viete, že je to s ňou na tomto portáli katastrofálne. Spoločnosť sa vo svojich PR článkoch snažila ľudí presvedčiť, že ich ochrana je dostatočná. V tomto článku vám ukážem presný opak.
Priznám sa, že na celú zraniteľnosť ma upozornil impact, jeden z členov nášho IRC kanála. Samotná zraniteľnosť sa viaže na ochranu formulárov za pomoci systému Captcha, čo je jednoduchý Turingov test pre rozpoznanie počítača od ľudskej bytosti. Jej dekódovaním sa zaoberajú hackeri a výskumníci už od jej počiatkov. Výsledky sú často krát fascinujúce a šokujúce. O celom procese dekódovania, resp. rozpoznávania Captchy však napíšem na mojom novom domovskom portáli eTrend, v sekcii technológie už čoskoro. Nateraz vám musí stačiť linka na Wikipediu, kde sa dá dočítať mnoho o tom, ako Captcha funguje a ako je možné automatizovane získať obsah vygenerovaného obrázku.
Nám postačí poznať len základy. Logika je jednoduchá. Čím je reťazec v Captchy viac rozmazaný, pretkaný ďalšími objektami, zhodný, alebo veľmi blízky farbe pozadia, málo výrazný, alebo akokoľvek inak zdeformovaný, tým je ho zložitejšie získať z vygenerovaného obrázku. Existujú aj roboty, ktoré dokážu prekonať veľmi zložitú captchu, napríklad tú od Google, Yahoo!, či Microsoftu. Azet však nie je natoľko lukratívnym miestom, aby stálo hackerom za námahu študovať tento systém a vytvárať robotov pre zautomatizovanie procesu vytváranie kont. Práve kvôli existujúcim možnostiam, ako Captchu dekódovať za pomoci robota, ozývajú sa hlasy niekoľkých, ktorí sú zásadne proti tomuto konceptu. Medzi nimi aj moji dvaja priatelia rSnake a dusoft.
Napriek tomu je to dnes prakticky jediný spôsob ochrany, ktorý je aplikovateľný na najširšie množstvo užívateľov pripojených k internetu. Asi najlepším spôsobom ochrany je využitie oficiálneho projektu s názvom reCAPTCHA, o ktorom som už tu na blogu písal.
Azet však ide svojou cestou a pre generovanie Captchy využíva už hotovú knižnicu pre PHP, GD JPEG, postavený na IJG JPEG v62 a kvalitou vygenerovaného obrázka nastavenou na 100%. Ostatne, tieto informácie môže vyčítať úplne každý z hlavičky samotnej captchy.
<CREATOR: gd-jpeg v1.0 (using IJG JPEG v62), quality = 100Potiaľto je všetko v úplnom poriadku, tak ako má byť.
Azet Captcha síce nepatrí medzi tie najlepšie, ale určite odradí viac ako 99% všetkých, ktorí by sa ju pokúsili prekonať. To však až do doby, pokým si nevšimnete jednej veľkej zvláštnosti. Narozdiel od takého Googlu, ktorý vygenerovanej Captche priradí token, pridáva Azet ešte jeden číselný parameter naviac.
https://www.google.com/accounts/Captcha?ctoken=0SMHDJwWJFc38JcDTw3_0ACWZJb7BMB29XLinka na Azet Captchu však vyzerá inak. Ako som už spomenul, je doplnená o ďalší, numerický parameter. Celá linka vyzerá asi takto.
PxckUjhFD4KFhFfCRkXcb3EkqDUpzb-LiLP445jZzdNCMGrJDSjA%3ARtvxHCOlYJ5mhOnn9PtUhA
https://moje.azet.sk/captcha/img.phtml?hs=7fd4055898f4318&tp=2
Červenou farbou je zvýraznený token, čo je časovo obmedzený reťazec vytvorený pre identifikáciu daného objektu. Zaujímavý je až modrou farbou označený numerický parameter. Po rýchlej sérii pokusov zistíte, že dosadením čísla v rozsahu 0-3 získate rôzne pozadie pre vygenerovanú Captchu. Aké pozadia sú dostupné, môžete vidieť na obrázku vpravo. Všimnite si, že pozadia 2, 3 a 4 sú v celku zložité a pre hackera by bolo veľmi problematické získať za pomoci robota z týchto obrázkov text. Výnimkou je však varianta číslo 1, ktorú vyvoláte
zadaním čísla 0 do parametru tp. Tým sa celé pozadie úplne stratí a ostane len holý text. Ďalšou “vymoženosťou” skriptu pre generovanie Captchy je, že neustále mení polohu písmen, čím sa snaží sťažiť rozpoznanie textu. Aj táto varianta je však absolútne chybné, pretože ak je text príliš blízko, stačí jednoducho aktualizovať obrázok (refresh) a usporiadanie písmen sa zmení (viď obrázok vpravo). Vďaka tomu napísať jednoduchý skript pre vytváranie obrovského množstva kont je veľmi jednoduché. Sám som si podobný skript pre otestovanie mojej myšlienky urobil, rozhodol som sa ho však neposkytnúť verejnosti. Každý šikovnejší programátor dokáže za pomoci voľne dostupných knižníc, či dokonca softvéru. Ja som pre rozpoznávanie používal font Fedra Mono Bold Italic, alebo Bitstream Vera Sans Mono Bold Oblique. Obidva fonty majú veľkú úspešnosť na prvý krát, niečo až k 99%.
Pevne verím, že sa spoločnosť Azet vyhovorí na zámernú funkčnosť, ktorú sa rozhodli takto spraviť, ako v poslednom prípade, o ktorom som informoval len nedávno. Pevne verím, že takto závažná zraniteľnosť bude odstránená čo najskôr, ešte pred publikovaním článku, keďže ho spoločnosť Azet dostala v predstihu. Názornú ukážku funkčnosti Captchy si môžete pozrieť v tomto videu.
Perlička: Security through Obscurity
Security through Obscurity by sa dal podľa Wikipedie definovať ako kontroverzný princíp pri tvorení bezpečnostného modelu daného projektu. Jeho tvorcovia, ktorí sami objavili bezpečnostnú zraniteľnosť, alebo ju sami vytvorili veria, že ju útočník neobjaví.
To je aj prípad Azetu. Nielen v pri mojom prvom, či druhom odhalení, ale dokonca aj teraz. Ak ste čítali predošlý článok o voľne dostupných emailoch tak iste viete, že som apeloval na spoločnosť Azet, aby formulár pre odoslanie odpovede ošetrili Captchou, ktorá by zabránila potencionálnemu zlomyseľníkovi, či útočníkovi doslova zaspamovať podávateľa inzercie. To spoločnosť okamžite urobila. Komu by však napadlo, že využijú práve princípu Security through obscurity. Ako si môžete pozrieť vo videu na spodku článku, po zmazaní kontrolného tokenu, ktorý je vygenerovaný pre danú Captchu, sa formulár úplne bez problémov odošle. To znamená, že Captcha je v tomto prípade pridaná na okrasu a na vytvorenie dojmu, že je daný formulár zabezpečený. Ak takto pristupuje milý Azet ku každej ochrane, budem veľmi netrpezlivo čakať na najbližší únik dát, privátnych fotografií, či možno emailovej komunikácie.
Pevne verím, že sa konečne spoločnosť Azet poučí z týchto chýb a na odstraňovaní zraniteľností, či budovaní nových projektov, si dá omnoho viacej záležať. Ak ste aktívnymi návštevníkmi tohoto portálu, možno by nebolo na škodu zvážiť, či nie je momentálne miera rizika až príliš veľká na to, aby ste vystavovali svoje súkromie napospas záškodníkom.
Čoskoro vás budem informovať o ďalších závažných prehreškoch spoločnosti Azet, ktorých je v tomto momente niekoľko stoviek. Dám však spoločnosti čas, aby mala možnosť jednotlivé zraniteľnosti identifikovať a odstrániť.
Opäť platí, nebojte sa svoj názor, kľudne aj negatívny, vyjadriť v diskusii. Pre tých, ktorí by radi využili skript pre automatické zobrazovanie skrytých polí, môžete si môj Auto-Hidden Input Viewer stiahnuť pre rozšírenie Greasemonkey pre prehliadač Firefox.
Kvôli problémom so službou Vimeo si v prípade záujmu môžete doprovodné videá stiahnuť v plnej kvalite na stránke konkrétnych videí a to úplne vpravo dole. Pre stiahnutie videa však musíte byť zaregistrovaní. [Azet's Captcha background POC | Azet's Zoznamka Captcha POC]



Pekny clanok. 1*
dnes su nejaky rychli, uz sa pozadie na tej Captche neda zmenit na bielu
myslim, ze citatelia tohto blogu nie su pouzivatelmi sluzieb Azet, ale som rad, ze sa na chybach tejto “firmy” mozme priucit niecomu novemu. len tak dalej.
no aj napriek všetkým problemom nadalej ostavajú jednotkou na trhu Slovenského internetového biznisu
sandra: pravda pravduca
No co, maju dobrych programatorov. Mimochodom, spravne je ‘ten variant’, nie ‘ta varianta’.
A ozaj, kde je captcha k tomuto formularu?
Můžeš opravit to první video? (Sorry This video no longer exist)
dobre rano stara mama, toto je davno znamy bug…. skus sa blizsie pozriet na catcha napr. centrum.sk
http://forum.itzone.sk/potencialne_riziko_v_captcha_na_centrum_sk_t5722.html
[DIT] mas pravdu, zareagovali sice rychlo, ale s minimalnym uspechom. ono totizto opravili vyslovene len to, na co boli upozorneni. chyba je pritom konceptualna; rovnake pismo, rovnake pozadie. jedine, v com sa samotne pozadia lisia, je ich farebny odtien. znamena to teda, ze pokial mas jednotlive pozadia bez textov, tak ti staci od aktualneho obrazku s kodom “odcitat” obrazok pozadia a mas cisto len kod v ttakej podobe, v akej bol doteraz pri parametri tp=0.
co sa pozadia tyka, to si vies zase vygenerovat velmi jednoducho; vygenerujes si asi 20 roznych obrazkov, a scitas ich tak, ze nechas pripocitat len svetlejsie hodnoty pixelov (kedze ani farby pisma sa nemenia, je to velmi jednoduche). nasledne dostanes spominane ciste pozadie:
http://pictures.mizu.sk/synopsi/poc_back2.png
zoberies aktualny captcha kod:
http://pictures.mizu.sk/synopsi/poc_back2_1.png
odcitas jedno od druheho:
http://pictures.mizu.sk/synopsi/poc_back2_2.png
a pripadne upravis jas a kontrast:
http://pictures.mizu.sk/synopsi/poc_back2_3.png
takze spominane riesenie je len klapkami na oci pre zvysok naroda, ktory sa tejto teme nevenuje hlbsie. pre spammerov ci kohokolvek, kto by to chcel zneuzit sa situacia nemeni a zostava rovnako usmevna.
[oooo] velmi dobry clanok, rovnako aj videa, mas moju hlboku poklonu.
element: nuz, slovencine by si sa mal asi este povenovat (varianta) mne by tiez neuskodilo
captcha tu nie je, pretoze by spam ovplyvnil len mna a mne je to jedno :)
Bystroushaak: uz by to malo fungovat, pevne verim
beginner: mne je jasne, ze to poznas uz tri roky. ja som proste pomaly, dufam, ze mi to prepacis. nabuduce sa s tebou nezabudnem poradit predtym, ako nieco napisem, aby som bol aktualny ;)
mizu: tomuto som sa chcel strasne moc vyhnut. nechcel som davat nikomu navody, inak som tu mohol dat cely skript, ale co uz.
asi sa pozriem podla rady tu vseveda na vsetky captcha ochrany velkych sk portalov. ak sa nudis, mozes mi help, kredit samozrejme v clanku dostanes ;)
tusim skriatok :)
Aj táto varianta je však absolútne chybn(é)á, pretože ak je
drzim palce oooo (codamasta!)
mno ja som koniec koncov chcel len podotknut, ze upravy, ktore boli na strane spolocnosti Azet vykonane su prijemnym zaciatkom, no nie riesenim problemu, pretoze, ako som nacrtol, problem je v koncepcii ich riesenia.
Zaroven si nemyslim, ze postup spracovania obrazkov by komukolvek menej zdatnemu mohol sluzit ako navod, takze tvoje momentalne obavy nezdielam ;) kazdopadne mi je ale jasne, ze po tom rusnom obdobi, ktorym si si presiel, sa ti to moze zdat menej vhodne uverejnovanie akychkolvek podrobnosti, preto, ak chces, kludne ten komentar modifikuj alebo zmaz.
oooo: vseved nie som, ale na buduce by si mohol byt fakt rychlejsi :-) i ked nie je to celkom na skodu, skrz kiddies
mizu: mas asi pravdu, spravili zo mna uz paranoika :) tvoj komentar je jeden z najlepsich uz prave preto, ze pomaha pochopit koncepciu captchy a jej dekodovania. mohol by si zbuchat o tom clanok pre tento blog, alebo mozno aj k sebe (ale radsej by som ho mal tu), alebo len helfnut, rad ho napisem. dnes uz vsak nic nestiham, som rad ze este toto stiham.
tesim sa na buduci tyzden, pustim diminutive wormika, ktory bude len pre ziskanie statistiky, kolko ludi bude infikovatelnych (samozrejme ze zas azet). je to moja prva takato skusenost, kedy worm nic neposkodi ale len ziska statisticke data.
beginner: odo dnes s tebou konzultujem kazdy moj krok ;)
Co dodat? Upozornoval som asi pred mesiacom jednu spolocnost, ze maju naprd generovanu captchu(dala sa obist este jednoduchsie ako tu), ze maju x bezpecnostnych problemov v ramci webovej aplikacie, x problemov v ramci zabezpecenia serverov. Ich klienti maju tie iste problemy. Stretli sme sa, porozpravali sme sa… a situacia sa nezmenila nijako. Co dodat? Snad im to niekto hackne a odnesu si to ich klienti. ;)
azet.sk = (skoro) open source :))
Neverim ze si si kupil na hackovanie captcha font Fedra Mono za $70 :)
Dusi: veru, odhalil si ma, nekupil :)
Boris: nuz, mozes mi napisat, nieco spolu vymyslime
Napis nieco o prenose aktivnej session prostrednictvom URL na Azete :-) Momentalne mi nenapada nejaka zneuzitelnost, ale clovek nikdy nevie… ;)
Zdarec, vazne dik za dalsi skvely clanok. Nielenze sa neustale utvrdzujem v tom, ze Azet a ine velke spolocnosti su na tom s bezpecnostou biedne, ale prostrednictvom takychto blogov sa aj nieco nove naucim. Keep going!
K ludom co odmietaju captchu patrim aj ja. Snazim sa to riesit vlastnymi metodami.
elemnt&ooo: aj varianta je spravne, v zmysle premmenna velicina
http://slovnik.juls.savba.sk/?w=varianta&s=substring&d=kssj4&d=psp&d=scs&d=sss&d=peciar&d=hssjV&ie=utf-8&oe=utf-8
Oooo & Brano: nerad pisem mimo temy, ale ked uz ma posielate na doucovanie, tak vedzte, ze nemate pravdu. Odkaz, ktory ste mi dali, je na archaicky slovnik z roku 59. Tam sice je uvedene ‘varianta’ v zmysle premenna velicina (pricom v clanku je toto slovo uvedene aj tak v inom zmysle), v sucasnosti vsak jedine spisovne je ten variant. Vid http://www.slex.sk, zadajte si variant i varianta, pripadne si zadajte variant do toho savba slovnika.
element: na savba vracia slovo varianta, ja ho poznam tak ako som ho napisal, preto to menit nebudem. ak je to 50 rocny slovnik, nic o tom neviem. mne to takto vyhovuje, kazdy tomu rozumie a viac ma nezaujima. ale dakujem za upozornenie
krátky slovnik slovenského jazyka pozna iba pojem VARIANT (ten).
ale to sme už vážne mimo topic tohto postu.
držme sa v rámci tejto diskusie radšej CAPTCHA témy.
čistote slovenského jazyka sa venujú iné weby.
Nechapem len jednu vec preco pri refreshe obrazku pouzije zase ten isty text. Ved vsetky captcha ktore som nasadzoval ja pracovali tak ze pri kazdom refreshe pouzil nahodne vzdy iny text.
Azet je velmi kontroverzna stranka, ich chat je proti pravidlam a zakonom, vyhadzuju z chatu ludi pre vymyslene dovody, doslova ich sikanuju, nereaguju na reklamacie, neodpovedaju, distancuju sa od administratorov, ale administratorom sa neda stazovat, ani na nich sa neda stazovat. S Azetom treba nieco spravit a to cim skor, lebo ohrozuje narodnu bezpecnost.
Juraj: ono si si to trosku pomylil. captcha by sa menila len v pripade, ze by sa menil aj token, ktory captchu urcuje. token je bud priamo zakodovany retazec captchy, alebo len nahodne vygenerovany identifikator vygenerovany pre danu captchu. zalezi od implementacie. cize ak zmenis tento token, zmenis aj captchu
alfonz: menej chatovat a nerozculovat sa … narodna bezpecnost–o kom o com?
oooo: Neviem mozno pouzivaju iny princip ale captcha ktore poznam ja pracuje tak ze vzdy pri vygenerovani obrazku ulozi do session 2 hash kontrolne hodnoty. Preto je link stale ten isty teda http://www.server.com/nejakacesta/captcha.php, teda nepouziva nijaky token a pri kazdom novom nacitani obrazku je vzdy vygenerovany aj novy text. Som bol doteraz presvedceny ze je to uz urcity standard.
Juraj: ta session niekde musi byt ulozene, cize ak v session a das tu session za link, tak sa nesmie refreshnut (to je proste kravina). rovnako, ak je session v cookies a ty ich forcnes, nesmie sa captcha zmenit (opat by to bola kravina). pozri si ako to ma google.
registracia
captcha
ak budes dost rychly, dokazes to este zachytit. toto je jednoducho bezny standard.
oooo: Pozri si napriklad tuto implementaciu freecap http://www.puremango.co.uk/freecap14/freecap14.php?trans=true vzdy ked das refresh tak sa obrazok zmeni lebo vsetky udaje o texte(kontrolne hashe) su ulozene do session. Preto nema zmysel mat nejaky token ktory by urcoval ktory text sa ma zobrazit. Ved s tokenom je to uplna kravina. Ked mam token tak staci zistit text platny pre jeden token a podsuniem formularu vzdy ten jeden token a text pre neho. Aky ma potom captcha v tomto pripade vyznam.
Oprava: Som to napisal rychlejsie nez som to domyslel :-). Token sa da tiez pouzit samozrejme ak mu obmedzia zivotnost.
Juraj: token je prideleny retazec s kratkou dobou zivotnosti. tokeny su najcastejsie obmedzovane len na niekolko minut, priemer sa blizi k 2minutam. token je retazec, ktory je bud uplne nahodny, alebo je vygenerovany na zaklade urcitych vstupov. session ma tu nevyhodu, ze po jej odcudzeni, si schopny narabat s nou celu jej platnost. ak aj meni captchu, ta je vsak rovnako urcena vo vnutri session (pravdepodobne ako plain/text), mozno aj hash. rozdiel v pouziti tokenu oproti session je, ze pocas platnosti tokenu nemusis prepisovat session, ani db, ani nic ine. vzdy zapises len platny token, text a cakas na odpoved. pri session je potrebne neustale menit jej obsah). oba sposoby su funkcne pouzitelne, tokeny su aktualne, pretoze su menej narocne na system. inak je to asi dost jedno.
v azete ta musia mat velmi radi :D raz sa im to ale vypomsti …
Len prkotiny… Upozornim vopred - velky koder nie som, skor ma zarazaju sedlacke postupy etechnologies (azete).
Ak niekoho vyhodia na 24 hod. “spravodlivi brigadnicki administratori” zo vsetkych miestnosti a potrebujete sa dostat k RP, staci v historii najst “Rýchla pošta » nick_uzivatela”, klik, potom vyskoci stranka ako po odhlaseni sa - zadat meno heslo a RPcky su na svete.
Dalsia vec - databaza a zistenie veku pouzivatela - tiez uzitocna vec ked s niekym pisete a namiesto jeho veku vidite — Nie je to vsak 100%, pretoze nik nezaruci, ze dotycny si pri registracii uviedol skutocny datum narodenia (ale podla “internej statistiky” to vsak robi vela uzivatelov). Postup ak treba dam nabuduce /zaspavam uz/ ;-)
Preco ked kliknem na miestnost Sexzoznamka mi vyskoci okno v style bla bla … Ale ked kliknem pravym (otvorit odkaz v novej karte, tak sa nedocitam ziadne bla bla :-))))) A vlastne aj tak - ked mam 14, zmenim rok narodenia a sexzoznaku mam ako na dlani ;-))
Preco sa nehladi na to, ze kto nema >18 moze ist do nejakej “sukromnej” miestnosti typu “SEX_SEX” bez akehokolvek upozornenia a monitorovania miestnosti. Niekedy az rozum zastava ake perverznosti a uchylnosti tam deti pisu (to spravodlivym brigadnickym administratorom” nevadi a toleruju sa taketo miestnosti).
Preco mi niekedy tvrdili /niekde mam tusim ten mail aj s menom dotycnej/, ze zablokovanym uzivatelom zmazu albumy po polroku a ich nick zaroven expiruje /zrusi sa/. Dodnes mam na pokeci nicky, kde su albumy, maju skoro rok, su blokovane a su tam. Na fotkach nic dolezite nie je (hardver) /sklamem ludi cicinka ani pipik to nie je :-))/ ale… Co ked tam ma niekto SVOJE sukromne foto a NEMA moznost ich zmazat - potom pride hack a niekto tie fotky moze aj po roku zneuzit… Aj ked urcite robia zalohy, ale preco sa pri zablokovani uzivatela vsetko nezmaze?
Na dnes snad staci, tesim sa na dalsi clanok, potom prispejem dalsou troskou aj ja ;-)
P.S.: Na azete nikdy nic svoje vlastne neuvadzajte a nedajboze im za nieco platte. Kto ma rozum viem preco…