Komputery, Windows i masa kompletnego bałaganu. Tak, to mój dziennik.

ktos.jogger


Dziura? Jak nie wiem co

19 marca 2007, 14:34:18. Kom.puter, Linux, Po stronach, Windows , 0.

Jedna z funkcji Windowsa mająca ułatwić inwalidom pracę z komputerem może być postrzegana jako zagrożenie bezpieczeństwa, tak przynajmniej twierdzi McAfee. Problem jest znany z Windows 2000 i Windows XP i wciąż nie został naprawiony w Windows Vista.

Windows Vista, tak jak jego poprzednicy, nie sprawdza jaki plik jest uruchamiany po próbie uruchomienia funkcji. Hacker mógłby go podmienić na swój własny. Przykładowo mógłby uruchomić wiersz polecenia, nawet będąc niezalogowanym i przejąć kontrolę nad maszyną.

Inna sprawa, że mając fizyczny dostęp do komputera to kto tam by się bawił w jakieś podmiany Klawiszy trwałych, skoro można zrobić więcej dużo wredniejszych rzeczy. Ale na Wykopie podsunięty został pomysł (komenda alias w bashu może zostać wykorzystana do niecnych celów!), który ja następnie rozwinąłem sobie w myślach.

Czy coś stoi na przeszkodzie, by napisać program, który ukrywał by się jako robiący coś pożytecznego (albo nawet robiący coś pożytecznego), jednak oprócz wykonywania jakiś zadań (fikcyjnych bądź nie) edytowałby przykładowo plik .bashrc dodając właśnie odpowiednio spreparowane polecenie alias. Przykładowo niech będzie to alias cd='rm -rf' żeby daleko nie szukać. Restart powłoki i załadowanie pliku powodowało by, że próba przejścia przez użytkownika do danego katalogu równoznaczna była z jego usunięciem, czyż nie? Po prostu koń trojański w czystej postaci.

A jak obecnie działają robaki w dużej większości? Wykorzystują naiwność użytkowników, którzy otwierają te załączniki z e-maila i uruchamiają je. Użytkownicy Linuksa są zwykle bardziej wyedukowani, ale czy przeciętny człowiek zauważyłby taką sprawę, że program oprócz tego, co robi, to robi jeszcze taki "dodatek"? Problemem przed jakim stanął by program jest to, że mimo wszystko nowi użytkownicy Linuksów są przyzwyczajani do instalacji oprogramowania z repozytoriów oficjalnych, gdzie raczej program nie robiący niczego nie ma racji bytu, ale gdyby jakiś niedobry haker włamał się i podmienił jakąś paczkę na własną? A jak wyglądała ostatnio sytuacja w WordPressie? Ktoś uzyskał dostęp do FTP i podmienił pliki na takie, które dodatkowo robiły coś niemiłego. A użytkownicy ściągali paczki i instalowali zakażone poprawki.

A już tak swoją drogą - czy jest jakaś możliwość obrony przed aplikacjami, które użytkownik sobie ściąga z Internetu i uruchamia, a one robią mu kuku? Jest. Ale jest to broń obosieczna - Trusted Computing i podpisywanie kodu. Absolutnie ograniczenie wolności jest doskonałym środkiem na walkę czy to z wirusami, czy z końmi trojańskimi w takiej postaci. Aczkolwiek mam nadzieję, że nikt nie wpadnie na pomysł szerokiego użycia TC...

Atak o jakim powiedziałem, mimo iż trochę wydaje się głupi i naciągany, jest oczywiście możliwy. Ciekawy jestem czy jakiś ktoś za moment nie przyjdzie i powie, że to dziura w Linuksie (choć to nie bug, a feature basha) jest, znana od dawna, a nie załatana nadal ;-)

Komentarze

  1. Dot
    19 marca 2007 14:44:08

    Odnośnie TC – myślę, że to nie jest głupi pomysł, ale może nie na zasadzie „nie da się zainstalować czegoś, co nie jest podpisane cyfrowo przez wydawcę systemu”, a raczej „instalowanie czegoś nie podpisanego przez zaufaną organizację wywołuje ostrzeżenie, albo coś”. Tu nie chodzi o ograniczenie wolności, a raczej o wprowadzenie certyfikacji. Tak samo w przypadku produktów bardziej „materialnych” istnieją certyfikaty, które nie tyle, że ich brak uniemożliwia użycie produktu, ale ich istnienie gwarantuje, że produkt jest odpowiedniej jakości. To samo mogłoby tyczyć się programów – instalujesz na własną odpowiedzialność, jeśli podpisane cyfrowo przez kogoś, to ten ktoś bierze częściową odpowiedzialność za to, żeby program działał jak należy. Mogłyby się również pojawiać certyfikaty na różnych poziomach, poczynając od certyfikatów automagicznie przyznawanych programom, które przechodzą jakiś test programem antywirusowym (niski poziom certyfikatu), aż po certyfikat przyznawany programom, których działanie zostało dokładnie i dogłębnie przeanalizowane przez jakąś firmę certyfikacyjną, który by oczywiście wydawcę programu kosztował, ale dawałby całkowitą gwarancję, że jest on bezpieczny. Wszak podobny system funkcjonuje już na przykład w świecie sterowników sprzętowych, przynajmniej w systemach Windows. I fakt, że nikt się nie przejmuje, jak sterownik nie jest zaaprobowany przez Microsoft, nie zmienia faktu, że system funkcjonuje i potencjalnie ktoś, chcący uzyskać stabilny system (<flame>i nie chce zainstalować czegoś lepszego od Windy ;P</flame>), może dobierać tylko te sterowniki, które dają mu to poczucie pewności w tej kwestii. Mam rację?

  2. Ktos
    19 marca 2007 15:10:12

    Instalowanie czegoś niepodpisanego powoduje ostrzeżenie. Skąd ja to znam? Ach tak, Windows posiada to od XP SP2 i realizowane jest w kilku sytuacjach. Gdy ściągasz plik używając IE jest on oznaczany specjalnie i przy uruchamianiu system się pyta czy na pewno chcesz uruchomić, informując o dostawcy. Podobnie też programy ze złymi certyfikatami też zdaje się pokazują ostrzeżenia.

    A Vista jest pod tym względem jeszcze bardziej wyczulona, ale i bezbłędna nie jest bynajmniej (http://michal.osmenda.com/2007/03/12/uac-i-codesign/). Zresztą 2003 jak wynika z tego samego wpisu też ma problemy.

    Ale pokaż mi dowolną aplikację open source, która ma podpisany cyfrowo plik wykonywalny. Jest taka jakaś? W ogóle CodeSign jest mało widoczny…

  3. Dot
    19 marca 2007 15:20:45

    Wszystko przez to, że podpisy cyfrowe są kosztowne. Aplikacje OpenSource najczęściej zmieniają się dużo częściej, niż te o zamkniętym źródle, więc podpisywanie każdej wersji byłoby niezmiernie uciążliwe. Opierają się więc na sumach kontrolnych MD5 w celu ograniczenia możliwości podmiany czegoś po drodze tudzież błędu w przesyłaniu. Jednak gdyby powstały instytucje dające niskiego priorytetu certyfikaty na podstawie automatycznej analizy kodu źródłowego/wykonywalnego za darmo, albo za niewielką opłatą, myślę, że ta sytuacja mogłaby się zmienić. Dodatkowo należy zauważyć, że trochę analogiczne podejście mają niektóre dystrybucje Linuksów, a konkretniej systemy pakietów, że jako stabilne i bezpieczne udostępniają takie pakiety, które zostały wydane już jakiś czas temu i przetestowane, więc w praktyce sytuacja jest podobna – jak chce się mieć bezpieczny i stabilny sytem, to instaluje się stabilne pakiety z systemu zarządzania pakietami konkretnej dystrybucji i problem z głowy. Oczywiście, dokładnie tak samo jak z certyfikatami M$, wszystko opiera się na zaufaniu komuś konkretnemu – tam firmie M$ albo innym firmom certyfikującym, a tutaj wydawcy swojej dystrybucji.

  4. Michał Górny
    19 marca 2007 15:41:01

    Różnica między użytkownikami Windows, a GNU, jest zazwyczaj taka, że Ci pierwsi uruchamiają co tylko się da z wyższymi uprawnieniami (bo komu chce się bawić w osobnego użytkownika na Administratora? A i nie każdy program radzi sobie pod takim użytkownikiem), zaś Linuksowcy (pomijając Ubunciarzy, co mają full-sudo) odpalają programy z uprawnieniami ograniczonymi. Tak więc Twoja akcja w większości przypadków może spowodować jedynie usunięcie katalogu domowego; pomijając, że zanim do owego katalogu dojdzie (nawet jeśli output będzie wyciszony i użytkownik nie zobaczy ton błędów o braku uprawnień), to użytkownik skapnie się, że coś jest nie tak. A pod Windows — w większości przypadków działający na podobnej zasadzie trojan wywali wszystko, pomijając te pliki, które system „ochroni” — ale w sumie same będą już bezużyteczne.

  5. D4rky
    19 marca 2007 23:55:11

    ci Ubunciarze i tak muszą hasło jeszcze raz przy sudo wpisać ;)
    zresztą – sudo bash, passwd i jechane. a przy instalacji expert to nawet pyta, czy chcesz konto roota. więc AŻ TAK źle nie jest :P

Zostaw komentarz

W komentarzach dozwolona jest składnia Markdown do formatowania.