2. Mageto - popularność
Magento staje się coraz popularniejsze. W związku
z tym jest bardziej podatne na ataki.
Poniżej wykres popularności Magento na tle
innych systemów sklepowych.
2/16
3. Zabezpieczenia
Warto zadbać o dodatkowe zabezpieczenia
Magento, które w przypadku prób włamania
przez roboty mogą być wysoce skuteczne.
Zastosować można 10 trików, które znacząco
podnoszą bezpieczeństwo sklepu.
3/16
4. 1. Hasło admina
Podczas instalacji Magento, tworzymy pierwszego
użytkownika administracyjnego. Ważne, aby nazwa
użytkownika była inna niż „admin“ ze względu na ataki typu
„brute force“ (http://pl.wikipedia.org/wiki/Atak_brute_force)
Pamiętaj, że dłuższe hasło jest lepsze. Użyj co najmniej 10
znaków. Warto wymieszać wielkie i małe litery, znaki
interpunkcyjne i cyfry.
Możemy skorzystać z gotowego narzędzia do sprawdzania
siły naszego hasła: www.passwordmeter.com
4/16
5. 2. HTTPS / SSL
Każdy formularz, który przesyła poufne informacje:
logowanie/rejestracja czy składanie zamówień, powinien
być obsługiwany przez szyfrowane połączenie SSL.
Magento, standardowo posiada obsługę protokołu HTTPS,
wystarczy go uruchomić w Panelu Administracyjnym oraz
wykupić i zainstalować Certyfikat SSL.
5/16
6. 3. Niestandardowa ścieżka admina
Domyślnie Panel Administracyjny Magento znajduje się pod
adresem www.domena.pl/admin
Warto zadbać o to, aby nasz Panel Administracyjny znajdował się
pod innym adresem np.:
- epanel
- panelwww
- adminpanel
- p4ne7 (najbezpieczniejsza forma)
Możemy to zmienić /app/etc/local.xml plik z ustawieniami bazy
danych
6/16
7. 4. Przypomnienie hasła admina
Magento ma bardzo wygodną funkcję, która pozwala administratorom
na resetowanie hasła w przypadku jego zapomnienia. W celu
zresetowania hasła, musisz znać e-mail powiązany z kontem.
Warto używać innego adresu e-mail niż ten do komunikacji z
klientami podany publicznie.
Po drugie, upewnij się, że hasło do konta e-mail jest bezpieczne.
Po trzecie, upewnij się, że konto e-mail ma pytanie
zabezpieczające, które umożliwia zresetowanie hasła oraz
wybierz pytanie i odpowiedź które będzie trudne od
odszyfrowania.
7/16
8. 5. Ograniczenie dostępu do Panelu
Jeżeli znamy adresy IP, z których będziemy łączyć się do
Panelu Administracyjnego, warto ustawić ograniczenie tylko
na te adresy.
Możemy użyć do tego pliku .htaccess
Przykład:
RewriteCond %{REQUEST_URI} ^/(index.php/)?admin/ [NC]
RewriteCond %{REMOTE_ADDR} !^1.1.1.1
RewriteRule ^(.*)$ http:// %{HTTP_HOST}/ [R=302,L]
8/16
9. 6. Logowanie z captcha
Standardowo Magento ma możliwość ustawienia captcha dla
różnych formularzy w sklepie. Także dla logowania do Panelu
Administracyjnego.
Możemy ustawić, że po 3 próbach niepoprawnego logowania
wyświetli nam się captcha, którą trzeba będzie przepisać.
Możemy to ustawić w:
System → Konfiguracja
zakładka: ZAAWANSOWANE
sekcja: CAPTCHA
9/16
10. 7. Role administracyjne
Warto zmienić nazwę oraz ID głównej roli administratora w
Panelu Admina. Jeżeli ktoś już wykryje dziurę w Magento,
trudniej będzie mu się wbić w bazę danych z własnym
zapytaniem.
Dodatkowo, warto po rejestracji pierwszego administratora
zmienić jego ID oraz autoincrement w bazie danych na
+1333
10/16
11. 8. Uprawnienia do plików
Upewnij się, że pliki i foldery nie mają prawa zapisu oprócz
Ciebie, zmieniając uprawnienia do plików i folderów na 644 755.
Dla wszystkich, które mają ustawione na 777. Najszybszym
sposobem zrobienia tego, jest wykonanie polecenia przez ssh:
find. -type d -exec chmod 755 {} ;
find. -type f -exec chmod 644 {} ;
Dodatkowo, warto również ustawić uprawnienia do pliku local.
xml na 600 (-RW), które ograniczyłyby do odczytu i zapisu do
zaledwie serwera.
11/16
12. 9. Magento Connect Manager
Magento Connect Manager to świetny sposób na szybką
instalację modułów, ale niesie za sobą również duże zagrożenie
dla bezpieczeństwa. Staje się dobrym punktem do wejścia dla
ataków brute force.
Aby zminimalizować ryzyko, możemy wykonać kilka czynności:
● zmienić nazwę katalogu na trudną do zidentyfikowania
● skasować ten katalog z wersji produkcyjnej, instalować
moduły lokalnie i wysyłać przez GIT/SVN (wersjowanie
zmian)
● ustawić zabezpieczenie na adres IP na ten katalog
12/16
13. 10. Niebezpieczne funkcje PHP
Aby uniknąć wykorzystywania funkcji PHP, które mogą być
potencjalnie niebezpieczne, należy dodać następujące
reguły do pliku php.ini:
disable_functions =
proc_open,phpinfo,show_source,system,shell_exec,
passthru,exec,popen
Są to funkcje, które pozwalają wykonywać operacje
bezpośrednio po stronie serwera oraz podglądać obecną
konfigurację serwera.
13/16
14. Luka RCE (Remote Code Execution)
Netanel Rubin z Check Point odkrył krytyczną lukę RCE (Remote
Code Execution), która daje nieuprawnionym osobom dostęp do
całego Systemu. Pozwala na zdalne wykonywanie zapytań do
bazy danych.
2go lutego 2015 r. Magento wypuściło oficjalną łatkę nazwaną
SUPEE-5344, którą należy bezwzględnie zainstalować na swoim
oprogramowaniu.
Na dzień 13go maja 2015 r. w naszej bazie sklepów Magento,
znajduje się 1930 adresów z czego 599 sklepów nie posiada
jeszcze zainstalowanej aktualizacji.
14/16
15. Luka w Magento - przykłady
Zakres przykładów wykorzystania przez niepowołane
osoby tej luki jest nieograniczony:
● dostęp do Panelu Administracyjnego,
● możliwość skasowania bazy danych,
● możliwość wpływu na ceny swoich zamówień,
● możliwość wpływu na rabaty,
● dostęp do danych klientów.
15/16
16. Skontaktuj się z nami
Dziękuję za uwagę
Autor: Mateusz Borowik
Kontakt: m.borowik@auroracreation.com
16/16