2024. május 22., szerda

Gyorskeresés

Eladnád a vesédet egy filmért?

Írta: | Kulcsszavak: privacy . nightmare . javascript . android . web . streaming . internet

[ ÚJ BEJEGYZÉS ]

Míg pár évtizede talán a mozi és a TV volt a fő médiafogyasztási platform, manapság lassan a szomszéd Pistikének is van streaming szolgáltatása és a kanapéról élvezhető a Netflix és társai.

Személy szerint örömmel követtem ezen platformok fejlődését, ugyanis viszonylag kedvező áron kínáltak hatalmas mennyiségű médiákat legális úton. De ahogy nőtt az érdeklődés a platformok iránt, természetesen a visszaélések száma is. Az illegális megosztó oldalak számára kész Kánaán lett, hogy nem kell többet moziban kamerázni, hanem a megjelenés után egyből mehet eredeti minőségben is a továbbosztás. Ebből a szempontból nézve várható volt, hogy a szolgáltatók limitálni fogják az illegális megosztást, amelynek egyik sokat emlegetett eszköze a DRM. Ezt sokan elítélik, ugyanis az egész egy blackbox, illetve limitálja azt, hogy milyen eszközön fogyaszthatod a kedvenc tartalmaidat. Ennek ellenére a most legelterjedtebb DRM megoldások privacy szempontjából lehetnének rosszabbak is, hiszen L1 Widevine DRM esetén lesarkítva annyi történik, hogy az eszköz trustzonejában (már ha ARM eszközről beszélünk) csücsül egy privát kulcs, amihez ideális esetben a felhasználó nem fér hozzá, és ennek segítségével történik a jogvédett médiák visszafejtése, illetve a kulcscsere a Google szervereivel. Bár feltételezhető, hogy ez a DRM megoldás is ellenőrzi a biztonsági megoldásaik meglétét az adott hoszton, számomra a lényeg, hogy nem gyűjt még külön tracking adatot a userről önmagában és küldi azt el a tudtom nélkül. Ugyanakkor én is felesleges kényelmetlenségnek tartom, mivel így is kerülnek ki illegális letöltések.

Azonban találkoztam egy olyan streaming platformmal, ami túlment az ingerküszöbömön és nem értem, hogy miért csinálják azt, amit. Ezen cikket eredetileg a platform magyar elérhetősége előtt terveztem kitenni hatásvadász címmel, hogy minél több emberhez eljusson az infó és közösen rávegyük a céget a változásra, de aztán megannyi álmatlan éjszaka után elvetettem az ötletet. Ha megnevezném a céget, leírnám a problémát és netalántán figyelmet is kapna a probléma, simán megtehetik, hogy csendben leveszik a problémás komponenst, majd beperelnek rágalmazásért, hiszen sehogy sem tudom bizonyítani, hogy a jelenség valóban létezett.

Viszont szívügyemnek éreztem változást elérni, szóval felkerestem az egyetem egy joggal is foglalkozó alkalmazottját, leírtam neki részletesen a felfedezésem, majd megkérdeztem, hogy kihez tudnék fordulni kivizsgálásért/állásfoglalásért.

Felvilágosított, hogy Magyarországon a NAIH foglalkozik ilyesmivel, így utánajártam, hogy hogyan tudnám a jelenséget anonym módon bejelenteni. A következőt találtam: [link]

Nézzük hát!

A Hatóságnál bejelentéssel bárki vizsgálatot kezdeményezhet arra hivatkozással, hogy személyes adatok kezelésével (illetve a közérdekű adatok vagy a közérdekből nyilvános adatok megismeréséhez fűződő jogok gyakorlásával) kapcsolatban jogsérelem következett be, vagy annak közvetlen veszélye fennáll.

Idéztem az oldalról. Nagyszerű, pont ez kell nekem!

A Hatósághoz tett bejelentése miatt senkit sem érhet hátrány. Az Ön, mint bejelentő kilétét a Hatóság csak akkor fedheti fel az adatkezelő előtt, ha ennek hiányában a vizsgálat nem lenne lefolytatható. Ha Ön kéri, kilétét a Hatóság akkor sem fedheti fel az adatkezelő előtt, ha ennek hiányában a vizsgálat nem folytatható le. Erről a következményről a Hatóság köteles Önt tájékoztatni.

Szuper, amiatt sem kell aggódnom, hogy hátrány érhet. Szóval lehet anonym módon bejelenteni... Ugye?

ba) írásban postai úton, a bejelentő természetes személyazonosító adatait (családi és utónév; születési családi és utónév; anyja születési családi és utóneve; születési hely a kerület megjelölésével; születési idő) is tartalmazó legalább teljes bizonyító erejű magánokirat formájában, a Hatóság levelezési címén (1363 Budapest, Pf. 9.);

bb) személyes átadással, a személyazonosság igazolásátt és a – amennyiben az eljáráshoz szükséges és a beadványa azt nem tartalmazza – természetes személyazonosító adatok rögzítését követően, a Hatóság nyitvatartási idejében, előzetes időpont egyeztetése nélkül;

bc) személyhez kötött minősített elektronikus aláírással[1] ellátott csatolmánnyal (amelyben természetes személyazonosító adatait is megjelöli) rendelkező elektronikus levélben a Hatóság elektronikus levelezési címén, az ugyfelszolgalat@naih.hu e-mail címen,

Ahha, értem. Szóval ha esetleg te akarnál szívességet tenni állampolgár társaidnak azzal, hogy szólsz esetlegesen GDPR problémák miatt, nem leszel bevonva semmilyen formában a vizsgálatba, de ahhoz, hogy kezdeményezni tudj, minden adatod elkérik... Miért? Megérteném, ha beidéznének esetlegesen, de így, hogy elvileg nem fedik fel a kiléted, miért nem elég egy mailcímre megírni a problémád, aztán majd valamikor reagálnak, hogy OK, vagy NOK? A másik meg, hogy külföldiként akkor esélyed sincs írni nekik?

És így ment el a kedvem az egésztől, hiszen a blogposzt fegyverét kiütötték a kezemből egy esetleges jogi balhéval, a hivatalos utat pedig erősnek éreztem. Legnagyobb bánatomra tehát csendben maradtam.

Hosszas őrlődés után azonban úgy döntöttem, hogy mégis írok róla. Neveket nem fogok említeni, mivel nem célom senki üzletét elrontani, viszont a jelenséget amennyire csak lehet, igyekszem bemutatni. Ugyanis sajnos egyre több szolgáltatásban találkozom vele. Szeretném ha ti is tudnátok, miket művelnek a big corpok a gépeiteken sok esetben a tudtotok nélkül.

Mielőtt azonban belekezdenék a leírásba, leszögezném ismét:

--- Disclaimer ---

Ezen írás tartalma jogi szempontból tekintve megegyezik egy (rém)álom valóságtartalmával. A leírtak csupán álomképek, azokért, illetve azok igazságtartalmáért és az esetleges következményekért felelősséget nem vállalok. Csak rajtad áll, hogy mit kezdesz vele.

--- / Disclaimer ---

A történet egy nyaralással töltött nappal kezdődött. Magyarországon ekkor még messze nem volt elérhető a szolgáltatás, de külföldön igen. Én pedig pont egy külföldi ismerősömet látogattam meg, aki rendelkezett hozzáféréssel. Szóba került a platform és mivel mindig szívesen nézek rá az ilyesmire, megmutatta. Nagyon megtetszett, szóval úgy gondoltam, hogy faragok egy Kodi kiegészítőt hozzá, hogy mikor megjelenik Magyarországon is, csak elő kelljen fizessek és tudjam használni is.

Ugye ahhoz, hogy a kiegészítő működjön, először a bejelentkezést kell lefejleszteni. Megnéztem a hálózati logok alapján, hogy hogyan jelentkezik be a webes alkalmazásuk, majd a mobil alkalmazásuk és mindkettőnél annyiból állt a kérés, hogy elküldte a megadott usernevet és jelszavat a szervernek, illetve egy tucat érdekes, első ránézésre értelmezhetetlen karaktersorozatot is. Az utóbbi karaktersorozat hiányában a szerver megtagadta a bejelentkezést, illetve azt se dobta vissza, hogy rossz jelszó, ha szándékosan elrontottam azt.

Nem tudom bemásolni a megadott karaktersorozatot, mivel ez elárulná az oldalt, de szerencsére más is foglalkozott az interneten visszafejtéssel, azt pedig nem tilos megosztani, ami ilyen módon lett megosztva: [link]

Szóval a kérés fejlécei között egy hasonló sorozatra lettem figyelmes:

X-G2Q3kxs3-a: Vu_VXWmMl-CmahcAgC=8uNXLUO7ohO__1Ev-Ne82yicDworly7IfySvLu3JOyNoooC5NBCOA4sOaGPiiGKCE=5WJvVghXSP2TNhac_iFQ387IaiQ16eWrqa4yCqFEpeoaPEoIwySAsHnPanstbHXbqz4SMVsZopR0s1Rb2d7GejGr5b9xWtxGbQfmT=SJstv8A4r3vklpAjpqR9dvBcsoHAOQ=b2j=TrKWzJwvCViwhwPCF5qTuxtJLksjtoPWr2IZeZBpfI=_eg-qLi13EDlEI7or43MuVIGSMfl4KnVgWU9Id4=IDwMliGi_DNMt1ApmKVxNdMw8NgZUiUeHiyIgmlRFXNloV1CCVoON4x3gsH_4x8OuxlAJkjZ6j3ykrxUyMJqeKfzxPyqxCx99x6Sx4UF6ekXUJ0z6X-KwUHglu73l3piju2AKo5AFvyJHZQvcF2BD1yTF_BfnU=XbkkZasGI-E8W1G7lCK=cL25p2vVnlup43_MVAgMdQepOS7euskGAFdSlFoDHxhz5aAWDOLIfJWG_HwHr6XLnK2K=lgeFc3mD62=XF2a=4J98QuvDEHXjmwc2hQ=7cbM89QVrXjDgAkuD76LKPhVXJd76xD8B-zsdtkRn6MezAMZ2_J=gf32d2tLyyMnMIeVRtrwtfE17OmHrP8Wl55SQnJGV_TK0aLr_hD4c6ZmBUTeidJzQ8yLzwvfXBPEB=7wgr9R5ltwz4dVtQrlHpuaxm87u0bi-tQWCeHVO678XW97IQRjZN8H3PLwRRQRIwMLdXfWAc_lFzG0tNXkeqMguxR0WUcbFd_kItkozvwcWSIQSGZ-Wo-7xljEMs_ZZfF8rdqC4K-n1p7mFBjz7637fHye3O6mfzQ8v831JC6gmMPfowiLC4Xn_zOgNpN2lDGgDDZBnS9l0Sr84g-a7LqW_MAAXdJ9bgvpbfq6P67nfHfAokVSt66aRcdDQdVoykqaGRm3T9jmN0DqBzR3KnXW=b=VN62EaleUhJcsxp4qV8jDKlF4aPfXj=GtmNpOpKBryFApUfXXvm8swLbknKFXLT6yg0H1vHqjlUtzljpRS=vmcayd=CcI3_hOAoG4qd3kENHR4ab9GXBEUVaB1-=oayfCghs5ZcOL_ha2aatSr=-r-AldiLPl8g73XC6XAJGK9csJcbC7vqBCTFDq=c3HXiVZ4ZKzHnIZutbpTCwFUPxH9kgIaCpeivdZoZoWF-7qrBlQ-IH0e6Bz-EldXcaCQ3pMEtDqlFVIIn2ldh8VkrJwbolP-TvWrHOxNSJtAAusndQ3gw2_KKl_znR4Khwe6iaJb8GurdAJ1Hje84TcSMWP_o=pERyqmphMmK5O7fzuh_wt_VisR7tGw7rrOjrNGOBdsUz-vWpREuhEJ1GTbANUZnVrrk=mv3tmHzb2R8M5KJeC3IObURkjKDPi0amm4TMrOB=lHNo=J-NXAmzfjI8awTDlELjVtXuXZ2IZ3UQfWnOplWmQ0bCvaG5ICj35ZJppf_nt81eBATeWckXoGNZTjw4TxErjoXWuwfAdwUD-SCU14uLfWmigzOzTsE40Juovjl-qlX4O=qcJ7pQvjvgzmp5Ccm1t9iDRZJ-78D6Opzj0ZkWb3Nv7qBRb9PJwm_8qnp_Q8bf601dw_R=Q5gS3gvS0u77Xym_3Il9y8FQWTKj4qQxrgWXIq-2TrIahfb6rvzXXvA_a4Zvv7IkWDHxVIJs-QKpR9cDs_HDPV16S_FFaEoTG7s5mBafCHae2aMTWpot-xrABObIN6K8V1uQGQulx1dEh0WUBfjEWPn8xptem1KmspP=ifwHM7rC3rryr7oCmEAJUMf-8XyB_iXWwXIUzzb=RPFwCgi0Lavqz4qZ5-brGSbxCd0n8liGIOsoUKT6DeV-STtAE1rqKP8nX1oQ-pnzZHtN6iCVbcOjBch-opX-fhH-MJtX4eB9_3TpjnUCHcN3dXJu5O=mV-M6Lh73461_JsZ2--J7XSbVe=FceQFHSjlznIJc4y_UCkg2Sh6BpdSE7=_pL2lbsRGtw4lpX4L=BNRNXJCGaFy_W1c4uAQQ-V5u5FF-92vflb5afgSTjCP03J-b4nnJlmdbsKkFyI7oHq5JSOCfPg48wQPQ6_crhe3=pId8LFBAxWGBPRidOFOk_nZxOs7tbM-s75cBEjexuqADjc=r1oyR_1P3BgGq0A_O0a9IHUvKeFI5lzBIdaWhUDnIOyd5lw6IwV0HIn09-1GE5CVeAi6mPTsSskClUXLQ8VDCXVmxpaEX66UywOH8KSgSMLGmf9J8y5SbEfS1KKws5JlKiV_-REL9kN_5dBHqigpHVf___dd1gVdhi-6ejx6Rtyer9F79anUPooliswllAv4fbeUIeLoPy0S3B1rdCqc4ePDDLvMDvHraGNL07j=EL_586b-vRJLntNjsKInt1ey_Ft7u5sVOd3s94MWuTPzscG6n=gndQL9RQPVMayIT7UX3repy6wPpvcPBk2v=20h5Tlbvgzmbx7NvTNO0lQAfNf0M2SlcURcaA-ghOHyt4bk1wIC-GR9syZyKJt8Hm7eWo2ti5hsaU0CTRn2ATkJAMuzZj23B-vUt-fmFswWVSL20K6_Wry_KhogIO7tLQRoqGjQSG7LBWgMFdr7cW2mhc_2pm0Col4AV5dxFMeqdlh4mNRATV1ZTAyImsaabVJOouIaBUVbr_J_abjf5R8uD7UmhDKwFbtj2cgxpMlLk8mXaLcEzo8dh7T_exiyqmeGw4de_VveK134pSNQb2315mmPylbgVLFH0n2OvH-Kv4TGRnL32uiDC7QsVB-zyOWVMxIjk7olhSD6oyl4HxbXhWrZKZdkpTj7bLD4w7d9Iwy-wH0i5fOfIeNIF4MmlsBT4n8o3E5LLn6oApAZD5JhFc8JdOQJ-1p4kuf72BM5-Jc2N79N7DEZWi698VTrwWjFHO2PwlbHl=uCmEHDD3DS082RF2xhPz8w2r6AJIgHoW3=sSC1Sk=qQ2vUtKXmHysIvt50Hv-43k86M0qvoep=blqtZGJnfA1GXzcxl-KFTKaGQLkpbvL8LrT5g9yOLagxm_so4yhIXOdyPGLLeQKfugpMl-aMu9iFeaScqLw9LPMeU5i-pdZ3b=zc09nJOTAD-ocm5AA1D0NRqZiXgX-fKnCTneO=0dlK3ozyiZrv-ZkZMCucGxItRZM0Nh5KUl7lSn2jd3ra0Upjn8MyjcIr6muR1q0RL9Qy=_F3max71D4N39UIFOZxm7dXVuST3PXcX1fP9jxiGDOuiqTpcstsnJ0X2=dkgBJUvf=X_M5hpXD2mc8Jqe-VSEXmDXO=CGbIm3vqO0qspJ4Rl_wXRgCjexC2tNBK8Hmo93pcWxG4FQ=_0D_AuoMzX3TbAy2mNqdJMi42M8DoHxTgRT053HEugLzgyDmIaoCJ9R4fHy_FN6vrOaRvzFv3JW_RXN8H9v=p2vsaKWg-zEH_ZP1TCuEHpSz_lZd-udbmDfvb_9snE7C09PJl6W=v=ykbW9ft8p8c=3arUi6h8pSmaggItddAFcLLKaFX7FcUo_ldLJZ7M0AJyvT=WMfMszJrvz8xRvl=hD5wd9CfDG8OvFXAqovCZVaiFepG_1XVZ2lRXKN0hO6XKy-WzMotrzQQlyB=6LQ2OLH02eg=nuqmtTTawBCh4OkUgkilmQNEomxQv4kd82Me=n6WHbTpeoIUiJ67AAN5Uc5U9wkkP_HP_E-QC5=x05woprtlv5-zqCClA5X7HD4W5Wt6vy5EIDiwtfj9GCDjQ=Glt9Z7hszITP4=K2o8EVpv4C8l8X_XQOwIM15AJepUsW3x9h8bT7zrlR6io5NO_e4RyiIFnrCzS-uQoNUqCBpSCeuN--r7cDflQP=-_STFrZ-2_o9PSVdwcqGOfiD0319MXOZKHTTbMrnBwGXizKsmtQqovPNeyyW=84aQ=NoP0Gvh8oILdxmLF8WEg7O74s3HUEWM6x5vjcsrTAzSTCLbz002dVznDfBHxTyz8Sp0KQgco=WQdlvxaAvwP1QIbMQtpLaPx9ahd94EEdORB0G5DtMNsHthmneSc5uCOaiWcSFUSDU-ljbh2cPAp36o0sxzFuTEI0TsxC8P4xbiDD1_fxF91dUqUgqf-wIuXdNUCzZIkonWR=zTPyCuZkADA9H3EJ8Txhfsv=_xP4klBwQg8169nr6iEF586MnzjJL=IXF3HpeZfDxGJt3C9dLlqF9Fogl_Zdkr26XhtwldhnsyVjnm=03F41z6xEtcUMxhuCgl-L49k0PAJgwtv03v61HTqpMUjkhZZVPtH1Uwe6Z4JyszVDKfFUBkJ2P7UXUKa7JkkcasS=9rUMLBzMvQwWJcJB_HDFdhDOwKvSh3bTUVQtP2jNMKSD2uW39nGLi3slm1fAcjsf=UUC0MR-gB0ZT-1DKeokKum_iLB-0ZBVkUnNWrKMBK4ffTFa0uMjTPkq5Dmc2MgvZofOBSHwEFT9C_eqLusvki9hb=zhWbdPp9DfHACU_LgZBw-g5GP1p8D-x_myhGzBhC65twGsGKo3kDGPBZuoCo0gk36083hN=0_ecss_sbKbXQ5cnao4QpiuiP-RZDovfrVKJxk3pHPiiaOVCtWAXfWqi00CkDWplhGpixONv-_ToI2ciVgqcgEvxDbnNahyeo71hCKK=Q4QKnmVaVX-7Xo0tId9Ta-m_NeD5H0RKkSpl1sa1hMhojAgH6jgrvLnWA0RXTf56GzcoDiPw12gw-VB4MxNXsVS2ADI3QgmhyP2UcD=VR=E8i5dRd2dWGjNO1E=a58HxqfFFDqSfhThKHsV9mv4Jd=LAX6KiQMVJ9Scl_bbQf01qjxCMc0=H8AQKlMgiHgTeK4oXgMdQ23_UgoD3_aMfDaW9V5IDlQP5LA_zXwlM5TBVTsV25beIsMuOTjI4lzUPqQ0jahaXtMXAVBwyukU3LU6ndDTPqlVhvu3O=eVqZ4HOsOSljeP-rbptarAfsgBr9R0OQ0S2M6KFPWiVlhpJ2w=Pq9Ph2INOIlFjDKqsyOqUxRUx1TQKiXHQimDri0vlg5CbXPBQOl9kOUWIZGh7nz9Ihr3=J-VdAX=45Hv4qhEjmpWnwq2RhrHMch2-odmxgTxBAa7v7254149k2joDJFrl7tJk8beIW2L97JjGikUWtMrxC0I0HIM0cRuAt=GS2NVOvISCHe7mSjpo7QWgM01BES-5_2ZPgsvVy4SUaL2izwdt7_tf3W_u0Gbv1bE_iAUK59vXhxt_jkTLrEFZZD1SfH5tftoErCMgqzGceGiKp7fCkVbO=aO9GwkrbbKWCA2nGjE2HdOF-rTtJ_U8LGSgD6SalRQoGMizUXXeEALbs14R3oO3FOr5lt0HKxfZXX46PeEXq6DTEPtK0Mt=LrI03I57pSMIZ6COL7MCQzB7yAydND2=4H4WuTvBuAZHiQpkNet8kyxaFLK8rBsHNOR6yev_GoAEcKTJcC5JyK7kypzIJZO=2rqTbPoGoCiqI1M2PS5NLAWqAUTezMcnxm=EQpqW1b9L6eILN63U52BXlr2sCfgr8m4HLAg0QH87VMQXCxqzQPq=JU8vHRJHaBb0DZbHWFIB1LHvHUjO6BNJt-kWMq=lAfVWLkUd9HPOKcvz_te5vrRuwN=SSZ-KAkLuEIm4Hr4R1z7xFsSmvtcEyBENWqcFoQDWQCvrwE7-c94tdzsp9L=Mhs013jo9nO7B1W79E8oAfOEgtkb7mLzm00qUqcZMGMQJFRvNfhugQnMHlbQ_ZJyHM7b=XTwer8DSEVsZsVfIwTsxrRTfNlZXkmh0ECztEOu=VMR_DooVkLAS2FF7tXJQLwO_IU64HzjRrekJJbQMJNyLJs3izmod0DTn=GbvW8yx0TOP5ZqRpuy9c_Af-7HjDFR1aRhtVaLG9FA7bTWJnhNiXL4LHcH7L3VWBFmW8FWAdkjT86XFFGId28t9hu534BoEFU83K2WHNg_Bu08=s89e0nbFR4l=N9NwjKawjtRSj3uPcm8knEwjF5DrprWDPAFN_DMrDnOeW9QZjdcxnUAB8gGcWOrNbDw=0HMPB12GgDoNXqUqX_jnqyATS=Kzznx3GgMnOr3v_drcjLejiy10UGBe9V8=E6L=g0E5qPjHjbBOTnw3yCiFnf-XzIZWO2HU=FZN5XUrwOTUNpmcL5R6MnGS4sKXxb_yi2RBHsWhuJqofb_jZnir43TvFwyD5qG2PfB8wF1uH-1eDUe4EgP3CoTrik0U9mFTnfOq0E597N1Ks8QL4DLiS08gQazWBlUu1QUle08jmEB1yrtKf6l_DDnjbZhCf7ipvoZCwSdDn2sKgIfw8=FoiR5cJbE9Kk-efBXNJj5W7cDxP_KNzAd7_gfJof2LbfUZHWDUIwyAS69=VuiQ9cmCqMsk1yNxM7muoBt5rGmWPGMa1qFQxCbBjS3cVjNmLDQ63K2FBNcK6xtAGtTZ7_IsGu_rxhms6jnm-U74lnfSsKQ11e7DPZJBq6fbEIvvuUu22_EsE1e2kqWDh2xq_EhWM4bKM9xPBiF9hGSDlw3PcesrSGXKG_kBvFmaBu8_s1_pn4F50zl2RAwxTUKtB7If8rea5PlfQsp3uItHAbydald06b1vb1KFRWy86EBq4WUTOMZDES9-3Ie8kaM0OltQHQ_UxOIkwPQ9wMPlS4HEriBan78hd=2Uq2ZotS1vqlri1HZ47nSgfLWDbmmL3ydEx_JDMfGPAvzb=86689L_1Ky4NDcdchwqd4apx=271NFmzRGtcKHXwOgc0feNNNzR7tHexmlMmqE7mEa4OMttaoGFLyhba=0dyA4thNHEShaJxeepGvlaGyS4hmSDsHx4pf-V7inTbhADjk1bhL9Zi3AHE467h0bLkt1GsUTuUEB3KB1IjfxutxxxxwE=h_ZNLWR2_xewQUZ61nuG81vltA5pE1gxFGxZ7S4gCp1=iP23gXIwh_70L_rb43MyauUIM7ShWpVw8XF9JVOlyJWWTBnwop1npEldh0jRjo40TXrsoAtCRlhAVzOS4elqN_2mdvqfOde8kpB56ShP4FX5lOMigP=yGrPBUNSuL-PNMKR6a04UWdwreXp0OzQm=_ajWw-wV1a5J0F703f__tldq6W=80i6h1u455_EknrAEvH6cUGrpSx5Oq52PXpsqz7imebJVQARMoADIfK=g=bymmEMhNL=hVwIm_OzmbyqI7xU8bptcN3HNRXfgDEAJDGch7rInzH8-dzCBqmOzB2bua7jedcwihSkDtIqlxw=vnlRuBLtOtoiI=nFLEjCESoLdoW_g1yugtivvRab6KgsxRJSiCKZa=gGxpMlArWPVLtgdblIqOHbjGi=TS3E1ZEagwlZbb5vqfaAWXKnME1=aX=uVpzXjTDZUpGsXR=XxXUUo5owZn_BoCnw=cGXlpkFOH6IgO=vBgXFL5HhRusPGETWraSBP-Z=jeQs0pfLIQEQKWNg_au_xd8F-z_E5VvHXIEoKH5C1NhtGqWO2ZMzHxMX5PEZN1fbnUyyAm4BSjvjFQ14HXz-8GiGcqHqs8eS3RCss4ddr4UcHJaaz6RvaoM76MpJl2sF0pZhbCjua53jgg3EIZArflHP9U-PziHL3Kc-Dp3iR50Q6LEe5amWS0jeBVI1yVtg-RCB=J0GOc_numxPtLNnxFUQ6wDdtQ=pC9e24y704BOjoG7Hiw8Lo=ppsOMRKi69XAUlI_sucbAs_sClo_fcZ7QCObh9p-qzW6DavfUjQH96XkncSFT97taAozCq_PlZ2BaDXU4MBd74shdquZ-1fAih-1llSjC4z6vK6SJ4Pl-AaGGJ5qCWqNha0_KOdkBHHJOmI4xC6CMNIUzT3sg28m400hwiNTmiENTluzHbsBu9cXJcoGPX8U9CiQjOf0gIlP_mHtLRU9uLQeZ1U30k8RFBy89o16iGO6
X-G2Q3kxs3-z: q
X-G2Q3kxs3-d: ABaChIjBTKGNgUGAQZIQhISi0eIAtJmhDgCRV__PzklK7wAAAAB0gDBHAY9_N5SCPnSTGks-z1dTRLk
X-G2Q3kxs3-c: AADJm3mJAQAABH_kO1PC5gBxDLphN_YPJTaElm3j0LBWIe6C6ZFX_8_OSUrv
X-G2Q3kxs3-b: x4w3dp
X-G2Q3kxs3-f: AyfUs3mJAQAAA0Ug9MuJawuPngtnu8OefWI9qjEhix3l5hN-R6gJKd_Q3DqxAcjonp2uchRAwH8AAOfvAAAAAA==

Tömérdek mennyiségű adat. :Y A fejléc neve hasonlóan nézett ki nálam is, egy X és egy kötőjel követett egy random karakterláncot, ami viszont fix volt az összes ilyen fejlécnél. Az utolsó karakter a kötőjel után pedig egy karakteres angol ABC betű volt. Láthatóan ezek fixek voltak és többszöri próbálkozásra is ugyanazokat a fejléc neveket küldte el több böngészőm több IP címről is. Csak a tartalom változott a legtöbb fejlécben.

Elszörnyülködtem, hogy mégis mi a fenét küldhet az oldal, ami ennyire fontos a szervernek a belépéshez és ennyi adatot jelent, mikor kb 20 másodperce vagyok az oldalon és annyit tettem csupán, hogy megpróbáltam bejelentkezni.

Kis időbe beletelt ugyan, de megtaláltam a követhetetlenné obfuszkált JavaScript kódot, amit generálhatta ezt a förmedvényt, de akadályba ütköztem, hiszen ezt nem fejthetem vissza teljesen legálisan, még akkor sem, ha engem csak az érdekel, hogy mit csinál a szoftver a gépemmel. Bizonyára okkal van elrejtve a user szeme elől, hogy mit csinál a kód.

Az Androidos APK pedig még ennyire sem volt informatív, ott csak láttam, hogy a fejléc nevének második részében más karaktersorozat van, de nagyjából hasonlóan nézett ki a tartalom, csak jóval rövidebbek voltak az értékek itt.

Mindkét út zsákutcának tűnt. Alig árultak el valamit a kilétükről a programok, hogy beazonosíthassam az algoritmust. Viszont az Androidos alkalmazással játszottam egy picit, mivel Androidon elérhető a logcat, ide pedig írhatnak a futó alkalmazások logbejegyzéseket, hogy később a user és a fejlesztő tudja, hogy az adott alkalmazás miért állt le/lett bugos. Bár elsőre nem volt beszédes, addig szórakoztam azzal, hogy elvettem az eszköztől az internetet, illetve teletettem a memóriát, hogy meghaljon az alkalmazás, míg egyszer csak sikerült kiütnöm belőle egy stack trace-t. Ebben szépen benne volt a leállás előtt történt függvény hívások listája. A nagyja értelmetlen karakter volt osztálynévnek és metódusnévnek, de találtam egy érdekeset:

com.apiguard3

Nem voltam benne biztos, hogy köze lehet a dologhoz, de érdekesen hangzott, szóval rákerestem Githubon. Két találatot hozott az apiguard3 kifejezés:

Rögtön az első projektre kattintva a következő repóval találtam szemben magam: [link] Belenéztem a kódba és találtam is egy hasonló fejlécet, mint az enyém: [link]

Bingó! Legalább már tudom, mivel állok szemben, mivel a projekt leírásában a ShapeSecurity név szerepel. Erre rákeresve már kapunk találatokat, pl.: [link]

A cikket érdemes elolvasni. Lelövi a poént:

Shape’s Client Signals are collected by JavaScript that utilizes remarkably sophisticated obfuscation. Based on a virtual machine implemented in JavaScript with opcodes randomized at frequent intervals, this technology makes reengineering both extremely difficult and minimizes the window for exploitation. The obfuscation hides from attackers what signals Shape collects, leaving them groping in the dark to solve a complex multivariate problem.
[...]
The JavaScript collects signal data on the environment and user behavior that it attaches to HTTP requests to protected resources, such as login paths, paths for account creation, or paths that return data desired by scrapers.

Nincs kétség, jó nyomon vagyunk. Tehát ez a cég azért alakult, hogy lecseréljék a captcha-kat, amik szerintük nem védenek a támadók ellen és helyette a böngésző viselkedését figyelik, hogy minden rendben van-e, hoznak egy döntést, hogy robotok vagyunk-e, majd tudatják az eredményt a weboldal tulajdonosával, aki eldönti, hogy beenged-e. Eddig jó. Mindenki jól jár, nem? A user nem lát captchat, a weboldal tulajdonosa pedig megszabadul egy csomó scriptkiddietől, aki támadná az oldalát.

Ezen a ponton világosan láttam, hogy nem lesz Kodi addonos bejelentkezés a dologból, hiszen Kodiban nincs böngészőm, ami JS-t futtatna. Viszont a rengeteg elküldött adat továbbra is érdekelt...

Elkezdtem nyomozni, hogy mit is találok az interneten, ugyanis a korábban linkelt repó nem sok adatot tartalmazott, csak magát az algoritmust visszafejtve és az is egy régebbi verzióhoz volt. Rákeresve a shapesecurity kulcsszóra a következő projekt jött velem szembe: [link] Itt van egy egész jó leírás, illetve végre infók, hogy miket küldhetett anno el ez a csodálatos termék. A lényeg a Botdetector osztályban történik, amit a sensordata.py fájl fed: [link]

Mivel a repóban nincs licenc, nem tudok kódot idézni belőle, de elég durva mennyiségű adatot szed össze a böngészőről a szkript ezek alapján. Időzónát, telepített böngésző kiegészítőket, telepített betűtípusokat (!), matematikai függvények meglétét, billentyű és egérlenyomásokat, képernyő és eszköz adatokat, grafikus kártya adatokat, futtat távoli kódot a gépünkön, hogy megnézze, valóban az elvárt eredményt kapjuk-e és egy tonna egyéb részletet. Ezeket mind elküldi titkosítva a szerverükre, amit az vissza tud fejteni és állításuk szerint egy AI majd eldönti, hogy az adatok alapján robotok vagyunk-e. És ez egy 2019-es állapot. Azóta ki tudja miket építettek még be.

Jogosan lehetne rágalmazni, hogy képes vagyok bízni egyetlen random repóban, amit az interneten találtam, de az az igazság, hogy találtam egy másik repót is 2020-ról, ami felettébb hasonló módokon próbál átmenni a bot checken: [link] A leírás sajnos orosz, de a Google fordító egész emészthetően fordítja: [link]

Ez egy kicsit másképp működik, mint az elődje, mivel itt nincs visszafejtve az algoritmus, hanem a böngésző van automatizálva, illetve kontrollálva, hogy valódi böngésző usernek tűnjön. A worker.js-ben látszik, hogy miket kell beállítania: [link] A fentebbi rémálom lista bővül még több gyűjtött személyes adattal ezek alapján... És a két, egymástól független repository egészen hasonló technikákat biztosít, így nem gondolom, hogy kamu lenne az egyik, vagy a másik.

Oké. Az már önmagában red flag, hogy a csodaszoftver monitorozza az egerem, billentyűzetem az oldalon tartózkodva, ezt el is küldi a távoli szervernek valamilyen formában, de eddig csak a webes részét vizsgáltuk a dolognak. Ott azért akármilyen adatot nem tudunk gyűjteni, mivel a böngésző igencsak le van korlátozva. De amit lehet gyűjtöttek ott is. Android fronton mi a helyzet? Ott a teljes rendszer rendelkezésre áll adatot gyűjteni. Az issue ticketek között találtam egy payloadot is, hogy mi kerülhetett titkosításra: [link] Arról azonban egy szót nem szól a készítő/kommenter, hogy mik ezek az értékek.

{"nonce": "1652844431-Hoz2vVEJkGZCcJ6qgLJ9x6nwMfddYMTb", "sig": ["samsung\/on5xelteub\/on5xelte:8.0.0\/R16NW\/G570MUBS5CSD1:user\/release-keys", "13575,1652782883,1652782883", "15861,1652782911,1652782911", "556234"]}

Az nonce valószínűleg egy timestamp, illetve valami generált hash, ami azért kell, hogy ne ugyanaz a titkosított eredmény szülessen, a sig pedig tartalmazza a telefon Androidjának release tagjét. De mik ezek a számok? Van benne pár timestamp, az majdnem biztos, hiszen a 1652782883 Tue May 17 2022 12:21:23 GMT+0200nek felel meg jelenlegi magyar időzónát nézve tekintve. Kb ekkor írodott a Github poszt is. Node a rövidebb számok? Erre a választ a készítő egy másik repójában leltem meg: [link]

The header contains a bunch of your device's sensors data as a JSON string that's then compressed and encrypted.

Sajnos azt nem tudtam kiötleni, hogy pontosan melyik szenzorok adatait küldi el, azonban az egyedi Android ROM-nak hála, amit egy ismerőssel fejlesztek, világosan látszott, hogy az alkalmazás engedélyt kér a szenzorok adatainak olvasására. Ezt elvettem tőle:

És nem tudtam bejelentkezni többet. Váratlan hibára hivatkozva soha többet nem engedett be. Ha pedig engedélyezve van a jogosultság, sorra kapom a rendszertől az értesítést, hogy az alkalmazás el akarta érni a szenzor adatokat, de bejelentkezik sikeresen.

És ez innentől csak spekuláció, de miért veszélyes ez? Gondoljunk csak bele, hogy szenzor adatokat továbbítunk egy harmadik félnek, ami simán elárulhatja azt, hogy éppen utazunk-e. Gondoljunk csak arra, hogy a Google Maps milyen precízen meg tudja állapítani a statisztikák alapján, hogy mennyit ültünk motoron, vagy autóban. De tovább megyek. Ha valaki többször próbál bejelentkezni, akkor képesek egy komplett mozgást lekövetni a begyűjtött adatokkal, ha épp mondjuk a giroszkópot és a gyorsulásmérőt figyelik, amiből lehet következtetni, hogy valakinek remegős-e a keze, Parkinsonos stb. Az egészségügyi adatoknál pedig kevés kritikusabb adat van.

A vicc az egészben, hogy ezeket a szenzor adatokat csak mobilon tudják küldeni, ahol egyébként saját elmondásuk szerint (lásd fentebb a cikküket) is webvieweket, meg JavaScriptet is használnak, ami egy teljesértékű böngésző. Pontosan azokat az adatokat tudnák gyűjteni, ha akarnák, mint a webes alkalmazás esetében. De nekik több kell, mert elérhető.

A streaming szolgáltatót megértem. Láthatóan "csak" a login, a regisztráció és az elfelejtett jelszó végpontjai vannak ilyen csodával védve. Feltételezem, hogy azért lettek ezek bekészítve, hogy ne brute-forcoljanak egyszerű jelszavakkal rendelkező felhasználókat korlátlanul. De ha ennyire fontos nekik az account védelme, miért nem tudtak kevésbé drasztikus módszerhez folyamodni? Miért nem jó nekik az, ha regisztrációkor nézik a jelszó komplexitást, esetlegesen bevezetik a 2FA-t, mint opció, vagy ha szokatlan IP-ről lép be az adott user, akkor kérnek mailes megerősítést?

Ezt a mamutcéget meg végképp nem értem. Nagyon nem látok rá a logikára, de az lenne a cél, hogy a szerver meggyőződjön róla, hogy az általa kiszolgált kliens robot-e. Ezesetben csinálhatná az összes ellenőrzést lokálisan azzal a csoda obfuszkált JS VM-jükkel, majd minden egyes lépcsőfok után történhetne a kliensen valami crypto aláírás. Ha nem történt meg, akkor a szerver tudni fogja, hogy a kliens tuti kamu, ha meg igen, akkor a kliens visszaküldheti a végén a végleges hash-t, amit a szerver tud ellenőrizni és mindenki boldog. Nem hagyja el a kliens gépét a móka. Ez sem bullet proof, hiszen a támadó gépén futó kódba egyszerű belenyúlni, de a jelenlegi megoldásuk is a kliens gépén fut... Semmi nem változna. Oké, hogy ott a pinky promise, hogy nem adják ki az adatainkat és csak egy "AI" kapja meg ezeket az adatokat, de az is egy blackbox. Sose fogjuk megtudni, hogy mi az igazság. Meg mi alapján képzik tovább az AI-t, ha nem adatok alapján? :D

A plot twist a történetben pedig a streaming szolgáltató privacy policy-jének a claimje, ami világosan kijelenti, hogy nem alkalmaznak automatikus döntéshozatalt. Mi ez az egész, ha nem az?

Ugyanakkor ezek a megoldások fogják megölni az utat az új JS enginek és böngészőmotorok számára. Esélye se lesz befutni egy újnak, ha ennyire nézik a nagyobb oldalak, hogy ismert böngészőn fut-e a kódjuk. Az emberek okkal kiakadtak a Google Web Attestation proposaljára, de ilyen projektek nyugodtan létezhetnek? A Cloudflare challenges is hasonló (csak az talán valamivel kevésbé adathalászabb beállítottságú) és azt is önkéntesen kapcsolják be a weboldalak tulajdonosai.

Hát ennyi lenne. Sajnos nagyon nincs mit hozzátenni. Ilyen egy blackbox után való kutatás. Nem feltétlen végződik pozitív eredménnyel.

Tanulság számomra, hogy nyitott szemmel és szkeptikusan kell mindenhez hozzáállni. Olyan szolgáltatáshoz is, amiért fizetünk. És hiába az én adatom a tét, ha csak kis hal vagyok a vízben. Ha hasonló headert látok a böngészőben, azonnal kerülni fogom az oldalt. Az Androidos alkalmazások pedig csak indokolt esetben fogják a szenzoraim olvasni. Nomeg a privacy policy is csak annyit ér, amennyit, ha feltehetőleg olyan szintű copy-paste, hogy még az írója sincs tisztában azzal, hogy mit csinál a saját platformja. :U

Személyesen kicsit szánalmasnak találom, hogy egy illegális torrent letöltésével kevesebb adatot szivárogtatok el magamról, mint jogos használattal.

Csak nyitott szemmel az interneten! Köszönöm, hogy elolvastad! Köszönet a cikkben említett repók alkotóinak a forrásokért!

Hozzászólások

(#1) Mr Dini


Mr Dini
addikt
LOGOUT blog (1)

Kérem, hogy ne találgassunk a nevekkel. Egy ismert kávézó is alkalmazza elvileg ugyanezt a technológiát (az egyik linkelt Githubos projektben említik), meg egy piac-kész termékről van szó egy for-profit cégtől származik. Remélem azért, hogy más is ugyanúgy meglepődött, mint én, amikor felfedeztem ezt.

A nehezebb/unalmasabb témáért pedig elnézést kérek. Ez most így alakult.

[ Szerkesztve ]

Eleinte angol billentzuyetet akartam. De aztán megismerkedtem a nagy 'Ő'-vel!

(#2) xabolcs


xabolcs
őstag

:R

aláírás1: csocsó-vesztes vagyok, főleg a Bog és Bocha páros ellen, aláírás2: van mobilarénáskulcstartóm! :D

(#3) UnA válasza Mr Dini (#1) üzenetére


UnA
Korrektor

Nem volt unalmas téma, nekem tetszett :)

Sajnos én megátalkodott anarchista és open-source rajongó vagyok, és ezek miatt sem értem, hogy erre az egész bűvészmutatványra miért lenne szükség. Ahogy te is írtad többféle egyéb módszer létezik, mindenféle trükkös adatgyűjtés nélkül is.

(#4) Jack Hunter


Jack Hunter
csendes tag
LOGOUT blog (1)

Közösségi médiában esetleg ki lehetne posztolni. Facebok új fake login, lehetőleg egy netkávézó, könyvtár szerveréről csatlakozva, hogy ne lehessen lenyomozni. Vagy valamelyik videómegodztó oldslon, torzított hanggal, arc nélkül elmondani mindezt.

(#5) Gargouille


Gargouille
őstag

Nagyon szép munka, élvezettel olvastam. :C

Lassan kiderül, hogy amit korábban abszurd humornak gondoltunk, az csak szimpla jövőbelátás volt.

(#6) denko


denko
senior tag

ugyes ugyes találat, csak meg sem lepödtem, csak gondold bele facebook, google, mennyi mindent tud rolunk.
Ez csak 1 példa amit kiástál 10 ezr közül, de azért szép fogás.

(#7) Mr Dini válasza Jack Hunter (#4) üzenetére


Mr Dini
addikt
LOGOUT blog (1)

Megfordult a fejemben hasonló, például, hogy név nélkül írok a NAIH-nak emailt, aztán reménykedek, hogy reagálnak, de az a baj a videóval, meg a publikus posztolással, hogy hiába takarnám ki a fejem/adnám ki random IP-ről, simán kinézem a hatóságokból, hogy elkezdik elemezni a hátteret, ha feljelentenek, vagy megnézik, milyen szavakat használok gyakra, aztán eljutnak hozzám. Lehet felesleges paranoia, de ne szeretek kockáztatni. Ezzel a cikkel is okkal vártam (sajnos) rengeteg időt.

Eleve nem lenne ilyen probléma, ha kicsit megreformálnák a GDPR bejelentési procedúrát.

Eleinte angol billentzuyetet akartam. De aztán megismerkedtem a nagy 'Ő'-vel!

(#8) Mr Dini válasza denko (#6) üzenetére


Mr Dini
addikt
LOGOUT blog (1)

Ebben teljes mértékben egyetértek, csak a különbség az, hogy egy Google, Facebook stb esetében a tracking általában letiltható böngésző kiegészítővel és még mindig használható az oldal. Illetve léteznek privacy search enginek, amik a Google találatait is használják, hogy nekem, mint usernek, minél kevesebb kontaktom legyen közvetlen a nagytesóval.

Itt, a streaming platform esetében sok esetben nincs alternatívám (legálisan) hozzájutni ugyanahhoz a médiához, mint ami náluk elérhető, mert nincs fent sehol máshol. Ha érdekel, kénytelen vagyok kiadni az adataimat.

Eleinte angol billentzuyetet akartam. De aztán megismerkedtem a nagy 'Ő'-vel!

(#9) Krugszvele


Krugszvele
senior tag

Számomra az a furcsa, hogy mit küzdöttek azzal, hogy "titkosítsák" ezeket az adatokat, amiket begyűjtenek? Sima txt-ben továbbíthatnák nyugodtan, pár fanatikuson kívül senkit sem érdekelne.

Ha mondjuk begyűjtenék a fényképeket, hívásadatokat, szöveges üzeneteket a telefonról és azt továbbítaná a netflix minden loginkor, valamint folyamatosan, majd ezt a netflix nyilvánosságra hozná, bemondaná a tévé, akkor mennyivel esne vissza a netflix előfizetések száma?

Szerintem mérhetetlenül kevéssel.

(#10) Mr Dini válasza Krugszvele (#9) üzenetére


Mr Dini
addikt
LOGOUT blog (1)

Azért titkosítják, hogy a hacker ne tudja kitalálni az egyes mezők értékeit és tudja feltölteni kamu értékekkel a payloadot gondolom. Így ötleted sincs, hogy mit küldenek, szóval jóval nehezebb a dolgod,

Ebből következtettem (a cikkjükből):

The obfuscation hides from attackers what signals Shape collects, leaving them groping in the dark to solve a complex multivariate problem.

Szerintem mérhetetlenül kevéssel.

Elképzelhető, de még így is jobb lenne, mert az emberek legalább tisztában lennének vele, hogy mi történik (szerintem).

Eleinte angol billentzuyetet akartam. De aztán megismerkedtem a nagy 'Ő'-vel!

További hozzászólások megtekintése...
Copyright © 2000-2024 PROHARDVER Informatikai Kft.