Preorder drugiego tomu książki sekuraka: Wprowadzenie do bezpieczeństwa IT. -15% z kodem: sekurak-book
Seria podatności umożliwiająca nawet zdalne puszczenie UPSów APC z dymem
Tak „reklamują” odkryte podatności badacze z firmy Armis. Filmik z przykładowej akcji poniżej (nie próbujcie tego na realnych urządzeniach!)
Od strony technicznej całość sprowadza się do dwóch podatności w bibliotece nanoSSL (wykorzystywanej przez podatne urządzenia APC). Wykorzystanie luk umożliwia podszycie się pod serwer w cloudzie (ale uwaga trzeba tutaj wcześniej wykonać atak klasy man-in-the-middle) a następnie wysłanie spreparowanego firmware do urządzenia.
Czy firmware nie jest jakoś cyfrowo podpisany? Nie jest. Jest za to szyfrowany, ale z tym szyfrowaniem też wykryto kilka problemów:
- All firmware for Smart-UPS devices of the same model use the same encryption key.
- Symmetrical encryption: The same key is used for encryption and decryption, and the key can be extracted from a physical device.
- No signing mechanism exists.
Na stronie producenta – Schneider Electric – powinny być już dostępne łatki. Nieco niżej na stronie tutaj – podatne modele.
~Michał Sajdak
Jeżeli firmware steruje kształtem przebiegu napięcia na wyjściu UPSa i parametrami napięcia do ładowania baterii… to gratulacje dla producenta. Żaden z moich UPSów nie jest podłączony do chmury. Oprogramowanie do zarządzania działa lokalnie. Jak nie ma problemów z firmware, to go nie aktualizujemy. Na szczęście wektor ataku jest dość skomplikowany, bo trzeba być w sieci ofiary i to na kilku urządzeniach.
Problem w tym, że złośliwe oprogramowanie może wydać sam producent, żeby w ten sposób zaatakować serwerownie rosyjskie. Ilu postronnych dostanie rykoszetem?
Firmware odpowiada za całe urządzenie – bo zrobienie falownika generującego przebieg sinusoidalny, ładującego baterie i do tego analizującego parametry sieci (o konfigurowalnych progach tych parametrów) bez mikrokontrolera jest drogie, bardziej awaryjne (więcej elementów z których każdy może ulec uszkodzeniu) i wymaga więcej miejsca. UPSy posiadają zaawansowane algorytmy ładowania baterii, wydłużania jej żywotności oraz szacowania czasu podtrzymania co przedkłada się na bardziej skomplikowane sterowanie. Aby spalić UPS trzeba napisać specjalny (sensowny) firmware a więc znać architekturę sprzętową aby to zrobić inteligentnie. Bo nie wystarczy wysterować mostka na pełne otwarcie – UPS ma przecież bezpieczniki które zadziałają przy prądzie zwarciowym. Podobnie z ładowaniem – nie da się w prosty sposób „przeładować” baterii bo trzeba mieć na uwadze ograniczenia sprzętowe (wydajność prądowa i napięciowa).
Jesli producent takich krytycznych rozwiazan nie potrafi nawet zabezpieczyc urzadzenia ktorym mozna zarzadzac zdalnie to nie jest warty uwagi. I jesli eksperci ds. bezpieczenstwa tylko takie marne szyfrowanie potrafia zaimplementowac to ja jestem krolem hakerow bo nawet moj stary i dziurawy jak ser szwajcarski komputer lepiej zabezpieczylem :).
Rozumiem, że wnioskiem jest: „nie używaj UPS-ów”. Gdyby wzięli się za EATON-a czy cokolwiek innego, to znaleźliby dokładnie to samo. Taki sprzęt trzeba po prostu separować. Tak samo jak kamery, SKD, pożarówkę, wentylację, ogrzewanie, drukarki, IoT oraz całą resztę. I dwa razy się zastanowić czy potrzebne jest wyjście na chmurkę.
Jak na razie to Schneider jest jedną z tych niechlubnych firm, które nie wycofały się z ruskiego rynku, więc raczej nie będzie chciał tak atakować.