Ataki, zapobieganie i wykrywanie luk w zabezpieczeniach DLL Hijacking

DLL oznacza biblioteki łączy dynamicznych(Dynamic Link Libraries) i są zewnętrznymi częściami aplikacji działających w systemie Windows(Windows) lub dowolnym innym systemie operacyjnym. Większość aplikacji nie jest sama w sobie kompletna i przechowuje kod w różnych plikach. Jeśli istnieje potrzeba kodu, powiązany plik jest ładowany do pamięci i używany. Zmniejsza to rozmiar pliku aplikacji, jednocześnie optymalizując wykorzystanie pamięci RAM(RAM) . W tym artykule wyjaśniono, co to jest przejęcie DLL(DLL Hijacking) i jak je wykrywać i zapobiegać.

Czym są pliki(Files) DLL lub biblioteki łączy dynamicznych(Dynamic Link Libraries)

Przejęcie DLL

Pliki DLL(DLL)bibliotekami łączy dynamicznych(Dynamic Link Libraries) i, jak wynika z nazwy, są rozszerzeniami różnych aplikacji. Każda aplikacja, z której korzystamy, może, ale nie musi, używać określonych kodów. Takie kody są przechowywane w różnych plikach i są wywoływane lub ładowane do pamięci RAM(RAM) tylko wtedy, gdy wymagany jest powiązany kod. W ten sposób chroni plik aplikacji przed zbyt dużym rozmiarem i zapobiega przejmowaniu zasobów przez aplikację.

Ścieżka do plików DLL jest ustalana przez system operacyjny Windows . Ścieżka jest ustalana za pomocą globalnych zmiennych środowiskowych(Global Environmental Variables) . Domyślnie, jeśli aplikacja żąda pliku DLL , system operacyjny przegląda ten sam folder, w którym przechowywana jest aplikacja. Jeśli nie zostanie tam znaleziony, trafia do innych folderów określonych przez zmienne globalne. Ścieżki mają przypisane priorytety i pomaga to systemowi Windows określić, które foldery mają szukać bibliotek DLL(DLLs) . W tym miejscu pojawia się porwanie biblioteki DLL .(DLL)

Co to jest przejmowanie bibliotek DLL

Ponieważ biblioteki DLL(DLLs) są rozszerzeniami i są niezbędne do korzystania z prawie wszystkich aplikacji na twoim komputerze, są one obecne na komputerze w różnych folderach, jak wyjaśniono. Jeśli oryginalny plik DLL zostanie zastąpiony fałszywym plikiem DLL zawierającym złośliwy kod, jest to znane jako DLL Hijacking .

Jak wspomniano wcześniej, istnieją priorytety dotyczące tego, gdzie system operacyjny szuka plików DLL . Najpierw(First) zagląda do tego samego folderu, co folder aplikacji, a następnie przeszukuje, w oparciu o priorytety ustawione przez zmienne środowiskowe systemu operacyjnego. Tak więc, jeśli plik good.dll znajduje się w folderze SysWOW64 , a ktoś umieści plik bad.dll w folderze, który ma wyższy priorytet w porównaniu do folderu SysWOW64 , system operacyjny użyje pliku bad.dll, ponieważ ma on taką samą nazwę jak DLL wymagane przez aplikację. Będąc w pamięci RAM(RAM) , może wykonać złośliwy kod zawarty w pliku i może zagrozić komputerowi lub sieciom.

Jak wykryć przejęcie DLL

Najłatwiejszą metodą wykrywania i zapobiegania przechwyceniu bibliotek DLL(DLL) jest użycie narzędzi innych firm. Na rynku dostępnych jest kilka dobrych darmowych narzędzi, które pomagają w wykrywaniu prób włamania do biblioteki DLL i zapobieganiu jej.(DLL)

Jednym z takich programów jest DLL Hijack Auditor , ale obsługuje on tylko aplikacje 32-bitowe. Możesz zainstalować go na swoim komputerze i przeskanować wszystkie aplikacje Windows, aby zobaczyć, które aplikacje są podatne na przejęcie DLL . Interfejs jest prosty i oczywisty. Jedyną wadą tej aplikacji jest to, że nie można skanować aplikacji 64-bitowych.

Inny program do wykrywania przejęcia biblioteki DLL(DLL)DLL_HIJACK_DETECT, jest dostępny za pośrednictwem GitHub . Ten program sprawdza aplikacje, aby zobaczyć, czy którakolwiek z nich jest podatna na przejęcie DLL . Jeśli tak, program informuje użytkownika. Aplikacja ma dwie wersje – x86 i x64 , dzięki czemu można używać każdej z nich do skanowania zarówno aplikacji 32-bitowych, jak i 64-bitowych.

Należy zauważyć, że powyższe programy po prostu skanują aplikacje na platformie Windows w poszukiwaniu luk w zabezpieczeniach i tak naprawdę nie zapobiegają porwaniu plików DLL .

Jak zapobiec przejmowaniu bibliotek DLL

Problemem powinni zająć się przede wszystkim programiści, ponieważ niewiele można zrobić, poza ulepszaniem systemów bezpieczeństwa. Jeśli zamiast ścieżki względnej programiści zaczną używać ścieżki bezwzględnej, podatność zostanie zmniejszona. Odczytanie ścieżki bezwzględnej, Windows lub jakikolwiek inny system operacyjny nie będzie zależał od zmiennych systemowych dla ścieżki i przejdzie bezpośrednio do zamierzonej biblioteki DLL(DLL) , odrzucając w ten sposób szanse załadowania tej samej nazwy DLL w ścieżce o wyższym priorytecie. Ta metoda również nie jest odporna na awarie, ponieważ jeśli system zostanie zhakowany, a cyberprzestępcy znają dokładną ścieżkę DLL , zastąpią oryginalną bibliotekę DLL(DLL) fałszywą biblioteką DLL(DLL). Oznaczałoby to nadpisanie pliku, tak aby oryginalna biblioteka DLL(DLL) została zmieniona w złośliwy kod. Ale znowu, cyberprzestępca będzie musiał znać dokładną bezwzględną ścieżkę podaną w aplikacji, która odwołuje się do DLL . Proces ten jest trudny dla cyberprzestępców i dlatego można na niego liczyć.

Wracając do tego, co możesz zrobić, po prostu spróbuj skalować swoje systemy bezpieczeństwa, aby lepiej zabezpieczyć system Windows(secure your Windows system) . Użyj dobrej zapory(firewall) . Jeśli to możliwe, użyj zapory sprzętowej lub włącz zaporę routera. Używaj dobrych systemów wykrywania włamań, aby wiedzieć, czy ktoś próbuje grać na Twoim komputerze.

Jeśli zajmujesz się rozwiązywaniem problemów z komputerami, możesz również wykonać następujące czynności, aby zwiększyć swoje bezpieczeństwo:

  1. Wyłącz ładowanie DLL ze zdalnych udziałów sieciowych
  2. Wyłącz ładowanie plików DLL z WebDAV
  3. Całkowicie wyłącz usługę WebClient lub ustaw ją na ręczną
  4. Zablokuj(Block) porty TCP 445 i 139, ponieważ są one najczęściej używane do kompromitowania komputerów
  5. Zainstaluj najnowsze aktualizacje systemu operacyjnego i oprogramowania zabezpieczającego.

Firma Microsoft(Microsoft) wydała narzędzie do blokowania ataków polegających na przejmowaniu obciążenia DLL . To narzędzie zmniejsza ryzyko ataków polegających na porwaniu biblioteki DLL(DLL) , uniemożliwiając aplikacjom niezabezpieczone ładowanie kodu z plików DLL .

Jeśli chciałbyś coś dodać do artykułu, prosimy o komentarz poniżej.(If you would like to add anything to the article, please comment below.)



About the author

Jestem inżynierem komputerowym z ponad 10-letnim doświadczeniem w branży oprogramowania, w szczególności w Microsoft Office. Napisałem artykuły i samouczki na różne tematy związane z pakietem Office, w tym wskazówki, jak efektywniej korzystać z jego funkcji, sztuczki do opanowania typowych zadań biurowych i nie tylko. Moje umiejętności jako pisarza sprawiają, że jestem również doskonałym źródłem informacji dla innych osób, które chcą dowiedzieć się więcej o pakiecie Office lub po prostu potrzebują szybkiej porady.



Related posts