Analizujemy opinię CSIRT MON w sprawie publikacji kodu mObywatela

Ministerstwo Cyfryzacji odpowiedziało na wniosek o publikację kodu źródłowego aplikacji mObywatel, informując, że ekspertyzy CSIRTów GOV i NASK zostały uznane za tajemnicę państwową. Ekspertyza Ministerstwa Obrony Narodowej wskazała na korzyści związane z większą jawnością, mimo że istnieją potencjalne ryzyka dotyczące bezpieczeństwa aplikacji.

Pod koniec września wysłałem zapytanie o informację publiczną do Ministerstwa Cyfryzacji, żeby uzyskać skany elektroniczne ekspertyz związanych z ewentualnymi korzyściami i ryzykami dotyczącymi publikacji kodu mObywatela.

Swoją opinię wydały w sumie trzy CSIRTy — MON, GOV oraz NASK. Wszystkie z nich musiały wydać ocenę pozytywną, żeby publikacja kodu mogła dojść do skutku bez jakichkolwiek negatywnych konsekwencji.

Ministerstwo Cyfryzacji poinformowało mnie jednak w swojej odpowiedzi, że ekspertyzy CSIRTów GOV oraz NASK zostały uznane za tajemnicę państwową „wskutek zawartego tam materiału”, więc ostatecznie dostałem kopię ekspertyzy tylko od Ministerstwa Obrony Narodowej.

Opinia zespołu informatyków Ministerstwa Obrony Narodowej, którą publikuję w tym miejscu, sama w sobie nie jest przeciwstawna do ewentualnej publikacji kodu źródłowego mObywatela.

Z tej opinii dowiedziałem się też, że w kodzie źródłowym został zastosowany tzw. „obfuskator” kodu o nazwie ProGuard, który został zastosowany do zaciemnienia (czyli w pewnym sensie ukrycia) własnych nazw klas, metod czy pól (i dzieje się to w przypadku wersji na Androida — odnośnie wersji na iOS niczego się nie dowiedziałem).

Według CSIRTu ministerstwa, kod owszem może zostać opublikowany, ale w wersji „tylko do wglądu, bez pobierania”. Choć jest to technicznie możliwe, to raczej powątpiewałbym w to, że jakikolwiek publicznie dostępny serwis do udostępniania kodu by umożliwiał wyłączenie możliwości jego pobierania.

Dla przykładu, na Codebergu nie byłem w stanie znaleźć funkcjonalności odbierającej możliwość pobierania całego kodu źródłowego.

Oznaczałoby to, że Ministerstwo Cyfryzacji, jeżeli chciałoby takie zalecenie wdrożyć w całości w życie, ostatecznie musiałoby się zdecydować na samodzielnie utrzymywany tego typu serwis. Choćby Gitea, Forgejo, czy GitLab.

Ale nawet gdyby można było odbierać możliwość pobierania kodu, taka funkcjonalność okazałaby się być w rzeczywistości nieskuteczna, jeżeli zadaniem publikacji kodu usługi rządowej jest rzeczywiście jego jawność.

Powiązanym też może być wyrok Sądu Najwyższego Hiszpanii, który uznał, że kod źródłowy (hiszpańskich) usług publicznych kwalifikuje się do bycia uznanym jako informacja publiczna.

Ministerialny CSIRT także dodał, że istnieje kilka potencjalnych ryzyk związanych z ujawnieniem kodu źródłowego mObywatela, a są to:

  • informacje o używanych bibliotekach programistycznych po stronie serwera (backend);
  • imiona, nazwiska albo pseudonimy programistów w kodzie samej aplikacji;
  • pliki konfiguracyjne poszczególnych narzędzi (jakich — konkretnych przykładów nie wymieniono), które nie pojawiają się w kodzie wynikowym aplikacji;
  • nieużywany kod, czyli taki kod, który potencjalnie mógłby zostać usunięty bez zubożenia obecnej funkcjonalności mObywatela.

Ministerstwo Obrony Narodowej przyznało, że choć istnieje ryzyko wystąpienia ataków supply chain (czyli takich ataków, które mają na celu skompromitować cały system na podstawie nieuprawnionego dostępu do gorzej zabezpieczonych jego elementów), tak dodało też, że publikacja kodu może przyczynić się do większego zaufania Polek i Polaków względem aplikacji, oraz utrudnić wdrożenie złośliwego oprogramowania, ponieważ — przede wszystkim — każda zmiana w kodzie by była jawna.

A że na kod usługi rządowej będą patrzyć zapewne setki czy nawet tysiące ludzi dziennie — to szybko też to zostanie dostrzeżone.

Źródła

Zdjęcie tytułowe zostało zrobione przez użytkownika o pseudonimie Zespół Świadomości i jest ono dostępne na Wikimedia Commons na licencji Creative Commons BY-SA 4.0 International. Treść artykułu powstała na podstawie następujących źródeł tekstowych i/lub audiowizualnych:

Wesprzyj „Kontrabandę”!

„Kontrabanda” jest portalem, na którym nie ma reklam, nadmiaru treści sponsorowanych ani też clickbaitów. Prowadzimy go w trzy osoby z zamiłowania do technologii. Z tego względu naszym jedynym źródłem utrzymania się są na ten moment dobrowolne datki.

Przemyśl przelanie nam nawet kilku złotych miesięcznie jedną z wybranych metod, żeby „Kontrabanda” mogła się rozwijać. Dziękujemy!

Nie jesteś w stanie wesprzeć nas finansowo w tej chwili? Żaden problem. Wystarczy już nawet to, że przekażesz dalej artykuł napisany na „Kontrabandzie”, taki jak ten, który obecnie czytasz.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

Komentując, pamiętaj o przestrzeganiu regulaminu prowadzenia dyskusji. Jeżeli masz konto w Fediwersie, Twój komentarz się tutaj również pojawi po przejściu moderacji.

  1. wolnyjez

    @kontrabanda_blog 2 lata temu łysy grubas zapewniał, że kod będzie udostępniony. Normalny człowiek rozumie przez to, że będzie mógł bez żadnych barier ściągnąć i przeanalizować całe archiwum z kodem źródłowym.

    Teraz się dowiadujemy, że niekoniecznie cały kod, dostęp tak ale przez profil zaufany, a wgląd ma być bez pobierania (niby jak oni sobie to wyobrażają?!?).

    Wniosek: najlepiej nie ufać temu krętaczowi, jego słowa nic nie znaczą.

  2. klapek

    No i widać kto tu jest fachowcem – NASK i ABW utajnione, bo w środku było coś sensownego. MON jawny, bo w środku pulpa.

    Trepy to debile jeśli myślą, że kod można pokazać, ale nie skopiować.

    [nota moderacyjna: komentarze zostały połączone, pochodzą od tego samego publikującego]

    1. Technicznie rzecz ujmując, to przeglądarka pobiera choćby skrawki kodu do pokazania, jak przeglądasz projekty na jakimkolwiek serwisie typu GitHub, Codeberg czy jeszcze innym.

      A skoro MON uważa, że upublicznienie przyczyni się do lepszej jawności, to czemu akurat odbierać możliwość pobierania? To jest najbardziej zastanawiające.