Wymuszenie obsługi protokołu MIME w programie Internet Explorer
noteUwaga
Składnik systemu Microsoft Windows Server 2003 Konfiguracja zwiększonych zabezpieczeń programu Internet Explorer (nazywany również pakietem zwiększania zabezpieczeń programu Microsoft Internet Explorer) zmniejsza podatność serwera na ataki przeprowadzane za pośrednictwem zawartości sieci Web dzięki zastosowaniu w programie Internet Explorer bardziej restrykcyjnych ustawień zabezpieczeń polegających na wyłączaniu skryptów i składników ActiveX oraz pobierania plików dla zasobów zawartych w strefie zabezpieczeń Internet. Oznacza to, że wiele rozszerzeń zabezpieczeń wprowadzonych w najnowszej wersji programu Internet Explorer nie będzie zauważalnych w systemie Windows Server 2003 z dodatkiem Service Pack 1. Na przykład nie będą używane nowe funkcje paska informacji oraz blokowania wyskakujących okienek programu Internet Explorer, chyba że witryna należy do strefy, której ustawienia zabezpieczeń zezwalają na wykonywanie skryptów. Jeśli na serwerze nie jest używana konfiguracja zwiększonych zabezpieczeń, te funkcje będą działać tak samo jak w systemie Windows XP z dodatkiem Service Pack 2.

Na czym polega wymuszanie obsługi typu MIME?

Program Internet Explorer używa informacji o typie MIME (Multipurpose Internet Mail Extensions), aby określić, w jaki sposób obsługiwać pliki, które zostały wysłane przez serwer sieci Web. Gdy na przykład w odpowiedzi na żądanie HTTP (Hypertext Transfer Protocol) zostaną nadesłane pliki jpg, będą one przeważnie wyświetlane w oknie programu Internet Explorer. Gdy program Internet Explorer odbiera plik wykonywalny, zazwyczaj monituje użytkownika o decyzję w sprawie sposobu obsługi tego pliku.

Program Internet Explorer w systemie Windows Server 2003 z dodatkiem Service Pack 1 działa na podstawie bardziej rygorystycznych reguł niż w systemie Windows Server 2003. Reguły te mają za zadanie chronić użytkowników przed przypadkowym pobraniem lub wykonaniem niebezpiecznego pliku w związku z nieprawdziwymi informacjami o typie MIME lub rozszerzeniu nazwy pliku.

Dla kogo ta funkcja jest przeznaczona?

Deweloperzy witryn w sieci WWW powinni poznać te nowe ograniczenia, aby zaplanować zmiany lub obejścia w przypadku ewentualnych zakłóceń w działaniu ich witryn.

Deweloperzy aplikacji powinni zapoznać się z tą funkcją, aby zaplanować wprowadzenie zmian do swoich aplikacji. Dla procesów programów innych niż Internet Explorer ta funkcja jest domyślnie wyłączona, dlatego deweloperzy będą musieli zarejestrować swoje aplikacje, aby móc korzystać z zalet tych zmian.

Użytkownicy końcowi mogą doświadczać problemów ze strony witryn i aplikacji, które nie będą zgodne z tymi bardziej restrykcyjnymi regułami.

Jaką nową funkcjonalność dodano do tej funkcji w systemie Windows Server 2003 z dodatkiem Service Pack 1?

Wymuszanie uzgodnienia typów plików MIME

Szczegółowy opis

Gdy pliki są przesyłane na żądanie klienta, podstawą wyboru sposobu obsługi plików w programie Internet Explorer są następujące informacje:

  • Rozszerzenie nazwy pliku oraz identyfikatory ProgID i CLSID odpowiadające programowi obsługi zarejestrowanemu dla tego rozszerzenia.
  • Deklaracja Content-Type z nagłówka HTTP (typ MIME) oraz identyfikatory ProgID i CLSID programu obsługi zarejestrowanego dla tego typu zawartości lub typu MIME.
  • Deklaracja Content-Disposition z nagłówka HTTP.
  • Wyniki wykrywania typu MIME.

Program Internet Explorer jest bardziej restrykcyjny w aspekcie wykonywania potencjalnie niebezpiecznych pobranych plików, niż miało to miejsce w systemie Windows Server 2003.

Program Internet Explorer wymusi zgodność między sposobem obsługi pliku w przeglądarce i w powłoce systemu Windows. Ponieważ plik jest pobierany do pamięci podręcznej, program Internet Explorer porówna typ MIME pliku w tej pamięci z jego rozszerzeniem. W przypadku niezgodności między typem MIME i rozszerzeniem nazwy pliku, program Internet Explorer podejmie próbę uzgodnienia, zmieniając nazwę pliku w pamięci podręcznej.

Zanim plik zostanie załadowany do programu obsługi swojego typu MIME lub wykonany przez program obsługi jego rozszerzenia, program Internet Explorer porówna identyfikatory CLSID programu obsługi typu MIME i programu obsługi rozszerzenia. Jeśli między obydwoma programami obsługi będzie w dalszym ciągu występować niezgodność, program Internet Explorer wymusi obowiązkowe potwierdzenie przez użytkownika zamiaru załadowania pliku w programie obsługi typu MIME. Gdy program obsługi typu MIME odrzuci niezgodny plik, w programie Internet Explorer zostanie wyświetlone okno dialogowe błędu pobierania, a automatyczne wykonanie pliku w programie obsługi rozszerzenia w powłoce systemu Windows zostanie zablokowane; okno dialogowe będzie jednak umożliwiało zapisanie tego pliku.

Wprowadzono także powiązaną, ale osobną zmianę w celu uniemożliwienia wykonywania potencjalnie uszkodzonych plików w ich programach obsługi w powłoce. W programie Internet Explorer zostanie wyświetlone okno dialogowe błędu pobierania dla każdego pliku odrzuconego przez jego program obsługi typu MIME z kodem błędu E_Cannot_Load_Data i plik ten nie zostanie wykonany w jego programie obsługi rozszerzenia przypisanemu w powłoce, niezależnie od typu MIME i rozszerzenia nazwy pliku.

Te zmiany nie dotyczą przypadków, w których dla pliku został użyty nagłówek HTTP "Content-disposition=attachment". Wówczas nazwa pliku lub rozszerzenie sugerowane przez serwer będzie uważane za ostateczne i można będzie wykonać plik pomimo niezgodności typu MIME i rozszerzenia, o ile użytkownik zaakceptuje monit wyświetlany podczas pobierania pliku.

Dlaczego ta zmiana jest ważna?

Gdy serwer przekazuje błędne informacje na temat typu pliku i te informacje są zapisywane na komputerze, niebezpieczny plik może zostać później nieodpowiednio wykonany. Na przykład program Internet Explorer może pobrać plik, który wydaje się być plikiem tekstowym. Gdy odpowiedni program obsługi typu MIME nie będzie mógł załadować pliku, a plik będzie miał rozszerzenie doc, możliwe będzie otwarcie pliku w aplikacji, na przykład w programie Microsoft Word, bez informowania o tym użytkownika. W programie Microsoft Word plik będzie mógł użyć zawartości aktywnej, na przykład makra, do uruchomienia programu (na przykład wirusa) na komputerze użytkownika.

Co zostało zmienione?

Program Internet Explorer będzie obecnie podejmował próby zmiany nazwy pobranych plików w pamięci podręcznej, aby dopasować typy zawartości do rozszerzeń, chroniąc w ten sposób przed plikami, w których wprowadzono błędne informacje na temat ich typu.

Program Internet Explorer będzie wyświetlał podczas pobierania okno dialogowe z informacjami dla użytkownika i nie będzie wykonywał plików o niezgodnym typie MIME i rozszerzeniu, które zostały odrzucone przez zarejestrowany program obsługi typu MIME.

Program Internet Explorer nie wykona także pliku w jego programie obsługi przypisanym w powłoce, gdy program obsługi typu MIME zgłosi dla tego pliku kod błędu E_Cannot_Load_Data.

Zamiast wykonania takiego pliku w programie obsługi powłoki, w programie Internet Explorer zostanie wyświetlone okno dialogowe zawierające informacje o błędzie, a plik będzie mógł zostać zapisany.

Deweloperzy witryn w sieci Web mogą izolować aplikacje niedziałające z powodu takiego zachowania, wyłączając tę funkcję w sposób opisany w sekcji Ustawienia w dalszej części tego dokumentu.

Jak rozwiązać te problemy?

Deweloperzy witryn w sieci Web muszą zmienić używane przez nich serwery sieci Web w taki sposób, aby obsługiwały pliki przy użyciu spójnych nagłówków dotyczących typu zawartości i rozszerzeń nazw plików. Jeśli jest to niemożliwe, można użyć nagłówka HTTP z deklaracją "Content-disposition=attachment", aby przesłać plik bezpośrednio do programu obsługi jego rozszerzenia, a nie do programu obsługi typu MIME. Należy zwrócić uwagę, że podczas pobierania plików z nagłówkiem "Content-disposition=attachment" będzie wyświetlany monit z pytaniem o sposób obsługi pliku.

W przypadku programu obsługi typu MIME, w którym umyślnie przyjęto, że pliki odrzucone przez ten program wykonuje program Internet Explorer, konieczne będzie zmodyfikowanie tego programu obsługi w celu dostosowania go do tej zmiany. Najbezpieczniejszą zmianą byłoby jednak wprowadzenie macierzystej obsługi pliku bezpośrednio w programie obsługi typu MIME, zamiast odrzucania tego pliku.

Jednak w niektórych przypadkach nie można zmienić zachowania programu obsługi typu MIME w celu macierzystej obsługi pobieranych plików. Do wyboru jest wówczas kilka opcji.

Można napisać programy obsługi typu MIME i rozszerzenia, które będą częścią tego samego identyfikatora CLSID. Program Internet Explorer zaakceptuje zgodność identyfikatorów CLSID i nie wyświetli monitu o pobranie pliku lub zablokowanie jego wykonania w programie obsługi rozszerzenia.

Gdy program obsługi typu MIME nie musi być ładowany i powoduje błędy niezgodności typu MIME i rozszerzenia, deweloper może oznaczyć go, aby był ignorowany przez program Internet Explorer w razie wystąpienia niezgodności typu MIME i rozszerzenia. Jeśli na przykład plik multimedialny o określonym typie MIME ma niezgodne rozszerzenie i musi zostać wykonany bezpośrednio w celu jego poprawnego odtworzenia, deweloper może oznaczyć identyfikator ProgID programu obsługi tego typu MIME, aby był ignorowany w razie niezgodności, to znaczy wtedy, gdy rozszerzenie nazwy pliku jest przypisane do innego identyfikatora ProgID. Aby program obsługi typu MIME był ignorowany, należy ustawić w rejestrze następującą wartość:

HKEY_CLASSES_ROOT\PROG_ID_OF_MIMEHANDLER_TO_IGNORE\"PreferExecuteOnMismatch"=DWORD:00000001

Jeśli żadne z powyższych rozwiązań nie może zostać zastosowane, deweloperzy powinni poinformować użytkowników o niezgodności i wyjaśnić, w jaki sposób mogą zapisać niezgodny plik w systemie plików i uruchomić go ręcznie.

W przypadku gdy działanie aplikacji jest zakłócane przez niepożądane monity dotyczące pobierania plików spowodowane niezgodnością typu MIME i rozszerzenia, której nie można wyeliminować, można zarejestrować identyfikator ProgID programu obsługi typu MIME, aby pomijał te monity, łącznie z nowymi monitami o niezgodności.

Należy jednak upewnić się wcześniej, że dany program obsługi typu MIME może bezpiecznie obsłużyć każdy plik, który jest z nim skojarzony. Należy na przykład sprawdzić, czy program obsługi nigdy nie pozwoli napastnikowi uzyskać większych uprawnień niż wynikające ze strefy, z której pochodzi pobierany plik. Wymaga to zastosowania modelowania wątków oraz przeglądu kodu pod kątem bezpieczeństwa trybów awaryjnych i przepełnień buforu. W przypadku stwierdzenia, że program obsługi typu MIME może bezpiecznie obsłużyć dowolny plik, do którego obsługi jest przeznaczony, można go zarejestrować, aby pomijał monity podczas pobierania, dodając nowy klucz do jednego z poniższych ustawień rejestru:

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\InternetSettings\Secure_Mime_Handlers 
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\InternetSettings\Secure_Mime_Handlers

Nazwa tego klucza powinna być taka, jak identyfikator ProgID programu obsługi typu MIME, a wartość klucza powinna wynosić DWORD=00000001.

Określanie typu pliku przez wykrywanie typu MIME

Szczegółowy opis

Jednym z dodatkowych kryteriów określania typu pliku jest wynik wykrywania typu MIME. Przez sprawdzenie pliku (wykrywanie) program Internet Explorer może rozpoznać sygnatury bitowe określonych typów plików. W systemie Windows Server 2003 z dodatkiem Service Pack 1 wynik wykrywania typu MIME przez program Internet Explorer nie spowoduje zmiany plików typu text\plain na mniej bezpieczne typy plików w strefie witryn z ograniczeniami. Na przykład odebrane jako zwykły tekst pliki, które zawierają kod HTML, nie zostaną zakwalifikowane do typu HTML, ponieważ może się w nich znajdować zawartość aktywna.

Dlaczego ta zmiana jest ważna?

Ta zmiana wprowadza dodatkowe zabezpieczenie użytkowników przed złośliwą zawartością opublikowaną na przyjaznym serwerze sieci Web, który udostępnia plik z deklaracją content-type=text\plain, ale napastnikowi udało się załadować do tego pliku kod HTML z zawartością aktywną.

Co zostało zmienione?

Strony na serwerach sieci Web, których pliki nie zawierają poprawnego nagłówka Content-Type i w których są używane niestandardowe rozszerzenia dla stron HTML, mogą być obecnie wyświetlane jako zwykły tekst, a nie jako pliki HTML.

Jak rozwiązać te problemy?

Należy skonfigurować poprawne nagłówki Content-Type w plikach na serwerach sieci Web lub nadać plikom nazwy z rozszerzeniami odpowiadającymi aplikacji, która powinna obsługiwać te pliki.

Jakie ustawienia zostały dodane lub zmienione w systemie Windows Server 2003 z dodatkiem Service Pack 1?

 

Nazwa ustawienia Lokalizacja Poprzednia wartość domyślna Wartość domyślna Dopuszczalne wartości

IExplore.exe

Explorer.exe

HKEY_LOCAL_MACHINE(lub Current User)\Software \Microsoft \Internet Explorer\Main \FeatureControl \FEATURE_MIME_HANDLING\

Brak

1

0 — Wyłączone

1 — Włączone

IExplore.exe

Explorer.exe

HKEY_LOCAL_MACHINE(lub Current User)\Software \Microsoft \Internet Explorer\Main \FeatureControl\FEATURE_MIME_SNIFFING\

Brak

1

0 — Wyłączone

1 — Włączone

Ustawienia wykrywania typu MIME dla poszczególnych stref

Nowe ograniczenie związane z wykrywaniem typu MIME jest kontrolowane przez ustawienie zabezpieczeń Otwieraj pliki w oparciu o zawartość, a nie rozszerzenie pliku, które można ustawić dla poszczególnych stref zabezpieczeń. W poniższej tabeli przedstawiono wykaz ustawień domyślnych dla każdej strefy zabezpieczeń:

 

Strefa zabezpieczeń „Otwieraj pliki w oparciu o zawartość, a nie rozszerzenie pliku” Domyślne ustawienia zabezpieczeń

Strefa Witryny z ograniczeniami

Wyłącz

Strefa Internet

Włącz

Strefa Intranet

Włącz

Strefa Zaufane witryny

Włącz

Czy do pracy z systemem Windows Server 2003 z dodatkiem Service Pack 1 jest wymagana zmiana kodu?

Należy skonfigurować serwery sieci Web, aby używały poprawnych nagłówków Content-Type. Można także nadać plikom nazwy z rozszerzeniami odpowiadającymi aplikacji, która ma obsługiwać te pliki.

Znaczniki :


Page view tracker