Jak sprawdzić, na które moduły ma wpływ poprawka bezpieczeństwa SUPEE-6788

71

27 października 2015 r. Magento wydało poprawkę bezpieczeństwa SUPEE-6788. Zgodnie ze szczegółami technicznymi , 4 naprawione APPSEC wymagają pewnych przeróbek w modułach lokalnych i społecznościowych:

  • APPSEC-1034, adresowanie z pominięciem niestandardowego adresu URL administratora (domyślnie wyłączone)
  • APPSEC-1063, adresowanie możliwego wstrzyknięcia SQL
  • APPSEC-1057, metoda przetwarzania szablonów umożliwia dostęp do prywatnych informacji
  • APPSEC-1079, rozwiązując problem potencjalnego wykorzystania przy użyciu niestandardowego typu pliku opcji

Zastanawiałem się, jak sprawdzić, które moduły dotyczą tej poprawki zabezpieczeń.

Wymyśliłem następujące częściowe rozwiązanie:

  • APPSEC-1034: wyszukaj <use>admin</use>w pliku config.xml wszystkich modułów lokalnych i społecznościowych. Myślę, że powinno to zawierać listę wszystkich modułów, których dotyczy ten problem.
  • APPSEC-1063: wyszukaj addFieldToFilter('(i addFieldToFilter('`we wszystkich plikach PHP modułów lokalnych i społecznościowych. Jest to niekompletne, ponieważ można również użyć zmiennych.
  • APPSEC-1057: wyszukaj {{config path=i {{block type=we wszystkich plikach PHP modułów lokalnych i społecznościowych oraz odfiltruj wszystkie elementy z białej listy. Jest to jednak niekompletne, ponieważ nie zawiera żadnych zmiennych szablonów dodanych przez administratorów.
  • APPSEC-1079: nie ma pojęcia.

Istnieje również lista rozszerzeń, które są podatne na APPSEC-1034 i APPSEC-1063, opracowanych przez Petera Jaapa Blaakmeera

Aad Mathijssen
źródło
Nie mam pojęcia, jak skontaktować się z @PeterJaapBlaakmeer, ale mam rozszerzenie, które należy dodać do listy: FreeLunchLabs ConstantContact w kwestii adresu URL administratora
David Wilkins
6
kto wymyślił niektóre z tych rozwiązań? Nagle pojawi się blokowa lista i zmienna biała lista? Ulepszenie Magento zawsze było uciążliwe, ale była dobrą robotą dla Magento, ponieważ sprawiło, że był to jeszcze większy ból.
Agop
6
Heh, Magento, dar, który wciąż daje. Właśnie zakończyłem aktualizację WSZYSTKICH modułów pod kątem zgodności z wersją 1.9.2.1. Twórcy modułów zakładów po prostu skaczą z radości lub krzyczą na wzgórza.
Fiasco Labs
3
w tym momencie łatka przełożona na następny tydzień - odłóż wydanie poprawki bezpieczeństwa na początek przyszłego tygodnia i zmodyfikuj łatkę, aby zmiany w routingu administratora były domyślnie wyłączone. Oznacza to, że poprawka będzie zawierać poprawkę, ale zostanie wyłączona po zainstalowaniu. Nowa data wydania i zmiany w łatce zapewnią ci dodatkowy czas na aktualizację twojego kodu i dadzą sprzedawcom elastyczność w włączaniu tej części łatki, gdy ich rozszerzenia i dostosowania zostaną zaktualizowane do pracy z nią.
FireBear,

Odpowiedzi:

55

Wersja SUPEE-6788 została zwolniona, a zmiany routingu administracyjnego domyślnie wyłączone. Oznacza to, że poprawka zawiera poprawkę, ale zostanie wyłączona po zainstalowaniu. To da ci dodatkowy czas na aktualizację twojego kodu i da sprzedawcom elastyczność włączania tej części łatki, gdy ich rozszerzenia i dostosowania zostaną zaktualizowane do pracy z nią.

Aby włączyć funkcję routingu administratora dla rozszerzeń po instalacji ścieżki, przejdź do Administrator -> Zaawansowane -> Administrator -> Bezpieczeństwo.

Łaty Magento CE 1.4-1.6 są opóźnione i powinny być dostępne za około tydzień!

SUPEE-6788 Lista zasobów

FireBear
źródło
Czy w przypadku modułów „nie naprawiających” możemy udokumentować, co ogólnie należy zmienić, aby moduły te można było ręcznie załatać do pracy z 6788? Na przykład „usuń X ze wszystkich addFieldToFilterpołączeń”.
Tyler V.,
1
Łatka została wydana. Zaktualizuj swoją odpowiedź.
7ochem
@FireBear W przeszłości wielokrotnie stosowałem łatki Magento. Ale mam wątpliwości co do SUPEE-6788. Czy muszę go stosować jak inne łatki, a później mogę włączyć funkcję routingu administratora w panelu administracyjnym Magento, czy tylko podczas instalacji muszę się tym zająć. Proszę zasugeruj.
Mukesh
2
@Mu tak, możesz zainstalować go jako inne łaty, ale musisz uważać na uszkodzone rozszerzenia, jeśli używasz niektórych rozszerzeń z listy - musisz je naprawić ręcznie lub poczekaj na aktualizację od programistów, aż włączysz - możliwość routingu administratora dla rozszerzeń
FireBear,
@FireBear Czy możesz przekazać swoją opinię na temat community.magento.com/t5/Version-Upgrades/… (Przed i po w module niestandardowym)
Mukesh
21

Zgodnie z innymi komentarzami na temat wykrywania konfliktów, w ParadoxLabs stworzyliśmy skrypt do śledzenia wszystkiego, na co wpływ mają APPSEC-1034 (kontrolery administracyjne) i APPSEC-1057 (biała lista). Spróbuje również naprawić wszelkie złe kontrolery, ponieważ jest to dość precyzyjna i inwazyjna zmiana.

Nie obejmuje APPSEC-1063 (wstrzyknięcie SQL) ani APPSEC-1079 (opcje niestandardowe), ale byłoby świetnie, gdyby mógł. Nie wiesz, jak je wykryć z jakąkolwiek precyzją. Jesteśmy otwarci na wkład.

https://github.com/rhoerr/supee-6788-toolbox

Ryan Hoerr
źródło
3
to wygląda naprawdę przydatne, dobra robota!
paj
fixWhitelists dodaje bloki do białych list, ale wydaje się, że nie robi tego samego w przypadku zmiennych - czy możesz to potwierdzić?
zigojacko,
1
@zigojacko Obejmuje oba.
Ryan Hoerr
Tak, zrozumiałem to, próbując. Doskonała robota, super robota ParadoxLabs :)
zigojacko,
Szacunek dla ParadoxLabs. To narzędzie oszczędza dużo pracy.
DarkCowboy
5

Ten skrypt php może być przydatny do identyfikacji kodu Magento, którego dotyczy proponowana poprawka SUPEE-6788 .

Nie jest to w żaden sposób niezawodne sprawdzenie bezpieczeństwa tej poprawki, ale może być przydatne do szybkiego przeskanowania instalacji w poszukiwaniu modułów i kodu.

Zainstaluj skrypt za pomocą

wget https://raw.githubusercontent.com/gaiterjones/magento-appsec-file-check/master/magento_appsec_file_check.php

edytuj ścieżkę do instalacji Magento

$_magentoPath='/home/www/magento/';

biegać

php magento_appsec_file_check.php

Dotknięte pliki zostaną wyświetlone:

*** Magento security file check ***
[1] APPSEC-1034, addressing bypassing custom admin URL
2 effected files :
<use>admin</use> found in  app/code/community/Itabs/Debit/etc/config.xml
<use>admin</use> found in  app/code/core/Mage/Adminhtml/etc/config.xml


[2] APPSEC-1063, addressing possible SQL injection
2 effected files :
collection->addFieldToFilter(' found in  app/code/community/Itabs/Debit/Model/Export/Abstract.php
collection->addFieldToFilter(' found in  app/code/community/Itabs/Debit/controllers/Adminhtml/OrderController.php
collection->addFieldToFilter(' not found.
collection->addFieldToFilter('\` not found.
collection->addFieldToFilter('\` not found.


[3] APPSEC-1057, template processing method allows access to private information
{{config path= not found.
{{block type= not found.


***********************************

Skrypt używa grep do przeszukiwania plików Magento w poszukiwaniu wystąpień kodu, które mogą potencjalnie zepsuć wsteczną kompatybilność z dostosowaniami lub rozszerzeniami po zastosowaniu SUPEE-6788.

paj
źródło
4

Dostępna jest już duża lista ze wszystkimi rozszerzeniami, które będą działać z SUPEE-6788

Więcej informacji tutaj: https://docs.google.com/spreadsheets/d/1LHJL6D6xm3vD349DJsDF88FBI_6PZvx_u3FioC_1-rg/edit#gid=0

Gary Olderman
źródło
Naprawdę jestem ciekawy, jak zebrano tę listę.
mam08ixo
3
To było crowdsourcing; oryginalne źródło to: docs.google.com/spreadsheets/d/…
Herman Slatman
Proszę usunąć listę z powyższej strony i zamiast tego link do źródła, które jest aktualizowane: docs.google.com/spreadsheets/d/…
Aad Mathijssen
1
Czy jest jakiś kontakt, aby poinformować o zaktualizowanych wersjach? Widzę tam co najmniej 2-3 moduły, które zostały już zaktualizowane.
versedi
-1

Lista dozwolonych zmiennych, które mogą być przetwarzane przez filtr treści, jest większa niż pokazano w pliku PDF:

+ trans_email/ident_support/name
+ trans_email/ident_support/email
web/unsecure/base_url
web/secure/base_url
trans_email/ident_general/name
+ trans_email/ident_general/email
trans_email/ident_sales/name
trans_email/ident_sales/email
trans_email/ident_custom1/name
trans_email/ident_custom1/email
trans_email/ident_custom2/name
trans_email/ident_custom2/email
general/store_information/name
general/store_information/phone
general/store_information/address

(Dodałem +wcześniej zmienne, które nie zostały opisane w pliku PDF)

Dozwolone bloki, które można przetwarzać za pomocą filtra treści, to:

core/template
catalog/product_new
Daniel van der Garde
źródło