09.12.2017 | 13:28

Adam Haertle

Billon czyli kilka słów o standardach jakości i bezpieczeństwa aplikacji mobilnych

Kiedy ostatnio sprawdzaliśmy, ciągle mieliśmy XXI wiek, dojrzałe standardy bezpieczeństwa w sektorze finansowym, doświadczonych twórców aplikacji, testy i audyty bezpieczeństwa. Najwyraźniej jednak nie wszędzie.

Pamiętacie Tomka Zielińskiego, który rok temu opublikował bardzo ciekawy raport na temat bezpieczeństwa aplikacji mobilnych polskich banków? Wgryzł się wtedy solidnie w kilkanaście aplikacji i znalazł w nich czasem bardzo ciekawe kwiatki. Tym razem wzrok Tomka spoczął na aplikacji polskiego startupu o nazwie Billon – a to oznacza, że będzie trochę strasznie, trochę śmiesznie, a na pewno ciekawie.

Co to takiego

Billon to, jak sami opisują jego twórcy:

zupełnie nowy sposób na operowanie pieniędzmi w internecie. Dzięki niemu możesz przesyłać i odbierać pieniądze w czasie rzeczywistym, gdzie i kiedy zechcesz!

A także, na innej stronie Billona (bo jest ich sporo):

Billon zmienia technologiczne podstawy funkcjonowania pieniędzy i sposobu, w jaki krążą po świecie. Stworzyliśmy rewolucyjny system natychmiastowych płatności oparty na rozproszonej księdze głównej. Nasza technologia wspiera waluty narodowe, jest zgodna z regulacjami finansowymi i znosi bariery czasu i odległości. To technologia, która zaspokaja ludzkie potrzeby w epoce cyfrowej.

Za Billonem stoją sławy polskiego biznesu i finansów, a także miliony złotych finansowania (w tym z kieszeni podatników). Jak zauważył Tomek, w jednym z materiałów prasowych można też wyczytać, że:

technologia jest naprawdę bezpieczna. Nie do złamania. […] koszt shakowania czegokolwiek w Billonie jest tak gigantyczny, że nikomu by się to nie opłacało.

Tomek najwyraźniej nie zwraca jednak uwagi na opłacalność swoich badań, bo zabrał się do analizy. Gorąco polecamy lekturę oryginalnego tekstu Tomka oraz odpowiedzi twórców aplikacji na jego pytania.

Co znalazł Tomek

Aby zachęcić Was do lektury całości wstępnego raportu Tomka, poniżej kilka z jego znalezisk dotyczących aplikacji Billon i jej funkcjonowania:

  • z nieujawnionego powodu twórcy porzucili pierwszą wersję aplikacji w sklepie Androida i uruchomili nową, wymuszając na klientach migrację zamiast zwykłej aktualizacji,
  • aplikacja korzysta zarówno z protokołu UDP jak i niestandardowych portów, powodując, że z wielu miejscach jej ruch może być blokowany,
  • aplikacja zrzuca do logów mnóstwo komunikatów pozostałych z wersji deweloperskiej, łącznie z uwagami typu „TODO”,
  • część komunikacji transakcyjnej odbywa się gołym HTTP,
  • na urządzeniu Tomka pojawiły się znienacka dane innego użytkownika Billona (adres email oraz hash hasła),
  • w aplikacji jest wiele śladów funkcji, które zostały wycofane lub nigdy się nie pojawiły,
  • w aplikacji pozostawiono funkcje deweloperskie,
  • proces odzyskiwania hasła obejmuje dwa sekrety – ciągi znaków, przychodzące w dwóch osobnych emailach na to samo konto,
  • dane aplikacji szyfrowane są statycznym, symetrycznym kluczem zaszytym w kodzie,
  • aplikacja rzekomo ma certyfikaty „placówek naukowych specjalizujących się w dziedzinie kryptografii”, lecz jej twórcy odmawiają ich pokazania.

Reakcja producenta

Tomek wysłał do firmy stojącej za Billonem wiele pytań – i otrzymał na nie odpowiedzi, które przedstawił w drugiej części artykułu. Wobec dociekliwości Tomka twórcy nieco zmienili retorykę i platforma z jednej strony opisywana jako wiele lat do przodu względem blockchaina, na którym bazuje bitcoin oraz nie do złamania, okazała się być

wdrożeniem pilotażowym, którego zadanie stanowi weryfikacja technologii oraz weryfikacja business planów i przypadków użycia.

Na koniec zacytujemy jeszcze Tomka, który bardzo był zainteresowany brakiem możliwości „shakowania” (tak, wiemy, że pisze się „zhakowania”, cytujemy oryginał) blockchaina:

Twórcy utrzymują, że użycie blockchaina czyni ich rozwiązanie tak odpornym, że koszty jego naruszenia byłyby gigantyczne. Jest to zapewne prawda, gdy mówimy o sfałszowaniu cyfrowych podpisów składanych pod transakcjami albo plikami z elektronicznym pieniądzem. Skoro jednak w Billonie istnieje funkcja resetu hasła a po resecie hasła mamy dostęp do pieniędzy zgromadzonych w sejfie, spenetrowanie infrastruktury backendowej Billona może się zakończyć opróżnieniem sejfów wszystkich użytkowników.

Tomkowi gratulujemy wnikliwości, Billonowi życzymy sukcesu i szybkiego poprawienia błędów i niedociągnięć, które nie przystoją dzisiaj żadnej aplikacji, o finansowej nie wspominając.

Aktualizacja 2017-12-12

Otrzymaliśmy właśnie informację od Billona, którą zamieszczamy poniżej:

Dzień dobry,

W odpowiedzi na artykuł „Billon, czyli kilka słów o standardach jakości i bezpieczeństwa aplikacji mobilnych” (https://zaufanatrzeciastrona.pl/post/billon-czyli-kilka-slow-o-standardach-jakosci-i-bezpieczenstwa-aplikacji-mobilnych/) chciałbym podziękować za udostępnienie wnikliwej analizy naszej technologii. Poniżej przesyłamy kilka ważnych informacji uzupełniających artykuł:

  • Wdrożenie aplikacji Billon jest w fazie pilotażu, który ma na celu przetestowanie samego modelu biznesowego. Dowodzi tego wąska sieć akceptacji, ograniczona do jednego sektora rynku – youtuberów, merchantów, streamerów oraz wybranych klientów korporacyjnych. Jesteśmy w trakcie wdrażania nowej strategii komunikacyjnej firmy, która podkreśli powyższy fakt.
  • Jesteśmy świadomi wymienionych w materiale błędów. Niezależnie od artykułu przeprowadzony został audyt bezpieczeństwa, którego autorem była firma SecuRing. Raport z audytu opisuje błędy wpływające na bezpieczeństwo systemu, także te wymienione w artykule.
  • Pragniemy podkreślić, że żadna przedstawiona luka nie jest krytyczna i nie naraża użytkownika na niebezpieczeństwo utraty środków.
  • W wyniku przeprowadzonego audytu jeszcze w tym roku planujemy aktualizację aplikacji, która wyeliminuje dostrzeżone błędy, także te wspomniane w Państwa artykule.

Lokowanie produktu

Jak widać audyt aplikacji mobilnej warto zlecić Tomkowi, jeśli z kolei chcecie, by błędów, które znajdzie Tomek, było mniej, wyślijcie swoich deweloperów na nasze szkolenie z bezpieczeństwa aplikacji mobilnych – w marcu 2018 w Warszawie.

Bezpieczeństwo aplikacji mobilnych - atak i obrona

Warsaw-center-free-license-CC0
Warszawa, 26 – 27 marca 2018

Czas trwania: 2 dni (15h), Prowadzący: Adam z z3s, Mateusz Kocielski
Liczba uczestników: maksymalnie 12 osób, cena: 2600 PLN netto

Szczegółowy opis szkolenia
Powrót

Komentarze

  • 2017.12.09 14:14 Igor

    Czy dobrze rozumiem, że Tomek przed rozpoczęciem swoich testów musiał poprosić twórców Billona o zgodę na te testy?

    Odpowiedz
    • 2017.12.09 17:02 Tomek

      Ustawa o prawie autorskim i prawach pokrewnych, Art. 75. ust 2) „Nie wymaga zezwolenia uprawnionego: […] obserwowanie, badanie i testowanie funkcjonowania programu komputerowego w celu poznania jego idei i zasad przez osobę posiadającą prawo korzystania z egzemplarza programu komputerowego, jeżeli, będąc do tych czynności upoważniona, dokonuje ona tego w trakcie wprowadzania, wyświetlania, stosowania, przekazywania lub przechowywania programu komputerowego”

      Odpowiedz
      • 2017.12.09 19:24 Igor

        Z drugiej strony jest Art. 267 Kodeksu Karnego:
        §1. Kto bez uprawnienia uzyskuje dostęp do informacji dla niego nieprzeznaczonej, otwierając zamknięte pismo, podłączając się do sieci telekomunikacyjnej lub przełamując albo omijając elektroniczne, magnetyczne, informatyczne lub inne szczególne jej zabezpieczenie, podlega grzywnie, karze ograniczenia wolności albo pozbawienia wolności do lat 2.
        Poza tym, wyciągnięte informacje mogą też w jakiś sposób łamać słynny Art. 269b. Ale ja nie jestem prawnikiem i się zupełnie nie znam, nie wiem gdzie leży granica – stąd komentarz.

        Odpowiedz
        • 2017.12.09 22:27 Tomek

          Do jakich informacji nie byłem uprawniony?

          Odpowiedz
          • 2017.12.10 09:24 Igor

            O to właśnie pytam w komentarzu.
            Poza tym, jestem pełen podziwu dla wykonanej pracy ;)

        • 2017.12.11 15:09 wk

          @Igor

          1) Zacytowałeś Art 267a §1. Zauważ, że Autor analizował to co miał bezpośrednio dostępne. Nie nastąpiło przełamanie ani ominięcie żadnego zabezpieczenia, otwarcie zamkniętego pisma itp. i uzyskanie tą drogą nieuprawnionej informacji. Nie wystąpił więc W OGÓLE czyn wymieniony w tym paragrafie.

          2) Jeśli weźmiemy na warsztat Art. 267a §2: „Tej samej karze podlega, kto bez uprawnienia uzyskuje dostęp do całości lub części systemu informatycznego.”, to ten jest nieco bliższy tematowi, bo dotyczący niejako uzyskania dostępu do konkretnego wdrożenia. Ale opisywane testy nie wymagały uzyskania nieuprawnionego dostępu. Wymagały zainstalowania sobie aplikacji (testowanego produktu) i założenia z jej poziomu konta użytkownika, po czym używania tej aplikacji i notowania obserwacji. Jeśli aplikacja nie jest przeznaczona do używania, po co znalazłaby się w Google Play?

          3) Nie rozumiem, w jaki sposób wspomniany przez Ciebie „słynny Art. 269b” miałby być związany ze sprawą. Dotyczy on, przypominam: wytwarzania, pozyskiwania, zbywania lub udostępniania innym osobom urządzeń lub programów komputerowych, a także haseł komputerowych, kodów dostępu, lub innych danych, umożliwiających nieuprawniony dostęp do informacji przechowywanych w systemie informatycznym, systemie teleinformatycznym lub sieci teleinformatycznej. I na dodatek zawiera § 1a, umożliwiający pracę administratorom systemów: „Nie popełnia przestępstwa określonego w § 1, kto działa wyłącznie w celu zabezpieczenia systemu informatycznego, systemu teleinformatycznego lub sieci teleinformatycznej przed popełnieniem przestępstwa wymienionego w tym przepisie albo opracowania metody takiego zabezpieczenia”.

          4) Gdyby nawet ktoś niezgodnie z przedstawionymi faktami zarzucił uzyskanie nieuprawnionego dostępu, to jest jeszcze Art. 269c. „[Kontratyp działania w celu wykrycia błędów w zabezpieczeniach systemów informatycznych]

          Nie podlega karze za przestępstwo określone w art. 267 § 2 lub art. 269a, kto działa wyłącznie w celu zabezpieczenia systemu informatycznego, systemu teleinformatycznego lub sieci teleinformatycznej albo opracowania metody takiego zabezpieczenia i niezwłocznie powiadomił dysponenta tego systemu lub sieci o ujawnionych zagrożeniach, a jego działanie nie naruszyło interesu publicznego lub prywatnego i nie wyrządziło szkody.”

          Zachęcam do czytania ustaw, a nie plotek o ustawach. Będzie mniej nieporozumień.

          Tekst ujednolicony aktualnej na dzień dzisiejszy (11 grudnia 2017) wersji Kodeksu Karnego można znaleźć np. tu http://www.lex.pl/akt-prawny/-/akt/dz-u-2017-2204-t-j-

          Odpowiedz
      • 2017.12.10 08:11 Artur

        Po trzecie. Co ominął i „łamał”? Nie potrzebował żadnych specjalnych dostepów. Odwiedzał tylko ogólno dostępne adresy oraz dokładnie logował i zapisywał zdarzenia wykonywane na jego własnym sprzęcie i te które na nim wykonywała aplikacja :)

        Odpowiedz
    • 2017.12.10 23:54 Ahsoka

      Od kiedy mówi się szyfrowanie kluczem zaszytym w kodzie? to się nazywa KODOWANIE algorytmem (np. AES) z kluczem zapisanym w kodzie programu. Aby mówić o szyfrowaniu – musi być jakiś sekret.

      Odpowiedz
  • 2017.12.09 21:20 wer

    press.billongroup.com ma błędny certyfikat więc się nie da wejść najnowszym FF

    Odpowiedz
    • 2017.12.18 15:50 billon

      Rzeczywiście mieliśmy taki problem. Firma, z której usług korzysta Billon, nie wgrała aktualnego certyfikatu bezpieczeństwa, stąd brak możliwości wejścia na stronę. Sprawa już załatwiona.

      Odpowiedz
  • 2017.12.09 21:29 kaper

    hxxs://frodo.billon.io/ odpowiada jednym słowem: frodo
    IP tego serwera:
    hxxps://51.254.122.211 używa certyfikatu wystawionego przez Let’s Encrypt dla domeny connect.billion.io, z okresem ważności 2017-11-24 – 2018-02-22.

    hxxp://51.254.122.211 zwraca to, co poniżej:

    LOhJhj2Ys//bFDrNCyL6nS9Qn5HnvGtKgFMFx4xbYhIRZUfNZvDjiBGuGY4lootbHFd3U9wjl8MvHigltPdUDt8SrailS2OnrBi8KLeS1uK/zWhT/tpD4JCCmM6ranOeubIfDHGF72Un3fGlrT4J1n/ERk7E2BBIzJygn0xOZqzWy69Lf9gV0i+9ywRgQjq5zfr1wOic1U3P5BbCjfPE/iVzoJFih0/FpT49OqcLVUc+vwXhWm65O42eONIO5AJHrdOo2CyzhBT1oxrJ7VnIpzokVtwvs1qYvGxhF2xlCSkNyrnWcO7cAdsxtWyFHKYzVSuoPxToLM01J/IVYvHD2pW5mGy7A8+qJO0olGTg9Qr60rh/s8rKf13XNHRvIntHNzXWJBuwOuphNkGpEOXCd0adOveu3GC8q57ODE5SmqF76U61WRiph+bwnAd9H0TWURJjO2CEdoqmDokghLrqO+nnj+mozla2cRfgbXqh8sQAqvZAtQGbRJU/jUXGhgBN/gMWAkgx6eLqktV3MkjyxtQms6SiJ42tjPvaHOQya+VvXLonWlBXJMTEXljuIwr9TU+zSFaAcECZpcf+DLFZ+jXWatkfQASygz6eBjJprU3MnNzUFHnndPM3ejLADJp+YLHHVlKeCl1DxBUVf/gGiW+6tNdE+h8rSNPxGifLwgtF2BdCyEOCRCjWAruKjhBBLFokaaSCHYFkjErUsgBmMICdYpYilnEQlO3r0EAd9+grqeDBJtWGZmxZK6f68UQIY7UrhQWXDGGADwm19sUZs4RLjUBjeVryMGERtjD145szdldO7bULu8o/nE7X0m5llCxdgZqVivh4Iz215HhbgZ6V/AR/W5gs+rir/T2vS5RbPpOYLRyfAdr8u4KfwVRZ54pkYt/rmH8BYwkSZvSlNbSZIuVX/UVO1xOMXHrXi6wNplfgl2TV+C9qyMK5q1VQpmyps3wL1ITf4Q9FdN0ZhlOxiIft0by/4lKiay48vJh4Kmb0c+uaGhHW1ajCIYUL3z+UfylR2NMrzi+WIbw0ff1b0dQqfP9TelzH0QQpaODt7aVrf87+zdSD4rIG1CWG18X3/brNnxaC7Jv1AT1XlTQi1a80o+jB+UXxs8Mch4AVmIgl6x/ilBpkd6kGbWpAn+FG5U3dIbGgfGxIUrEtA2m/ZBAHQUjKxHhV02QmnEGjD6UKs4qwM1l0Y5hgI8xyuB29N6SAGwcDNQ4gBlpPk3rX6kV5KdJlPqT1etxC7d153Sh4zkcpXpPOVSVIfhFzGnP0wPlJuca7nqtdM+il3vQn2+ijLSFwPQSvz6seeFM7AlS80pbYMjZFqZnt+kJNsFYykqlBadyn8YpXbrthyKFAr0gUdjvlTq0siBTdqU8/Fb+hiPCAqgcd

    Odpowiedz
  • 2017.12.10 01:35 Art

    Żeby się nie okazało, że firma przytuliła niezłą kasę – z tego napisali aplikację pod Androida, zarejestrowali parę domen i roztoczyli aurę niesamowitości. A za jakiś czas zwiną interes, bo było zbyt nowocześnie, klienci zawiedli, KNF nie pomógł, Z3S popsuła renomę i ajlawju.

    Odpowiedz
    • 2017.12.10 08:22 Artur

      No wiesz. Z drugiej strony mniej więcej na to właśnie (choć w założeniu z nie tak pesymistycznym końcem) to dofinansowanie dostali. Mają się rozwijać i tyle.

      Odpowiedz
    • 2017.12.12 15:27 K6T

      Czy istnieje jakiś biznes który nie jest obarczony ryzykiem?

      Odpowiedz
  • 2017.12.10 11:01 John Sharkrat

    Gdyby to było coś warte, to już dawno ktoś by to kupił za cenę przy, której ten zmarnowany 1 mln PLN byłby na waciki.

    Ps.
    Ten 1 mln PLN nie starczyłby na miesięczne pensje dla jak to ładnie napisano „sław polskiego biznesu i finansów” czyli osób które są na linkowanej stronie

    Odpowiedz
  • 2017.12.10 19:37 komentator

    TODO;]

    Odpowiedz
  • 2017.12.11 09:15 Henryk Diabelski

    Sami dyrektorzy a robić to nie ma komu /widać po kodzie/

    Odpowiedz
    • 2017.12.11 15:17 wk

      Tak to dokładnie wygląda. Że było komu podpisać się pod sukcesem (produktem), ale już zrobić nie za bardzo xD

      Odpowiedz
  • 2017.12.11 09:16 S.J.

    To teraz trzeba napisać jakieś zaproszenie dla jakichś odpowiednich osób ze stosownych urzędów/instytucji by raczyli sprawdzić, czy nie czas „odtulić” te dofinansowanie – Morawiecki gania ponoć z powodzeniem vacikowców (tzw. nowosłów wymyślony na potrzeby tego komentarza), to może czas wziąć się za np. startupy – hehe.

    Odpowiedz
    • 2017.12.11 16:52 aj

      @s.j. zamordowanie branży paliwowej przez silniejsze kontrole nam nie grozi, ale może lepiej przepuścić dwa przekręty „na startup” niż spowodować, że jeszcze bardziej strach będzie cokolwiek zaczynać, bo jak się urzędy przyczepią….

      Odpowiedz
      • 2017.12.12 08:49 John Sharkrat

        Najlepiej by było gdyby państwo nie zajmowało się czymś o czym nie ma pojęcia, jak np. startupami.
        Dziwne że w USA państwo nie wtrąca się do startupów i dzięki temu mają najwięcej udanych na świecie.
        Dodatkowo o jakości startupów świadczy fakt, że najlepiej rokujące są z miejsca kupowane lub mocno doinwestowywane za udziały w zyskach.
        Gdyby urzędnik miał pojecie o inwestowaniu, to sam by inwestował, a nie siedział za biurkiem.

        Odpowiedz
  • 2017.12.11 14:07 wk

    Czyli typowo; wystarczyło środków na marketing, a nie wystarczyło na porządny projekt, dobre zaprogramowanie i dokładne testy ;)

    Obstawiam, że odpowiedź na pytanie „(…)jakie były przyczyny tak licznych usterek w konsumenckim oprogramowaniu”
    kryje się za słowami „(…)nasza firma pracuje w metodologii agile”.

    Odpowiedz
  • 2017.12.11 15:13 Jacek

    Koniec, końców, czy Tomkowi się te testy opłaciły, skoro koszty miały być tak gigantyczne?

    Odpowiedz
  • 2017.12.11 15:38 dsfgdsfg

    blogpost Tomka to mnóstwo czepiania się o głupoty a zero poważnych podatności, coś między nudnym audytem a nudną recenzją

    Odpowiedz
    • 2017.12.11 16:47 Artur

      A ja powiedziałbym, że to raczej ciekawe pokazanie bałaganu. I to takiego który po prostu przy aplikacji finansowej nie przystoi :)

      Odpowiedz
    • 2017.12.11 20:14 Tomek

      Trochę masz rację, jeśli chodzi o to czepianie. Jak pisałem – sprowokowały mnie przechwałki o tym, jaki ten Billon bezpieczny i jakie lata świetlne do przodu. Pokazałem więc, że jest podatny na włamanie w podobnym stopniu, co systemy scentralizowane a demonstrując serię kompromitujących usterek pokazałem, z jakiej jakości implementacją mamy do czynienia.

      W mojej opinii dwa tematy są grube: przesyłanie danych transakcyjnych nieszyfrowanym HTTP (wielka kompromitacja oraz potencjalne zagrożenie) i przedostanie się danych innego użytkownika na moje urządzenie w sposób wyraźnie poza wiedzą i kontrolą operatora usługi. To są poważne tematy, krzywizny w architekturze są przy nich mniej istotne, choć na końcu składają się w spójny obraz całości.

      Odpowiedz
    • 2017.12.12 00:09 wk

      Paradoks polega na tym, że takie niby „głupoty” całkowicie wystarczą, by uczynić produkt niezdatnym do użytku w zamierzonym zakresie. Przepuszczenie takich błędów stawia pod dużym znakiem zapytania jakość i metody testów wewnętrznych.

      Dla mnie jest to bardzo ciekawy case, pokazujący w jaki sposób szybki rozwój produktu sterowany oczekiwaniami klientów lubi przełożyć się na zbiór niedokończonych funkcjonalności oparty na rozchwianej konstrukcji. Szybkie prototypowanie i poprawianie pod wpływem uwag klientów sprawdza się w tworzeniu interfejsu, ale niezbyt w obszarach security i safety. Tam warto sobie „utrudnić życie” przemyślanymi testami akceptacyjnymi, by szybko wykrywać kluczowe błędy, zanim ukryją się pod kolejnymi warstwami i przybudówkami aplikacji.

      Odpowiedz
  • 2017.12.11 15:49 miki

    Niedawno dostałem zaproszenie na spotkanie o krypto walutach i blockchine. Myślałem że będzie to spotkanie o technicznej stronie takich aplikacji. Niestety… Była to tylko reklama nowej revolucyjnej aplikacji procującej w technologi block chine. Jedyne czego się dowiedziałem to to że potrzebują jeszcze 15 milionów euro żeby zacząć działać, jest to startup a 95% takich firm upada, inwestując w firmę nie staję się współ udziałowcem tylko kupuje ich krypto walutę która może kiedys będzie coś więcej warta. Nie podaje nazwy bo nie chcę robić reklamy.
    Z pytań od widzów dowiedziałem się że ostatnio pojawiło się mnóstwo podobnych firm/aplikacji. Wspólny mainownik to blockchain, aplikacja jeszcze nie działa i 95% z nich upadnie.

    Odpowiedz
  • 2017.12.28 12:04 Billon

    Cześć,

    Dziękujemy za wszystkie uwagi i krytyczną analizę naszej aplikacji. Spieszymy donieść, że jeszcze przed świętami ukazała się jej nowa wersja (3.7.16). Zmiany w nowej wersji obejmują modyfikację polityki szyfrowania informacji zapisywanych w katalogu aplikacji oraz naprawę zgłoszonych błędów. Aplikacja jest dostępna do pobrania pod adresem https://play.google.com/store/apps/details?id=info.billon.billon2

    Odpowiedz

Zostaw odpowiedź do aj

Jeśli chcesz zwrócić uwagę na literówkę lub inny błąd techniczny, zapraszamy do formularza kontaktowego. Reagujemy równie szybko.

Billon czyli kilka słów o standardach jakości i bezpieczeństwa aplikacji mobilnych

Komentarze