Presupun ca majoritatea dintre voi ati intrat cel putin odata pe un detector de invizibil pentru Yahoo! Messenger (invisible detector, invisible scanner, yahoo scanner sau cum sunteti voi obisnuiti sa le spuneti). De ce ar vrea cineva sa stie daca cineva este online cand este clar ca acea persoana nu vrea sa fie vazuta? Eu nu pot gasi un raspuns, insa uimitor aceste servicii adunau pe domeniile lor zeci de mii de utilizatori unici zilnic. O alta intrebare, care banuiesc ca va intereseaza mai mult, este cum o companie atat de mare(Yahoo!) nu a intervenit? Am putea sa consideram ca este un bug, pentru ca utilizatorii nu se puteau folosi de un serviciu oferit, sau am putea sa consideram ca este o vulnerabilitate pentru ca “atacatorii” se foloseau de slabiciunile protocolului YMSG pentru a afla o informatie pe care nu ar fi trebuit sa o stie.
Care era vulnerabilitatea?
In timp au existat multe vulnerabilitati ce permiteau detectearea utilizatoriilor cu optiunea de invizibil insa o voi aminti doar pe cea mai recenta. Aceasta se baza pe simpla optiune a Yahoo! Messenger de a atribui o imagine id-ului tau (avatar). Atacatorii se foloseau de pachetul 0xBE din protocolul YMSG ce facea o cerere catre id-ul victima in care cerea avatarul. Daca utilizatorul era online, clientul trimitea(fara a cere permisiunea utilizatorului) raspuns atacatorului. Intermedierea era facuta de catre serverele Yahoo!. Aceasta metoda a functionat timp de ani de zile fiind intr-un sfarsit oprita cu aproximativ o saptamana in urma.
Cum nu a aflat yahoo de vulnerabilitate din moment www-ul era plin de asemenea site-uri?
A aflat. Inca de la inceputuri Yahoo a fost instiintata de prezenta acestei vulnerabilitati si a incercat in cateva randuri sa le repare, dar de fiecare data au fost opriti de designul protocolului de comunicare. Nu puteau face schimbari majore in protocol fara ca ele sa nu aiba efect in cascada asupra altor elemente din protocol si asupra clientului. O solutie ar fi fost lansarea unui client nou care sa foloseasca un protocol nou, insa pentru asta era nevoie de o investitie majora in programarea sa si a serverelor, care fie trebuiau programate sa suporte ambele protocoale (extrem de costisitor), fie trebuiau sa baneze clientii precedenti (ce ducea la pierderea de utilizatori). A fost nevoie de mai mult de zece ani de zile, peste 10 upgradeuri la protocolul de comunicare si peste 5 versiuni de clienti pentru a repara o eroare ce putea fi eliminata fara niciun cost daca era descoperita in momentul in care designul protocolului a fost scris.
Concluzie
Detectoarele precum ydetector, imvisible, persiangap, vizgin, yahooscan si restul nu mai functioneaza, si foarte probabil nu vor mai functiona mult timp de acum incolo. Asa ca putem acum sa ne ascudem linistiti. Sper totusi ca dupa ce au reparat o vulnerabilitate ce a tinut ani de zile, Yahoo nu va lasa sa scape in upgrade-urile viitoare o noua portita.
In final tin sa mai dau un sfat programatorilor: Nu gandit proiectele ca “idee+implementare”. Etapa de design a softului este esentiala pentru un software de calitate. Ganditi designul, testati, implementati, testati, refaceti designul din nou, implementati, etc pana nu vreti sa mai modificati nimic si nu mai gasiti nicio vulnerabilitate.
Sursa: WorldIT