Netuším, jak přesně probíhá proces "zveřejňování aplikací" na oficiálním Android Marketu. Podle toho co jsem zaregistroval do dneška, jedním ze zdrojových souborů aplikace je jakýsi "manifest", kde se definují "požadovaná oprávnění" aplikace, tato informace je pak v aplikaci uložena a systém Android to při běhu kontroluje a nedovolí aplikaci nic jiného.
1)
Jednou z informací o aplikaci na marketu jsou i "Oprávnění".
Tuto informaci si tam libovolně doplňuje autor aplikace, nebo se to automaticky vygeneruje z údajů v konkrétní aplikaci?
2)
Jedna věc je, že systém aplikaci nedovolí dělat nic jiného, než co aplikace deklarovala a co uživatel instalací odsouhlasil. (tedy, doufám)
Jak ale ochránit uživatele před aplikacemi, které tvrdí, že dělají něco, co uživatel potřebuje, ale ve skutečnosti tyto aplikace páchají škody (viz zmiňovaný SMS trojan).
S oprávněními, které oklamaný uživatel odsouhlasil?
Nemají kontroly zveřejňovaných aplikací u jisté nejmenované firmy něco do sebe?
(podle mi dostupných informací)
1. ano, je to tak
2. ano, prava se kontroluji a aplikace dostane Exception ve chvili, kdy pouzije neco, na co si v manifestu nerekla o prava
A ne, kontroly nemaji nic do sebe. Jak chcete odhalit, ze aplikace dela to co tvrdi a nedela nic navic? Dekompilaci? Projitim kazdeho jednotliveho radku kodu? Vzdyt to je NP problem. Podle me je spravne reseni 'testovano na lidech'. Nekdo se spali, pri odinstalaci rekne ze je to podvodna aplikace, automat v Google zareaguje a aplikaci stahne. A kdyz ne, tak hodnoceni aplikace bude pod bodem mrazu a nikdo ji nebude instalovat.
Ta aplikace je skodliva jen v takovem bananistanu jako CR, kde operator neuznava reklmace a tvrdi mi nemuzem nic delat ty k*ot* za* polib nam p* ....
V civilizovanych zemich se to reklamuje, zjisti se, ze je to podvodnik a dane cislo operator proste odstrihne a basta, trestni oznameni poda sam a na podvodneho operatora proste nezasle penize s oduvodnenim a mozna i podanim trestniho oznameni, ze mu vznikla skoda, nebot slusny operator zakaznika haji a ne ze se bude tvarit, ze on nic, on jen prenasi vodu ...
Ohledně bezpečnosti se stačí inspirovat u konkurence. Při použití vhodného jazyka (Java, cokoliv z .NETu) lze analyzovat bytecode, a vyloučit možnost, že aplikace volá nepovolené funkce. Když to zkombinujete se sandboxingem (například přístup jen k vlastním souborům aplikace) a interfacem pro předávání dat mezi aplikacemi (například permissions pro přístup ke kontaktům), rizika se minimalizují. Dále je dobré vynucovat digitální podpisy, aby bylo jasné, kdo za kódem stojí (ať je koho zmáčknout, když aplikace dělá co nemá).
Vždyť to tak i je. Aplikace pro Android jsou napsané v Javě a nemohou volat nic v API, aniž by to měly v manifestu a uživatel to neodsouhlasil. Problém je v tom, že když uživatel odklepne "Odesílání SMS", tak nelze předpovědět, zda to bude 1000 SMS na draze placená čísla. To se dá prakticky jenom heuristickou nebo lidskou analýzou a to Google nedělá (na rozdíl od Applu a MS).
Sandboxing Android samozřejmě dělá — jak u Javy tak u nativních aplikací (protože ty stejně musejí volat Javu přes JNI). Pokud zkusíte odeslat SMS z aplikace, která to nemá povolené, Java vám vynadá, že ta třída neexistuje, protože ji nedokáže naimportovat, jelikož nejste v příslušné unixové skupině (osobně vyzkoušeno). Ta aplikace ale má povolené odesílání SMS, takže z hlediska systému dělá to, co má povolené. Jako windowsák byste už mohl vědět, že tyhle ochrany jsou značně nedokonalé, protože spoléhají na to,ž e uživatel není blbec ;-)
Digitální podpisy samozřejmě Google používá taky, ale těmi stejně nikoho nezmáčknete, protože není žádná globální autorita, která by mohla ověřovat totožnost. Proto můžete používat podpisy, jejichž certifikáty si sami podepíšete, resp. u Apple je podepisuje Apple, ale kontroluje se prakticky jenom platnost e-mailu.
Pro Android jsem nepsal, ale pokud vím, tak Native Development Toolkit poskytuje mimo jiné jistou verzi libc.
Apple i MS to řeší tak, že se platí za účast v programu vývoje. Samozřejmě pokud je kreditka kradená, je to problém. Ovšem i pak je tam strojová i manuální analýza bytecode, kterou musí aplikace projít (minimálně u MS).
Ano, NDK poskytuje libc, ale s tím SMS nepošlete, nikam nezavoláte ani nepřečtete kontakty, protože to drží jiné aplikace běžící pod jiným uživatele a ty s vámi budou komunikovat jen přes Javu a bez patřičné skupiny nenajdete definice tříd (takže vám je Dalvik neumožní použít). Bez deklarace v manifestu se ale nedostanete ani k logům ani k síťovce (ke kterým Javu nepotřebujete), protože nejste ve skupině, která k nim má přístup.
Na Androidu žádná automatická analýza bytekódu zřejmě není, ale ona je tam stejně zbytečná. Jak byste to totiž chtěl řešit? Aplikace pravdivě deklaruje, že chce posílat SMSky, a tak je posílat může. Analýza tohle tak maximálně potvrdí. Pokud to nedeklaruje, nedostane se k rozhraní pro posílání SMSek.
Kreditku ze země třetího světa s falšným jménem si můžete pořídit snadno (anebo si „půjčit“ existující). Třeba v Indii to není vůbec problém. Ani ji nepotřebujete krást.
Aha, děkuji za informace.
Automatická analýza bytecode umí v kombinaci vychytat některé problémy. Na jiné je potřeba analyzovat kód ručně.
V případě Microsoftu a nejspíš i Applu nelze použít kreditky ze třetího světa. Navíc existují různé cesty, jak totožnost potvrdit. Například vám může přijít email s kontrolním číslem, automat vám zavolá na vaši pevnou linku, a vy musíte poslané číslo vytočit přes DTMF volbu (pevné linky se poměrně dobře dohledávají, ve srovnání s browserem běžícím přes nějaké anonymní proxy). Nebo vám firma naúčtuje na kreditku náhodně 0.00-9.99 dolarů, a vy musíte pro kontrolu zadat přesnou částku do systému (u kradené kreditky nemá bad guy přístup k ebankingu ani výpisům). Nebo lze požadovat notářsky ověřenou kopii identifikačního dokladu, případně kontrolní zadání čísla doručeného klasickou poštou. Stačí to pro inspiraci?
...posilat sms na zahranicni premiova cisla?
Jinak stale se tu mluvi o antivirech, ale nikdy sem nevidel vetu ano, nas antivirus by tomuto konkretnimu problemu predesel.
To ze se nekde pise ze malware stoupl o xx% je opravdu vtipne, protoze kdyz bylo 10 skodlivych aplikaci a ted jich je 20, a to vse na treba 500 000. Tak opravdu 100% narust "hodne" znamena. Nemluvic o tom ze 20 z 20 takovychto aplikaci je po par hodinach/dnech vymazano z marketu a telefonu.
Mimochodem kdy uz se naucime odpovednosti za nase kliknuti - kdyz stahuju aplikaci a vidim full internet access tak sem si vedom toho ze muze poslat do interntu opravdu kde co.
Preji dobry den
1) Souhlasim s tim, ze stavajici antiviry pro android jsou spise "modni zalezitost". Lide odkojeni desktop. Widlema proste touzi po "pocitu" bezpeci, proto ihned hledaji nejake AV..=>dobry biznys pro AV firmy
2) Obezretnost - nez instaluji nejakou aplikaci, je vzdy nutne procist si pozadovana prava a zamyslet se nad nimi. Take komentare od uzivatelu, kteri si jiz aplikaci nainstalovali mohou byt uzitecne.
3) Jako clovek, ktery se v problematice IT bezpecnosti pohybuje mam jedno jednoduche doporuceni. Android je skvely, fandim mu, sam pro tuto platformu vyvyjim (viz souborovy manazer MKC https://market.android.com/details?id=cz.raven4.MKCommander_beta)). ALE: je pochopitelne, ze s rostouci oblibou tohoto systemu se tento OS stava atraktivni pro nejruznejsi pochybne existence, kteri budou plodit vice a vice podobnych aplikaci => obezretnost viz 2)
Doporuceni zni: neni nic snazsiho nez si u operatora zablokovat premiove SMS a volani do zahranici (u VF zdarma) - pro vetsinu lidi tyto 2 sluzby nejsou nezbytne a lze predejit tomu, aby si z vas nekdo udelal "dojnou kravicku" :)
Dekuji, s pozdravem, raven4
www.raven4.cz
https://market.android.com/details?id=cz.raven4.MKCommander_beta
Dobry den,
myslim to naprosto vazne. Ne kazdy dane sluzby vyuziva. Mam obe sluzby zakazany a necitim se byti nikterak omezen (DMS neposilam, MHD nejezdim...a v miste meho bydliste zatim nefunguje).
Samozrejme chapu, ze je to individualni. Nekomu me doporuceni pomuze nekoho by prilis omezovalo.
Zkuste tedy doporucit nejaka dalsi opatreni...treba tady nakonec vznikne nejake "desatero" :)
S pozdravem, raven4
Na prvním místě chci ukázat, jak je současná situace absurdní z hlediska uživatele. S "hloupým" telefonem prostě telefonuje. U chytrého telefonu může mít hromadu praktických aplikací, které mu ale mohou z telefonu podvodně vynést informace, nebo mu dokonce nadělat hromady dluhů. A to i když jde o aplikace z oficiálního seznamu, tedy z Marketu. Vy i já rizika známe a nějak se s tím popereme; aplikace budeme vybírat tak pečlivě, jako při instalaci na PC. Ale jak tohle chcete vysvětlit ženám v domácnosti, důchodcům a dětem? U PC téhle skupině lidí všichni říkali, že si nemají nic instalovat, a vůbec mají péči o počítač nechat někomu znalému. Jenže kdo se chce dostat do stádia, kdy musí mít vlastního ajťáka i na obsluhu telefonu?
Blokování služeb je nesmyslné proto, že pak se svým chytrým mobilem nemůžete dělat ani to, co s tradičním hloupým mobilem. Žijete v maličké zemi s 10M obyvateli, takže skoro všichni volají někam do zahraničí, nebo tam jezdí. A žijete ve 21. století, kdy jsou platby mobilem poměrně běžnou součástí života. V rozvojovém světě se dokonce kredit na mobilu používá místo bankovního účtu, takže můžete sousedovi zaplatit za kozu převodem kreditu na jeho číslo :). Nikomu z těchto zákazníků se nebude líbit, že si stáhne z Marketu Tetris nebo měnič pozadí, který rozešle jeho intimní fotky a vybrakuje mu jeho bankovní účet.
http://en.wikipedia.org/wiki/Cell_phone_banking#Mobile_banking_in_the_world
Zas takový FUD to dle mého názoru není - technicky to je dost dobře možné. Jisté ale je, že by si uživatel prostě měl rozmyslet, co nainstaluje. Z principu nelze trojany eliminovat - kolikrát je i sám autor překvapen, jakého že škůdce to díky nějaké chybě vytvořil:-) Existují ale přístupy, jak snížit pravděpodobnost šíření zvířátek v repozitářích, které se zdají být poměrně účinné. Jedním z nich je přístup Apple - vysoké poplatky pro vývojáře a přísné kontroly aplikací. To ale aplikace dost prodražuje pro koncového zákazníka. Druhým je potom přístup opensource, kdy kód vidí každý, kdo se chce podívat. Zvláště, pokud na projektu pracuje širší komunita vývojářů, je poměrně obtížné tam něco schovat (netvrdím, že nemožné). Android má momentálně ten problém, že pro něj zatím není dostatek opensource aplikací a vůbec aplikací, které by měly zvučné jméno. Jakmile se aplikace objeví, tak to s těmi trojany už snad nebude tak horké - uživatelé budou mít možnost nainstalovat si pro svou práci rozumě důvěryhodné aplikace. A pak už bude stačit "jenom" uživatele přesvědčit, aby neinstalovali aplikace neznámého původu...