17:52
28/11/2019

To było kwestią czasu… Ciekawa historia przydarzyła się Andrzejowi (imię zmienione), który posiada drukarkę 3D skonfigurowaną do pracy z OctoPrintem, czyli webowym “panelem sterowania”. Andrzej nie ustawił hasła dostępowego i… reszty się już pewnie domyślacie.

O sprawie dowiedzieliśmy się od Czytelników, którzy podesłali nam post Andrzeja na jedną z grup dotyczących druku 3D. Właściciel drukarki zastanawiał się, czy to nie ktoś z kolegów grupowiczów.

Potem udało mu się w logach namierzyć te 2 IP:

86.49.253.177
185.153.194.38

Jak poinformował nas Andrzej, tak skomplikowana figurka drukuje się ok. 1-2 godzin. Andrzej tego nie zauważył, bo po prostu nie było go wtedy w domu. Co ciekawe, serwer OctoPrinta wystawiony do sieci bez hasła miał od 3 miesięcy. Wygląda więc na to, że dopiero ostatnio ktoś zaczął skanować internet pod kątem tej usługi i robić ludzi w …balona ;)

Jeszcze bardziej ch…ory atak

Problem z niezabezpieczonymi drukarkami 3D może nie ograniczyć się do pojawienia się prącia. Wielu właścicieli podpina do OctoPrinta kamerkę, aby móc obserwować wydruki na odległość. Jeśli ktoś nie ustawi kamerki tak, aby w jej polu widzenia pozostał tylko obszar roboczy drukarki 3D, to potencjalny atakujący może nie tylko wydrukować penisa, ale także zobaczyć tę część męskiego ciała, jeśli ktoś po pomieszczeniu chodzi bez ubrania.

Warto też przypomnieć, że do druku 3D wykorzystuje się wysoką temperaturę i istnieje ryzyko przegrzania drukarki, a nawet pożaru. Nie znamy jednak żadnego pliku projektowego, który gwarantowałby stanięcie jakiejś konkretnej drukarki 3D w płomieniach. Badaczom udało się to zrobić, ale na standardowych drukarkach, dawno temu (por. Miliony drukarek HP można podpalić zdalnie).

PS. Czyżby to kolejna akcja “hakera” z Allegro, który niedawno nakupował ludziom prezentów w sexshopach ich kartami?

PPS. Proszę do nas nie pisać w sprawie kontaktu z Andrzejem. Andrzej nie ma już tej figurki — wyrzucił ją, razem z plikiem z projektem.

Przeczytaj także:

31 komentarzy

Dodaj komentarz
  1. Czy atakujący przy wydruku brał pod uwagę wielkość penisa właściciela drukarki czy może w grę wchodziła oszczędność filamentu?

    • Mikropenis – straszna choroba, a ty się naśmiewasz. Trochę empatii.

    • Możliwe że w grę wchodziły obydwa te czynniki.
      A tak poważnie, to nauczka dla wszystkich, żeby zawsze, wszędzie i na każdym urządzeniu do którego można się dobrać przez sieć, ograniczać dostęp.

    • Albo brany był pod uwagę czas wydruku. Jak by ktoś zakończył pracę drukarki w 50% to efekt byłby słaby.

    • Atakujący dobrał wymiary pasujące do siebie. Człowiek bez kompleksów nie drukuje, rysuje, maluje penisów wszędzie gdzie się pojawi.
      .. mógł np. wydrukować serduszko ;)

    • elegant
      Haker nie ściągałby wymiarów z własnego przyrodzenia bo w razie wpadki byłby to dowód rzeczowy.

      ps
      Serduszko? To tylko haker gej.

    • jak to jest dingding, czołowy merchandise micheala reevesa xd

    • Może właściciel drukarki 3D za bardzo skupiał się na własnym sprzęcie, a partnerkę pozostawił na pastwę losu? Stąd atakujący wziął sprawy w swoje ręce co by partnerka przynajmniej coś do zabawy miała. To by wyjaśniało te TAJEMNICZE ZNIKNIĘCIE TEGO PENISA.

  2. Niech odda na licytację WOŚP, jestem przekonany, że znajdzie się czytelnik niebezpiecznika, który zapłaci jak za złoto

  3. Amatorzy ;) https://www.thingiverse.com/thing:3743813

  4. gdzieś musi być dostępny ten projekt, tak dla szukających. Z tego modelu robione są silikonowe … dostępne na aliexpress

  5. Mam słabe pojęcie o druku 3D ale ciekawe czy można wydrukować taki plik który uszkodzi drukarkę lub spowoduje pożar?

    • Drukarka jest głupia i ślepo, bez żadnej walidacji wykonuje g-code – czyli taki ciąg instrukcji które przekazuje jej w tym przypadku octoprint. Można jej więc bez problemu wydać polecenie kręć silnikiem tak aby rozbić szklany stół na którym jest wydruk. Za pomocą tego g-codu można też modyfikować firmware kontrolera sterującego drukarką – można więc zdjąć wszystkie zabezpieczenia przeciwpożarowe i wydać polecenie grzej stół albo głowicę maksymalnym prądem i wyłącz całe chłodzenie… Nie zawsze doprowadzi to do pożaru ale na pewno taki scenariusz jest możliwy. Kiedyś widziałem na githubie gotowe skrypty robiące coś takiego. Dlatego na prawdę przestroga dla wszystkich – octoprint nie może być widoczny pod publicznie dostępnym adresem IP! Samo hasło to zawierzenie bezpieczeństwa siebie i swoich najbliższych kompetencją security autorów… Ja bym się nie odważył…

    • Z tego co mi wiadomo, można tak spreparować gcode (kod sterujący drukarką), że uszkodzi np. hotend i płaszczyznę druku. Co do wywołania pożaru będzie chyba trudniej, bo drukarki operują zazwyczaj w temperaturach nie wyższych niż 250-280 stopni.

    • “Co do wywołania pożaru będzie chyba trudniej, bo drukarki operują zazwyczaj w temperaturach nie wyższych niż 250-280 stopni.”

      Na sprawnej drukarce która nie jest samoróbką czy chinskim złomem z przed ~10lat nie wywołasz pożaru bo każda ma zabezpieczenia termiczne. Jednak jak wyłączysz chłodzenie i zabezpieczenia termiczne (czego nie da sie zrobić bez modyfikacji firmwareu) to, w zależności od modelu, temperatura może skoczyć grubo powyżej tych wartości i wywołać samozapłon.

    • Nie trzeba preparować G-code – Octoprint ma opcje upgrade’u firmware – można wysłać taki, gdzie na stałe będą włączone wszystkie grzałki – i w dodatku wyłączymy komunikację po RS, więc nie da się przez octoprinta cofnąć zmiany firmware. biorąc pod uwagę moc grzałek (100W łóżko + 40W ekstruder) i to, że większość tanich drukarek jest z pleksy, to pożar albo przynajmniej trwałe uszkodzenie drukarki gwarantowane.

  6. W takich sytuacjach zbawienne są usługi operatorów komórkowych. Na T-Mobile nie udało mi się załatwić ani własnego IP zewnętrznego ani przekierowania portów. W takiej sytuacji tylko po LAN można tego typu numery odstawiać (lub po VPN).

  7. Też posiadam drukarkę 3D i postawione octopi. Powiedzcie mi czy jeżeli przekieruje porty serwera na zewnątrz i ustawie mocne hasło (do samej maliny i serwera) to moja sieć domowa będzie bezpieczna? Odkąd mam octopi boję się przekierować portów właśnie przed takimi sytuacjami.

    • postaw sobie serwer ssh na malinie z autoryzacją za pomocą kluczy i tuneluj sobie porty które chcesz.

  8. Jest to figurka maskotka pewnego amerykańskiego youtubera o nazwie Michael Reeves… Kiedyś rozstał je w formie żartu… Ale tamte były z silikonu

  9. Ooo. Ding Ding od Pepików :-)

  10. To ja podam przepis jak komuś zjarać drukarkę :

    TL:DR; Instalacje wtyczki firmware updater -> wgranie własnej “szkodliwej” wersji Marlina z wyłączonymi zabezpieczeniami temperaturowymi i odczytem temperatury -> podmiana FW -> uruchomienie grzałek -> … -> profit

    Bardziej szczegółowo:

    – po uzyskaniu dostępu do Octo należy zainstalować wtyczkę do zmiany FW ; https://plugins.octoprint.org/plugins/firmwareupdater/

    – kompilujemy własną wersję Marlina : http://marlinfw.org/ (1.1.x dla 8bitowej plytki, 2.0 dla 32bitowej)

    (FW drukarki kompiluję się specjalnie pod daną płytkę sterującą, można dowiedzieć się dla jakiego mikrokontrolera powinniśmy skompilować w/w albo z nazwy drukarki do jakiej jest podłączona albo zazwyczaj zaraz po podłączeniu się do drukarki w zakładce terminalu Octo mozna znaleźć pewne informacje, jednak mimo to zdecydowana większość kontrolerów posiada ATMEGA2560 poszczególne płytki różnią się zazwyczaj tylko pinoutem zawartym w pliku pins.h lub _pins.h * )

    – w tej wersji wyłączamy zabezpieczenia przed przegrzewaniem się tzw. Thermal Runaway:
    //#define THERMAL_PROTECTION_HOTENDS // Enable thermal protection for all extruders
    //#define THERMAL_PROTECTION_BED // Enable thermal protection for the heated bed

    – skoro zabezpieczenia przed wykryciem zmian temperatury są wyłączone to należy oszukać drukarkę, że temperatura jest inna niż w rzeczywistości, można to osiągnąć m. in poprzez albo ustawienie termistorów :
    #define TEMP_SENSOR_0 999 // ustawienie termistora grzałki hotendu na stałą wartość 100 st C
    #define TEMP_SENSOR_BED 998 // ustawienie termistora stołu na stałą wartość 25 st C

    (ewentualnie dać nie ten termistor co potrzeba jeżeli powyższe nie podziala, ale wtedy jest mniejsza kontrola nad procesem.)

    – puszczając teraz nagrzewanie grzałki – ustawiając np temperaturę 180 st drukarka będzie nagrzewać się w nieskończoność ;)

    To tak na prosto, ale warianty mogą być bardziej wzbogacone ;)

    – można również pokusić się o zmianę wartości tabeli termistorów, żeby przykładowo drukarka działała dobrze w określonych warunkach a w określonych była podatna na spalenie, ale tu efekt niekoniecznie jest pewny jak się nie wie co się robi a i roboty więcej, ale przy bardziej skomplikowanych atakach warto zwyczajnie dać takie wartości rezystancji, żeby fizycznie nie dało się ich uzyskać albo żeby przekłamywały odczyt w wyznaczonych przez nas warunkach, wtedy najłatwiej ustawić to tak, żeby dla bardzo wysokich temperatur drukarka była szczególnie narażona.

    Przykładowo przy druku z ABS, który jest dość śmierdzący (nawet trujący) i wymaga wyższych temperatur, dodatkowo korzysta się zabudowanych komór, więc można zmienić tablice wartości termistorów tak, żeby od danego momentu przekłamywała temperaturę i wtedy podczas druku (już w wysokich temperaturach w pomieszczeniach najczęściej opuszczonych (przez smród) grzałka ma idealne warunki do pociągniecia ze sobą drukarkę i tą obudowę + cokolwiek w poblizu

    ————————————————

    * – można narobić w drukarce szkód wybierając świadomie inną płytkę (inny pinout) niż jest fizycznie np w Popularnej Prusie Mk2s (170 000 sprzedanych egzemplarzy) ustawiając zamiast płytkę Mini-Rambo 1.3a dać Ramps 1.4 EFF lub EFB tak wgrany Firmware nawet jeżeli poprawny zacznie od włączenia nagrzewania na full co najmniej jednej grzałki, więc prowadzi to do zjarania co najmniej płytki sterującej (bezpieczniki się nie przepalą przy wariancie uruchomienia samej grzałki hotendu), jednak żeby mieć dobry wynik to taka podmiana nie powinna być przypadkowa, bo wtedy jako atak często ma ciężkie do przewidzenia skutki (może się nic nie zdarzyć), wymagałby on przestudiowania specyfikacji technicznej lub zrobienia testów jednostkowych

    Bardziej kontrolowanym atakiem tego typu jest po prostu zmiana funkcji (elementów drukarki) domyślnie przypisanych pinów np. do pinów wentylatora chłodzącego radiator (jest w każdej drukarce i najczęściej włącza się po uruchomieniu drukarki ) ustawić, że będzie to włączać grzałkę i od momentu włączenia będzie sie on nagrzewał aż się spali. Można też zamienić

    Dodatkowe punkty warte zastanowienia się ( gdy jest dużo czasu na przeprowadzenie akcji ):

    – wyłączamy głośnik,
    //#define SPEAKER
    żeby drukarka nie ostrzegła nikogo (np jak śpi) o włączeniu się/ podjęciu pracy – nowsze drukarki mają często dotykowy panel (TFT) który ma różne swoje melodyjki startowe/resetowe/itp. ma on osobny FW (MCU na PCB panelu), więc jeżeli jest karta SD to można też go zmienić, żeby wyciszyć, ale lepiej zmienić definicje pinów odcinając mu połączenie z głównym kontrolerem sterującym.

    -najlepiej też w Octoprincie wyłączyć kamerę, żeby nikt nie zauważył że drukarka np stanęła w płomieniach – brak połączenia z kamerą zdarza się często ;) Popełnić literówkę w Octoprint Settings -> Webcam -> Stream URL ” http://xxx.xxx.x.x:8080/?action=stream” np “steam” wybaczcie ironie ;)

    – można spreparować plik .gcode tak, żeby właściciel myślał, że wydruk już się skończył drukować – usypiając czujność i potrzebe podglądania co się dzieje co chwilę. Przykładowo nazwać plik tak samo jak trwający wydruk tylko “obciąć” jego zawartość żeby pokazywało 100% wykonania ( tutaj zdradzać będzie nas czas trwania wydruku, np Print Time: 1s, ale łatwo to przeoczyć – jest szansa, że się uda nabrać

    • Przed niechcianą aktualizacją firmware można się zabezpieczyć.

      Tak z czystej ciekawości, ile drukarek spaliłeś? Widzę że tamat jest rozpracowany ;)

    • Dzięki!

    • Dzięki, właśnie takich wskazówek mi brakowało. Dziękuję też niebezpiecznikowi że przepuscił post przez moderację.

    • Zapomniałeś jeszcze dodać akapit o konsekwencjach takiego postępowania…

  11. Powinni drukować z taką przyssawką do czoła dla właścicieli tych drukarek! :D

  12. Lepiej byście dali jakiś tutek jak zabezpieczyć OctoPi. Np. przez dostawienie HAproxy.
    Tutaj jest walk-through:

    https://github.com/mastertork/Secure-OctoPi/wiki

  13. Jak to wyrzucił, szkoda takiej fajnej figurki :(

  14. >ale także zobaczyć tę część męskiego ciała, jeśli ktoś po pomieszczeniu chodzi bez ubrania.

    No przecież skądś musiał wziąć wzór!

  15. No ale najlepszego komentarza nie zacytowaliście, już nie pamiętam dokładnie ale brzmiał mniej więcej tak – O już widać że był shodan za $.

Twój komentarz

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

RSS dla komentarzy: