Aplikacija je izginila!
Med milijoni aplikacij na spletnih tržnicah za platformi Android in iOS se kljub preverjanju znajdejo tudi gnila jabolka, ki vohunijo za uporabniki, smetijo z oglasi ali preprosto ne počno ničesar. Google in Apple redno brišeta plevel, končni uporabniki pa zanj največkrat izvedo le, če jih preseneti obvestilo na telefonu, da je bila nameščena aplikacija samodejno odstranjena zaradi škodljivosti. Problem še ni pereč, se ga je pa koristno zavedati.
Speedometer GPS je bil svojčas povsem spodobna aplikacija za pametne telefone, ki je iz meritev GPS prikazovala hitrost premikanja. Marca letos pa je Android uporabnike obvestil, da je aplikacija postala škodljiva, in predlagal odstranitev. Aplikacija je še vedno normalno prikazovala hitrost, kar je bil njen glavni namen, a je sčasoma v posodobitvah pridobila tudi druge »funkcionalnosti«, ki niso bile v skladu s pravili Googlove spletne tržnice. Spremenila se je bila v spyware.
Android predlaga odstranitev škodljive aplikacije.
Aplikacij je dobesedno na milijone. Na Googlovi spletni tržnici Play Store je skoraj štiri milijone aplikacij, uporabniki pa so lani izvedli več kot 100 milijard namestitev aplikacij. Poleg tega je na telefone z Androidom aplikacije mogoče namestiti tudi mimo uradne tržnice, neposredno iz datotek apk. Za to niso potrebne nobene predelave ali iskanje ranljivosti, temveč zadostuje vklop preproste nastavitve Install apps from external sources.
Na iOS je položaj nekoliko bolj reguliran. App Store ima približno pol manj aplikacij, hkrati pa iOS ne dovoli nameščanja nepotrjenih aplikacij. Za ta podvig je treba telefon odkleniti (jailbreak), kar že predstavlja napol hekerski poseg v telefon, in Apple to uradno prepoveduje. Pričakovali bi torej, da bo platforma iOS varnejša pred vdorom zlonamernih aplikacij, a imuna gotovo ni.
Pri tako velikem številu aplikacij se najdejo gnila jabolka, ki se jim je uspelo pretihotapiti skozi pregled, druga pa so zgnila (tak primer je že omenjeni Speedometer GPS) šele kasneje. Kako se torej aplikacija nekega razvijalca uvrsti v Play Store? Postopek ni zapleten. Najprej se registriramo z računom za razvijalce (Google Developers Account), kar stane 25 dolarjev. Ta registracija velja trajno in omogoča neomejeno objavljanje aplikacij brez dodatnih plačil. Kdor želi ponuditi aplikacijo, ki jo je treba kupiti, ali pa ponuja plačila za dodatne storitve (in-app purchases), se mora prijaviti še z računom za trgovce (Google Merchant Account), ki se poveže s prvim računom. In s formalnega vidika je to vse.
Google bo skrival stare aplikacije
Problematične so lahko tudi stare aplikacije, s katerimi ob izidu sicer ni bilo nič narobe, a jih pisci niso posodabljali. Google je zato letos aprila sporočil, da bo od 1. novembra letos skrival aplikacije, ki so narejene za več kot dve leti stare sisteme.
Aplikacije, ki so napisane za starejše inačice Androida, bi na novih delovale s težavami, zato mora vsaka aplikacija deklarirati, katero različico sistema pričakuje (target API level), da ji operacijski sistem lahko ustreže. To pa sčasoma začenja predstavljati varnostna tveganja, saj starejše aplikacije ne poznajo in ne razumejo številnih varnostnih popravkov, ki prihajajo z nadgradnjami sistema. Če jih želimo uporabljati, jih mora zato sistem spustiti mimo, s čimer je naprava ranljivejša.
V preteklosti so napadalci že uporabili zanimivo taktiko nalaganja aplikacij, ki so namenoma zahtevale izredno stare različice sistema, da so potem dobile z luknjami prepreden dostop. Google je kasneje prakso onemogočil, zato smejo aplikacije ob nalaganju zahtevati največ leto dni star API. Seveda pa ostajajo aplikacije, ki so se postarale v Google Play Storu.
Od 1. novembra jih ne bo več mogoče najti z iskanjem. Izjema bodo uporabniki primerno starih telefonov in tisti, ki so aplikacijo v preteklosti že imeli naloženo. Seveda pa jih bo mogoče naložiti tudi ročno neposredno z apk.
V Play Store ne moremo naložiti aplikacij za stare različice Androida.
Potem »zgolj« še izdelamo aplikacijo, ki jo naložimo kot Android App Bundles (nalaganje apk ni več mogoče). Pri nalaganju moramo izbrati vrsto aplikacije, privzeti jezik, (ne)plačljivost, ime, kratki in dolgi opis, kategorijo in kontaktne podatke. Za lep videz potrebujemo še ikono za napravo in grafiko za Play Store. V naslednjem koraku moramo navesti še politiko zasebnosti, izpolniti vprašalnik o vsebini, definirati tarčno demografsko skupino, razkriti prisotnost oglasov, opozoriti na morebitne omejitve (geolokacijske, članstvo, prijava itd.). V zadnjem koraku naložimo dejansko aplikacijo.
Podoben postopek ima tudi Apple. Ko se prijavimo v Apple Developer Program, dobimo dostop do različnih orodij in storitev, ki omogočajo razvoj aplikacij in njihovo objavo. To stane 100 dolarjev letno in je nujno, če želimo aplikacije distribuirati prek App Stora. Sam razvoj in testiranje na lastnih napravah sta mogoča tudi brez te naročnine, a tako aplikacijo bomo lahko namestili le na odklenjene (jailbroken) naprave. Ko aplikacijo enkrat imamo, ji izberemo vse standardne parametre (naslov, opis, cena, regionalna omejenost itd.) in pošljemo Applu v pregled.
Aplikacija se na spletni tržnici ne pojavi takoj, temveč šele po temeljitem pregledu upravljavca. V preteklosti je veljalo, da je Google pri tem precej bolj popustljiv in tudi hitrejši od Appla. V zadnjih letih se je razlika nekoliko zmanjšala, a Google je še vedno manj strog. Ključno vprašanje je seveda, kako strog je ta pregled. Pred leti je Google potreboval zgolj nekaj ur za odobritev aplikacij, zdaj pa si sicer vzame nekaj več časa, a se jih velika večina še vedno objavi precej prej kot v sedmih delovnih dneh, kolikor znaša zgornja meja.
V Applu preglede izvaja enota Worldwide Developer Relations, v kateri čisto vsako aplikacijo ročno preveri vsaj eden izmed zaposlenih. V nasprotju z moderatorji vsebin pri družbenih omrežjih, ki so mnogokrat pogodbeni sodelavci najetih podjetij, so recenzenti aplikacij »polnokrvni« Applovi zaposleni. Vsi začnejo s pregledovanjem enostavnih aplikacij, sčasoma pa napredujejo do aplikacij s plačili (in-app purchases), z naročninami, Apple Watcha in Apple TV. Leta 2019 so imeli približno 300 zaposlenih, ki so govorili več kot 80 različnih jezikov. Preverjajo, ali aplikacije tekoče delujejo, da nimajo nezakonitih vsebin, da ne omenjajo načinov za plačila zunaj Trgovine App (to se z novimi razsodbami prav te tedne spreminja), da opravljajo svoje poslanstvo, da niso virus, da ne uporabljajo avtorsko zaščitenih elementov itd. Izvorne kode Apple ne preverja, ker do nje nima dostopa. Imajo pa osnovne teste, ki preverijo prevedeno kode za indice, da uporablja določene programske vmesnike API itd.
Kaj je SDK
Niso vsi pisci aplikacij, ki jih Google ali Apple odstrani, kriminalci, ki želijo vohuniti za uporabniki. Vzrok za umik aplikacij večinoma tiči v uporabi SDK (software development kit), ki omogoča enostavno integracijo nekaterih funkcionalnosti v aplikacije, ne da bi moral pisec sam napisati kodo za ta del.
SDK je zelo uporaben in pogost, ker olajša razvoj in prepreči »izumljanje tople vode«, a predstavlja varnostno tveganje. Gre sicer za del aplikacije, a poganja nepreverjeno kodo. SDK-je, na primer, ponujajo različni oglaševalci, ki jih potem pisci le integrirajo v aplikacijo, pa se bodo prikazovale reklame, kar jim bo prineslo neko finančno nadomestilo.
Kadar pa SDK-ji vsebujejo funkcionalnosti, ki jih Google ali Apple oceni kot kršitve pravil, potem odstrani vse aplikacije s temi SDK-ji. To je glavni vzrok za množične umike aplikacij, ko odkritje škodljivega SDK za seboj potegne plaz umikov.
Posameznik dnevno preveri 50–100 aplikacij, za vsako pa ima le nekaj minut časa. Apple tudi pritiska nanje, da preverijo 50 odstotkov aplikacij v 24–48 urah po prijavi. Čeprav se v prvi fazi zavrne tudi do 40 odstotkov aplikacij, se jih mnogo po manjših popravkih vendarle znajde na tržnici. Vzroki za zavrnitve so včasih tudi banalni: kršenje politike zasebnosti, prevare, hrošči, nedelovanje itd.
Čistke
Redno beremo o čistkah, ki jih Google in Apple izvajata na svojih tržnicah. Pri Googlu je bila zadnja večja konec marca letos, ko so izbrisali več deset aplikacij, v kateri so našli kodo (SDK) za zbiranje osebnih podatkov, ki je last podjetja z domnevnimi povezavami z ameriškimi varnostnimi agencijami. Šlo naj bi za podjetje Measurement Systems S. de R.L iz Paname. To je povezano s podjetjem iz Virginije, ki pogodbeno sodeluje z ameriškimi »tričrkovnimi« agencijami (NSA, CIA, FBI…). Measurement Systems naj bi več razvijalcem aplikacij plačal, da so njihovo kodo (SDK) vključili v svoje aplikacije. Kodo, ki se je je prijelo ime Coulus Coelib, so v aplikacijah odkrili raziskovalci z Berkeleyja in iz Calgaryja. Ta zbira podatke iz odložišča, prečesava datoteke na napravi, zbira elektronske naslove in telefonske številke, shranjuje GPS-podatke itd. V Measurement Systems so navedbe zanikali.
Prizadete aplikacije so bile sicer povsem »normalne«, z jasno definiranim namenom in funkcionalnostjo. Najpopularnejše med njimi so imele tudi več kot 10 milijonov prenosov. Med njimi so bile aplikacije za vremenske napovedi, islamske molitve in čitalnik kod QR. Problematičen je le del za vohunjenje za uporabniki. Če bodo pisci aplikacij ta SDK odstranili, lahko zaprosijo za ponovno uvrstitev v Play Store.
To seveda še zdaleč ni osamljen primer. Čeprav v medijih redno beremo o čistkah med aplikacijami, je to le vrh ledene gore. Leta 2017 je Google skupno pobrisal 700.000 škodljivih ali zavajajočih aplikacij. To se sliši veliko, a glede na hitrost odstranjevanja in število vseh namestitev je Google tedaj ocenil, da imamo 0,00006 odstotka verjetnosti, da bomo namestili zlonamerno aplikacijo iz Trgovine Play.
Politični in pravni pritiski
Precej bolj temačen vzrok za odstranjevanje aplikacij s spletnih tržnic pa so politični pritiski, o čemer Apple in Google ne govorita rada. Običajno se dogajajo regionalno, ko posamezna aplikacija v določenih državah na zahtevo oblasti preprosto ni več dostopna. Lanskega septembra sta Google in Apple v Rusiji odstranila aplikacijo, ki jo je za volitve pripravila opozicija pod vodstvom Alekseja Navalnega. Aplikacija je volivcem izračunala, kako v posameznih okrožjih najbolj strateško glasovati, da bi opozicija premagala takratno oblast. Oblasti so podjetjema zagrozile s pregonom zaposlenih v ruskih pisarnah, zato sta morali aplikacijo umakniti.
Podobnih primerov ne manjka. Konec leta 2020 je Apple na Kitajskem izbrisal 39.000 iger, ker založniki niso imeli ustreznih licenc, ki jih zahtevajo od leta 2021. Tega leta je veliko prahu dvignila tudi odstranitev aplikacije za prebiranje Korana (Quran Majeed) na Kitajskem. Na Zahodu pa je odmevala odstranitev aplikacije Parler za neomejeno komuniciranje po vdoru v Kapitol januarja 2021.
Google in Apple sta po pritisku ruskih oblasti lani umaknila opozicijsko aplikacijo za taktično glasovanje na volitvah.
Tudi v drugem taboru, kjer je pregled aplikacij pred objavo strožji, ne manjka umikov. V letu 2020 je Apple zavrnil objavo milijona aplikacij, ki so bile prvikrat predložene, in še milijon posodobitev obstoječih aplikacij. Poleg tega so odstranili še pol milijona že objavljenih aplikacij zaradi skritih oziroma nedokumentiranih funkcionalnosti, pretvarjanja ali smetenja (spam), kršitev politike zasebnosti ali drugih kršitev pravil. Apple je ob tem pojasnil, da so imeli leta 2020 približno 500 ljudi, ki ob pomoči avtomatiziranih orodij preverijo pet milijonov aplikacij ali posodobitev letno. Zavrnjenih je okoli tretjina predloženih.
Kaj se zgodi ob izbrisu
Androidni telefoni imajo funkcijo Google Play Protect, ki pomaga v boju proti škodljivim aplikacijam. Če jo omogočimo, pred prenosom aplikacije še enkrat preveri, redno preverja telefon in opozarja na problematične aplikacije ter jih odstrani ali deaktivira.
Kdor rad eksperimentira z aplikacijami in jih ima nameščenih veliko, po možnosti od neuveljavljenih založnikov, se lahko sreča z zloveščim obvestilom, da je bila neka aplikacija samodejno odstranjena. Kadar Google aplikacijo zaradi nevarnosti ali kršitev pogojev zasebnosti odstrani iz Play Stora, lahko Google Play Protect aplikacij odstrani tudi iz aktivnih naprav brez uporabnikove interakcije. To v resnici ni nič novega, saj podobna funkcionalnost obstaja že deset let, le da se je včasih odstranitev zgodila v ozadju, zdaj pa je uporabnik obveščen. Kogar moti, da si Google jemlje to pravico, pa lahko Play Protect izklopi. Poleg tega ima še nekaj drugih možnosti, denimo ukinitev privilegijev za aplikacije, če jih te že dlje časa niso uporabile (npr. za dostop do kamere ali lokacije). V redkih primerih se lahko založniki temu izognejo, denimo pri aplikacijah za komunikacijo s pametnimi urami ali starševski nadzor.
Kaj storiti
Čeprav se Apple in Google trudita vzdrževati svoj ekosistem čist, se tudi skozi gosta sita izmuznejo škodljive aplikacije. Včasih takšne postanejo šele po kasnejših posodobitvah, ki so manj strogo pregledane kot nove oddaje. Največ lahko za svojo varnost vseeno storimo sami.
Sistemi za zaščito so kljub omejitvam tam z namenom, zato brez res dobrega razloga nima smisla izključiti Google Play Protecta ali na silo odklepati (jailbreak) iphonov. Nameščanje aplikacij iz tretjih, neuradnih virov se odsvetuje, če nimamo res pametnega razloga – npr. ko smo dobili prve različice slovenske aplikacije za preverjanje kod QR za dokazovanje pogoja PCT, ki so bile na voljo zgolj kot apk. Ker se naši državi pač ni dalo ukvarjati z Googlovimi preverbami…
Tudi sicer pa velja, da je manj več. Na telefon je smiselno namestiti le aplikacije, ki jih res nujno potrebujemo. Dokler izbiramo med preverjenimi aplikacijami znanih založnikov, so nevarnosti zanemarljive. Ko pa se odpravimo proti manj znani eksotiki, so »nastlani« oglasi še najmanjši problem. Tem aplikacijam velja podeliti najmanj privilegijev in jih, ko jih ne potrebujemo več, izbrisati. Nameščanje piratskih različic apk sicer plačljivih aplikacij pa seveda kar kliče po katastrofi. Tudi nameščanje načeloma legitimnih aplikacij prek datotek apk ni daleč od tega. Toda na novejših telefonih Huawei drugače pač ne gre…