[Wine] "Złośliwe oprogramowanie"?
23.04.2011 | aktual.: 23.04.2011 23:10
Witam.
Jestem użytkownikiem Linuksa od lat i właściwie dzisiaj coś mnie skusiło aby spróbować ClamAV - Wolnego, Otwartego i bezpłatnego programu znajdującego "złośliwe oprogramowanie".
Wyniki skanowania mnie lekko zaskoczyły, a dlaczego lekko to już Wam mówię.
ClamAV znalazł kilka trojanów w katalogu Wine, głównie w drive_c/Windows/system32.
Jak widać, jest to "Perfect Keylogger", jednak siedzi on zamknięty w Wine i nie ma żadnych szans aby się wydostać - sam nie wie, że siedzi w klatce :‑)
/home/webnull/.wine/drive_c/windows/system32/CEM.exe: Trojan.Perflog-36 FOUND /home/webnull/.wine/drive_c/windows/system32/rinst.exe: Trojan.PerfectKeylogger.153.Gen FOUND /home/webnull/.wine/drive_c/windows/system32/CEMwb.dll: Trojan.PerfectKeylogger.153.Gen FOUND /home/webnull/.wine/drive_c/windows/system32/CEMhk.dll: Trojan.PerfectKeylogger.153.Gen FOUND
Tutaj znowu jakiś trojan, ponoć tworzy wpisy w autostarcie - to znaczy, że włączył się tylko raz bo po wyłączeniu aplikacji używanej przez Wine zginął śmiercią naturalną.
/home/webnull/.wine/drive_c/A.exe: Trojan.Bifrose-8562 FOUND /home/webnull/.wine/drive_c/A.exe.bak: Trojan.Bifrose-8562 FOUND
Najważniejsze co można tu powiedzieć to, że "złośliwe oprogramowanie" nie wydostało się z Wine ani w nim się nie rozprzestrzeniło wystarczająco.
W zasadzie z tego co widać, to trojan raz się uruchomił, ale po wyłączeniu środowiska Wine został zdezaktywowany i wyłączony na zawsze. Dlaczego? - Ponieważ funkcja autostartu w Wine celowo nie działa...
Ochrona w systemie Gentoo
Domyślnie system Gentoo Linux posiada autorskie narzędzie sandbox dzięki któremu można "zamknąć w klatce" dany proces uniemożliwiając mu zapis czy odczyt w danym miejscu.
Niestety muszę zmartwić użytkowników innych systemów operacyjnych - nie znam rozwiązania piaskownicy dla innych systemów operacyjnych.
Można tym sposobem zabronić zapisu w katalogu ~/.wine/drive_c/windows/system32 aplikacjom uruchomianym przez Wine.
~/Sandbox/wine
#!/bin/bash #* addread <path>: allow <path> to be read #* addwrite <path>: allow <path> to be written #* adddeny <path>: deny access to <path> #* addpredict <path>: allow fake access to <path> SANDBOX_INTRACTV=1 . /usr/share/sandbox/sandbox.bashrc addread ~/ addwrite /dev/ addwrite ~/.wine addwrite ~/.wine/system.reg addwrite ~/.wine/userdef.reg addwrite ~/.wine/user.reg addwrite ~/.wine/drive_c/Program\ Files addwrite ~/.wine/drive_c/users addwrite ~/.local/share/ addpredict ~/.wine/drive_c/windows adddeny ~/.purple adddeny ~/.wicd adddeny ~/.config adddeny ~/.gnome2 adddeny ~/.jd adddeny ~/.adobe adddeny ~/.mozilla adddeny ~/.etwolf adddeny ~/.openarena adddeny ~/.evolution adddeny ~/.ooo3 adddeny ~/.ssh adddeny ~/.wireshark adddeny ~/Dokumenty adddeny ~/.irssi addread ~/Obrazy if [ -f "sandbox-variables" ]; then echo "Found sandbox-variables" . sandbox-variables fi #wine $? wine $1 $2 $3 $4 $5 $6 $7 $8 $9
~/Sandbox/wine-kill
Służy za ułatwienie tak na wszelki wypadek gdyby coś się przycięło, jeżeli chodzi o Wine.
Czasami może zajść jak to można powiedzieć "zmieszanie uprawnień", że jakaś część Wine jest uruchomiona na innych uprawnieniach dlatego można zabić całe Wine i uruchomić od nowa w zasadzie jednym poleceniem - ~/Sandbox/wine-kill
#!/bin/bash killall -9 explorer.exe killall -9 wineboot.exe killall -9 services.exe killall -9 winedevice.exe killall -9 plugplay.exe
sandbox-variables
To opcjonalny plik który odpowiada dodatkowym parametrom piaskownicy dla danej aplikacji - oczywiście musi się znajdować w katalogu z aplikacją windowsową.
Najczęściej wpisuje się tam możliwość zapisu do katalogu z aplikacją przykładowo:
addwrite /home/webnull/.wine/dosdevices/d:/STEAM
RunThisApp / RunThisGame
Skrypt uruchamiający dany program lub grę jednym poleceniem od razu w trybie piaskownicy.
#!/bin/bash sandbox /home/webnull/Sandbox/wine steam.exe
Teraz wystarczy tylko uruchomić RunThisApp czy RunThisGame a wszystko powinno się samo ustawić i uruchomić.
W razie czego można wyłączyć wszystkie procesy Wine jeżeli coś będzie nie tak i zacząć od początku uruchamianie aplikacji.