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?
security
anti-virus
malware
Xavin
źródło
źródło
file foo.zip
, a nawet przetestować, czy są poprawne,7z t foo.zip
aby to przetestować (tj. Rozpakuj i zweryfikuj sumy kontrolne CRC, bez rozpakowywania do lokalnych plików na dysku). (7z
używa składni nieco podobnej dotar
.) Lubunzip -l foo.zip
do 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.Odpowiedzi:
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).
źródło
.zip
pliki, które próbują usunąć luki w określonych implementacjach rozpakowywania.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.
źródło
Istnieją co najmniej dwa znaczące względy, które należy wziąć pod uwagę:
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.
źródło
Możesz sprawdzić, czy pliki można uruchomić na serwerze Linux, po prostu sprawdzając je za pomocą
file FILENAME.exe
polecenia. Pliki binarne elfów (format wykonywalny używany w systemie Linux) można nazwać z.exe
rozszerzeniem, 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ć.źródło
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 :).
źródło
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.
źródło
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.
źródło
Rozpakowane pliki .exe są również nieszkodliwe dla serwerów Linux.
źródło
.exe
jest niczym więcej niż częścią nazwy pliku i może być również wybrana jako nazwa pliku binarnego ELF.