Blog 24/7

atak bocznym kanałem

TAB. 1Hasłoobie formy
Po angielskuside-channel attack
Którą formą pisaćobie formy Obie formy są w obiegu. Przy pierwszym wystąpieniu pisz „polski termin (english term)”, dalej sam polski.
Inne formyatak side-channel · atak kanałem bocznym · atak kanału bocznego · side channel
KategoriaAtaki i socjotechnika

Atak bocznym kanałem (side-channel attack) wydobywa tajne dane nie przez błąd w algorytmie, lecz z ubocznych skutków działania systemu. NIST definiuje go jako atak umożliwiony wyciekiem informacji z działającego systemu kryptograficznego; wykorzystywane cechy to czas wykonania, pobór prądu oraz emisja elektromagnetyczna i akustyczna [1]. Sekurak ujmuje to krócej: ataki bocznego kanału wykorzystują nieoczywiste poszlaki do eksploitacji systemu [6]. Algorytm może być poprawny matematycznie, a mimo to jego implementacja zdradza klucz albo hasło przez to, jak długo liczy.

Jak działa

Atakujący nie czyta sekretu wprost. Obserwuje wielkość fizyczną albo czasową, która zależy od sekretu, i z wielu pomiarów wnioskuje o jego wartości. Najprostszy przypadek dla aplikacji WWW to atak czasowy. MITRE opisuje słabość CWE-208 jako sytuację, w której dwie operacje trwają różnie długo w sposób widoczny dla atakującego i ujawniający informacje istotne dla bezpieczeństwa [2].

Klasyczny przykład to porównywanie hasła lub tokenu znak po znaku z przerwaniem przy pierwszej różnicy. Im więcej początkowych znaków się zgadza, tym dłużej trwa porównanie, więc atakujący może odgadywać sekret znak po znaku, mierząc czas odpowiedzi [2]. Schemat poniżej pokazuje ten cykl.

RYS. 1Odgadywanie tokenu przez pomiar czasu

W sieci pomiar jest zaszumiony przez opóźnienia, więc atak wymaga wielu prób i statystyki. Nie zmienia to zasady: jeśli czas zależy od sekretu, sekret wycieka.

Odmiany

KanałCo jest mierzonePrzykład
Czasowyczas wykonania operacji [1]porównanie hasła znak po znaku [2]
Energetycznypobór prądu urządzenia [1]karty i moduły kryptograficzne
Elektromagnetycznyemisja pola EM [1]odczyt z odległości
Akustycznydźwięk podzespołów [1]PIXHELL, dźwięk cewek monitora [6]
Pamięć podręczna procesoraczas dostępu do cacheMeltdown, Spectre [5]

Ataki na pamięć podręczną procesora są szczególne, bo nie wymagają fizycznego dostępu. Wystarczy kod uruchomiony na tej samej maszynie, co ma znaczenie dla serwerów współdzielonych i chmury.

W WordPressie

Dla autora wtyczki lub motywu praktycznym przypadkiem jest atak czasowy na porównanie sekretów: tokenów, podpisów HMAC, kluczy API czy wartości nonce. Porównanie operatorem == albo === kończy się na pierwszej różnicy. Dokumentacja PHP opisuje hash_equals() jako porównanie odporne na atak czasowy, trwające tyle samo niezależnie od miejsca różnicy; funkcja jest dostępna od PHP 5.6.0 [3]. Wartość znana, czyli sekret, idzie jako pierwszy argument, a dane od użytkownika jako drugi [3].

// porównanie sekretu z wartością od klienta
if ( hash_equals( $expected, $_GET['token'] ) ) {
    // token poprawny
}

Rdzeń WordPressa stosuje tę technikę sam: funkcja wp_verify_nonce() porównuje oczekiwany nonce z przesłanym właśnie przez hash_equals() [4]. Wtyczka weryfikująca własne tokeny powinna robić tak samo.

Dokumentacja PHP ostrzega też, że przy argumentach różnej długości funkcja od razu zwraca fałsz, co może ujawnić długość znanego ciągu [3]. Dlatego porównuje się zwykle skróty o stałej długości, na przykład wynik hash_hmac(), a nie surowe wartości [3]. Ten sam kierunek wskazuje MITRE: porównywać bez wczesnego przerywania, używać algorytmów o stałym czasie, a hasła przed porównaniem przepuszczać przez funkcję skrótu [2].

Drugi, pośredni związek dotyczy hostingu. Twórcy strony o Meltdown podają, że podatni byli dostawcy chmury używający kontenerów współdzielących jedno jądro, takich jak Docker, LXC czy OpenVZ, bez sprzętowej wirtualizacji [5]. Na hostingu współdzielonym ochrona przed takimi atakami zależy od aktualizacji systemu i mikrokodu po stronie dostawcy, nie od właściciela witryny.

Zagrożenia i skutki

  • Odgadnięcie tokenu lub klucza API, a w efekcie obejście uwierzytelniania.
  • Enumeracja użytkowników: MITRE jako przykład CWE-208 podaje CVE-2003-0637, gdzie różne czasy odpowiedzi dla istniejących i nieistniejących kont zdradzały nazwy użytkowników [2].
  • Odczyt pamięci innych procesów: Meltdown pozwala programowi sięgnąć do pamięci innych programów i systemu operacyjnego [5].
  • Trudna detekcja: twórcy Meltdown i Spectre zaznaczają, że wykorzystanie tych błędów nie zostawia śladów w tradycyjnych plikach logów [5].

Jak się bronić

  • Porównywać sekrety funkcją o stałym czasie, w PHP hash_equals() [3].
  • Nie przerywać porównań przy pierwszej różnicy i nie zwracać różnych komunikatów ani czasów dla różnych przyczyn odmowy [2].
  • Korzystać z gotowych, sprawdzonych bibliotek kryptograficznych zamiast własnych implementacji.
  • Ograniczać liczbę prób przez rate limiting, co utrudnia zebranie tysięcy pomiarów.
  • Aktualizować system operacyjny, jądro i mikrokod procesora, zob. zarządzanie poprawkami.

Historia i przykłady

Meltdown i Spectre. Te błędy procesorów zostały przez ich odkrywców opisane jako podatności sprzętowe pozwalające programom kraść dane przetwarzane na komputerze [5]. Meltdown łamie izolację między aplikacjami a systemem operacyjnym, a Spectre izolację między aplikacjami [5]. Otrzymały identyfikatory CVE: CVE-2017-5754 dla Meltdown oraz CVE-2017-5753 i CVE-2017-5715 dla Spectre [5]. Według autorów Spectre dotyczył niemal każdego systemu, od komputerów po serwery w chmurze i smartfony [5].

PIXHELL. Sekurak 11 września 2024 roku opisał pracę badaczy z Uniwersytetu Ben-Guriona, w której złośliwy kod steruje wzorami wyświetlanymi na monitorze LCD tak, by cewki emitowały dźwięk niosący dane [6]. Technika służy wyprowadzaniu danych z komputerów odizolowanych od sieci, zob. air gap [6].

TAB. 2

Przypisy

6
  1. [1] Side-channel attack — Glossary · NIST CSRC
  2. [2] CWE-208: Observable Timing Discrepancy · MITRE
  3. [3] hash_equals — Timing attack safe string comparison · PHP Documentation
  4. [4] wp_verify_nonce() — Code Reference · WordPress.org
  5. [5] Meltdown and Spectre · Graz University of Technology i współautorzy
  6. [6] Eksfiltracja danych dźwiękiem monitora – kolejny atak typu side-channel · Sekurak
TAB. 3

Hasła w tym artykule

11
TAB. 4

Linkują tutaj

3

Wszystkie kategorie → · Hasło w słowniku →

Blog 24/7
05.11CISA i FBI wzywają do zabezpieczenia sterowników chłodzenia po atakach w Europietherecord.media05.11Midnight Blizzard atakowała iPhone'y i Androidy przez zainfekowane strony w Europie i USAsecurityweek.com05.11APT29 kradła dane z iPhone'ów i Androidów przez przejęte i podrobione stronytherecord.media05.11Grupa APT29 przejęła skrypt Plerdy i atakowała niezałatane iPhone'y i Androidythehackernews.com05.11Microsoft wykrył 7,3 mld wiadomości phishingowych w III kwartale 2026microsoft.com05.11DigiCert ujawnia wyciek danych klientów i skanów dokumentów tożsamościbleepingcomputer.com05.11CWPdoor podmienia serwer cwpsrv w Control Web Panel i otwiera tylne wejście do Linuksableepingcomputer.com05.11Brytyjskie NCSC ostrzega, że narzędzia AI zwiększyły liczbę wykrywanych luk zero-daythehackernews.com05.11Skaner RootEvidence sprawdza starą lukę w Cisco IOS i dodaje nagłówki Opt-Outisc.sans.edu05.11Włamanie do portalu grantowego Norad, zagrożone dane 20 614 użytkownikówhelpnetsecurity.com