20:21
22/3/2018

E-dzienniki zawierają dane uczniów, ich rodziców i pracowników szkół. Różne szkoły mogą korzystać z e-dzienników od tych samych dostawców. Okazuje się, że w pewnych szczególnych sytuacjach pracownicy ze szkoły X mogli widzieć dane osób ze szkoły Y.

W styczniu w Niebezpieczniku pisaliśmy o pewnym młodym człowieku, który znalazł luki w oprogramowaniu konkursu Bóbr i generalnie lubi spędzać czas “ratując świat”. Ten właśnie młody człowiek poinformował nas o ciekawym błędzie w e-dzienniku firmy Vulcan.

Czy to jest ID szkoły? A co można z nim zrobić?

Jeśli ktoś korzystał z e-dziennika Vulcan będąc w szkole na prawach administratora i będąc zalogowanym, to w narzędziach dla deweloperów mógł wypatrzeć JSON o nazwie SelectPracownik?….

W response ukazywało się “ID jednostki sprawozdawczej”, czyli ID szkoły.

Jeśli zmieniło się ID w adresie URL widocznym w przeglądarce…

…można było zobaczyć dane pracownika z innej szkoły.

Osoba wykorzystująca ten błąd mogła zobaczyć:

  • PESEL,
  • telefon domowy,
  • imię i nazwisko,
  • adres e-mail.

Oczywiście można było zmienić także ID pracownika (tutaj 1904) aby zobaczyć dane kolejnego nauczyciela. Osoby z uprawnieniami wychowawcy mogły widzieć dane uczniów. Przy przeglądaniu tych danych w przeglądarce wyświetlały się adresy takie jak ten.

Po getUczen widoczny był identyfikator (?id=xxxx), który można było wykorzystać by zobaczyć dane o uczniu.

Vulcan nie pokpił sprawy

Zgłosiliśmy problem firmie Vulcan. Firma nie tylko usunęła błąd, ale dodatkowo zdecydowała o przeprowadzeniu:

  1. audytu kodu całej aplikacji pod kątem ewentualnego istnienia podobnego problemu w innym miejscu systemu,
  2. analizy logów systemu, w celu ustalenia, czy były jakieś inne przypadki wykorzystania tej luki.

Punkt drugi wymagał przeanalizowania kilkunastu terabajtów danych.

Jan Koziarski, dyrektor pionu marketingu w Vulcan wyjaśnił, że możliwość podejrzenia danych była ograniczona do szkół podlegających tej samej jednostce samorządu terytorialnego (o ile te szkoły korzystały z rozwiązań Vulcan)

Błąd dotyczył wyłącznie aplikacji dziennika elektronicznego (…) Konstrukcja systemu gwarantuje fizyczną separację danych (w zależności od potrzeb są to różne serwery, różne bazy danych) co najmniej na poziomie szkół podległych jednemu organowi prowadzącemu (np. JST). W części przypadków poziom separacji jest jeszcze większy i pokrywa się z pojedynczą szkołą. Wskazana przez Pana podatność pozwalała na uzyskanie dostępu do danych innej placówki tylko w sytuacji, gdy separacja dotyczyła poziomu JST. Nie występowała przy poziomie separacji pojedynczej szkoły. Zatem zgodnie z tym, co zostało przez Pana opisane w zgłoszeniu, użytkownik mający status administratora w szkole mógł dotrzeć do danych nauczycieli w innej szkole w gminie (jeżeli w danym JST dziennik był wdrożony w więcej niż w jednej szkole). Osoba niezalogowana nie miała takiej możliwości – napisał Jan Koziarski

Niestety trudno teraz określić od jak dawna błąd mógł występować. Natomiast analiza logów wykazała, że tylko jedna osoba uzyskiwała w ten sposób dostęp do danych – ta, która zgłosiła nam problem. Był więc pewien błąd, ale wycieku, wedle informacji jakimi dysponuje firma, praktycznie nie było.

Również nasz “haker od Bobra”, który znalazł ten błąd, zobaczył dane nauczycieli i uczniów tylko z jednego miasta. To zdaje się potwierdzać, że w przypadku tego błędu osoby mające dostęp do e-dziennika i stosowne uprawnienia w jednej szkole, mogły uzyskać dostęp do danych osób z innej szkoły w tej samej gminie. Mimo tak ograniczonych skutków firma Vulcan nie zignorowała sprawy. Błąd był załatany 2 godziny po naszym zgłoszeniu, a później poinformowano nas o wyniku analizy logów.

Edukacja to ciężki chleb

Na początku tego roku szkolnego informowaliśmy o niezamierzonym ujawnieniu danych kilkunastu szkół korzystających z oprogramowania Vulcan. Również wtedy firma zadziałała szybko i rzetelnie. Doceniamy to, bo nie istnieją systemy idealnie bezpieczne natomiast dobrze się dzieje, gdy istnieją ludzie gotowi szybko reagować na zgłoszenia błędów.

Jak już nie raz pisaliśmy środowisko edukacyjne jest bardzo trudne, jeśli chodzi o ochronę danych. W szkołach dochodzi do przetwarzania mnóstwa danych osobowych (czasem wrażliwych), a dostęp do nich musi mieć sporo osób. Jeszcze gorzej bywa na uczelniach wyższych, o czym pisaliśmy w cyklu tekstów na temat wpadek polskich uczelni. Niebawem opublikujemy kolejny odcinek uczelnianych wpadek — dzięki Wam, naszym Czytelnikom — znów zebraliśmy kilkanaście karygodnych błędów w uczelnianych systemach IT.

Przeczytaj także:

30 komentarzy

Dodaj komentarz
  1. nie ma bezpiecznych systemów, unit testy nie są w stanie przegryźć się przez każdą możliwą opcję, liczba sposób na dostanie się do systemów jest nieskończona, natomiast programiści nie posiadają nieskończonej wiedzy..

  2. Dzieciakowi jakąś nagrodę powinni dać!

  3. Stworzyliście nową jednostkę pojemności: “terabatów danych”. Chyba, że chodzi o baty na pupę ucznia…

    • Jakby programiści mieli ustawowo po bacie za każdego człowieka którego dane wyciekły w wyniku błędu, to myślę że jakość systemów wzrosła by momentalnie :D
      Tak samo popularność biurek sit-stand.

    • @B&B

      Jakość samych systemów by nie wzrosła, za to ich ilość drastycznie by zmalała. ;]

  4. Nie takie kwiatki tam były, pozdro dla kumatych.

  5. Ja się zastanawiam po co w dzienniku elektronicznym numery PESEL, daty urodzenia, adresy domowe i telefony.

    W dzienniku elektronicznym oprócz ocen, obecności i uwag powinno być imię, nazwisko, numer ucznia w klasie + ewentualnie unikalny w obrębie szkoły ID ucznia (NIE numer PESEL!).

    Dane rodziców, adresy i numer PESEL ucznia powinny być wyłącznie w formie papierowej, w zamykanej szafie w sekretariacie szkoły. Są one zbędne w codziennej pracy nauczycieli, a wyciek numeru PESEL to problemy _do_końca_życia_

    • @Janku – po to by drukować świadectwa …

    • Na świadectwach nie ma numeru PESEL ani adresu zamieszkania, nie ma też ocen cząstkowych z całego roku, uwag i innych takich. Wystarczyłby więc eksport ocen końcowych uczniów całej szkoły z e-Dziennika do jednego pliku i import do komputera w sekretariacie, gdzie za jednym zamachem wydrukowano by wszystkie świadectwa.

      Przechowywanie numerów PESEL i adresów czy danych rodziców na komputerach w klasach do e-Dziennika jest w mojej ocenie nadmiarowe i niepotrzebne, więc należy takie dane stamtąd usunąć. Ale to błąd projektantów tego software’u, a nie szkoły.

      IMHO zresztą gra jest niewarta świeczki – przez lata wystarczyły dzienniki papierowe, używanie komputera by postawić pałę za nieprzygotowanie do lekcji jest moim zdaniem bez sensu. Wystarczyłoby na koniec roku wpisać oceny końcowe do komputera, który wydrukuje świadectwa. To jest 1 godzina pracy dla wychowawcy.

    • Pesel jest wdrukowywany m.in. na świadectwach, wydrukach legitymacji, arkuszach ocen. Z kolei pesel nauczycieli jest potrzebny m.in. przy tworzeniu raportu do Systemu Informacji Oświatowej. Oba te elementy są narzucone wymaganiami zewnętrznymi, producentowi oprogramowania te dane nie są zapewne do niczego potrzebne.

      Z tym wyciekiem i problemem do końca życia sprawa jest bardziej skomplikowana, część systemów administracji publicznej pokazuje dane osobowe z peselami bez ŻADNYCH zabezpieczeń, tak działa np. ekw, gdzie wpisujesz numer księgi i dostajesz adres, imię, nazwisko i pesel. Numery ksiąg są łatwe do tworzenia, można więc przy odrobinie cierpliwości odpytać system o pełne dane wielu tysięcy osób.

      I co? I nic, to działa zgodnie z prawem w takiej formie. Pisał o tym dawno temu nawet Niebezpiecznik, https://niebezpiecznik.pl/post/brute-force-ksiag-wieczystych/

    • Moduł dziennika w UONET+ to tak na prawdę dodatek do głównego modułu sekretariatu. Są tam wszelkie druki, sprawozdania do sio/hermesa, rejestry dokumentów i wypadków, korespondencja seryjna, arkusze ocen, świadectwa, dyplomy itd.
      Moduł dziennika korzysta z tych danych – oczywiście nie wszystkich.

  6. Vulcan i tak sie niezłe trzyma. Używałem ich oprogramowania w latach 90 na Elwro 800 Jr

  7. Jak widzę rzeczy typu “getUczen”, czy “selectPracownik”, to mnie skręca.

    • Parametry w URL… To przeważnie musi się źle skończyć.

    • Z drugiej strony “weźUczeń” i “wybierzPracownik” też dziwnie…

  8. It’s not a bug, it’s a undocumented feature ;)

  9. Ojoj, mieli szczęście, że to tuż przed wejściem w życie RODO :P

    • Bo co? Zareagowali przykładowo. Nikt nie jest nieomylny. Wg. mnie nie dostaliby nawet 1 euro kary. Kary finansowe nie są po to by karać za takie postępowanie, ale by karać tych co nie chcą się podporządkować i mają wszystko w d…

  10. Powinni dać Bobrowi jakiegoś gifta.

  11. A mnie ciekawi skąd dzieciak “od Bobra” miał uprawnienia admina? ;)

    • To samo napisałem wczoraj, ale z uwagi na literówkę (chyba) mój komentarz nie został opublikowany ;/

  12. Ten dziennik w ogóle daje za dużo uprawnień. Każdy nauczyciel może sobie dowolnie przeglądać dane i oceny uczniów nie tylko z klas, które uczy, ale wszystkich uczniów z całej szkoły (a nawet zespołu szkół). Łącznie z numerami telefonów rodziców, peselami i wszystkim innym. A nauczyciele jak to nauczyciele, proszą czasem o pomoc np. swoje dzieci i dają im hasło do konta. Tyyyle danych dla postronnych osób <3

  13. Systemy dziurawe jak sito, pisane przez pseudoprogramistów. Nawet nie umieją elegancko wpisać nazw do JSONa. “Plec: false” – to która? Czy nie powinno być: “female: false”?

  14. Cały ten system Vulcana to w ogóle jest ciekawy :) I ich reakcje na niektóre zgłoszenia także.

    Nie mam dzieciaków w szkole, ale kiedyś na mojego maila przyszła informacja, że jakaś pani wychowawczyni dodała mnie do jakiejś klasy (pewnie jakiś rodzic podał fake’owy adres, albo ktoś zrobił literówkę). Słabo, że nie było potwierdzenia podanego maila. Jak zgłosiłem to na jakiś ogólnodostgępny mail, to pani powiedziała… że mam się skontaktować z panią wychowawczynią i wyjaśnić sprawę…….. :))))) Chyba z chińczykiem byłoby prościej się dogadać… :)

    • Bo problem polega na tym, że oni udostępniają platformę, natomiast za same wprowadzenie danych odpowiada szkoła. Vulcan nie może od tak sobie usuwać czegokolwiek z bazy danych szkoły. Oczywiście mogliby skontaktować się w twoim imieniu z szkołą, tylko po co mają to robić skoro szybkie odbicie piłeczki załatwia sprawę :P

    • Jechałeś swoim Volvo przez wieś i trzasnąłeś kur.ę. Do kogo ma się zgłosić gospodarz z pretensjami, do producenta auta, czy do Ciebie?

    • @As – Celny przykład przez analogię. Ciekawe czy adresat chwycił w czym rzecz.

  15. Czasem rozwiązania chmurowe po prostu się słabo sprawdzają ;)
    Szkoły z dobrym łączem mogłyby się pokusić już o postawienie takiego dziennika onsite ;)

    • dobry bait ;)
      Niebezpiecznik też powinien zacząć hostować stronę na serwerze w piwnicy ;)

  16. Nic nowego …

Twój komentarz

Zamieszczając komentarz akceptujesz regulamin dodawania komentarzy. Przez moderację nie przejdą: wycieczki osobiste, komentarze nie na temat, wulgaryzmy.