Kategorie
Administracja publiczna Android Epidemia iOS

Aplikacja “Kwarantanna domowa” czyli jak szybko wydać aplikację gdy jest się rządem

Rano przeczytałem o wydaniu przez Ministerstwo Cyfryzacji apki “Kwarantanna domowa”, która “jest elementem prewencyjnym w walce z rozprzestrzenianiem się wirusa SARS-Cov-2 (koronawirus) i wywołanej przez niego choroby COVID-19” (cytat z opisu w sklepie Play). Od razu przyszły mi do głowy dwa pytania: czy oszukanie jej nie będzie zbyt łatwe? W jaki sposób Ministerstwu udało się tak szybko wydać tę aplikację na oba mobilne systemy operacyjne, skoro nowe funkcje mObywatela mają tendencje do opóźnień zależnych od platformy ?

regulamin w PDF to na mobilkach zły pomysł

Inne teksty związane z epidemią koronawirusa

[13.03.2020] o projekcie „Stop the pandemic” i tym, że jego autorzy prosili o znacznie więcej danych niż powinni
[20.03.2020] w którym zaglądam do środka aplikacji „Kwarantanna Domowa” i opisuję, co znalazłem w środku
[29.03.2020] w którym opisuję dlaczego smartfony nie bardzo nadają się do śledzenia interakcji między ludźmi
[03.04.2020] w którym piszę o zapowiadanej przez Ministerstwo Cyfryzacji apce „ProteGO” i o tym, że nie zadziała ona zgodnie z oczekiwaniami
[21.04.2020] w którym piszę o protokole Contact Tracing autorstwa Apple+Google i projekcie OpenTrace
[26.04.2020] w którym opowiadam, jak można sprawdzić, co robi aplikacja mobilna i dlaczego otwarte źródła to nie wszystko
[29.04.2020] w którym mając umowę szacuję koszty napisania od zera aplikacji Kwarantanna Domowa
[09.05.2020] w którym pokazuję, jak sprawdzić zawartość komunikatów wysyłanych w eter przez ProteGO Safe
[04.06.2020] w którym opisuję kontrowersyjną architekturę aplikacji ProteGO Safe 4.1.0-rc.1
[16.07.2020] w którym pokazuję, że aplikacja ProteGO nie działa
[31.08.2020] w którym podaję statystyki ProteGO Safe u progu nowego roku szkolnego
[27.10.2020] w którym podaję statystyki STOP COVID (dawniej ProteGo Safe) przed Wszystkich Świętych

Symulowanie pozycji

Symulowanie lokalizacji innej niż rzeczywista jest na Androidzie wyjątkowo łatwe – aktywujemy w ustawieniach opcje programisty, instalujemy aplikację symulującą GPS, ustawiamy ją jako źródło lokalizacji i… gotowe. Od tej pory wszystkie inne aplikacje będą przekonane, że jesteśmy w zupełnie innym miejscu, niż naprawdę jesteśmy. Cały proces zajmuje minutę. Czy dzięki tej opcji osoby poddane kwarantannie mogą bezkarnie wyjść na spacer a w aplikacji „Kwarantanna domowa” raportować siedzenie w domu?

Odpowiedź na to pytanie nie była oczywista, bo aplikację mogą aktywować tylko ci, którzy dowiadując się o obowiązku kwarantanny przekazali władzom swój numer telefonu. Zdecydowałem się więc na analizę statyczną polegającą na zajrzeniu do środka aplikacji i poznania zasad jej działania “na sucho”. Tu pierwsze zaskoczenie – dlaczego tak prosta aplikacja waży aż 86 megabajtów? Okazuje się, że jest napisana w środowisku Xamarin, w którym biblioteki integrujące .NET z platformami mobilnymi nieco rozdymają rozmiar każdej aplikacji.

Trudno robić z tego zarzut, bo Xamarin pozwala na tworzenie wieloplatformowych aplikacji mobilnych, wrzucanych potem jednocześnie do sklepów z Androida i iOS. W przypadku prostych aplikacji, jak “Kwarantanna domowa”, może to oznaczać mniejszy nakład pracy i krótszy czas tworzenia apki.

Po rozpakowaniu paczki z aplikacją w pierwszej kolejności zajrzałem do komunikatów tekstowych, które są prezentowane użytkownikowi na ekranie. Prawie natychmiast znalazłem pozycje

XML

oraz

XML

To dowodzi, że potencjalny problem z fałszywą lokalizacją został dostrzeżony i aplikacja podejmuje akcje zapobiegawcze. Sprawdziłem jeszcze, że wykrywanie aplikacji pozorujących położenie jest przeprowadzane poprzez sprawdzenie uprawnień innych programów zaś część serwerowa przechowuje listę aplikacji dozwolonych, które nie wzbudzą alarmu (np. nawigacja TomTom, która też dysponuje tym uprawnieniem).

Tym samym więc możemy czuć się spokojniej – aplikacja “Kwarantanna domowa” nie da się oszukać za pomocą symulowanej lokalizacji urządzenia.

Tempo wydania apki

Aplikacja została wydana kilkanaście dni od wdrożenia procedury kwarantanny domowej skierowanej przeciwko koronawirusowi – jest to dla administracji publicznej tempo iście kosmiczne. Jak to możliwe?

Po zajrzeniu do środka aplikacji pojawiły się dodatkowe pytania – po co tej aplikacji biblioteka do rozpoznawania obrazu? Dlaczego w zasobach graficznych znajdziemy clowna, goryla, diabełka, oraz bony do Leclerca?

Dlaczego w aplikacji wydanej przez ministerstwo mamy zintegrowane biblioteki Facebooka i odtwarzacz multimediów? Dlaczego w zasobach tekstowych odnajdujemy komunikaty

XML
XML

czy szczególnie zabawny

XML

Odpowiedzi na te wszystkie pytania są wyjątkowo proste – otóż aplikacja “Kwarantanna domowa” jest przemalowaną apką “Kantar GO” i nikt nie stara się tego ukryć – w innych napisach pojawiają się namiary na firmy TakeTask SA oraz Kantar Polska SA. Aplikacja “Kantar GO” to część platformy panelowej, w której funkcjach zawiera się wykonywanie zdjęć w ściśle określonych miejscach – przerobienie tej funkcjonalności na potrzeby dozoru osób poddanych kwarantannie było więc proste i szybkie.

Ponownie – nie robię zarzutów z powyższej obserwacji. Przygotowanie podobnego projektu od zera zabrałoby niemal na pewno więcej czasu, niż adaptacja istniejącej apki. Należy się tylko zastanowić, czy pośpiech nie był zbyt duży – obecność bibliotek Facebooka w aplikacji wydanej przez rząd jest jednak mocnym zgrzytem.

Pytania

(edycja 31.03.2020) Do Ministerstwa Cyfryzacji wysłałem następujące pytania (pogrubione), odpowiedzi są umieszczone pod pytaniami:

  1. W jaki sposób dokonano wyboru podmiotu realizującego aplikację “Kwarantanna domowa”?
    Zamówienie otrzymała spółka TakeTask S.A. Ministerstwo Cyfryzacji współpracuje z TakeTask S.A. na postawie umowy zawartej w oparciu o ustawę o szczególnych rozwiązaniach związanych z zapobieganiem, przeciwdziałaniem i zwalczaniem COVID-19, innych chorób zakaźnych oraz wywołanych nimi sytuacji kryzysowych (Art. 6 ustawy z dnia 2 marca 2020 r., Dz.U.2020 poz. 374)
    Wybierając podmiot, Ministerstwo kierowało się dojrzałością rozwiązania, terminem możliwej implementacji oraz łatwością adaptacji do potrzeb przedsięwzięcia.

  2. Ile wynosi łączny koszt przygotowania i utrzymania aplikacji “Kwarantanna domowa”?
    Przewidziane wynagrodzenie to 2.700.000 zł, w tym 200.000 zł na wynagrodzenie za usługi dodatkowe.
  3. Czy Ministerstwo jako wydawca aplikacji jest świadome, że aplikacja “Kwarantanna domowa” powstała jako modyfikacja aplikacji “Kantar GO” i zawiera wewnątrz liczne komponenty nie powiązane z funkcją przeprowadzania kwarantanny?
    Aplikacja jest rozwiązaniem uniwersalnym, w nowej wersji program został oczyszczony z komunikatów używanych w innych wersjach programu. (Na dzień 30 marca 2020 r. dostępna jest wersja 1.38.10)
  4. Czy aplikacja “Kwarantanna domowa” komunikuje się w jakikolwiek sposób z infrastrukturą Facebooka? Biblioteki tego serwisu są zintegrowane z aplikacją mobilną.
    Aplikacja nie korzysta z biblioteki Facebooka (kod używany do obsługi aplikacji nie odwołuje się do wspomnianej biblioteki). Program nie łączy się z żadną platformą społecznościową.
    Nadmiarowy kod został usunięty wraz z jedną z ostatnich aktualizacji aplikacji.

Dodano 30.03.2020: niestety, przez tydzień ministerstwo nie odpowiedziało na powyższe pytania, tymczasem aplikacja „Kwarantanna domowa” już za kilka dni może być obowiązkowa. Więcej na ten temat w kolejnym tekście.

Dodano 31.03.2020: dziś dostałem odpowiedź z ministerstwa, do pytań z powyższego akapitu wstawiłem odpowiedzi.

Dodano 02.04.2020: do Ministerstwa Cyfryzacji wysłałem prośbę o udostępnienie umowy ze spółką TakeTask, w szczególności o rozpisanie kosztu 2.5 mln zł na części składowe. Gdy otrzymam odpowiedź, będzie ona tematem osobnego wpisu.

Dodano 14.04.2020: Ministerstwo Cyfryzacji poinformowało, że odpowiedź zostanie udzielona do 11 maja. Powodu opóźnienia nie podano, choć ustawa nakłada taki obowiązek. Wysłałem pytanie o powód.

Dodano 30.04.2020: otrzymałem kopię umowy na wykonanie aplikacji Kwarantanna domowa, publikuję ją w osobnym tekście.

Inne teksty związane z epidemią koronawirusa

[13.03.2020] o projekcie „Stop the pandemic” i tym, że jego autorzy prosili o znacznie więcej danych niż powinni
[20.03.2020] w którym zaglądam do środka aplikacji „Kwarantanna Domowa” i opisuję, co znalazłem w środku
[29.03.2020] w którym opisuję dlaczego smartfony nie bardzo nadają się do śledzenia interakcji między ludźmi
[03.04.2020] w którym piszę o zapowiadanej przez Ministerstwo Cyfryzacji apce „ProteGO” i o tym, że nie zadziała ona zgodnie z oczekiwaniami
[21.04.2020] w którym piszę o protokole Contact Tracing autorstwa Apple+Google i projekcie OpenTrace
[26.04.2020] w którym opowiadam, jak można sprawdzić, co robi aplikacja mobilna i dlaczego otwarte źródła to nie wszystko
[29.04.2020] w którym mając umowę szacuję koszty napisania od zera aplikacji Kwarantanna Domowa
[09.05.2020] w którym pokazuję, jak sprawdzić zawartość komunikatów wysyłanych w eter przez ProteGO Safe
[04.06.2020] w którym opisuję kontrowersyjną architekturę aplikacji ProteGO Safe 4.1.0-rc.1
[16.07.2020] w którym pokazuję, że aplikacja ProteGO nie działa
[31.08.2020] w którym podaję statystyki ProteGO Safe u progu nowego roku szkolnego
[27.10.2020] w którym podaję statystyki STOP COVID (dawniej ProteGo Safe) przed Wszystkich Świętych



O autorze: zawodowy programista od 2003 roku, pasjonat bezpieczeństwa informatycznego. Rozwijał systemy finansowe dla NBP, tworzył i weryfikował zabezpieczenia bankowych aplikacji mobilnych, brał udział w pracach nad grą Angry Birds i wyszukiwarką internetową Microsoft Bing.

41 odpowiedzi na “Aplikacja “Kwarantanna domowa” czyli jak szybko wydać aplikację gdy jest się rządem”

Ciekawi mnie jak rozwiązano kwestię pozorowania położenia w iOS. Tutaj nie trzeba instalować żadnych aplikacji – wystarczy podłączyć telefon do komputera z zainstalowanym Xcode i po prostu wybrać lokalizację, w której ma się znaleźć telefon.

W emulatorze możesz swobodnie przestawiać symulowaną pozycję. Jeśli jednak ktoś umie zainstalować apkę w emulatorze i poprawnie ją zainicjować, to prawdopodobnie umiałby też zrobić MitM.

Im mniej takich tekstów, tym lepiej dla nas wszystkich. To tylko sugestia w którym kierunku szukać luki.

Panowie zapominacie chyba, że to apka głównie dla Januszy i Grażynek na kwarantannie.
Nikt kto ledwo ogarnia klikanie w telefon nie będzie instalował emulatorów, bo sobie z tym po prostu nie poradzi.

A kogo to obchodzi że apka jest przeróbka innej w takiej sytuacji jak mamy obecnie. Ważne że działa i spełnia swoje funkcje. A doszukiwanie się luk i pokazywanie ich jest obecnie mocno nie etyczne

Im więcej wpisów tym lepiej, bo może ktoś zobaczy, że bzdura, że na tysiąc sposobów można wykiwać taką kontrolę i swobodnie poruszać się po całym mieście, a jej wprowadzenie i oparcie się na takim śmiesznym rozwiązaniu dopiero może narobić szkody.

Ci którzy są wstanie zhakować tą aplikację nie będą tego robić bo to ludzie na tyle inteligentni by zrozumieć zasadność izolacji. A co którzy nie są w stanie tego pojąć na pewno sami jej nie obejdą.

Kilka rzeczy:
– mówimy o grupie osób, która nie potrafi zrozumieć zasadności kwarantanny, a co dopiero gdyby miała hackować apkę od kwarantanny ryzykując 30 tys. kary w przypadku wyrywkowej kontrolę policji,
– nie ma żadnych podstaw prawnych, żeby ministerstwo miało podać autorowi odpowiedź na jego pytania (jest luka w zamówieniach publicznych zwalniająca z przetargów w przypadku wyższej konieczności – epidemie, stany nadzwyczajne, etc.)
– artykuły, jak mogą czynić więcej złego, niż dobrego, pokazując ludziom niewtajemniczonym możliwe luki w bezpieczeństwie aplikacji, sposoby obejścia kwarantanny.

Gdyby autorowi zależało faktycznie na dobrze społecznym powinien wysłać swoje znalezisko do autora aplikacji, a dopiero po załataniu luk opublikować artykuł, zamiast żerować na poczytności tematu.

Wybaczcie emocjonalny ton, nie chcę nikomu niczego zarzucać, a po prostu zwrócić uwagę na bezzasadność tego artykułu.

Apka niestety nie przetestowana/ekran logowania pisany niedbale. Po pierwszym uruchomieniu udało mi się ja wywalić – źle obsłużone activity.

Janek, dlaczego piszesz „nie chcę nikomu niczego zarzucać” na zakończenie tekstu, w którym zarzucasz ludziom całą masę rzeczy? Powinieneś parę rzeczy przemyśleć. Na przykład: ta aplikacja to malware dający dostęp do wszystkich danych telefonu, kontrolujący mikrofon i kamerę. Nie uważasz, że to to lekka przesada w sytuacji, w której chodzi tylko o lokalizację danej osoby? Nie uważasz, że to bardzo niebezpieczny przypadek naruszania praw człowieka i naszym obowiązkiem jest bronienie się przed nim? Jakim prawem piszesz „mówimy o grupie osób, która nie potrafi zrozumieć zasadności kwarantanny…”? Ja na przykład nie potrafię zrozumieć jej zasadności, a jestem wykładowcą mikrobiologii. Długo można tłumaczyć, dlaczego kwarantanna w wydaniu polskiego rządu nie ma sensu, ale chociaż parę faktów: objęte są nią osoby wracające z innych krajów, w większości takich, w których obecności tego wirusa nie stwierdzono. Dlaczego więc obejmuje się kwarantanną tych ludzi, a nie wszystkich Polaków oprócz nich, skoro w Polsce wirus jest? Te osoby z lotniska mogą jechać przez całą Polskę pociągami, autobusami itd. Gdyby naprawdę mogły być zarażone, i gdyby ten wirus był naprawdę groźny, byłoby źle (ale nie jest – na powikłania po grypie cały czas umiera wielokrotnie więcej ludzi, tylko się nie nagłaśnia każdego przypadku). Kwarantannę odbywa się w jednym mieszkaniu z rodziną, która może chodzić po całym świecie. I tak dalej. Ta aplikacja jest więc WYŁĄCZNIE próbą na przyszłość: ile wytrzymają obywatele. Ja odbyłem kwarantannę. Uczciwie, mimo, że uważam ją za absurdalną. Ale uważam, że przymus instalowania malware na prywatnych urządzeniach, pod karą więzienia, jest zbrodniczy.

Po jaką cholerę hakować i oszukiwać aplikację ?????
Czy nie łatwiej zostawić telefon w domu i sobie wyjść na spacer???
Przecież nie o to chodzi!!!
Chodzi o to aby POZOSTAĆ W DOMU !!!!

Z tego co wiem, raz że appka sprawdza lokalizacje, a dwa, że losowo (pod względem czasowym) każe userowi zrobić selficzka w domu, z bodaj 3min timerem, jak ktoś nie dostarczy w/w selficzka może się spodziewać rychłej wizyty patrolu :).

Powinni z rozpędu dalej przerobić – pokaż czym palisz w piecu.
Co raz są wyniki wiążące stan płuc z podatnością na tego wirusa a jakoś rząd nic nie robi mimo, że w tych okolicznościach miałby łatwiej zlikwidować możliwość pouczenia, podnieść nawet 20x obecnie śmieszne kary i w wypadku recydywy konfiskować piece za palenie śmieciami. Ba, niewykluczone że to nawet więcej ludzi by uratowało niż zacieśnianie kwarantanny.

PS: zaś co do FB – czy widział ktoś w jakimkolwiek BIPie informację w wyborze portalu na którym samorządy/instytucje będą miały swój profil?

Szanowny Autorze, mam nadzieję że pisząc o sobie to: „pasjonat bezpieczeństwa informatycznego. Rozwijał systemy finansowe dla NBP, tworzył i weryfikował zabezpieczenia bankowych aplikacji mobilnych”
zdajesz sobie sprawę, że pierwszą rzeczą jaką zrobi zawodowiec zainteresowany kodami NBP będzie bezpardonowy włam na Twoje sprzęty.
Prawdziwy pasjonat bezpieczeństwa NIE UJAWNIA się w ten sposób podając listę swoich klientów.
Pozdrawiam, Veder

Hahahaha. Jasne. Do Michała Zalewskiego też zaraz wszyscy się bezpardonowo włamywali bo chcieli „kody googla”. 😀 Oczywiście, że bezpieczniki podają kogo zabezpieczali. Obejrzyj sobie DOWOLNY wykład z BlackHata, Defconu albo CCC i zobacz jak się bezpiecznicy przedstawiają przed prezentacją. ;P Gno wiesz o branży i tyle.

Fajna analiza, ale współczuję Ci komentarzy. Ludzie, opanujcie się. Ktokolwiek będzie zainteresowany sprawdzeniem aplikacji zrobi to samodzielnie. To bardzo dobrze, że ktoś to robi na forum, bo wiemy na co poszły publiczne pieniądze. Ktoś o złych zamiarach przeczyta aplikacje dużo bardziej dokładnie i nie udostępni informacji innym.

polecam zobaczyć kto jest producentem tej apki (firma) a potem spojrzeć na rejestr.io jaki tam piękny pajączek lub raczej węzeł kilkudziesięciu spółek/spółeczek, co ciekawe głównie z tymi samymi osobami 🙂

Moja wątpliwość jest taka, że w domu GPS niekoniecznie musi działać i co wtedy? Albo GPS może podać pozycję 1 kilometr dalej. Po drugie, taką aplikację pozorującą lokalizację mogę sobie sam napisać i serwer nie będzie jej znać. No ale to drugie to akurat nie obowiązuje w przypadku normalnego człowieka, chociaż niekoniecznie serwer ministerstwa ma w bazie wszystkie takie aplikacje.

Kochani „mędrcy” od wszystkiego. To apka dla tych którzy chcą pomóc Państwu naszemu i jego służbom w tych ciężkich czasach, by nie marnowało zasobów i sił na tych, którzy wiedzą dlaczego muszą siedzieć w domach, by chronić ŻYCIE innych. Czy apka zrobi fotkę, czy dopisze do niej lokalizację nie ma znaczenia, znaczenie ma życie tych którzy z tym wirusem pot. nie mają szans, a jak widać po vice ministrze środowiska nawet 37 lat nie daje nieśmiertelności, tlen musiał dostać. Dajmy, siedząc w domach i nie absorbując policji, czas służbie zdrowia by w następnych tygodniach nadal były wolne respiratory i tlen dla naszych bliskich lub nas samych. Autor mógł sobie darować swoje 5 minut sławy i zwrócić się wpierw do ministerstwa i producenta, a artykuł napisać w czasie przeszłym z dopiskiem „dzięki mnie apkę poprawiono”. A do marudów: czy odinstalowując po kwarantannie apkę nie skończy się jej inwigilacja?

Odinstalowałam apkę bo policjanci powiedzieli, że i tak muszą codziennie mnie sprawdzać, więc nie widzę sensu w tworzeniu bazy moich zdjęć. Tymczasem 2 dni po odinstalowaniu aplikacji wciąż dostaję SMSy z powiadomieniami o kolejnych zadaniach w aplikacji. *W samej aplikacji nie było żadnej możliwości by się wylogować lub usunąć swój profil.

Oparcie kontroli na tej aplikacji to tak jakby wydać wszystkim objętym kwarantanną przepustkę do swobodnego wychodzenia z domu. Prowadzący kontrolę będą mieli „dobre samopoczucie” (a przede wszystkim mylne), że delikwent rzekomo siedzi w domu, gdy tymczasem będzie on hulał po mieście. Przerażające – przecież, niestety jak nieodpowiedzialnych durniów nie brakuje.

Jeśli to ten sam Kantar co robi sontaże wyborcze to mamy niezłą zagwozdkę moralną czy powinny być im udzielane zlecenia publiczne bez przetargu…

Teoretycznie tak, ale równie prosto można to obejść, więc o kant zadu całe to sprawdzanie.

Jeśli kogoś szokuje 2.7 miliona, to weźcie pod uwagę, że pewnie w tej kwocie jest nie tylko dostosowanie appki, opublikowanie i jakaś gwarancja (poprawki itp), ale pewnie też jest to kwota zamknięta, ustalona z góry na bliżej nie wiadomo jak długi okres utrzymywania jej w ruchu, i pewnie z otwartą opcją „nie wiemy co będziemy potrzebować w tej appce za miesiąc, ale i tak to musicie nam to wtedy wykonać ASAP”. A przynajmniej taką mam nadzieję, że tak to wygląda i że z tego powodu jest taka kwota, a nie że to krewny/znajomy królika dostał zlecenie (–‚)

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *