Ostatnie kilka dni cała Polska żyła tematem Pegasusa: okazało się, że najpierw Ewa Wrzosek, potem Roman Giertych, a teraz Krzysztof Brejza, byli infekowani tym właśnie narzędziem.
W międzyczasie jednak Polska została odcięta od dostępu do Pegasusa, przez co na forach i w serwisach społecznościowych powtarza się ciągle jedno trapiące Polaków pytanie:
Czy Polska po odcięciu nadal może używać Pegasusa?
Pomińmy tutaj kwestie czysto prawne związane z licencjonowaniem i zapłatą za oprogramowanie, a skupmy się na odpowiedzi, czy jest to wykonalne od strony technicznej, jakie są ewentualne ograniczenia i jak je ominąć.
A więc w płaszczyźnie czysto technicznej, zagadnienie to należy podzielić na 6 płaszczyzn:
- sieć PATN (Pegasus Anonymizing Transmission Network)
- 0-daye
- integracja 0-dayów
- mechanizmy licencyjne i ew. komunikacja z serwerami NSO
- wsparcie techniczne
- kompetencje i gotowość operacyjna
Przyjrzyjmy im się po kolei.
Pegasus Anonymizing Transmission Network
Zacznijmy od cytatu z dokumentacji ofertowej Pegasusa:
Pegasus Anonymizing Transmission Network (PATN) is built from anonymizing connectivity nodes which are spread in different locations around the world, allowing agent connections to be directed through different paths prior to reaching the Pegasus servers. The anonymized nodes serve only one customer and can be set up by the customer if required.
Według innych dostępnych informacji, PATN jest po prostu specyficznym rodzajem sieci CDN (czyli rozproszonych geograficznie serwerów www do szybkiego serwowania treści) – specyficznym z dwóch powodów: bo służy również do tunelowania komunikacji w obie strony, oraz bo jest obudowany mechanizmami do automatycznej konfiguracji nowych usług, dzięki czemu lista domen i serwerów ciągle się „sama” przebudowuje.
A ile tych domen jest? Ten artykuł z 2018 wspomina o 1014 domenach, jednak w kontekście różnych klientów. W Polsce CBA jest w stanie prowadzić jednoczesny, ciągły podsłuch nieco ponad 30 telefonów (nie należy tego z infekcjami jednorazowymi, tj. infekcją, zgraniem danych i podsłuchem przez maksymalnie kilka dni, co można robić bez kontroli sądu i co robione jest na dużo szerszą skalę na zasadzie automatycznie działającej kolejki).
Można więc zakładać, że aktywnych w każdym momencie może być pomiędzy 100 a 150 domen (licząc tylko te dla Polski, a nie globalnie, jak to robi Amnesty International), kupionych u różnych registrarów, skonfigurowanych na różnego typu serwerach, z różnymi adresami IP, w różnych AS – i najprawdopodobniej są one rotowane w tempie 5-10% na dobę, czyli codziennie „wylatuje” pomiędzy 5 a 15 domen, a w ich miejsce pojawia się 5-15 nowych. Tak to przynajmniej powinno działać, jeśli nikt w Polsce nie postanowił przyoszczędzić na kosztach bieżących funkcjonowania PATN.
Dlaczego jednak zaczynamy właśnie od PATN?
Otóż niektóre artykuły w Internecie sugerują, że Polska i Węgry zostały nie tylko odcięte od Pegasusa w płaszczyźnie prawno-formalno-licencyjnej, ale również został odcięty dostęp do serwerów. Przyjrzeliśmy się architekturze całego rozwiązania technicznego i PATN jest jednym z dwóch elementów, które NSO mogło faktycznie odciąć.
Czy jesteśmy w stanie zastąpić PATN własnym rozwiązaniem?
Tak. W tej części systemu nie ma żadnej wiedzy tajemnej, zakres funkcjonalny jest znany, a kluczowym pytaniem jest to, z iloma różnymi ISP i dostawcami usług chmurowych (a precyzyjniej Infrastructure as a Service, czyli np. Amazon, Google czy Hetzner, a w Polsce np. Atman, Asseco czy Beyond) została wcześniej zrealizowana integracja i na ile da się jej elementy wykorzystać ponownie. Wstępnie jednak, odtworzenie PATN wydaje się być projektem na kilka miesięcy dla 3-4 programistów, 1 DevOpsa i 1 sieciowca.
0-daye i wektory infekcji
Przede wszystkim, co to takiego ten „0-day”? Jest to działający exploit, pojawiający się na rynku, zanim jeszcze producent podatnego na niego oprogramowania wypuści odpowiednią poprawkę. A najlepiej, zanim ten producent w ogóle dowie się o podatności.
„Dobry” 0-day jest towarem bardzo drogim. Firmy takie jak Zerodium potrafią płacić nawet po kilka milionów dolarów za sztukę – oczywiście konkretna cena zależy przede wszystkim od atakowanej platformy (najdroższe są exploity na iPhone), potem od możliwości, sposobu infekcji itd.
Pegasus w przypadku iPhone ma 6 znanych sposobów infekcji, z czego co najmniej 4 (a możliwe że 5) oparte są właśnie na 0-dayach – głównie na aplikację iMessage. Aplikacja ta, podobnie jak cały system iOS, jest jednak regularnie aktualizowana.
Dlatego właśnie Pegasus w dłuższej perspektywie będzie potrzebował nowych 0-dayów – i to jest potencjalnie największy, najtrudniejszy do rozwiązania problem: samodzielne zakupy 0-dayów tylko przez Polskę, bez możliwości rozłożenia kosztów na poszczególnych klientów (a dotychczas Pegasusa zdążyło faktycznie kupić ponad 50 państw ze 102, którym był oferowany), na dłuższą metę mogą generować koszty nie tylko nie do samodzielnego udźwignięcia przez CBA czy inną służbę, ale wręcz trudną do ukrycia gdzieś w budżecie całego państwa tak, aby nie zdołała tego znaleźć np. opozycja.
Na szczęście Pegasus posiada też metodę infekcji iPhone nie używającą exploitów – wymagającą jednak bezpośredniego dostępu do sieci telekomunikacyjnej, a nawet do wszystkich 4 sieci, w których może znajdować się inwigilowana ofiara. Metoda ta oparta jest o mechanizm SS7, co w praktyce przekłada się na to, że zostaje po niej sporo śladów po stronie operatora sieci – zwłaszcza że infekcja systemu iOS nie jest persystentna, tj. nie jest w stanie przetrwać restartu urządzenia. Jest to więc ostatni wybór w przypadku, gdy chcemy inwigilować np. opozycję bez ryzyka, że zostanie to za jakiś czas wykryte i „rozliczone”. Niemniej jednak jest to skuteczne rozwiązanie w sytuacji, gdy nie będziemy już mieli dostępu do świeżych 0-dayów, a dotychczasowe przestaną wystarczać.
Integracja 0-dayów
Osobną płaszczyzną związaną z 0-dayami jest ich integracja w całym rozwiązaniu jako element tzw. killchaina – czyli w taki sposób, aby umożliwiały infekcję. Nawet najlepszy 0-day to bowiem tylko exploit. Może przełamać jakieś zabezpieczenie, ale co dalej?
Sytuację utrudnia fakt, że dzisiejsze exploity są niezwykle złożone i nie mają jednego schematu działania czy budowy – a więc każdy należy integrować indywidualnie. Biorąc dodatkowo pod uwagę różnice pomiędzy Androidem a iOS, oznacza to, że dla każdego z tych systemów potrzebny jest przynajmniej 1 programista – wszyscy ze znajomością tematów inżynierii wstecznej i wszyscy na stałe.
Mechanizmy licencyjne i komunikacja z serwerami NSO
Formalne wymogi bezpieczeństwa, jakich państwo polskie oczekuje od systemów takich jak Pegasus, oparte są z jednej strony na szeroko znanym PN-EN ISO/IEC 27001, z drugiej na dużo mniej znanym AQAP, czyli pochodnej serii norm ISO 9000. Jeśli zagłębimy się w te normy, dojdziemy m.in. do jednego ważnego wniosku: cała funkcjonalność Pegasusa musi fizycznie znajdować się po „naszej” stronie.
Nie wyklucza to oczywiście istnienia wbudowanych w Pegasusa mechanizmów kontroli licencji – gdy jednak przyjrzymy się ofercie handlowej, którą Polska otrzymała, znajdziemy tam m.in. cytat: „NSO is responsible to deploy and configure the Pegasus hardware and software at the customer premises”, a także rozpiskę sprzętu serwerowego i schemat podziału miejsca w szafie serwerowej 42U:
Co to w praktyce oznacza? Dokładnie tyle, że ewentualne mechanizmy licencyjne jesteśmy w stanie skutecznie wyłączyć. Oczywiście spowodowałoby to popadnięcie w spór prawny z producentem Pegasusa, NSO Group – w konsekwencji mogli by nas odciąć. Tyle tylko, że… już to zrobili. Niczym więc w praktyce nie ryzykujemy, poza – w najgorszym wypadku – chwilowymi przestojami w pracy poszczególnych komponentów systemu, do momentu, aż ktoś przygotuje dla nich tzw. cracka. Wydaje się to projektem na kilka-kilkanaście tygodni dla 2 osób o dość specyficznych (ale jak najbardziej możliwych do znalezienia) kompetencjach.
Wsparcie techniczne
Ta płaszczyzna dość mocno przenika się z poprzednią – Pegasus to dość spora infrastruktura on-premise, instalowana bezpośrednio o klienta. Czyli w Polsce w siedzibie CBA – na podstawie informacji o przetargach zgadujemy, że cała instalacja została niedawno przeniesiona na ul. Krzywickiego 34 w Warszawie. Część sprzętu jest też instalowana bezpośrednio u poszczególnych operatorów telefonii komórkowej.
Sprzęt ten – jak każdy inny – podlega zużyciu, psuje się, wymaga wymiany itd. W dużej większości jest to po prostu sprzęt serwerowy, na którego serwisowaniu zna się w Polsce wiele firm. Sprzętu specjalizowanego jest bardzo niewiele i najprawdopodobniej również nie jest to sprzęt dedykowany tylko i wyłącznie pod Pegasusa, a po prostu nieco bardziej specjalizowany sprzęt sieciowy. Jak widać po historii przetargów CBA, już dzisiaj wszystko to jest obsługiwane przez polskie firmy. Zapewne nie w całości, ale pełne uniezależnienie się od NSO Group jest głównie kwestią czasu. I to czasu porównywalnego z zakładaną w ofercie długością wdrożenia Pegasusa:
Kompetencje i gotowość operacyjna
Wszystko to co napisaliśmy wyżej to teorie – natomiast w przypadku systemów takich jak Pegasus, najbardziej liczy się tzw. gotowość operacyjna, czyli możliwość reagowania na różne nieprzewidziane problemy. A do tego potrzebne są kompetencje – czyli po pierwsze ktoś, kto rozumie specyfikę narzędzia tej klasy, potrafi zarządzać projektami IT i jest w stanie „spinać” wszystkie działania, a po drugie stała kadra osób specjalizujących się w iOS, Androidzie i inżynierii wstecznej.
Najważniejsze pytanie z punktu widzenia decydentów, to czas niezbędny na zbudowanie takich kompetencji. Dobra wiadomość jest taka, że zaczynając od początku 2022 i nie mając narzuconych sztucznych ograniczeń budżetowych, bez problemu da się osiągnąć pełną gotowość na długo przed kampanią wyborczą 2023.
Aktualizacja 9:20
Pomimo młodej godziny już spływają do nas pierwsze komentarze, że artykuł jest polityczny i/lub na zamówienie. Czy tak jest w istocie?
- Nikt go nie zamawiał i nikt nie zapłacił ani złotówki. To nasza własna inicjatywa i reakcja na coraz to gorętsze newsy wokół Pegasusa (przedwczoraj Giertych, wczoraj Brejza, co będzie dzisiaj?). W najgorszym wypadku po prostu podłączymy się do tego hype’u, zyskując trochę ruchu i nowych czytelników.
- A w najlepszym wypadku – no cóż, zajmujemy się tworzeniem różnych „zabawek” od ponad 20 lat (najnowszy przykład) i nawet pozostając „poza systemem” mamy spore zrozumienie tego, jak cały Pegasus działa, co opisaliśmy wyżej. Bez fałszywej skromności, potrafimy to rozwiązanie przejąć, naprawić i nawet rozwinąć.
- Ten artykuł w żadnym razie nie oznacza, że nagle zaczęliśmy sympatyzować z tą czy inną formacją mundurową albo partią polityczną. W PAYLOAD od zawsze byliśmy i nadal jesteśmy ponad to – po prostu od zawsze kręciły nas „zabawki dla silnych facetów”, niezależnie od tego, czy postanowili przyłączyć się do drużyny niebieskich, zielonych, czy może przeciwnej, i czy się bawią fair. Tego ostatniego niech ich wszystkich uczy kto inny, nas interesuje tylko technologia (co zapewne widać na pierwszy rzut oka po przynajmniej 80% naszych artykułów).