DROP TABLE w CEiDG

Przy wszystkich kolorowych "problemach" z ponownym wykorzystaniem informacji z sektora publicznego warto być czujnym. Właśnie krąży w Sieci przykład jednej ze stron Centralnej Ewidencji i Informacja o Działalności Gospodarczej. W ramach możliwości przeglądania wpisów można zapoznać się tam z "danymi publicznymi wpisu" dotyczących przedsiębiorców prowadzących działalność gospodarczą. Z jakiegoś powodu (czy celowo?) wyświetlana jest nazwa firmy z dodatkiem "x'; DROP TABLE users; SELECT '1". Pytanie, czy ktoś chciał w ten sposób zaatakować CEiDG, czy może to żart, a może sposób na marketerów, którzy czerpią dane z Ewidencji by potem dzwonić z ofertami do prowadzących działalność? W każdym razie warto uważać przy tworzeniu parserów wykorzystywanych dla potrzebę ponownego wykorzystania informacji z sektora publicznego.

DROP TABLE w SQL-u to polecenie służące do usuwania całej tabeli relacyjnej bazy danych.

Przykład, który dostępny jest na stronie CEiDG dotyczy firmy p. Dariusza Jakubowskiego. Przeszukanie bazy daje tylko jeden taki wynik. Nota bene - aby przeszukiwać bazę trzeba przepisać "kod z obrazka", zatem zastosowano tu jakiś mechanizm przeszkadzający nieco automatyczne pobieranie danych.

DROP TABLE w nazwie firmy Centralnej Ewidencji i Informacji o Działalności Gospodarczej

DROP TABLE w nazwie firmy Centralnej Ewidencji i Informacji o Działalności Gospodarczej

W historii dokonanych zmian widać zmianę dokonaną dziś, czyli 11 września. Zmianę wprowadził Urząd Miasta Gdańsk. Zmiana dotyczyła danych we wpisie:

Fragment historii dokonywanych zmian w Ewidencji

Centralna Ewidencja funkcjonuje na podstawie ustawy o swobodzie działalności gospodarczej. Zgodnie z art. 14 ust. 1 tej ustawy:

Przedsiębiorca może podjąć działalność gospodarczą w dniu złożenia wniosku o wpis do Centralnej Ewidencji i Informacji o Działalności Gospodarczej albo po uzyskaniu wpisu do rejestru przedsiębiorców w Krajowym Rejestrze Sądowym

Szczegółów działania CEiDG dotyczy Rozdział 3 ustawy, gdzie czytamy, że "CEIDG prowadzi w systemie teleinformatycznym minister właściwy do spraw gospodarki", że:

Przekazywanie danych oraz informacji do CEIDG oraz przekazywanie danych oraz informacji z CEIDG odbywa się za pośrednictwem platformy usług administracji publicznej lub w inny sposób, środkami komunikacji elektronicznej.

Wnioski o wpis dokonywane są na formularzach. Sam wpis do CEIDG "polega na wprowadzeniu do systemu teleinformatycznego danych podlegających wpisowi".

Dalej idą przepisy dotyczące osób fizycznych, a tego typu danych dotyczy powyżej przywołany przykład. Wedle tych przepisów tożsamość wnioskodawcy składającego wniosek potwierdza organ gminy. Ten sam organ gminy przekształca wniosek na formę dokumentu elektronicznego, opatrując go podpisem elektronicznym weryfikowanym za pomocą kwalifikowanego certyfikatu. Wniosek w formie dokumentu elektronicznego i papierowego oraz dokumentacja z nim związana podlegają archiwizacji przez okres 10 lat od dokonania wpisu. Archiwizacji dokonują, odpowiednio, organ gminy i minister właściwy do spraw gospodarki. Sam wpis do CEIDG jest dokonywany jeżeli wniosek jest złożony przez osobę uprawnioną i jest poprawny. A zatem powinien być zweryfikowany. Bo jeśli wniosek jest niepoprawny, to system teleinformatyczny CEIDG powinien poinformować składającego wniosek o niepoprawności tego wniosku i to niezwłocznie.

No i ciekawe, na którym etapie działania procedury pojawiło się w nazwie firmy owo "DROP TABLE" oraz czy już gdzieś komuś namieszało w bazach danych? No i ciekawe, czy weryfikacja wniosku ma szansę obejmować tego typu SQL Injection (por. "Nie można przełamać czegoś, co nie istnieje" - polski wyrok w sprawie SQL Injection).

Ministerstwo Gospodarki sygnalizuje, że na rynku działają różne rejestry, które oferują różne bazy, za wpis do których oczekują wynagrodzenia. Wpis do CEiDG jest bezpłatny. W jednym z komunikatów MG można przeczytać:

MG nie ponosi odpowiedzialności za zawartość jakichkolwiek spisów przedsiębiorców prowadzonych przez firmy komercyjne. Zalecamy przedsiębiorcom rozwagę przed podejmowaniem współpracy z firmami oferującymi odpłatne wpisy do komercyjnych rejestrów.

W ramach różnych rozważań publikowanych w tym serwisie, a dotyczących odpowiedzialności państwa za treść informacji publicznej publikowanej w internecie, chyba nie będzie nietaktem pytanie o odpowiedzialność za treść dostępną w samym CEiDG. To nie czepianie się. To ciekawość. Czy tego typu podatność systemu umocowanego w ustawie może powodować odpowiedzialność, w szczególności odpowiedzialność cywilną Skarbu Państwa, za utratę danych?

PS
W wątku uruchomionym przez Niebezpiecznik.pl na Facebooku odezwał się również sam przedsiębiorca:

Sam zainteresowany na Facebooku

Wedle ustawy:

Do wniosku w sprawie zmian albo wykreślenia wpisu stosuje się odpowiednio przepisy art. 26–29, z wyłączeniem przepisu art. 27 ust. 2 pkt 5.

Znaczy to, że do wniosku w sprawie zmian wpisu stosuje się również te przepisy o roli organu gminy w procesie weryfikacji. Przy czym ważne może być tu to, w jaki sposób ustawa określa wniosek, który jest niepoprawny. Niepoprawny wniosek to również taki, który nie zawiera danych, o których mowa w art. 25 ust. 1 i 5 (a zatem również taki, który nie zawiera firmy przedsiębiorcy).

A w tym przypadku jest nazwa firmy, ale jest też obok niej coś więcej...

Zgodnie z art. 433 ustawy Kodeks cywilny:

§ 1. Firma przedsiębiorcy powinna się odróżniać dostatecznie od firm innych przedsiębiorców prowadzących działalność na tym samym rynku.

§ 2. Firma nie może wprowadzać w błąd, w szczególności co do osoby przedsiębiorcy, przedmiotu działalności przedsiębiorcy, miejsca działalności, źródeł zaopatrzenia.

I dalej - zgodnie z art. 434:

Firmą osoby fizycznej jest jej imię i nazwisko. Nie wyklucza to włączenia do firmy pseudonimu lub określeń wskazujących na przedmiot działalności przedsiębiorcy, miejsce jej prowadzenia oraz innych określeń dowolnie obranych.

Czyli polecenie SQL - ze względu na możliwośc wprowadzenia w błąd - raczej nie może być uznane za dodatek, który można wykorzystać w poprawnie stworzonej firmie przedsiębiorcy. Ale czy rzeczywiście polecenie SQL nie może być częścią firmy?

Zgodnie zaś z art. 3 ustawy o zwalczaniu nieuczciwej konkurencji:

1. Czynem nieuczciwej konkurencji jest działanie sprzeczne z prawem lub dobrymi obyczajami, jeżeli zagraża lub narusza interes innego przedsiębiorcy lub klienta.

2. Czynami nieuczciwej konkurencji są w szczególności: wprowadzające w błąd oznaczenie przedsiębiorstwa, fałszywe lub oszukańcze oznaczenie pochodzenia geograficznego towarów albo usług, wprowadzające w błąd oznaczenie towarów lub usług, naruszenie tajemnicy przedsiębiorstwa, nakłanianie do rozwiązania lub niewykonania umowy, naśladownictwo produktów, pomawianie lub nieuczciwe zachwalanie, utrudnianie dostępu do rynku, przekupstwo osoby pełniącej funkcję publiczną, a także nieuczciwa lub zakazana reklama, organizowanie sys-temu sprzedaży lawinowej oraz prowadzenie lub organizowanie działalności w systemie konsorcyjnym.

Firma z poleceniem SQL wprowadzona do CEiDG może naruszyć interesy innego przedsiębiorcy, a uznałbym, że przynajmniej może zagrozić interesom przedsiębiorców zajmujących się ponownym wykorzystaniem informacji z sektora publicznego.

Tu można by jeszcze przywołać dwa z trzech przepisów art. 287 Kodeksu karnego:

§ 1. Kto, w celu osiągnięcia korzyści majątkowej lub wyrządzenia innej osobie szkody, bez upoważnienia, wpływa na automatyczne przetwarzanie, gromadzenie lub przekazywanie danych informatycznych lub zmienia, usuwa albo wprowadza nowy zapis danych informatycznych,
podlega karze pozbawienia wolności od 3 miesięcy do lat 5.

§ 2. W wypadku mniejszej wagi, sprawca

podlega grzywnie, karze ograniczenia wolności albo pozbawienia wolności do roku.
(...)

Opcje przeglądania komentarzy

Wybierz sposób przeglądania komentarzy oraz kliknij "Zachowaj ustawienia", by aktywować zmiany.

Biorąc pod uwagę, że

Biorąc pod uwagę, że poprzednia nazwa firmy sugeruje związek z tworzeniem oprogramowania, polecenie SQL może być jak najbardziej "określeniem wskazującym na przedmiot działalności przedsiębiorcy" - a być może również "innym określeniem dowolnie obranym".

Należy jeszcze wziąć pod uwagę

VaGla's picture

Należy jeszcze wziąć pod uwagę przepisy o zwalczaniu nieuczciwej konkurencji. Przywołałem w tekście art. 3 ustawy.
--
[VaGla] Vigilant Android Generated for Logical Assassination

Jeśli pomysłowa nazwa

Jeśli pomysłowa nazwa firmy jest nieuczciwą konkurencją, to co nią nie jest?

I jeszcze Niebezpiecznik

VaGla's picture

Linkuję, bo wypada, bo wszak od Piotra Koniecznego z Niebezpiecznik.pl dowiedziałem się o tym wpisie w CEiDG (aczkolwiek w ten sposób, że na Facebooku umieścił link bez większego komentarza), do właśnie opublikowanej notatki Piotra w serwisie Niebezpiecznik.pl: Jego firma ma w nazwie SQL injection. Nie zazdrościmy tym, którzy będą go fakturowali ;) Piotr przywołuje stanowisko autora aktualizacji, wedle którego elementem takiej aktualizacji miało być wpłynięcie na przedsiębiorców "crawlujące publiczną bazę".

Nie należę do osób przychylnie patrzących na spamerów. Też jestem przedsiębiorcą, którego nękają telefonami i mailami. Ale ponownego wykorzystania informacji z sektora publicznego nie można utożsamiać ze spamem. Oczywiście spamerzy też muszą wcześniej skądś pozyskać dane i prawdopodobnie dokonują ponownego wykorzystania informacji z sektora publicznego, ale nie tylko do takich celów re-use się wykorzystuje.
--
[VaGla] Vigilant Android Generated for Logical Assassination

Spamerzy i SQL injection

Spamerzy są leniwi (gdyby nie byli - znaleźliby lepsze zajęcie). Nie potrafią się przebić przez greylisting, na przykład - bo nie stawiają prawdziwego serwera, tylko ślą maile nie patrząc na błędy.
Podobnie będzie tutaj - jak ktoś będzie chciał wykorzystać informacje - zrobi to porządnie i SQL injection go nie zaboli. Zaboli za to spamerów.

I dobrze.

Z tego co mi wiadomo to

Z tego co mi wiadomo to twórca systemu ma zapewnić jego działanie i odporność na m.in. ataki sql injection. Jeśli chcemy zabraniać kolejnych fraz w nazwach firm to proszę wnioskować o utworzenie publicznego spisu, a nie domniemywać, że polecenie SQL jest złe, bo może komuś zrobić krzywdę. Tak rozumując można równie skutecznie dowodzić, że nazwy firm dłuższe niż 255 znaków mogą również wyrządzić komuś krzywdę więc ich zakażmy.

Biorąc pod uwagę idiotów

Biorąc pod uwagę idiotów biorących dane z ceidg i radośnie wstawiajacych je do internetów żeby nabić sobie wyniki wyszukiwania... to jak najbardziej na plus...

Ale to nie jedyni korzystający z takich danych

VaGla's picture

Ale to nie jedyni korzystający z takich danych. Prowadzę sobie na Twitterze taką polemikę z takimi argumentami, wedle których skoro re-use może być niecnie wykorzystywane do spamu, to trzeba zakazać takiego pozyskiwania danych. A przecież spam idzie też mailami i telefonicznie. Nie postulujemy przez to zakazu używania maili i telefonów. chociaż wypowiadane kłamstwo jest moralnie naganne, to nie zakazujemy wypowiedzi w ogóle. Dlatego należy te dwa procesy oddzielić. Co innego re-use, co innego spam. Spam jest, jak uważam, zły. A i tak muszę brać w tych dyskusjach pod uwagę tezy osób, które nazwałbym spamerami, którzy podnoszą, że przecież korzystają ze swojej wolności słowa. O spamie jest w tym serwisie nieco materiałów. Podobnie o problemach z wyszukiwarkami. Świat, w tym świat przepisów prawnych, jest nieco bardziej skomplikowany. Niechęć przed dostrzeganiem tych różnych komplikacji to jak postawa polegająca na postulowaniu stłuczenia termometru by nie mieć temperatury. Te przepisy są, praktyki i przykłady też są. W tym serwisie robię notatki na temat tego, które przepisy do jakich praktyk można aplikować.
--
[VaGla] Vigilant Android Generated for Logical Assassination

re-use a w jakim celu ??

Może jeszcze niedługo okaże się że filtry antyspamowe to łamanie wolności słowa i naruszanie prawa uczciwej konkurencji, chcesz coś wiedzieć o firmie wchodzisz na stronę, korzystasz z Crawlerów no to chyba po to by zbierać dane masowo, najczęściej te dane zwłaszcza nazwy, adresy mailowe, numery telefonów raczej nie są zbierane w celach kolekcjonerskich.
Ok nie jestem prawnikiem tylko informatykiem, i "Dura Lexy sed lexy"(tak wiem że to znaczy "twarde prawo ale prawo" a "y" dodany z powodu mojego stosunku do środowisk prawniczych) itp. do mnie jakoś nie trafiają, może to i ignorancja z mojej strony, a może po prostu zbyt wiele widziałem w swoim życiu. Przez parę firm się przewinąłem i widziałem do czego służy masowe zbieranie danych,to się tak ładnie nazywa "Mailing" szkoda tylko że raczej nie do swoich kontrahentów a do przypadkowych przedsiębiorców a nawet "zwykłych Kowalskich".

Osobiście nic do Ciebie nie mam po prostu mam alergię na "prawniczą gadkę" i usprawiedliwiania "nie oni zbierali dane ale nie chcieli spamować, tak samo jakoś wyszło" i brawo dla Pana od "DROP TABLE" nie ma litości dla spamerów.

Przyznaję że mam pewne

Przyznaję że mam pewne obawy (przyćmiewane dumą z pokazania się na Vagli i nibezpieczniku :) ) ale podchodzę do tego w ten sposób: ten kod jest znany przez wszystkich, pojawia się w podręcznikach i ma nawet swoją stronę na Wikipedii. To na prawdę kultowy kawałek kodu i zdaniem wielu osób jest jak najbardziej sensowny jako nazwa firmy zajmującej się IT. Kod na BARDZO źle napisanych serwerach może prowadzić do komplikacji, owszem, ale tak samo może psuć system zwykły symbol + albo , w nieodpowiednim miejscu. Jeżeli jakiemuś crawlerowi wysypie się baza danych to jak może mnie o cokolwiek oskarżać: ja ten kod mu wkleiłem, w ogóle o to poprosiłem? I podam bardziej toporny przykład: produkuję broń, każdy wie że broń zabija. Jeżeli położę te broń na stole i ktoś ją podniesie, wyceluje w skroń i naciśnie spust to czy ktokolwiek może mnie obwiniać za jego śmierć?

A ja nie jestem prokuratorem by oskarżać

VaGla's picture

A ja nie jestem prokuratorem by oskarżać. Ja się zastanawiam - na konkretnym, pojawiającym się w interesującej mnie bazie publicznej, przykładzie, jakie przepisy mogą mieć zastosowanie. W tym sensie ten przykład jest ciekawy. Wydarzył się w praktyce, dotyczy infrastruktury publicznej, dotyczy sytuacji zgodnej z prawem (pozyskiwanie danych z publicznych serwisów w celu ponownego wykorzystania informacji z sektora publicznego, co jest działaniem zgodnym z ustawą o dostępie do informacji publicznej) i tak dalej. Stąd sobie notuję, jakie jeszcze przepisy będą mogły być zastosowane. I jest ich więcej. Na przykład te, które chronią infrastrukturę krytyczną państwa, te, które odnoszą się do cyberterroryzmu - nawet jeśli neidoskonałe (por. Cyberbezpieczeństwo stanem wojennym zwane), ale też najprostsze przepisy o odpowiedzialności cywilnej na zasadzie winy, jak art. 415 Kodeksu cywilnego...

Co do przykładu z bronią ja w tej dyskusji (a toczy się na kilku forach teraz) pokazałem inny przykład: Wyobraźmy sobie pytanie o to, czy upuszczanie kolców jest zgodne z prawem. Odpowiedź może być taka, że przecież przez upuszczenie takiego kolca, albo całej garści nic się nikomu nie dzieje. To samo zdarzenie, gdy przyłoży się kontekst, np. to, że się takie kolce upuszcza wiedząc o trasie kogoś, kto tamtędy będzie przechodził lub przejeżdżał, pozwala już zadać pytanie nie o to, czy upuszczanie kolców na ziemie jest legalne, tylko czy swoim działaniem ktoś intencjonalnie chciał zadziałać na szkodę kogoś innego.
--
[VaGla] Vigilant Android Generated for Logical Assassination

no tak, ile przykładów

no tak, ile przykładów tyle stron medalu. Sam jestem bardzo ciekawy (i troszeczkę zaniepokojony) tego jak się dalej ta sprawa potoczy...

Dla mnie

VaGla's picture

Dla mnie przede wszystkim jest tu interesujące pytanie o procedurę wpisów w CEiDG, ich weryfikacji i o odpowiedzialność za treści na stronach prowadzonych przez państwo. Rola państwa i jego odpowiedzialność, sposób realizowania informatyzacji, sposób realizowania zasady budowania zaufania obywateli do państwa, to jest dla mnie najbardziej interesująca, chociaż te inne wątki też ciekawe. Jest coraz więcej wyzwań (prawnych) związanych z obiegiem informacji.
--
[VaGla] Vigilant Android Generated for Logical Assassination

Meh, nazwa firmy to nic. Jak

Meh, nazwa firmy to nic. Jak przyjrzysz się historii wpisu to zobaczysz że na początku zarejestrowałem sobie firmę na cudzy NIP :D

Wiedziałem

VaGla's picture

Wiedziałem o tym przed tym komentarzem :)
--
[VaGla] Vigilant Android Generated for Logical Assassination

To jest nazwa, a nie polecenie SQL

O jakiej odpowiedzialności Państwa piszesz Piotrze? Czy baza CEIDG jest repozytorium kodu SQL?

Czy ustawy powinny również wykonywać się bezbłędnie i nie powodować negatywnych skutków podczas ich wykonywania?

Według mnie błąd tutaj popełnia osoba próbująca interpretować tekst jako kod. Jest to często spotykany błąd w implementacji wielu systemów. Moim zdaniem odpowiedzialność za ewentualną utratę danych ponosi wykonawca systemu, który taki błąd wprowadził (dostarczył produkt niezgodny z umową). Tym bardziej, że problem jest publicznie znany co najmniej od grudnia 1998 (PHRACK 54) i istnieją znane powszechnie sposoby przeciwdziałania błędnej interpretacji (np. wiązanie zmiennych).

To pytanie tu wraca

VaGla's picture

To pytanie tu wraca w tym serwisie, mam na myśli pytanie o odpowiedzialność państwa za treści w serwisach prowadzonych przez państwo. Ono wraca stale, bo za każdym razem, gdy trafiam na treści w gov.pl odnotowuję je sobie i zapisuje w kolejnych falach gonitwy myśli. Poprzednio to pytanie zadawałem w tekście Roman Dmowski w raporcie Komisji Europejskiej i pytania o odpowiedzialność za publikacje administracji publicznej. Tam opisana sytuacja była inna, ale na pewnym poiomie abstrakcji podobna. Jest serwis prowadzony przez państwo i pytanie brzmi, czy i kto ponosi odpowiedzialność za te treści (odpowiedzialność z różnych podstaw prawnych). W przypadku prasy odpowiedzialność jest solidarna: wydawcy, redaktora naczelnego i autora materiału prasowego. W przypadku świadczenia usług drogą elektroniczną (czyli w serwisach internetowych, w których to nie działające na podstawie i w granicach prawa państwo jest "wydawcą") mamy art. 14 ustawy o świadczeniu usług drogą elektroniczną. A kto powinien odpowiadać za treści w przypadku serwisów gov.pl (w tym BIP-ów, z których - jak uważam - państwo powinno głównie korzystać, chociaż wiem oczywiście, że przepisy prawne już dziś niestety dają furtki inne)? Więc jak widzę przypadek, że treść w obszarze "gov.pl" może w jakiś sposób być istotna z prawnej perspektywy (w tym przypadku może potencjalnie narazić na szkodę przedsiębiorcę lub NGO-s dokonującego automatyczne pozyskanie danych (w ramach re-use, a więc działającego zgodnie z prawem i w zaufaniu obywatela do państwa, bo przecież serwis państwowy ma szczególny charakter i dane prezentowane przez państwo mają - przynajmniej aksjologicznie - większą wiarygodność), to się zastanawiam nad zasadami odpowiedzialności i zapisuje sobie takie pytanie w ciągu innych.

I nie ma znaczenia, że serwis CEiDG nie jest repozytorium kodu SQL. Ma raczej znaczenie, że obywatel ma prawo nie spodziewać się tam DROP TABLE. Tak jak ma prawo oczekiwać, że opublikowane tam dane będą kompletne, rzetelne, aktualne i... prawdziwe.

Postulat działania na podstawie i w granicach prawa, inaczej niż w przypadku obywateli, oznacza dla mnie, że państwo nie może prowadzić "serwisów BETA", czyli niedokończonych, wadliwych (por. Zaciekawiony statusem "beta" serwisu Premiera i serwisu Ministra Finansów - zapytałem i uzyskałem odpowiedzi). No, i to jest postulat do prawodawcy, chyba, że prawo pozwala na tworzenie serwisu BETA. Ale nie przychodzi mi do głowy taka możliwość. Ustawa o informatyzacji podmiotów realizujących zadania publiczne przewiduje testy akceptacyjne, ale one dotyczą głównie interoperacyjności, nie zaś tego, że system będzie "bezpieczny". Art. 15 tej ustawy zawiera delegację ustawową dla Rady Ministrów do wydania przez Radę Ministrów rozporządzenia, w którym:

określi, w drodze rozporządzenia, sposób, zakres i tryb udostępniania danych, o których mowa w ust. 1, mając na uwadze potrzebę usprawnienia realizacji zadań publicznych, zapewnienia szybkiego i bezpiecznego dostępu do danych oraz zabezpieczenia wykorzystania danych do celów realizacji zadań publicznych.

A to dotyczy rejestrów publicznych i specyficznego udostępnienia.

BIP powinien być bezpieczny. Rozporządzenie w sprawie BIP "specyficznie" podchodzi do kwestii tego typu bezpieczeństwa, o którym sobie tu rozmawiamy. Trudno aplikować te przepisy do takiej historii, ale to dlatego, że rozporządzenie w sprawie BIP jest prowizorką, która od 7 lat nie doczekała się poprawienia. Przykład przepisy z tego rozporządzenia:

§ 19. Strony BIP zawierają rozwiązania chroniące przed celowym spowolnieniem lub uniemożliwieniem dostępu do zasobów tych stron.

No więc się zastanawiam kto konkretnie odpowiada za to, że na stronie w gov.pl pojawi się taki kod, takie polecenie mogące wpływać na automatyczne przetwarzanie danych, zwłaszcza w czasach re-use, które może potencjalnie sprawić (zgodnie z prawem korzystającym z takich zasobów) użytkownikom kłopot? Inny przykład takiego "kodu" z historii: Juwenalia w Wyższej Szkole Policji w Szczytnie - strony internetowe Wyższej Szkoły Policji w Szczytnie też przecież nie były znane jako "repozytorium malware" i nie taki był cel ich tworzenia. Podobnie, jak nie jako "farmy linków SEO" były tworzone BIP Państwowej Straży Pożarnej w Poznaniu, inne strony Policji, albo opisana pod ostatnim linkiem witryna Sądu Rejonowego w Radziejowie...

Tu jest jeszcze jedna "ciekawostka" z serwisami administracji publicznej. Organy władzy publicznej mają działać na podstawie i w granicach prawa. To wiadomo. To wynika z art. 7 Konstytucji. Ale o ile redaktor naczelny lub świadczący usługi drogą elektroniczną obywatel (lub spółka zarządzana przez obywateli) - w przypadku przypuszczenia, że doszło do popełnienia jakiegoś przestępstwa - mogą sobie to zostawić dla siebie (chociaż mają tu "społeczny obowiązek"), to na gruncie art. 304. Kodeksu Postępowania Karnego:

§ 2. Instytucje państwowe i samorządowe, które w związku ze swą działalnością dowiedziały się o popełnieniu przestępstwa ściganego z urzędu, są obowiązane niezwłocznie zawiadomić o tym prokuratora lub Policję oraz przedsięwziąć niezbędne czynności do czasu przybycia organu powołanego do ścigania przestępstw lub do czasu wydania przez ten organ stosownego zarządzenia, aby nie dopuścić do zatarcia śladów i dowodów przestępstwa.

I teraz: jeśli cały internet widzi, że jest coś nie tak, a nikt z tym nic nie robi, chociaż istnieje obowiązek o którym wyżej, to takie "przymknięcie oczu" wówczas powoduje obniżenie poziomu zaufania obywateli do państwa. A to budowanie zaufania obywateli do państwa jest wszak normą konstytucyjną.
--
[VaGla] Vigilant Android Generated for Logical Assassination

Ależ oczywiście, że to

Ależ oczywiście, że to państwo ponosi - słusznościowo - odpowiedzialność za wpisy. A mówiąc precyzyjnie, za szkodę wynikającą z braku mechanizmu weryfikującego wpisy (quod erat demonstrandum) w przypadku skorzystania z istniejących prawnych możliwości re-use. Robię re-use, trafię takie cudo, coś mi się skazuje - pozywam państwo.

Problem może się wszakże pojawić na etapie próby dochodzenia tej odpowiedzialności, gdyż jest to zgodne z prawem wykonywanie władzy publicznej. Jedyne, co mi przychodzi do głowy, to próba (wg mnie może być skuteczna) wzruszenia przepisów o ewidencji przed TK (naruszenie zasady zaufania obywatela do państwa), a następnie proces.

Natomiast ciekawa jest też ew. rola procesowa autora takiego cudeńka. Jakiś regres ze strony państwa? Przypozwanie? Tuta już zwyczajny 415 KC.

I teraz: jeśli cały

I teraz: jeśli cały internet widzi, że jest coś nie tak,

No nie, akurat w wypadku "DROP TABLE" zdania najwyraźniej są mocno podzielone, np. tutaj większość komentatorów nie widzi w tym problemu.

A skoro już wspominany jest "cyberterroryzm" i rozrzucanie kolców przez przedsiębiorcę, to przecież ten wpis także zawiera to "cyberterrorystyczne" sformułowanie w pierwszym akapicie, tak więc naraża ludzi na zdropowanie tabeli w razie próby parsowania go.

Otóż nie zawiera

VaGla's picture

Otóż nie zawiera. To co jest w lidzie tego serwisu się nie wykona. Porównaj w źródle strony.
--
[VaGla] Vigilant Android Generated for Logical Assassination

Zastosowanie

Zastosowanie html_entity_decode na parsowanym tekście nie jest czymś niezwykłym. Oczywiście, można mówić, że było czegoś takiego nie robić, ale równie dobrze można powiedzieć iż nie należy wstawiać nie-escapowanego tekstu z zewnętrznego źródła w zapytania do swojej bazy.

O ile do drop table trzeba jednak czyjejś złośliwości, to wystarczy dowolny apostrof w tekście aby wszystko się wykrzaczyło. Mam nadzieję że istnieje pewien limit głupoty, poniżej którego państwo(prawo?) nie czuje się zobowiązane do ochrony przed jej skutkami.

CEIDG też zaencjował

Strona CEIDG z kolei zdecydowała się zamienić ' na ' zamiast zamieniać ; na &#59;. W obu przypadkach biblioteki wykorzystywane do crawlowania zamienią bez problemu encje na znaki drukowalne. W przypadku crawlowania treści zawierających znaki diakrytyczne przetwarzanie encji jest powszechną praktyką.

Prawda jest taka, że ten kod się nie wykona z innego powodu. Od kilku lat nie można mieszać poleceń definiujących strukturę bazy danych (DROP CREATE itp.) z poleceniami dostępu do danych (SELECT) oraz z poleceniami zmieniającymi dane (UPDATE, INSERT). Oczywiście czasem ktoś działa na bardzo starej wersji oprogramowania bazodanowego, ale czy powinniśmy rozpatrywać takie przypadki?

Jeśli bawimy się dywagacjami teoretycznymi

VaGla's picture

Jeśli bawimy się dywagacjami teoretycznymi to owszem. Dlaczego? No bo prawodawca - w przypadku przestępstw - przewidział taką sytuację.

Zgodnie z art. 13 Kodeksu Karnego:

§ 1. Odpowiada za usiłowanie, kto w zamiarze popełnienia czynu zabronionego swoim zachowaniem bezpośrednio zmierza do jego dokonania, które jednak nie następuje.

§ 2. Usiłowanie zachodzi także wtedy, gdy sprawca nie uświadamia sobie, że dokonanie jest niemożliwe ze względu na brak przedmiotu nadającego się do popełnienia na nim czynu zabronionego lub ze względu na użycie środka nie nadającego się do popełnienia czynu zabronionego.

Innymi słowy KK zna "usiłowanie nieudolne".

--
[VaGla] Vigilant Android Generated for Logical Assassination

Czyli jednak zawiera.

Twoje encjowanie nie ma znaczenia ze względu na art. 13. § 2.?

I jak tu rozpatrywać zamiar?

Moje

VaGla's picture

Moje nie było związane z zamiarem uszkodzenia czyjejś bazy (autor zaś sygnalizował, że wpisu w CEiDG dokonał w określonym celu), serwis, który prowadzę nie jest bazą publiczną, a zatem nie jest przeznaczony też do re-use. Poza tym wyłączyłem też na gruncie prawa autorskiego możliwość "przedruków". Gdyby komus wyskoczyła baza w wyniku sparsowania tej notatki ja jestem o siebie spokojny.
--
[VaGla] Vigilant Android Generated for Logical Assassination

Moje nie było związane z

Moje nie było związane z zamiarem uszkodzenia czyjejś bazy

Nie ma paragrafu na "nieudolne nieusiłowanie"?

Gdyby to mnie wyskoczyła baza w wyniku sparsowania czegokolwiek, to miałbym pretensje tylko i wyłącznie do siebie. I wierzę, że każdy programista widzi to podobnie.

Oczywiście właściciel firmy(organizacji pozarządowej) z oprogramowaniem napisanym przez gimnazjalistę może widzieć to inaczej, ale wciąż pretensje powinien mieć tylko do siebie.

Tu problem

VaGla's picture

Tu problem wynika m.in. z tego, że rozmawiamy o danych publikowanych w serwisie urzędowym. Serwis ten działa na podstawie ustawy (przepisy były przywoływane w notatce wyżej). Mamy zatem z jednej strony pytanie o jakość tych danych, które prezentowane są przez państwo obywatelom (i mamy tu ową zasadę budowania zaufania obywateli do państwa), z drugiej strony mamy też taką relację, która pozwala na re-use. I w tej drugiej sytuacji też obywatel (w tym programista) ma prawo, jak uważam, oczekiwać, że nie będą na niego zastawiane w takim serwisie żadne pułapki. Obywatel chcący zre-usować taką bazę przygląda się pierwszemu z brzegu kodowi strony (jeśli chce parsować), albo strukturze API i na tej podstawie pisze swój kod, który służy do pozyskiwania danych. Jeśli widzi tytuł, to może mieć uzasadnione oczekiwanie, że tam nie będzie bomby logicznej czyhającej na to, by mu wysadzić w kosmos jego serwis.
--
[VaGla] Vigilant Android Generated for Logical Assassination

I w tej drugiej sytuacji

I w tej drugiej sytuacji też obywatel (w tym programista) ma prawo, jak uważam, oczekiwać, że nie będą na niego zastawiane w takim serwisie żadne pułapki. Obywatel chcący zre-usować taką bazę przygląda się pierwszemu z brzegu kodowi strony (jeśli chce parsować), albo strukturze API i na tej podstawie pisze swój kod, który służy do pozyskiwania danych.

Obywatel piszący w ten sposób dowie się iż robi to źle przy pierwszym polu zawierającym w treści apostrof.

Ja uważam, że nie należy traktować obywateli(programistów) jak idiotów. Z jednej strony wymaga się od takiego obywatela zrozumienia sporej ilości aktów prawnych aby w ogóle wiedział czy może parsować, co może zrobić z uzyskanymi danymi, na co pozwala re-use - i tutaj nie ma usprawiedliwienia, że ktoś nie jest prawnikiem specjalizującym się w tych zagadnieniach - a z drugiej problemem mają być apostrofy w niektórych treści, bo ten obywatel będzie ręcznie pisał nie-escapowane zapytania i przekona się, że apostrof to pułapka. A co będzie, jak się trafi niełamliwa spacja...

Zakaz mieszania DML i DDL?

Prawda jest taka, że ten kod się nie wykona z innego powodu. Od kilku lat nie można mieszać poleceń definiujących strukturę bazy danych (DROP CREATE itp.) z poleceniami dostępu do danych (SELECT) oraz z poleceniami zmieniającymi dane (UPDATE, INSERT).

Ciekaw jestem, skąd pochodzi to ogranicznie? W jednym popularnym systemie obsługi baz danych można wykonywać DDL (zmianę strukturę danych) w ramach transakcji - i odpowiednio ją wycofać w razie niepowodzenia.

A co do znaków specjalnych? A co jeśli przedsiębiorca się uprze, że jakiś znak (element z jakiegoś podzbioru symboli alfanumerycznych) jest nieodłączną częścią firmy przedsiębiorcy? Czy urzędowi publicznemu wolno ograniczyć dozwolone nazwy tylko to pewnego podzbioru znaków i symboli? W przypadku znaków towarowych zastrzega się różne rzeczy, nawet dźwięki (zastrzega się nawet fragmenty utworów nie podlegających już ochronie prawnoautorskiej).

(3/4) e 1/8, d 1/8, fis 1/4 gis 1/4 | cis 1/8, b 1/8, d 1/4, e 1/4 | b 1/8, a 1/8, cis 1/4, e 1/4 | a 1/2+

--
[S.A.P.E.R.] Synthetic Android Programmed for Exploration and Repair

A co jeśli parsujący

A co jeśli parsujący będzie używał systemu OCR do rozpoznawania treści na witrynie, a nie zwykłego kopiowania tekstu?

To nie jest to pytanie

Moim zdaniem należy cofnąć się o krok i zadać sobie pytanie czy w tym konkretnym przypadku serwis naraża obywateli na zagrożenie.

1. Odpowiedzialność za utrzymywanie aktualnych, poprawnych i czytelnych rejestrów: jak najbardziej.

2. Brak wersji "BETA": jak najbardziej nie powinno się ogłaszać wersji BETA jako uruchomienia systemu (tj. organ ponosi taką samą odpowiedzialność za działanie serwisu po jego otwarciu niezależnie czy nazwie go beta, theta czy omikron), jednak chciałbym się dowiedzieć o budowie danego systemu jak najwcześniej i mieć możliwość wniesienia swoich uwag co do wymaganych przeze mnie funkcji (jeżeli jest to portal skierowany do obywateli) przed uruchomieniem.

3."I nie ma znaczenia, że serwis CEiDG nie jest repozytorium kodu SQL." Moim zdaniem ma to istotne znaczenie. Trudno interpretować dane bez kontekstu. Tutaj jednostka Państwa nie mówi "Musisz uruchomić przekazane Tobie dane jako kod SQL aby skorzystać z naszego serwisu", CEIDG mówi "tu jest tekst".

Zupełnie innym przypadkiem są aplikacje dostarczane obywatelom (np. Płatnik ZUS), gdy administracja Państwa mówi "uruchom ten kod". W przypadku Płatnika, gdyby kod zaczął usuwać pliki z komputera użytkownika, odpowiedzialność za takie działanie powinien ponieść publikujący aplikację urząd (naczelnik, dyrektor, czy inna osoba zatwierdzająca daną aplikację).

4. Ad. "§ 19. Strony BIP zawierają rozwiązania chroniące przed celowym spowolnieniem lub uniemożliwieniem dostępu do zasobów tych stron." wydaje mi się, że tutaj chodzi o ochronę BIPów przed atakami DoS. Czyli na organie ciąży odpowiedzialność zapewnienia dostępności serwisu nawet podczas ataków, a przynajmniej podjęcia działań minimalizujących niedostępność.

5.Teraz krótkie wtrącenie na temat tego konkretnego przypadku, czyli nazwy zawierającej DROP TABLE:

  • czy informacja na stronie CEIDG jest nieaktualna?
    Moim zdaniem są tam informacje w miarę aktualne.
  • czy informacja na stronie CEIDG jest niepoprawna?
    Jeżeli firma nazywa się "DARIUSZ JAKUBOWSKI X'; DROP TABLE USERS; SELECT '1" to dane są poprawne. Co do braku weryfikacji numeru NIP, to rzeczywiście jest to poważny problem i tu trzeba się zastanowić nad wartością takiego rejestru oraz odpowiedzialności za publikowane dane.
  • czy informacja na stronie CEIDG jest nieczytelna?
    CAPCHA zdecydowanie powinna zniknąć, bardzo dobrym krokiem byłoby dodanie udokumentowanego API wraz z API testowym, ale sama strona z danymi jest napisana w sposób ułatwiający ich interpretację.

    Tagi zawierają unikalne id w zależności od znaczenia treści. Strona jest czytelna bez obsługi Javascript, czyli można użyć automatycznych narzędzi do zbierania z niej danych.

  • czy występuje zagrożenie dla obywateli łączących się w sposób automatyczny i pobierających dane?
    Nie, jeżeli obywatel napisał swoją aplikację w sposób poprawny zgodny z kanonami z przed 10lat (pamiętam ze studiów zajęcia z aplikacji webowych, na których prowadzący powiedział wprost, że SQLi w aplikacji skutkuje niezaliczeniem przedmiotu).

    Nie ma żadnej dwuznaczności co do treści, gdzie się dane zaczynają i gdzie się kończą, serwis CEIDG poprawnie wyświetla nazwę firmy. Co więcej cudzysłów pojedyńczy został zamieniony na encje ', chociaż jest to moim zdaniem zbędne działanie (cudzysłow pojedyńczy nie jest znakiem specjalnym w HTML).

5.Re: malware na stronie WSP w Szczytnie: malware nie spełnia w/w wymagania co do poprawności danych. Nie była to żadna informacja nt. działalności szkoły i jednostka administrująca stroną powinna za nią odpowiadać.

Dodatkowo serwer przesłał do przeglądarki informację o tym jak należy interpretować daną treść (nagłówek content-type) i podejrzewam (nie mam jak tego sprawdzić), że domyślnie było to "application/octet-stream" lub "application/x-msdownload".

6.Co do zasady praworządności, to mam pytanie o podstawę odmowy rejestracji nazwy firmy przedsiębiorstwa zawierającej znaki interpunkcyjne, albo zawierającej słowa występujące w składni SQL, albo zawierającej słowa występujące w składni innego języka programowania.

Tak sobie myślę...

...że gdyby państwo zrezygnowało z rejestrowania nazw firm to zniknął by problem odpowiedzialności tak takie "problemy" z SQL w nazwie. Wtedy problem pozostał by na barkach prywatnych, a podatnicy nie musieliby ponosić kosztów związanych z tym problemem.

Ale

VaGla's picture

Rejestry publiczne tworzone są i są jawne m.in. dla gwarantowania bezpieczeństwa obrotu.
--
[VaGla] Vigilant Android Generated for Logical Assassination

tylko niestety urzędy mają inne zdanie

tylko niestety urzędy mają inne zdanie na ten temat

właśnie dostałem decyzję o odmowie udostępnienia informacji publicznej - dokumentu "polityka bezpieczeństwa" w odniesieniu do rejestru publicznego

autor decyzji - Minister Sprawiedliwości

problem z płatnościami w banku

Zwracam uwagę, że nie da się wykonać przelewu na rachunek bankowy, wprowadzając poprawną nazwę odbiorcy. Ciekawe jak zachowa się obsługa banku w stacjonarnej placówce, jeśli wpłatę na konto będę chciał dokonać przy okienku? Będę proszony o podanie innych danych odbiorcy? Swoją drogą jestem ciekawy jak ten problem rozwiązał p. Dariusz Jakubowski w swoim banku.

Apropo paragrafu:§ 1. Kto,

Apropo paragrafu:
§ 1. Kto, w celu osiągnięcia korzyści majątkowej lub wyrządzenia innej osobie szkody, bez upoważnienia, wpływa na automatyczne przetwarzanie, gromadzenie lub przekazywanie danych informatycznych lub zmienia, usuwa albo wprowadza nowy zapis danych informatycznych,
podlega karze pozbawienia wolności od 3 miesięcy do lat 5.

Należy zatem zapytać właściciela firmy czy nazwa jego firmy brzmi tak, a nie inaczej "w celu osiągnięcia korzyści majątkowej lub wyrządzenia innej osobie szkody". Ale na moje oko taka nazwa firmy doaje przedsiębiorcy prestiżu, ponieważ wykazuje on w ten sposób swój profesjonalizm - jawnie informuje, że zna się na tworzeniu oprogramowania w sposób zgodny z dobrymi praktykami oraz, że jego produkty będą odporne na próby uszkodzenia przez osoby działające wbrew przytoczonemu paragrafowi.

Chyba są jakieś ograniczenia odpowiedzialności?

Myślę, że tezy przedstawione w artykule są mocno na wyrost. Przecież mogę sobie nazwać firmę pseudonimem "tmszmrkksprzk" - czy to oznacza, że mam odpowiadać za wszelkie urazy ciała, jakich doznają osoby próbujące tą nazwę wymówić?
Co więcej, nie jestem w stanie przewidzieć w jakich językach oprogramowania tworzone są systemy przetwarzające informacje pochodzące z rejestrów publicznych? Być może w jakimś ezoterycznym języku "DRUKUJ TUTAJ" jest poprawną instrukcją nadpisującą dane - czy p. Tomasz Zimek, NIP 6842515618, miałby ponosić odpowiedzialność za ewentualne straty wynikające z braku sprawdzania poprawności danych wejściowych?

I kolejny przykład

VaGla's picture

POWIADOMIĆ POLICJĘ GDY PAN PRZYJDZIE DO URZĘDU (TO NIE JEST NAZWA FIRMY) - wpis przeniesiony z ewidencji gminnej - Urząd Miasta Katowice. Ostatnia aktualizacja wpisu w grudniu 2011 roku.

Wpis CEiDG z nazwą firmy, w której ktoś wpisał informacja o powiadomieniu policji

A to sprawia, że możemy teraz zacząć analizować również skalę ewentualnego naruszenia dóbr osobistych, bo to się oczywiście re-useuje.

Przy czym serwis re-usujący za naruszenie dóbr osobistych będzie ponosił tylko odpowiedzialność warunkową z art. 14 uśude. A na zasadach ogólnych ten, kto wpisu dokonał i ten, kto nie zweryfikował w urzędowym źródle.
--
[VaGla] Vigilant Android Generated for Logical Assassination

marketing?

Niezależnie od wszystkich argumentów przytoczonych powyżej, Pan Dariusz dostał dodatkową darmową reklamę swojej firmy. W myśl zasady "nieważne co mówią, byleby mówili".

Mnie tradycyjnie zainteresowało coś innego we wpisie

DiskDoctor's picture

zastosowano tu jakiś mechanizm przeszkadzający nieco automatyczne pobieranie danych

Jest do tego jakaś podstawa prawna? Bo wedle mojej wiedzy być powinna. UOOBD to za mało, zresztą tam nie ma nic o "technicznych środkach", rodem z UPAPP.

Poza tym w sprawie, to ew. wina przepisów; jeśli w nazwach firm nie ma wyłączeń, to ja w prawie prywatnym znam zasadę nullum crimen sine lege. Reszta to dla mnie zwykłe technikalia, a nie od razu KK. Nie uznaje teorioprawnej teorii chaosu cedowanej winy na obywatela. Czyli przykładowo tego, że np. w ZUSie poda się przecinek gdzieśtam zamiast kropki i to akurat spowoduje, że wysiądzie prąd w całym mieście i nie dojadą dwie karetki.

Nie mylmy niekompetencji merytorycznych z ich zamiarami wykorzystania. Nie byłoby jednych, nie byłoby drugich. Można znaleźć wiele przykładów na to. Czy istnieje w ogóle pojęcie winy administracji w takich kwestiach? Bo obawiam się że bez tego założenia, należy szerokim łukiem omijać wszelkie państwowe systemy informatyczne (czyli de facto całe państwo) żeby przypadkiem przez ów przecinek nie trafić do więzienia.

Zawsze są i będą możliwości "hackowania" systemów państwowych, w tym tutaj serwisie był kiedyś taki post "(...) nie da się przełamać czegoś, czego nie ma" w podobnym tonie i sprawie według mnie. Parafrazując, czy nie da się czasem zachęcić technicznie do rozlicznych nadużyć, od drugiej strony? I czy wtedy, ktokolwiek poza ew. nadużywającym za taki stan odpowiada?

Niestety intuicja podpowiada mi, że nikt nie odpowiada, państwo jest zawsze niewinne.

Exploits of the Mom

Obowiązkowo trzeba tu zacytować komiks XKCD:

Exploits of a Mom

--
[S.A.P.E.R.] Synthetic Android Programmed for Exploration and Repair

Piotr VaGla Waglowski

VaGla
Piotr VaGla Waglowski - prawnik, publicysta i webmaster, autor serwisu VaGla.pl Prawo i Internet. Ukończył Aplikację Legislacyjną prowadzoną przez Rządowe Centrum Legislacji. Radca ministra w Departamencie Oceny Ryzyka Regulacyjnego a następnie w Departamencie Doskonalenia Regulacji Gospodarczych Ministerstwa Rozwoju. Felietonista miesięcznika "IT w Administracji" (wcześniej również felietonista miesięcznika "Gazeta Bankowa" i tygodnika "Wprost"). Uczestniczył w pracach Obywatelskiego Forum Legislacji, działającego przy Fundacji im. Stefana Batorego w ramach programu Odpowiedzialne Państwo. W 1995 założył pierwszą w internecie listę dyskusyjną na temat prawa w języku polskim, Członek Założyciel Internet Society Poland, pełnił funkcję Członka Zarządu ISOC Polska i Członka Rady Polskiej Izby Informatyki i Telekomunikacji. Był również członkiem Rady ds Cyfryzacji przy Ministrze Cyfryzacji i członkiem Rady Informatyzacji przy MSWiA, członkiem Zespołu ds. otwartych danych i zasobów przy Komitecie Rady Ministrów do spraw Cyfryzacji oraz Doradcą społecznym Prezesa Urzędu Komunikacji Elektronicznej ds. funkcjonowania rynku mediów w szczególności w zakresie neutralności sieci. W latach 2009-2014 Zastępca Przewodniczącego Rady Fundacji Nowoczesna Polska, w tym czasie był również Członkiem Rady Programowej Fundacji Panoptykon. Więcej >>