Aby uzyskać szczegółową odpowiedź na twoje pytanie, patrz: /magento//a/72700/361
tło
Po pierwsze, nie ma żadnego konkretnego exploita - w tej chwili istnieje seria artykułów opisujących rundę, które źle odczytały i źle zrozumiały artykuł źródłowy.
W oryginalnym artykule tylko powiedziano (a ja parafrazuję):
Jeśli haker byli w stanie uzyskać dostęp do plików Magento, oni mogli przechwytywać informacje z klientem
Kluczową częścią jest fakt, że haker musi faktycznie uzyskać dostęp do serwera i zmodyfikować pliki.
Nie panikuj ... to nie jest nic specyficznego dla Magento
Pod względem przechwytywania informacji Magento nie ma nic konkretnego niż jakakolwiek inna strona internetowa / platforma. Jeśli haker uzyska dostęp do twoich plików, jego gra się skończy - będą w stanie przechwycić dowolne informacje, które chcą.
Najlepsze, co możesz zrobić (a ostatecznie minimum, jakie powinieneś zrobić), to utrzymać dobrą politykę bezpieczeństwa zgodną ze standardami bezpieczeństwa PCI w branży przetwarzania płatności, listę znajdziesz tutaj, https://www.pcisecuritystandards.org /documents/Prioritized_Approach_for_PCI_DSS_v3_.pdf
Zahartuj swój sklep
Możesz naprawdę zablokować aspekty swojego sklepu, które znacznie zmniejszają powierzchnię ataku hakera, a przynajmniej spowalniają ich postęp, jeśli uda im się dostać do /
Zablokuj uprawnienia
Możesz ograniczyć uprawnienia do katalogu głównego dokumentu, aby zezwolić tylko na zapis do niezbędnych katalogów ( /var
i /media
)
Tak właśnie robimy domyślnie w MageStack ,
echo -n "Fixing ownership"
chown -R $SSH_USER:$WEB_GROUP $INSTALL_PATH && echo " ... OK" || echo " ... ERROR"
INSTALL_PATH="/path/to/public_html"
chmod 750 $INSTALL_PATH
find $INSTALL_PATH -type d ! -perm 750 -exec chmod 750 {} \; && echo " ... OK" || echo " ... ERROR"
echo -n "Fixing file permissions"
find $INSTALL_PATH -type f ! -perm 740 -exec chmod 740 {} \; && echo " ... OK" || echo " ... ERROR"
echo -n "Fixing cron permissions"
find $INSTALL_PATH/*/cron.sh -type f ! -perm 750 -exec chmod 750 {} \; && echo " ... OK" || echo " ... ERROR"
echo -n "Fixing media/var file permissions"
chmod -R 760 $INSTALL_PATH/*/media $INSTALL_PATH/*/var && echo " ... OK" || echo " ... ERROR"
echo -n "Fixing media/var directory permissions"
find $INSTALL_PATH/*/media $INSTALL_PATH/*/var -type d ! -perm 770 -exec chmod 770 {} \; && echo " ... OK" || echo " ... ERROR"
Dopasuj INSTALL_PATH,SSH_USER,WEB_GROUP
do koloru. Ważne jest to, że nie jesteś SSH_USER
tym samym użytkownikiem, którego PHP używa do procesu serwera WWW, w przeciwnym razie zasadniczo zapewniasz pełny dostęp do zapisu na serwerze WWW (co zmniejsza wszelkie korzyści).
Zablokuj dostęp administratora / downloadera
W MageStack ustawiłbyś to ___general/x.conf
set $magestack_protect_admin true;
set $magestack_protect_downloader true;
Na Nginx możesz tego użyć,
location ~* ^/(index.php/)?admin{
satisfy any;
allow x.x.x.x;
auth_basic "Login";
auth_basic_user_file /microcloud/data/domains/x/domains/x/___general/.htpasswd;
deny all;
location ~* \.(php) {
include fastcgi_params;
}
try_files $uri $uri/ /admin/index.php ;
}
Jest nieco bardziej dokumentację, jak przygotować .htpasswd
plik tutaj
Zawiń cron.sh
proces
Natknąłem się na innych dostawców hostingu korzystających z dedykowanych maszyn do użytku cron / admin - co oznacza, że modyfikacja cron.sh
pliku umożliwi zdalne wykonanie kodu na cron / admin bez konieczności dostępu do niego. Podsumowanie procesu z odpowiednim użytkownikiem w fakechroocie może pójść o krok dalej, aby zablokować proces.
Nie ma zbyt dużo kodu dla mnie pisać, ale jest to skrypt tutaj . Jest specyficzny dla MageStack, ale można go dostosować do mniej eleganckich konfiguracji serwera :)
Audyt, audyt, audyt
Linux jest fantastyczny pod względem logowania i korzystania z niego, co daje pełny wgląd w to, co robi twój serwer.
Fantastyczną funkcją MageStack jest narzędzie kontrolne, które codziennie rejestruje wszystkie rodzaje dostępu, a nawet zmiany plików. Możesz znaleźć dzienniki tutaj,
/microcloud/logs_ro
|-dh[0-9]+
|---access-YYYY-MM-DD.log.gz
|---backup-YYYY-MM-DD.log.gz
|---magescan-YYYY-MM-DD.log.gz
|---php-differential-YYYY-MM-DD.log.gz
|-acc[0-9]+
|---access-YYYY-MM-DD.log.gz
Jeśli nie używasz MageStack, możesz dość łatwo powielić niektóre z nich u swojego dostawcy hostingu, rsync
będąc najprostszym narzędziem do tego.
Na przykład. Jeśli kopie zapasowe są dostępne lokalnie, możesz wykonać następujące czynności. Spowoduje to porównanie na sucho dwóch katalogów i utworzenie listy łatek różnic.
rsync -na /path/to/public_html/ /path/to/backup/public_html/ > change.log
grep -E '\.php$' change.log | while read FILE; do
diff -wp /path/to/public_html/$FILE /path/to/backup/public_html/$FILE >> php-differential.log
done
Zmiany w PHP są tak rzadkie, że można zaplanować ich uruchamianie codziennie (lub wiele razy dziennie) i powiadamianie przez e-mail, jeśli nastąpi zmiana pliku PHP.
W podsumowaniu
- Użyj kontroli wersji, łatwiej jest śledzić zmiany
- Samo posiadanie certyfikatu SSL nie wystarczy, aby Twoja strona była bezpieczna
- Nie czekaj, aż zostaniesz zhakowany, aby rozważyć bezpieczeństwo
- Tylko dlatego, że przekierowujesz do dostawcy bramki płatności (w przeciwieństwie do przechwytywania informacji) - nie oznacza to, że możesz uniknąć zgodności z PCI, nadal musisz przestrzegać
- Bądź proaktywny, bezpieczny i dokładny - sprawdzaj kod modułu przed jego instalacją, codziennie sprawdzaj pliki PHP, przeglądaj dzienniki, sprawdzaj dostęp FTP / SSH, regularnie zmieniaj hasła
Twoi klienci obdarzają Cię ogromnym zaufaniem, gdy przekazują wszystkie swoje prywatne informacje - a jeśli zdradzisz to zaufanie, nie prowadząc bezpiecznej firmy, stracisz ich zwyczaj i wszelkie przyszłe zwyczaje.
Badania kryminalistyczne PCI są niezwykle drogie, czasochłonne i ostatecznie ryzykują twoją zdolność do ponownego przyjmowania płatności kartą. Nigdy nie daj się postawić w tej pozycji!
Połataj
Ostatnio wydano szereg poprawek z Magento, które naprawiły dziury, w tym niektóre, które umożliwiły zdalne wykonanie kodu. Możesz je pobrać tutaj, https://www.magentocommerce.com/products/downloads/magento/
Ale te nowe artykuły nie odnoszą się do nowego exploita, po prostu stwierdzają, w jaki sposób hakerzy wykorzystują historyczne exploity (lub inny wektor ataku), aby móc przechwycić informacje o posiadaczu karty.
Źródła
Dodam kolejną odpowiedź tylko dlatego, że moja inna tak naprawdę nie odpowiedziała na pytanie - i na pewno nie musi być dłużej!
Jak mogę sprawdzić, czy obraz zawiera informacje CC
Ostatecznie nie możesz. Czasami istnieją wskaźniki, które wyróżniają go,
Na przykład.
Ale może być szczególnie trudne do strawienia zawartości plików binarnych w celu ustalenia zawartości, jeśli zawartość nie jest zwykłym tekstem.
Najczęstszym wykorzystać Widziałem nie wymaga zapisywania danych zwykły tekst w pliku z
.jpg|png|gif|etc
rozszerzeniem, zwykle wiązać jakieś kodowania / szyfrowania do zaciemniać dane (np.base64
Lubmcrypt
itd.). Co oznacza, że prosty grep nie zadziała.Mógłbyś (i to wcale nie jest wyczerpujące) ...
Znajdź nienormalnie duże pliki
Znajdź pliki pasujące do wyrażenia regularnego CC
Sprawdź, czy pliki obrazów są prawidłowe
Lub
Jak mogę sprawdzić pliki PHP w mojej instalacji, aby zobaczyć, czy zostały zmodyfikowane?
Najłatwiejszym sposobem porównania plików instalacyjnych byłoby różnicowanie rdzenia względem czystej kopii. Nie będzie to uwzględniać plików motywów, ale znacznie zajmie sprawdzenie kilku tysięcy plików w instalacji.
Proces jest naprawdę łatwy,
Na przykład. Dla wersji Magento 1.7.0.2
Pamiętaj, że starsze wersje Magento nie są (irytujące) nie załatane, więc zrobienie podstawowej różnicy spowoduje wyświetlenie zmian. Aby tego uniknąć, zastosuj łaty do świeżo pobranego czystego źródła, a następnie zrób różnicę później.
źródło
Świetny post, ale niestety nie wszystkie rzeczy są sobie równe.
Uprawnienia do plików
Kiedy hosting dzielony stał się popularny, uznano, że ważniejsze jest, aby ludzie nie mogli oglądać treści innych na tym samym serwerze. Do czasu pojawienia się więzień FreeBSD oznaczało to:
Umożliwiło to modyfikację (wówczas) plików HTML przez właściciela konta, a jednocześnie proces serwera WWW i właściciel konta nie mieli dostępu do innych na tym samym komputerze.
To niewiele się zmieniło i wszystkie pakiety oprogramowania dostosowane do hostingu współdzielonego (CPanel, DirectAdmin, Plex) stosują te zasady. Oznacza to, że główny punkt wejścia (serwer WWW i / lub interpreter skryptów) może zapisywać do dowolnego pliku na koncie, dzięki czemu uprawnienia do plików są bezużyteczne.
Brak CC do kradzieży, jeśli go nie masz
Poinformuj swojego dostawcę płatności CC, czy dane CC są faktycznie wysyłane na twój serwer, a jeśli tak, czy są przesyłane niezaszyfrowane niezaszyfrowane. JavaScript jest obecnie dość potężny i istnieją dostawcy usług płatniczych, którzy używają silnika JavScript klienta do szyfrowania poufnych informacji przed przesłaniem na serwer. Chociaż zbieracz informacji może uzyskać klucz sesji, a także dane zaszyfrowane (a tym samym móc je odszyfrować), zbieranie danych jest mniej interesujące, ponieważ zebrane dane są większe, a sztuczna inteligencja bota jest o wiele bardziej złożona .
Wykrywanie modyfikacji
Ponad 15 lat uniksów i wciąż wywołuje nostalgiczny uśmiech na mojej twarzy, kiedy widzę reinkarnacje TripWire . Git, to także dobre narzędzie do tego. Porównując ze znaną dobrą wersją, nieco mniej, ponieważ nie bierze ona pod uwagę dodatków i ponownie daje dobre narzędzie tutaj, ponieważ lokalne modyfikacje strony są częstsze niż nieskazitelne instalacje.
Downloader
Przeniesienie downloeadera poza katalog główny dokumentu jest równie łatwe, jak zainstalowanie jakiejś formy uwierzytelnienia HTTP. Następnie odłóż go tylko wtedy, gdy go użyjesz. Jeśli to nie jest praktyczne, wolę je zablokować na podstawie adresu zdalnego niż innej warstwy użytkownika / hasła, szczególnie tych, które wysyłają hasła w postaci zwykłego tekstu.
WAF i alternatywy
Zapora aplikacji sieciowej może zapobiec wielu problemom, już na etapie skanowania ataku. Niestety są to drogie czarne skrzynki, ale istnieją pewne alternatywy:
Myślę, że omówiliśmy wiele rzeczy, ale pozwól mi zakończyć moją petpeeve:
PRZESTAŃ UŻYWAĆ FTP
Tam. Powiedziałem to. I proszę: https://wiki.filezilla-project.org/Howto
źródło
W tym nowym hacku nie ma nic pewnego, Ben Marks powiedział wczoraj, że badają ten problem i jest też ten artykuł.
Najlepszym rozwiązaniem, jakie możesz wypróbować, jest zalogowanie się przez SSH i przeszukanie wszystkich plików pod kątem określonego ciągu, coś w rodzaju
z folderu głównego Magento, a jeśli otrzymasz dopasowanie, ręcznie sprawdź plik, aby zobaczyć, co się dzieje. To samo z innymi ciągami, np. „END PUBLIC KEY”.
źródło