1 / 7
Feb 2022

Witam,

Kwestia zabezpieczeń odpalania programów w systemie SPOJ.
Nie wiem, jak to jest obecnie zrealizowane, ale aby uniknąć ataku hakerskiego, wydaje mi się,
że każdy wrzucany program powinien być uruchamiany w tzw. “maszynie wirtualnej” odciętej od czegokolwiek.
Chodzi o to, aby “uruchamiany program” nie miał dostępu do rzeczywistych zasobów serwera + sieci.

Bo gdyby “testowany program użytkownika” miał w jakikolwiek sposób dostęp do zasobów serwera + sieci, to wtedy jest możliwość zrobienia takiego programu (zauważmy, że wybór języków programowania jest bardzo szeroki), który to mógłby coś (kod sędziego, kod innych nadesłanych programów, klucz dostępu do bazy danych, itd.) wyczytać z serwera i za pomocą sieci wysłać w świat (np. do serwera hakera).

Mam wrażenie, że taki atak właśnie nastąpił, nie mówię, że tak jest na 100%, ale te zgłoszenia dziwnie wyglądają (zgłoszenia są do różnych zadań co kilka sekund):
https://pl.spoj.com/users/gilotyna/13
Może się później okazać, że nagle na spoju znajdzie się “inny” użytkownik, który w ciągu paru minut rozwiązuje kolejne zadania.

Głowię się od dłuższego czasu nad zadaniem “Trudne/5/Dachy” (https://pl.spoj.com/problems/FR_14_20/9) i tam jest własnie takie dziwne zgłoszenie, stąd zacząłem się nad tym zastanawiać.

Pzdr.

  • created

    Feb '22
  • last reply

    Feb '22
  • 6

    replies

  • 535

    views

  • 5

    users

  • 6

    likes

  • 2

    links

Też mnie zastanawiało zachowanie gilotyny. Wygląda na to, że postawił sobie za cel wysłać zgłoszenie (w whitespace’ie) do każdego zadania na spoju.
Co do uruchamiania rozwiązań podejrzewam, że są jakoś izolowane od świata zewnętrznego, chociaż nigdy nie próbowałem tego zweryfikować.

w rules Spoja:
Nadsyłane programy będą kompilowane i uruchamiane w automatycznym środowisku testowym pracującym pod systemem Linux.

Lubie spoj i mam nadzieje ze zabezpieczenia sa odpowiednie i ze nikt go nam nie popsuje. :slight_smile:
Patrzac na dzialalnosc uzytkownika gilotyna
co kilka sekund kolejne zadanie czasem z prawidlowym rozwiazaniem. Pewno dzialanie automatyczne. Czy nie za dużo tolerancji ?

Dokładnie tak. Najpierw rozwiązywał zadania jak każdy “porządny” użytkownik spoja i uzyskał ileś tam Ac - wystarczy sprawdzić jego profil, ale potem wymyślił sobie wysłanie do [wszystkich?] zadań rozwiązań w whitespace - wysyłając - pewnie automatycznie - pliki o zerowej wielkości… . Może myślał/myśli, że tak się rozwiązuje zadania w tym języku? ;-).

Zachowanie użytkownika jest karygodne - łącznie z bezsensownym inicjałem/nazwą == “-”. Może najlepiej zgłosić go do rozważenia adminom, czy nie warto go całkowicie usunąć, lub wysłać ostrzeżenie. Spoj mógłby ograniczać możliwość zbyt częstego wysyłania rozwiązań przez tego samego użytkownika, ale czy byłoby to korzystne dla zwykłych, “uczciwych” nie kombinujących użytkowników.

Co do bezpieczeństwa - wiadomo, że spoj nie działa na systemach windows i windows-serwer, lecz na linuxie. Obawiam się, że większość użytkowników spoja używa w “domu” windowsa i ma blade pojęcie o linuxie… Ale bezpieczeństwo i tak zależy od zachowań i działań adminów, wiec gilotyna może tylko swoim działaniem niepotrzebnie obciążać zasoby systemowe co jak najbardziej jest naganne.

A może on korzysta z gotowego narzędzia, które od kogoś dostał? Nie chce mi się wierzyć, że ktoś kto byłby w stanie zhakować SPOJ’a:

  1. Potrzebowałby rozwiązań zadań od innych użytkowników?
  2. Jeśli już chciałby go użyć robiłby to w tak rzucający się w oczy sposób?

Przecież tu nie ma mowy o niczym takim. Po prostu użytkownik - gilotyna - wysyła masowo zerowej wielkości [puste] pliki jako rozwiązania kolejnych zadań i oczywiście dostaje masowo WA. Dokładniej wysyłał [ostatnie 28.01.2022] więc zupełnie nie rozumiem czemu piszecie o hakowaniu itd w tym wypadku. Jeżeli natomiast jakiś [inny] użytkownik masowo uzyskuje AC w bardo krótkich odstępach czasu, to też nie jest żadne hakowanie tylko zwykłe ściąganie i kopiowanie znalezionych “gotowców”, co oczywiście jest bardzo naganne, nieuczciwe i godne potępienia zachowanie. ALe to nie żadne hakowanie i taki użytkownik tylko sam sobie szkodzi, bo zamiast się uczyć programowania i samodzielnego myślenia i rozwiązywania [samodzielnie] problemów, uczy się tylko ściągania i kopiowania! Więc chyba nie ma się aż tak bardzo czym przejmować!? To są raczej sporadychne i odosobnione przypadki.

Oczywiście, chyba masz rację. Po prostu zobaczyłem, że ma kilka zaliczonych zadań wysłanych w odstępie sekund i pomyślałem, że automatycznie odczytał skądś poprawne rozwiązania i je tutaj zamieścił. Nie zwróciłem uwagi na to, że ma za te zadania przydzielone 0 punktów. Więc uznaję swój błąd i swoje gapiostwo (lenistwo?) :slight_smile:

Suggested Topics

Want to read more? Browse other topics in System SPOJ or view latest topics.