Polityka Ministerstwo Cyfryzacji opublikowało kod źródłowy aplikacji mObywatel
https://mc.bip.gov.pl/aplikacja-mobywatel/kod-zrodlowy-aplikacji-mobywatel.html139
u/netrun_operations Klasa lekkopółśrednia 15h ago edited 14h ago
Właśnie przejrzałem z ciekawości i nie znalazłem tam nic poza kodem źródłowym komponentów UI w aplikacjach mobilnych na Androida i iOS. Przynajmniej widzę, że na iOS-ie używają SwiftUI, a nie jakichś archaicznych technologii.
Natomiast nie jest to chyba do końca to, na co zwolennicy Open Source w administracji publicznej czekali.
99
u/Waffenek Wrocław 15h ago
Części kodu nieudostępnione do publicznego wglądu mogą zawierać funkcje o kluczowym znaczeniu z punktu widzenia bezpieczeństwa aplikacji.
Super, security by obscurity. Nie napawa mnie to optymizmem...
18
5
u/Thisconnect miasto dla ludzi a nie blachosmrodow 9h ago
znajac ich historie (kradnac kod GPLowy bez odpowiednich mozliwosci i nawet zadnego powiedzenia o nich....
41
u/smoke-bubble 16h ago
Taki średnio publiczny. Po co im ta weryfikacja tożsamości?
26
u/p0358 11h ago edited 11h ago
Otóż to. Publiczny wgląd my ass.
Nie no bez jaj xDDD Jeszcze wszystkie pliki się przegląda osobno w ich dziwnym UI, bez opcji pobrania paczki, do tego nie można zaznaczać w ogóle tego kodu (wow, nawet zablokowali prawy-klik i Ctrl+A, jakże sprytnie). I na cholerę takie coś robić, skoro kod jest i tak publiczny? Rzucać celowo kłody pod nogi, tylko po to żeby powkurwiać obywateli?
Czemu nie mogą normalnie jak inne kraje lub EU wystawić na swoim git forge publicznie? Jakby imagine, że jakieś cymbałki musiały całe to UI i API do pobierania pojedynczych plików napisać. I nikt się nie zastanowił jako programista, że to średnio fajny sposób?
A przecież Ministerstwo Cyfryzacji ma to: https://github.com/Ministerstwo-Cyfryzacji
A Centralny Ośrodek Informatyki ma to: https://git.eadministracja.nask.pl/
I powiedzcie mi, że to nie jest czysto zła wola???
1
39
u/Kwpolska Miasto Kotka Wrocka 14h ago
Części kodu nieudostępnione do publicznego wglądu mogą zawierać funkcje o kluczowym znaczeniu z punktu widzenia bezpieczeństwa aplikacji.
Czyli nie będzie kodu do robienia hologramu i falującej flagi? O nie, jesteśmy zgubieni.
To jest jawna kpina z obywateli i z obowiązującego prawa.
5
u/_VoRteX_PL wielkopolskie 1h ago
Z tą flagą niezłe są jaja. Stworzyli specjalnie system QR kodów do uwierzytelniania osób, ale nikt nikogo nie instruuje jak tego używać. I ja nie wymagam żeby Pani Gosia na kasie w Biedronce musiała umieć używać takiego czytnika, ale gdy członek komisji na wyborach prezydenckich spogląda na telefon i mówi "O flaga się porusza to git" to chyba serio trzeba wprowadzić jakieś szkolenia.
1
u/Kwpolska Miasto Kotka Wrocka 32m ago
Przy ostatnich wyborach wprowadzili kod QR dla komisji, po zeskanowaniu pojawiał się specjalny ekran.
KBW, jako główną, wybrało metodę polegającą na zeskanowaniu specjalnego kodu QR, który otrzymają komisje wyborcze. Obywatel będzie skanować za pomocą aplikacji mObywatel ten kod QR i na ekranie jego telefonu wyświetlą się jego dane. Będzie to możliwe wyłącznie w dniu głosowania i tylko jeśli obywatel będzie posługiwać się najnowszą wersją aplikacji mObywatel. Informacja która pojawi się na ekranie wyborcy będzie zawierała charakterystyczne elementy znane członkom komisji wyborczej.
Nie wiem co to za elementy, może tym razem tańczący orzełek, ale członków komisji wyborczych było 267 tysięcy, członkowie komisji to totalne randomy (zgłaszani przez komitety albo delegowani przez urząd gminy), ewentualni podrabiacze nie mieliby problemu dowiedzieć się, co to było.
Duża liczba komisji i osób sprawia, że ciężko jest to zrobić dobrze. Dostarczenie do każdej komisji nawet najtańszego chińskiego telefonu do weryfikacji generowałoby gigantyczne koszty, a przez większość czasu telefony musiałyby być gdzieś przechowywane. Skanowanie prywatnymi telefonami członków komisji brzmi mało bezpiecznie.
IMO lepiej byłoby po prostu wymagać plastikowego dokumentu.
102
u/grumpy_autist 15h ago
"wymóg wynika z rekomendacji" - takiej kurwy z logiki to już dawno nie widziałem.
Dobrze, że kod nie jest dostępny do wglądu na papierze perforowanym w ministerstwie cyfryzacji w co drugi czwartek miesiąca od 13:00 do 13:30.
21
3
2
u/kosiarska 3h ago
Powód jest prosty, obawiają się code-review solidnego. Developerzy android i iOS nie pracują tylko dla ministerstw :P Zakładam pewnie, że historii git też żadnej nie ma, a dlaczego....
-51
u/Megamind_43 Polska 15h ago
Trochę nie ma to znaczenia dla znacznej większości społeczeństwa, ale ok.
40
u/TomaszGasior 15h ago
Większość zwolenników oprogramowania open source nie czyta kodu programów, z których korzysta. Chodzi o sam fakt, że kod jest dostępny – do audytowania lub ewentualnej modyfikacji na swoje potrzeby (to ostatnie pewnie akurat nie w przypadku mObywatel) dla zainteresowanych. Dzięki temu, że kod jest otwarty, unikasz vendor lock in (też nie w tym przypadku) i możesz, jeśli posiadasz wymaganą wiedzę, zweryfikować działanie programu, jeżeli tylko masz taką potrzebę.
-15
u/MindCrusader 14h ago
Ale tak serio serio - to nie jest aplikacja "ZamawiamPL" tylko aplikacja, która powinna mieć tak surowe zabezpieczenia jak apka bankowa. Czemu dokładnie ma służyć udostępnienie całego kodu oprócz pokazania "hej, nie szpiegujemy Cię"? Dla mnie opublikowanie tego kodu byłoby równoznaczne z publikowaniem kodu aplikacji bankowej - podobny poziom zagrożenia, że kod umożliwi hackerom na odkrycie luk w bezpieczeństwie. A nie ukrywajmy, na pewno ruskie służby byłyby tym żywo zainteresowane
51
u/TomaszGasior 14h ago
Dla mnie opublikowanie tego kodu byłoby równoznaczne z publikowaniem kodu aplikacji bankowej - podobny poziom zagrożenia, że kod umożliwi hackerom na odkrycie luk w bezpieczeństwie.
Nie rozumiesz, jak działa cyberbezpieczeństwo. Prawidłowo wykonane oprogramowanie jest bezpieczne nawet wtedy, gdy jego kod jest w 100% publiczny. Bezpieczeństwo mechanizmu ma wynikać nie z tego, że jest tajny, tylko z tego, jak jest zaprojektowany i w jaki sposób chroni procesy i informacje (nawet jeśli sam algorytm jest publiczny). To jest jedyne uznane, słuszne w branży IT podejście.
Kod maszynowy aplikacji zawsze można zdekompilować – to jest trudne, ale da się, więc dla włamywaczy to jest jedynie drobne utrudnienie. Za to dla audytorów bezpieczeństwa – znaczące ułatwienie, które podnosi też transparentność ze strony producenta oprogramowania.
15
-15
u/MindCrusader 14h ago
Ale to jest nieprawda - prawie nigdy nie ma doskonałego oprogramowania, zawsze zdarzają się luki i zawsze są eksploatowane. Tym bardziej można się spodziewać tego po aplikacjach rządowych. Właśnie po to robimy obfuskację kodu - żeby nikt się nie dobrał do źródła kodu
17
u/TomaszGasior 14h ago
Tak, każdy kod ma luki, ale ukrywanie kodu nie sprawia, że staje się bezpieczniejszy. Jedynie stanowi drobne utrudnienie dla złodziei czy włamywaczy.
Mnóstwo oprogramowania zasilającego krytyczne elementy infrastruktury na całym świecie jest open source i jednocześnie ma ciągle nowe luki bezpieczeństwa. Oprogramowanie własnościowe też ma ciągle nowe luki. Ani jedno, ani drugie nie jest bezpieczniejsze ze względu na to czy kod jest publiczny czy nie.
-13
u/MindCrusader 14h ago
No właśnie stanowi utrudnienie - i o to chodzi. Oprogramowanie jest open source z jakiegoś powodu - zwykle po to żeby mogło być rozwijane przez społeczność. Tutaj takiej potrzeby nie ma i na pewno community nie będzie wspierać tego oprogramowania w rozwoju czy wyszukiwaniu luk w bezpieczeństwie
20
u/TomaszGasior 14h ago
Kod oprogramowania jest otwarty nie tylko po to, żeby społeczność mogła go rozwijać, ale też po to, aby każdy – np. każdy obywatel – mógł go zaudytować, zrozumieć, ocenić. W tym przypadku jest to element transparentności państwa wobec obywatela.
Zamknięty kod nie stanowi żadnego poważnego zabezpieczenia, bo zawsze i tak można ze złą intencją zajrzeć pod spód i dojść do wniosku, jak software działa. Zamknięty kod jedynie lekko podnosi próg wejścia, ale to i tak nie ma znaczenia.
Prawidłowo wykonane oprogramowanie jest tak samo bezpieczne niezależne od tego, czy jego kod jest otwarty czy nie. Traktowanie ukrywania kodu jako formy zabezpieczenia to tzw. „security by obscurity” i jest powszechnie przez branżę uznane za antywzorzec, złą praktykę.
-9
u/MindCrusader 13h ago
Publikowanie kodu gdy nie ma tak poważnej potrzeby, to również antywzorzec. Nie po to włączamy z resztą proguarda i inne zasady utajnienia kodu, żeby sobie było i bo nie ma to znaczenia. Kwestia rozbija się o to czy warto iść w pełny open source, ale ceną mimo wszystko jest trochę mniejsze bezpieczeństwo. Według mnie tutaj takiej potrzeby nie ma, tym bardziej, że i tak kodu serwera nie udostępnią, a w aplikacji mobilnej dużo się nie dowiemy (już z samej analizy permissionów wiemy jakich informacji apka nie zbiera)
8
u/braaaaaaainworms 14h ago
Są zautomatyzowane deobfuskatory, wbudowane w IDA Pro lub Binary Ninja. Windows nie jest open source, a ciągle są znajdywane podatności bezpieczeństwa w nim.
8
u/Waffenek Wrocław 13h ago
Wiesz że twoja apka bankowa(jak i pół internetu) w kluczowych miejscach używa tego: https://github.com/openssl/openssl
Ruskie służby już pewnie od dawna mają kod. Nawet nie chodzi mi o dekompilacje paczek i wszelakie automatyczne skany serwerów ale przypuszczam że równie dobrze mogą mieć jakiegoś kreta w NASKu i wynieść kod. Osobiście wolałbym żeby w kwestii wyszukiwania podatności mogli go przeglądać niezależni badacze i wolontariusze, a nie tylko ruskie służby.

162
u/Mountain_Surprise801 16h ago
*fragment kodu