Dlaczego, do cholery, NTFS zezwala na niewidoczne pliki wykonywalne?

105

Możesz ukryć dowolny plik w innym pliku, wpisując:

type sol.exe > container.txt:sol.exe

i aby uruchomić ukryty plik, użyj:

start c:\hide\container.txt:sol.exe

Ale szaloną częścią tego jest to, że nie zwiększa rozmiaru pliku (więc jest całkowicie ukryty).

A jeśli usuniesz plik z ukrytymi elementami w środku, ukryte elementy nie zostaną usunięte. Po prostu użyj:

more <  container.txt:sol.exe > sol.exe

Dlaczego NTFS na to pozwala? Wydaje się, że to najlepszy sposób na ukrycie wirusa.

Kredns
źródło
1
fajnie, wygląda na to, że Mac pracuje nad zasobami.
Stefano Borini
15
co gorsza, po uruchomieniu sol.exe w ten sposób menedżer zadań pokazuje nazwę procesu jako container.txt
hasen
16
Powinniśmy bombardować google, aby „przerażające” prowadziło do tego pytania
hasen
4
Tak długo, jak to już istnieje, zdumiewające jest czasami spotykać się z programistami AV / innymi osobami, które intensywnie pracują z systemem plików, którego STILL nie wie o tym. Nie oczekuję, że przeciętny twórca aplikacji się o tym dowie, ponieważ nie ma takiej potrzeby, ale jeśli lubisz system plików ... :-)
Brian Knoblauch
Podobno możesz również dołączyć ADS do folderu. Możesz usunąć ADS, usuwając folder, ale gdy folder jest katalogiem głównym dysku, nie możesz na przykład usunąć dysku C: bez formatowania dysku. Wydaje mi się, że jest to mechanizm tworzenia ukrytego wirusa rootkit (?).
HighTechGeek

Odpowiedzi:

98

Istnieją dwie strony tego pytania. Po pierwsze, dlaczego ta funkcja w ogóle istnieje, a po drugie, dlaczego interfejs GUI (lub wiersz polecenia) nie ułatwia przeglądania i zarządzania tą funkcją.

Istnieje, ponieważ jest przydatny. Kilka innych platform obsługuje wiele strumieni danych na plik. Na Macu nazywano je na przykład widelcami . Jestem dość pewien, że podobne rzeczy istniały w świecie komputerów mainframe, ale nie mogę dziś wskazać żadnych wyraźnych przykładów.

W nowoczesnym systemie Windows służy do przechowywania dodatkowych atrybutów pliku. Możesz zauważyć, że pole Właściwości dostępne w Eksploratorze Windows ma kartę Podsumowanie, która w widoku prostym (w systemie Windows XP twój przebieg będzie się różnić w innych smakach) zawiera kilka przydatnych pól, takich jak Tytuł, Temat, Autor i itd. Te dane są przechowywane w alternatywnym strumieniu, zamiast tworzyć jakąś bazę danych samochodów bocznych, aby pomieścić wszystko, co zbyt łatwo byłoby oddzielić od pliku.

Alternatywny strumień służy również do przechowywania znacznika, który mówi, że plik pochodzi z niezaufanego źródła sieciowego, które jest pobierane zarówno przez Internet Explorera, jak i Firefoxa.

Trudne pytanie brzmi: dlaczego nie ma lepszego interfejsu użytkownika do zauważania, że ​​strumienie w ogóle istnieją, i dlaczego można umieścić w nich zawartość wykonywalną, a co gorsza, wykonać ją później. Jeśli jest tutaj błąd i ryzyko bezpieczeństwa, to jest to.

Edytować:

Zainspirowany komentarzem do innej odpowiedzi, oto jeden ze sposobów, aby dowiedzieć się, czy Twoja ochrona antywirusowa i / lub ochrona przed złośliwym oprogramowaniem jest świadoma alternatywnych strumieni.

Uzyskaj kopię pliku testowego EICAR . Jest to 68 bajtów tekstu ASCII, który okazuje się być poprawnym plikiem wykonywalnym x86. Mimo że jest całkowicie nieszkodliwy, przemysł antywirusowy zgodził się na wykrycie go jak prawdziwego wirusa. Pomysłodawcy sądzili, że testowanie oprogramowania AV z prawdziwym wirusem byłoby trochę zbyt podobne do testowania alarmu pożarowego poprzez zapalanie kosza na śmieci w ogniu ...

Plik EICAR to:

X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*

Zapisz go z rozszerzeniem, .COMa uruchomi się (chyba że twój AV zwraca uwagę) i wydrukuje powitanie.

Warto zapisać go w alternatywnym strumieniu danych i przeprowadzić skanowanie ...

RBerteig
źródło
11
Zgodnie z projektem wyświetlany rozmiar pliku pokazuje tylko rozmiar głównego strumienia $ DATA. Tego też zwykle chcesz. Nie dołączasz również długości nazwy pliku (która jest jednym z rodzajów metadanych) do rozmiaru pliku. Co do ryzyka bezpieczeństwa. ADS nie stanowią większego ryzyka niż jakikolwiek pojedynczy plik. Nie słyszałem o żadnym złośliwym oprogramowaniu, które skutecznie rozprzestrzenia się / ukrywa za pomocą tych mechanizmów.
Joey,
4
Nie można przypadkowo uruchomić pliku wykonywalnego zapisanego w ADS pliku tekstowego. Jest dobrze ukryty, zbyt dobrze ukryty, aby zwykły użytkownik mógł go przypadkowo uruchomić. Najpierw musisz iść na kompromis.
R. Martinho Fernandes
7
@ashh: Martinho to przykuwa - niejasność, która utrudnia znalezienie pliku wykonywalnego na takim strumieniu, utrudnia również jego wykonanie bez aktywnej próby. Porównajmy to z, powiedzmy, całym fiaskiem z „ukrytymi rozszerzeniami plików”, gdzie pliki wykonywalne mogą wyglądać jak, powiedzmy, pliki tekstowe w GUI… i nadal działają bardzo łatwo.
Shog9
3
Zakładając, że masz AV, który przynajmniej zwraca uwagę na plik .COM w czasie rzeczywistym, nie byłbyś w stanie dołączyć go jako ADS, ponieważ AV uniemożliwiłoby ci dostęp do pliku .COM (dołączenie, ponieważ ADS wymaga dostępu do pliku plik). Powinieneś być jednak w stanie dołączyć plik tekstowy z ciągiem EICAR i nazwać go rozszerzeniem .COM w ADS. tj. wpisz EICAR.txt> test.txt: EICAR.COM
KTC
2
Fajny fakt na temat pliku EICAR.COM: Nie będzie działać na żadnej 64-bitowej wersji systemu Windows, więc myślę, że ta sztuczka nie będzie już działać, gdy wszyscy będą na komputerach 64-bitowych (co prawdopodobnie jeszcze trochę potrwa ).
Kredns,
15

Ta funkcja jest wymagana w przypadku funkcji wieloplatformowej systemu Windows Server: usługi dla komputerów Mac.

Pozwala to serwerowi Windows działającemu na współużytkowaniu NTFS do komputerów Mac poprzez AFP. Aby ta funkcja działała, system plików NTFS musi obsługiwać widelce i działa od pierwszego dnia.

A zanim zapytasz, czy ta funkcja jest nadal używana? Tak, mam go uruchomionego i używanego codziennie na serwerze w kliencie, który obsługuję.

Główny problem bezpieczeństwa pojawia się, gdy ludzie i aplikacje zapominają lub nie zdają sobie sprawy z tego, że tam są.

Prawdopodobnie powinna istnieć opcja włączenia widelców do całkowitego rozmiaru pliku lub pokazania ich w Eksploratorze Windows.

Bruce McLeod
źródło
2
Jeśli zamierzasz oddać głos, zostaw komentarz, dlaczego.
Bruce McLeod
2
To brzmi jak całkowicie prawdopodobny powód, dla którego ta funkcja istnieje.
RBerteig
3
dodanie tej funkcji po prostu w celu umożliwienia udostępniania plików dla komputerów Mac nie brzmi jak prawdopodobny powód. Udostępnianie przez sieć nie wymaga przechowywania pliku w stanie nienaruszonym po stronie serwera. Widziałem kilka serwerów udostępniania Apple * nix, które dzielą plik na dane i informacje o zasobach. Jest to przezroczyste dla klienta. Zmiana faktycznego formatu napędu tylko w celu umożliwienia AFP nie wydaje się realistyczna. Może to być miła zaleta, ale nie jest POWODEM dla tej funkcji.
Simurr
2
Tak, myślę [potrzebne źródło], jeśli masz zamiar stwierdzić, że SfM jest głównym powodem , dla którego MS zaimplementowało ADS w NTFS.
afrazier
3
Znaleziono cytowanie: ... Funkcje ADS, które pierwotnie pomyślano, aby umożliwić zgodność z hierarchicznym systemem plików Macintosh, HFS ; gdzie informacje o pliku są czasem dzielone na osobne zasoby. Alternatywne strumienie danych zaczęły być legalnie wykorzystywane przez różne programy, w tym natywny system operacyjny Windows do przechowywania informacji o plikach, takich jak atrybuty i pamięć tymczasowa. źródło: windowsecurity.com/articles/Alternate_Data_Streams.html
JamesBarnett
5

Wyobrażam sobie, że jednym z głównych zastosowań (być może nawet zamierzonego) byłoby przezroczyste umożliwienie dodawania dowolnego rodzaju metadanych do pliku. Powodem, dla którego rozmiar pliku się nie zmienia, jest to, że w tym scenariuszu nie chcesz, aby plik wyglądał ani zachowywał się inaczej, aby aplikacja inicjująca nie polegała na jakimś aspekcie wyglądu pliku.

Mogę sobie wyobrazić ciekawe zastosowania na przykład w IDE, gdzie czasami wiele plików jest zaangażowanych w jedną jednostkę (plik kodu / plik formularza itp.), Które można dołączyć do oryginalnego pliku w ten sposób, aby nie mogły przypadkowo się rozdzielić.

Wierzę również, że istnieje polecenie znalezienia wszystkich takich „załączników” w danym drzewie katalogów, więc nie są one w rzeczywistości całkowicie ukryte. Zaskoczyłoby mnie to również, gdyby lepsze skanery antywirusowe nie były tego świadome i sprawdzały te „ukryte” obszary, ale można to sprawdzić, celowo dołączając zainfekowany plik wykonywalny do pliku tekstowego i sprawdzając, czy zostanie on wykryty.

jerryjvl
źródło
Czy możesz podać link do takiego pliku wykonywalnego, abym mógł spróbować? ;)
R. Martinho Fernandes
Sugeruję uruchomienie AVG na komputerze, a następnie pobranie jednego z plików wykonywalnych z folderu kwarantanny, aby spróbować;)
jerryjvl
2
@martinho, chcesz plik testowy EICAR: X5O! P% @ AP [4 \ PZX54 (P ^) 7CC) 7} $ EICAR-STANDARD-ANTIVIRUS-TEST-FILE! $ H + H * Po prostu wklej ten tekst (dokładnie 68 bajtów tekstu ASCII, patrz eicar.org/anti_virus_test_file.htm dla całej historii) do pliku o nazwie z rozszerzeniem .COM. Uruchomi się i wydrukuje wiadomość. Oczywiście, chyba że twój AV działa. Upuść go w alternatywnym strumieniu danych i tam też sprawdź.
RBerteig
@RBerteig: Hej spoko ... nie wiedziałem, że coś takiego istnieje.
jerryjvl
@jerryjvl, jak to mówią, bije testowanie alarmu pożarowego przez zapalenie kosza na śmieci w ogniu ...
RBerteig
5

Oto dobry artykuł na temat potencjalnej luki w zabezpieczeniach stwarzanej przez alternatywne strumienie danych .

JP Alioto
źródło
6
<nitpick> To luka, a nie zagrożenie </nitpick>. I to nie jest tak wielka sprawa, jak się wydaje. Aby go użyć, musisz mieć już poświadczenia.
romandas
Bez problemu Btw, sprawdź pisownię. I zawsze pamiętaj: Zagrożenia wykorzystują luki w zabezpieczeniach. Zagrożeniami są zazwyczaj ludzie, ale liczą się także klęski żywiołowe i klęski żywiołowe.
romandas
@romandas, jakie poświadczenia musisz już posiadać? W domu większość użytkowników systemu Windows (w szczególności XP) korzysta z uprawnień administratora, więc dlaczego to nie jest tak wielka sprawa, jak się wydaje?
Ash
@ashh, „metodą ukrywania ... w naruszonym systemie”. System musi już zostać skompromitowany w celu ukrycia czegokolwiek i podobnie, aby wykonać coś ukrytego w ten sposób.
KTC
5

Dobre pytanie, aż do zeszłego roku nie wiedziałem właściwie o ADS i od wielu lat jestem programistą Windows. Mogę zagwarantować, że nie jestem w tym sam.

Jeśli chodzi o możliwość sprawdzania alternatywnych danych w plikach, znalazłem przydatne małe narzędzie o nazwie Lads dostępne z oprogramowania Franka Heyne. Może wyświetlać ADS we wszystkich plikach w danym katalogu, nawet w plikach zaszyfrowanych (a także w podkatalogach).

Popiół
źródło