Jeden bit różnicy, czyli cyberjasyr od powicia


Rafał Maszkowski 2017-06-08


Niszczenie danych przez wirusy w celu wymuszenia okupu jest dużą plagą. Niedawno został nią dotknięty mój znajomy, który prowadzi bardzo pożyteczną działalność, i która została w ten sposób utrudniona. Zadziwiające jest, że błąd w oprogramowaniu MS-Windows, o którym słyszałem chyba jeszcze w zeszłym wieku, nadal jest odpowiedzialny za dopuszczenie do większości ataków.

Ten błąd to pozwalanie przez oprogramowanie na wykonanie programu przysłanego e-mailem. Może nawet pojawiają się jakieś ostrzeżenia, ale nieświadomy użytkownik (a takich jest większość) klika raz czy drugi i uruchamia program, który niszczy jego pliki. I jest to całkiem logiczne: taki jest paradygmat tego systemu. System Windows to dziedzic starego DOS-a i antycznego CP/M-u. Odziedziczył po nich rozpoznawanie typu plików po nazwie. Z grubsza jest tak, że jeżeli nazwa kończy się na „.EXE”, to plik ma być uważany za program. Plik „zniszczę_twoje_pliki.EXE” przychodzi e-mailem, użytkownik klika, system uruchamia program. Proste i wygodne… W dodatku przeglądarka plików w Windows może nie pokazywać końcówek nazw, traktując je jak wewnętrzną sprawę systemu. To powoduje, że wpadka jest jeszcze łatwiejsza i stąd w atakujących e-mailach nazwy w rodzaju „zniszczę_twoje_pliki.ZIP.EXE”, które wyglądałyby bardzo podejrzanie, ale dzięki „pomocnemu” chowaniu końcowego „.EXE” wyglądają zupełnie niewinnie.


Dlaczego to dla mnie dziwne? Od lat używam UNIX-a, a konkretnie najczęściej Linuxa. UNIX klasyfikuje pliki inaczej. Dla wygody można używać nazw zakończonych na przykład „.jpeg”, ale nie ma to znaczenia dla samego systemu. Żeby UNIX uznał plik za program, plik taki musi mieć włączone uprawnienie do uruchamiania, nieco uproszczając, jeden bit, który może mieć wartość 0 albo 1. W UNIX-ie użytkownik może zapisać plik, ale nie jest on uważany za program i klikanie go nie uruchomi. Dopiero dodanie uprawnienia do wykonania pozwala kliknąć skutecznie. Zmiana uprawnień pliku to proste, ale dodatkowe działanie, a więc mogące powstrzymać klikających mniej przytomnie. Można by uniknąć tego utrudnienia. Program pocztowy mógłby sprawdzać czy zapisany załącznik jest programem i włączać mu to uprawnienie. Tylko nie ma powodu tak ułatwiać użytkownikowi strzelenie sobie w stopę.


W systemie Windows program pocztowy mógłby przy zapisie pliku zmieniać końcówkę nazwy z „.EXE” na „.ZMIEŃ_NA_.EXE,_JEŻELI_LUBISZ_RYZYKO”. Ale i tak jest różnica: Windows wymagają dodatkowego zabezpieczenia przed zachowaniem systemu, natomiast w UNIX-ie dopiero jeżeli chcemy obejść zabezpieczenie obecne głęboko w założeniach systemu, program lub użytkownik musi wykonać dodatkowe działanie.


Każdy system daje się używać do większości zastosowań, tylko musimy zdawać sobie sprawę z ryzyka. Ryzyko istnieje zawsze, ale błędny paradygmat u podstaw systemu powoduje jego zwielokrotnienie. Jeżeli nie szkoda nam kilkuset złotych, które oszust może od nas wymusić lub nawet ukraść z konta bez naszej wiedzy, to nie ma znaczenia jakiego systemu używamy. Dyrektor dużej firmy stanowczo nie powinien używać systemu o niskim poziomie bezpieczeństwa, chociażby z powodu odpowiedzialności za pracujących w niej ludzi. Taki system to pozbycie się bezpieczeństwa na własne życzenie i za własne pieniądze.


Tekst był inspirowany felietonem Wojciecha Orlińskiego „Cyberjasyr czyli kup pan bezbronność”.


Tekst pierwotnie opublikowany na blogu Rafała Maszkowskiego Wszystko jest możliwe

 



Rafał Maszkowski

 

Informatyk, studiował astronomię w Toruniu, zajmował się wprowadzaniem usług sieciowych w internecie, Prowadzi serwis internetowy przedstawiający krytyczną analizę Radia Maryja. Obecnie zatrudniony jest w Interdyscyplinarnym Centrum Modelowania Matematycznego i Komputerowego Uniwersytetu Warszawskiego.