przez dark 21 Lip 2005, 19:15
OK, dostałem natchnienie i postanowiłem mniej więcej skrótowo przedstawić problem: dlaczego napisanie wirusa dla Linuksa mija się z celem?
Po pierwsze: UNIX, w tym także Linux inaczej rozumie pojęcie użytkownika niż jest to w przypadku systemu MS Windows. Dlaczego? Np. w Linuksie, jestem sobie użytkownikiem dark, przeglądam cały system plików, ale zapisać/modyfikować/kasować mogę tylko określone rzeczy. Przykładowo moim katalogiem domowym jest: /home/dark. W tym katalogu mogę zapisywać/usuwać/modyfikować, natomiast już nie za dużo zrobię w samym katalogu /home!
Po drugie: w UNIX-ach każdy katalog/plik ma swoje prawa dostępu. Prawa dają możliwość: zapisu, edycji i wykonania. Ponadto, każdy katalog/plik ma swojego właściciela i grupę, do której przynależy. Co to oznacza? To, że jeżeli powiem userowi dark, że nie może wykonać jakiegoś programu to go po prostu nie wykona. Jeżeli dam mu możliwość zapisu to będzie mógł mi usunąć dany program.
Mam nadzieję, że nie zamieszałem za bardzo :^)
Kontunuując... przykładowo user dark uruchamia XMMS (odpowiednik Winampa). Jeżeli ma jakiegoś tam wirusa co może taki wirus zrobić? Nic, kompletnie nic poza np. usunięciem całej zawartości katalogu domowego usera dak (czyli /home/dark). I do czego to doprowadzi? Do tego, że user dark straci tylko i wyłącznie swoje dane. System na tym ucierpi? NIE UCIERPI.
Więc jak powinien być stworzony wirus? Żeby wirus spełnił swoją rolę w takim znaczeniu jak to jest w przypadku systemu Windows, musiałby go:
1. Uruchomić administrator systemu (a każdy szanujący się użytkownik Linuksa nie korzysta z tego przywileju na codzień).
2. Wirus uruchomiony przez zwykłego użytkownika musiałby:
- przejąć kontrolę nad system, tzn. zdobyć konto administratora systemu,
- mając konto administratora systemu może uszkodzić system.
Drugi sposób wydaje się dość prosty, jak się spogląda na świat przez windowsowe okulary. Po pierwsze trzeba znaleźć dziurę w danym (popularnym) programie, który pozwoli przejąć kontrolę nad system. Po drugie: po co wtedy tworzyć wirusa? Jak ma się konto administratora systemu, można już samemu napaskudzić. Ale OK, wirus ma napaskudzić. Tyle, że pojawia się teraz pytanie. W jakim oprogramowaniu szukać dziury? Czy może zająć się kernelem? Jeżeli wirus napaskudzi to jak ma się rozesłać? Pytań tego typu jest tak dużo, że jak na razie poprzestano na: exploitach i prawdopodobnie to się nie zmieni, chyba że powstanie jedna dystrybucja Linuksa, która tworzona będzie w takim samym klimacie jak MS Windows.
PS Idę po piwo, bo aż zaschło mi w palcach od tego pisania :^)
Long Hard Road Out Of Hell...