Czy spakowane pliki EXE są nieszkodliwe dla serwerów Linux?


49

Na swojej stronie uruchomiłem skaner złośliwego oprogramowania, który oznaczył kilka spakowanych plików EXE jako pliki potencjalnego ryzyka (pliki te zostały przesłane przez użytkowników). Ponieważ jestem w stanie rozpakować pliki na komputerze Mac, zakładam, że są to prawdziwe pliki ZIP, a nie tylko coś w rodzaju plików PHP o zmienionej nazwie.

Więc plik ZIP nie powinien stanowić żadnego ryzyka dla mojego serwera, prawda?


1
Brzmi jak skaner śmieciowego szkodliwego oprogramowania.
Nick T

11
Wiesz, że możesz przetestować, czy są w formacie ZIP file foo.zip, a nawet przetestować, czy są poprawne, 7z t foo.zipaby to przetestować (tj. Rozpakuj i zweryfikuj sumy kontrolne CRC, bez rozpakowywania do lokalnych plików na dysku). ( 7zużywa składni nieco podobnej do tar.) Lub unzip -l foo.zipdo wyświetlenia zawartości. W każdym razie pomyślałem, że to dziwne, że mówisz o sprawdzaniu plików na innym komputerze, skoro można je łatwo sprawdzić na serwerze.
Peter Cordes,

6
Jaką stronę prowadzisz? Nie wydaje się dobrym pomysłem umieszczenie treści przesłanych przez użytkownika i skierowanego do przodu serwera WWW w tym samym pudełku.
oldmud0

@NickT Samorozpakowujące się pliki ZIP mogą mieć dodatkowy złośliwy kod dołączony do części wykonywalnej.
Chrylis -on strike-

Odpowiedzi:


84

Jeśli rzeczywiście są skompresowanymi plikami exe systemu Windows, powinny być nieszkodliwe dla systemu Linux, chyba że masz coś takiego jak Wine, które może próbować je wykonać.

Ale jeśli znajdują się na Twojej ścieżce internetowej, mogą być złośliwym oprogramowaniem i mogą stanowić duże ryzyko dla odwiedzających Twoje strony internetowe (a Ty z kolei, jeśli zostaniesz oznaczony jako źródło złośliwego oprogramowania, a użytkownicy otrzymają brzydkie ostrzeżenia, gdy będą chcieli odwiedzić Twoją stronę teren).


3
Zastanawiam się, czy hostowanie takich śmieci przesłanych przez „użytkowników” może spowodować, że Google oznaczy Twoją witrynę jako „Ta witryna może zostać zaatakowana przez hakera”, lub może spowodować wyświetlenie przez Chrome gigantycznej czerwonej strony z ostrzeżeniem. „Nieszkodliwy” może być więc trochę mylący.
Nick T

11
@NickT: Z pewnością może i właśnie o tym mówiłem w drugim akapicie.
Sven

4
Teoretycznie ktoś może również tworzyć zniekształcone .zippliki, które próbują usunąć luki w określonych implementacjach rozpakowywania.
jamesdlin,

3
Mono jest bardziej prawdopodobne, że zostanie zainstalowany na serwerze niż Wine, i może wykonywać pliki .exe CLR.
Rhymoid,

62

Ponieważ jestem w stanie rozpakować pliki na moim komputerze Mac, zakładam, że są to prawdziwe pliki zip, a nie coś w rodzaju plików php.

Chociaż prawdopodobnie masz rację w tym przypadku, twoje założenie może nie zawsze się utrzymywać. Archiwum ZIP pozostaje ważne nawet po dodaniu do niego dowolnych danych , więc całkiem możliwe jest utworzenie pliku, który jest jednocześnie prawidłowym archiwum ZIP zawierającym niewinne dane, a także złośliwy skrypt PHP. To nie jest nawet szczególnie trudne; po prostu połącz kod PHP i plik ZIP i upewnij się (np. używając __halt_compiler()), że PHP nie będzie próbował analizować dołączonych danych archiwum ZIP.

Ta sztuczka jest słusznie używana do tworzenia samorozpakowujących się plików ZIP, ale istnieje możliwość dodania dowolnych innych ukrytych danych lub kodu wykonywalnego do pliku ZIP w ten sam sposób. Niektóre programy mogą odmówić otwarcia takich zmodyfikowanych plików ZIP (ale jeśli tak, to technicznie naruszają specyfikację formatu ZIP) lub mogą domyślnie zidentyfikować plik jako coś innego niż plik ZIP, ale ogólnie, jeśli podajesz taki plik plik do kodu, który oczekuje pliku ZIP, prawdopodobnie zostanie zaakceptowany jako jeden.

Bardziej powszechnym złośliwym zastosowaniem takich sztuczek jest ukrywanie kodu exploita w kontenerze opartym na ZIP (np. Plik JAR) jako coś nieszkodliwego (jak obraz GIF, jak w exploicie GIFAR ), ale nie ma powodu, dla którego nie można tego zrobić używane również w innym kierunku, np. w celu ominięcia naiwnego filtru przesyłania plików, który zabrania przesyłania skryptów PHP, ale zezwala na pliki ZIP, bez sprawdzania, czy przesłany plik może być jednocześnie.


+1 za GIFAR, interesujący wiedzieć o konkretnym przykładzie tego exploita w praktyce.
Cezay

11

Istnieją co najmniej dwa znaczące względy, które należy wziąć pod uwagę:

  1. Jeśli te pliki są rozpowszechniane w Twojej witrynie, możesz ponosić odpowiedzialność, jeśli ktoś dostanie złośliwe oprogramowanie z Twojej witryny. Przynajmniej twoja strona może być oflagowana pod kątem złośliwego oprogramowania. Jeśli zdecydujesz się zignorować ostrzeżenia skanera złośliwego oprogramowania, powinieneś przynajmniej powiadomić osobę przesyłającą i potencjalnie pobierającą, że plik może być szkodliwy (jak czasami są pliki EXE pobrane z Internetu).
  2. Czy wykonujesz przetwarzanie tych plików poza skanowaniem złośliwego oprogramowania? Automatyczne przetwarzanie załączników lub innych takich przesyłania jest zawsze potencjalnie niebezpieczne, ponieważ zawartość pliku może być dowolna. Nie musisz nawet uruchamiać pliku EXE, jeśli twoje oprogramowanie narzędziowe jest podatne na jakiś exploit, a pozornie ładny zip / exe zawiera szkodliwe treści atakujące twoje narzędzie. Nie pozwolę, aby mój serwer przetwarzał wszystko, co nie powiodło się podczas skanowania w poszukiwaniu złośliwego oprogramowania.

Zatem w zależności od tego, co robi serwer, plik może potencjalnie być szkodliwy dla serwera lub innych użytkowników. Ponieważ jestem dość nieufny wobec plików EXE pobranych z Internetu, powiedziałbym, że potencjalni użytkownicy pobierania są tutaj najbardziej potencjalnymi użytkownikami.


2

Możesz sprawdzić, czy pliki można uruchomić na serwerze Linux, po prostu sprawdzając je za pomocą file FILENAME.exepolecenia. Pliki binarne elfów (format wykonywalny używany w systemie Linux) można nazwać z .exerozszerzeniem, aby zmylić niczego niepodejrzewającego administratora Linuksa, więc prawdopodobnie dobrym pomysłem jest sprawdzenie tego przed ślepym zaufaniem, że tych plików nie da się uruchomić.


2

Dziwię się, że nikt nie wspominał, że jakiekolwiek dane mogą być (lub stać się) szkodliwe dla dowolnego (błędnego) programu. To podstawa rozmycia. Na przykład, możesz mieć plik JPEG (lub podobny do JPEG), który powoduje przepełnienie bufora (określonych?) Dekoderów JPEG, powodując wszystko od odmowy usługi po wykonanie dowolnego kodu. Chodzi o obalenie istniejącego programu do przetwarzania danych; nie trzeba wprowadzać nowego pliku wykonywalnego! I to jest powód, dla którego potrzebne są sandboxing, dezynfekcja danych wejściowych i zasady najmniejszych uprawnień.

Tak więc, w twoim przypadku, możesz mieć plik ZIP powodujący problemy z (konkretnymi?) Silnikami dekodującymi ZIP. Plik ZIP nie musi zawierać natywnego pliku wykonywalnego, aby był szkodliwy.

Powiedziawszy to, skaner działa na innym, bardziej zgrubnym poziomie. Jeśli ryzyko, o którym mówię, istniało w tych plikach, już trafiłeś w momencie ich przetworzenia :).


1

Ponieważ jestem w stanie rozpakować pliki na komputerze Mac, zakładam, że są to prawdziwe pliki ZIP, a nie tylko coś w rodzaju plików PHP o zmienionej nazwie.

Zdarzały się ataki, które osadzają dane i nadal prezentują pliki jako prawidłowe. W niepoprawnie skonfigurowanym serwerze lub niepoprawnie zakodowanej aplikacji może to spowodować wykonanie kodu na serwerze.

Ostrożnie też z tym.


0

Dodatkowym sprawdzianem, który najlepiej zastosować, jest metoda php finfo, aby sprawdzić, czy pliki przesyłane przez użytkowników są rzeczywiście dozwolone, a nie coś, co użytkownicy zmienili nazwy plików, aby oszukać system.


-6

Rozpakowane pliki .exe są również nieszkodliwe dla serwerów Linux.


23
Niekoniecznie tak - .exejest niczym więcej niż częścią nazwy pliku i może być również wybrana jako nazwa pliku binarnego ELF.
Sven

Ponadto może być zainstalowany WINE. To prawda, że ​​większość szkodliwych programów atakujących system Windows prawdopodobnie nie działałaby bezpośrednio pod WINE, ale istnieje ryzyko. W najlepszym razie rozpakowane pliki .ex w systemie Linux są w większości nieszkodliwe.
Ray

@ Promień Zależy od konfiguracji. Jeśli z jakiegoś powodu Mono lub Wine są zainstalowane, binfmt_misc może być skonfigurowany tak, aby plik .exe był faktycznie wykonywalny.
Rhymoid,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.