tylna furtka
| Po angielsku | backdoor |
|---|---|
| Którą formą pisać | obie formy Obie formy są w obiegu. Przy pierwszym wystąpieniu pisz „polski termin (english term)”, dalej sam polski. |
| Inne formy | ukryta furtka · ukryte wejście do systemu · ukryte konto (gdy chodzi o zaszyte poświadczenia) |
| Kategoria | Złośliwe oprogramowanie |
Tylna furtka (backdoor) to ukryte wejście do systemu, które omija zwykłe uwierzytelnianie. Zostawia ją atakujący, aby wracać bez ponownego włamania, albo umieszcza w kodzie sam producent lub dostawca oprogramowania. MITRE klasyfikuje takie mechanizmy jako ukrytą funkcjonalność: działanie nieudokumentowane, spoza specyfikacji i niedostępne przez interfejs znany użytkownikom i administratorom [1]. Sekurak zalicza do tylnych furtek również webshelle, bo dają zdalny dostęp do powłoki systemowej serwera [4].
Jak działa
Tylna furtka rozwiązuje problem atakującego, który już raz dostał się do systemu. Luka, przez którą wszedł, może zostać załatana, a hasło zmienione. Furtka pozwala mimo to wrócić. Dlatego MITRE ATT&CK opisuje webshelle i zakładanie nowych kont jako techniki utrwalania dostępu [2] [3]. Konto lokalne założone przez atakującego daje mu drugi, uwierzytelniony dostęp, który nie wymaga pozostawiania w systemie narzędzi zdalnego dostępu [3]. MITRE definiuje konta lokalne jako konta skonfigurowane w pojedynczym systemie lub usłudze dla użytkowników, zdalnego wsparcia, usług albo administracji [3]. Konto administratora w panelu WordPressa dobrze pasuje do tego opisu: wygląda jak każde inne i nie wymaga żadnego dodatkowego pliku.
Furtka nie musi być osobnym programem. Może to być kilka linii dopisanych do istniejącego pliku, dodatkowe konto, zmieniona reguła w konfiguracji serwera albo zadanie uruchamiane cyklicznie. Schemat poniżej pokazuje, jak furtka zmienia przebieg kolejnego wejścia.
Rodzaje
| Rodzaj | Kto zostawia | Przykład |
|---|---|---|
| webshell | atakujący po włamaniu | skrypt PHP wykonujący polecenia [4] |
| dodatkowe konto | atakujący po włamaniu | konto lokalne do powrotu [3] |
| kod w aktualizacji | przejęty dostawca | wtyczka CAPTCHA w 2017 roku [5] |
| kod w zależności | atak na łańcuch dostaw (supply chain attack) | XZ Utils w 2024 roku [6] |
| konto serwisowe | producent | zaszyte w kodzie hasło [1] |
MITRE zauważa, że także nieszkodliwa ukryta funkcjonalność, na przykład skrót programisty w postaci zaszytego konta, powiększa powierzchnię ataku [1]. Granica między furtką serwisową a złośliwą jest więc kwestią intencji, a nie techniki. W klasyfikacji CWE ukryta funkcjonalność ma dwie słabości podrzędne, w tym CWE-506, czyli osadzony złośliwy kod [1]. Wśród przykładów MITRE podaje program do zarządzania zasobami cyfrowymi, którego starsza wersja skryptu PHP zawierała nieujawnioną furtkę pozwalającą na nieuprawniony eksport metadanych [1].
W WordPressie
Po przejęciu strony WordPress atakujący może zostawić kilka furtek naraz, tak aby usunięcie jednej nie odcięło go od strony. Mogą to być webshell w katalogu wtyczki, motywu albo uploads, nieautoryzowane konto administratora oraz kod dopisany do plików ładowanych przy każdym żądaniu. Dokumentacja WordPressa wymienia wśród oznak włamania zakładanie nowych użytkowników bez zgody właściciela [7]. Wskazuje też pliki szczególnie często modyfikowane: .htaccess, index.php, header.php, footer.php i plik funkcji motywu [7].
Furtka może też przyjść z aktualizacją. Sekurak 20 grudnia 2017 roku opisał wtyczkę CAPTCHA z około 300 000 aktywnych instalacji, która po zmianie właściciela dostała złośliwe wersje od 4.3.6 do 4.4.4 [5]. Kod tworzył sesję użytkownika o identyfikatorze 1, czyli domyślnego administratora, ustawiał ciasteczka uwierzytelniające i usuwał się, a uruchomić go mógł każdy bez logowania [5]. Złośliwy kod pobierany był przy aktualizacji z zewnętrznej domeny nowego właściciela, a dotychczasowi autorzy stracili możliwość aktualizowania wtyczki [5]. Wersja 4.4.5 usunęła furtkę, a repozytorium WordPress.org zablokowało dalsze aktualizacje od nowych operatorów [5]. To przykład obejścia uwierzytelniania zaszytego w zaufanym kanale aktualizacji.
Dokumentacja hartowania WordPressa zaleca wtyczki i motywy wyłącznie z repozytorium WordPress.org albo od znanych firm [8]. Pakiety z nieoficjalnych źródeł, takie jak piracka wtyczka (nulled plugin), mogą zawierać furtkę od pierwszej instalacji.
Zagrożenia i skutki
Furtka przedłuża włamanie w czasie. Właściciel, który usunął widoczne skutki, na przykład spam albo przekierowanie, a furtki nie znalazł, może wkrótce znów mieć zainfekowaną stronę. Atakujący z dostępem administratora może instalować złośliwe skrypty zdolne przejąć cały serwer [8], a na hostingu współdzielonym skutki mogą dotknąć sąsiednich stron [7].
Jak wykrywać i usuwać
Webshelle używane jako furtki często mają funkcje pobierania plików i przeglądania zasobów serwera, a do wykonywania poleceń używają wbudowanych funkcji języka, na przykład PHP [4]. Sekurak wymienia kilka metod wykrywania webshelli i furtek [4]:
- skanery takie jak ClamAV i Maldetect, szukające znanych próbek;
- wyszukiwanie niebezpiecznych funkcji, na przykład
eval,base64_decode,execisystem; - porównanie plików z zaufaną kopią;
- monitorowanie zmian w systemie plików narzędziami typu Tripwire lub AIDE, czyli monitorowanie integralności plików;
- obserwację anomalii, na przykład nagłego wzrostu obciążenia serwera.
Dokumentacja WordPressa zaleca przy czyszczeniu podmianę katalogów /wp-admin i /wp-includes czystą kopią tej samej wersji, bo instalator w panelu tylko nadpisuje pliki, a włamania często dodają nowe [7]. Po oczyszczeniu trzeba ponownie zmienić hasła do wszystkich punktów dostępu i wygenerować nowe klucze w wp-config.php, co wylogowuje wszystkie sesje [7]; zob. klucze bezpieczeństwa i sole. Wyłączenie edytora plików stałą DISALLOW_FILE_EDIT utrudnia dopisanie furtki z panelu [8].
Historia i przykłady
Najgłośniejszym przykładem furtki w łańcuchu dostaw jest XZ Utils. 29 marca 2024 roku CISA poinformowała o złośliwym kodzie osadzonym w wersjach 5.6.0 i 5.6.1 tej biblioteki kompresji, oznaczonym jako CVE-2024-3094 [6]. Agencja zaleciła powrót do niezmienionej wersji, na przykład 5.4.6 Stable, i poszukiwanie śladów złośliwej aktywności, a o każdym znalezisku poinformowanie CISA [6]. Przypadek pokazuje, że furtka w zależności trafia do wszystkich, którzy ją zainstalują, bez jakiegokolwiek włamania do ich systemów. W świecie WordPressa odpowiednikiem jest przypadek wtyczki CAPTCHA z 2017 roku [5].
Przypisy
8- [1] CWE-912: Hidden Functionality · MITRE
- [2] Server Software Component: Web Shell (T1505.003) · MITRE ATT&CK
- [3] Create Account: Local Account (T1136.001) · MITRE ATT&CK
- [4] Jak wykrywać backdoory / webshelle w aplikacjach webowych? · Sekurak
- [5] Plugin CAPTCHA do WordPressa (300 000 instalacji) z backdoorem · Sekurak
- [6] Reported Supply Chain Compromise Affecting XZ Utils Data Compression Library, CVE-2024-3094 · CISA
- [7] FAQ My site was hacked · WordPress.org
- [8] Hardening WordPress — Advanced Administration Handbook · WordPress.org
Hasła w tym artykule
11Linkują tutaj
72- złośliwe oprogramowanie
- phishing
- kopia zapasowa
- botnet
- przejęcie konta
- koń trojański
- C2 (command and control)
- webshell
- porzucona wtyczka
- rootkit
- czyszczenie przejętej strony
- podmiana treści strony (defacement)
- spear phishing
- uprawnienia plików
- wgranie dowolnego pliku (arbitrary file upload)
- SFTP
- RAT (remote access trojan)
- atak na łańcuch dostaw
- blokada wykonywania PHP w katalogu uploads
- edytor plików motywów i wtyczek
- monitorowanie integralności plików
- skaner złośliwego oprogramowania (malware scanner)
- aktualizacja rdzenia WordPressa
- hasła aplikacji
- klucze bezpieczeństwa i sole
- podatność w motywie
- zaszyte w kodzie hasło
- zdalne wykonanie kodu (RCE)
- eskalacja uprawnień
- fałszywa wtyczka
- piracka wtyczka (nulled plugin)
- dropper
- technika wodopoju
- web skimming
- bootkit
- kwarantanna
- zaciemnianie kodu
- whaling
- baiting
- malware-as-a-service (MaaS)
- nieautoryzowane konto administratora
- robak komputerowy
- bomba logiczna
- mu-plugins
- pharma hack
- process injection
- shellcode
- złośliwe oprogramowanie bezplikowe
- piaskownica
- usunięcie zagrożenia
- malware polimorficzny
- RTO
- disaster recovery (DR)
- MITRE ATT&CK
- opanowanie incydentu
- sinkhole
- Cyber Kill Chain
- szkolenia z cyberbezpieczeństwa dla pracowników
- czas przebywania atakującego w sieci
- zatruwanie narzędzi
- due diligence
- kopia niezmienna (immutable backup)
- podpisywanie kodu
- slopsquatting
- atak na potok CI/CD
- badacz bezpieczeństwa
- black hat
- zatruwanie danych / zatruwanie modelu
- testy phishingowe
- MTTR
- sideloading
- default_role