Co tam, panie, w bezpieczeństwie

Krzysiek Dróżdż
krzysiek@wpmagus.pl
WPmagus.pl

Kim jestem?

Krzysiek Dróżdż

Czy WordPress jest niebezpieczny?

Liczba podatności w WordPress wg lat

źródło: cvedetails.com (24.09.2021)

Liczba podatności w popularnych CMS wg lat

źródło: cvedetails.com (24.09.2021)

Użycie CMS wśród miliona najpopularniejszych stron

,WordPress, Joomla, Drupal, Inne CMS, 36.17, 3.61, 1.99, 58.23
źródło: trends.builtwith.com (9.09.2021)

Rozkład używanych wersji WP

,5.8, 5.7, 5.6, 5.5, 5.4, 5.3, 5.2, 5.1, 5.0, 4.9, 4.8, 4.7, 4.6, 4.5, 4.4, 4.3, 4.2, 4.1, 4.0, 3.9, 3.8, 3.7, 3.6, 3.5, 3.4, 3.3, 3.2, 3.1, 3.0 , 43.64, 11.67, 5.66, 7.14, 6.15, 4.33, 4.01, 1.99, 1.4, 6.1, 1.52, 1.7, 0.71, 0.67, 0.76, 0.42, 0.4, 0.34, 0.24, 0.26, 0.15, 0.05, 0.11, 0.2, 0.12, 0.09, 0.05, 0.06, 0.1
źródło: wordpress.org/about/stats/ (24.09.2021)

A co z wtyczkami...?

źródło: wpscan.com (07.2021)

... i motywami?

źródło: wpscan.com (07.2021)

Podatności wtyczek w 2021 wg typu

, XSS, CSRF, SQL Injection, Access Controls, File Upload , 52, 16, 13, 12, 7
źródło: wpscan.com (24.09.2021)

Dwa ciekawe przypadki

WooCommerce Dynamic Pricing and Discounts

Przebieg zdarzeń:

  • 18.08 - wykrycie podatności pozwalającej importować ustawienia
  • 22.08 - wydanie pierwszej poprawki (sprawdzanie zalogowania)
  • 03.09 - wydanie drugiej poprawki (implementacja nonces)

... a do nas nadal trafiają strony, które padają ofiarą tych ataków.

Jak to wyglądało w kodzie...?

klasa RP_WCDPD_Settings, metoda __construct

... i dalej...

klasa RP_WCDPD_Settings, metoda import

Przebieg ataku

  • wysłanie do strony spreparowanego requestu z plikiem ustawień
  • zaimportowanie ustawień wtyczki na stronie
  • wykorzystanie podatności XSS, pozwalającej wykonywac kod JS

I dokładnie tak samo przebiegał atak na Flexible Checkout Fields, półtora roku wcześniej...

SQL Injection w WooCommerce

Przebieg zdarzeń:

  • 13.07 - wykrycie podatności pozwalającej importować ustawienia
  • 14.07 - wydanie poprawki i nawiązanie kontaktu z zespołem wtyczek WP
  • 16.07 - wymuszona aktualizacja wtyczki

Dlaczego taki pośpiech?

źródło: github.com/woocommerce/woocommerce/commit/7b4211276162f7e44868847b72eba655d7b93f52

Jakie z tego lekcje?

Błędy i podatności w kodzie są i będą

Przed większością ataków da się ochronić

W otwarty kod trzeba (umieć) zaglądać

Nie wystarczy aktualizować raz na jakiś czas

Dzięki za uwagę!

Krzysiek Dróżdż
krzysiek@wpmagus.pl
WPmagus.pl
WWWKON