Atak przez kolizje tablic skrótów

Funkcje skrótu, stosowane między innymi w platformach ASP.NET Java czy PHP, są podatne na podobny atak, gdyż możliwe jest wygenerowanie takich wartości parametrów wejściowych, by dawały za każdym razem tę samą wartość skrótu. Gdy napastnik wysyła tysiące specjalnie przygotowanych wartości formularzy za pomocą POST, dających w wyniku identyczny skrót, wprowadza olbrzymie zapotrzebowanie na moc CPU po stronie serwera. Skutkiem jest klasyczny atak odmowy obsługi.

Od CSS do DoS

Jeśli język programowania nie dostarcza funkcji skrótu korzystającej z generatora liczb pseudolosowych lub gdy serwer aplikacyjny nie wykrywa ataków wykorzystujących wielokrotne kolizje funkcji skrótu, napastnik może degenerować tabelę skrótów. Do tego celu wystarczy wielokrotne wysyłanie informacji powodujących kolizję funkcji skrótu. Algorytmiczna złożoność wstawiania n elementów do tabeli wynosi O(n^2), zatem technicznie możliwe jest zużycie czasu CPU liczonego w godzinach pracy za pomocą pojedynczego żądania HTTP.

Każdy serwis webowy, który korzysta z platform, takich jak .NET, PHP oraz inne podatne na degenerację tablice skrótu, jest podatny na atak odmowy obsługi według omawianego scenariusza. Atak taki jest skuteczny, gdyż po pierwsze, wymaga niewiele pasma, w odróżnieniu od masowych ataków DDoS, po drugie, odbywa się w całości w żądaniach POST, zatem może być wyzwolony przez stronę www firmy trzeciej, niezwiązanej bezpośrednio z atakiem. Oznacza to, że popularna podatność CSS (cross site scripting) na dowolnej popularnej witrynie może być wykorzystana do bardzo efektywnego zablokowania wybranego serwisu webowego. Nie musi to być ten sam serwis, na którym luka CSS występuje. Ważne, by docelowa platforma, którą napastnik chce zablokować, była podatna na kolizje skrótu danych formularzy, wysyłanych za pomocą POST.

Według raportu n.runs AG, mechanizm ten jest tak skuteczny, że ataki mogą zablokować nawet takie serwisy webowe, które są hostowane na bardzo silnych serwerach. Efekt ten jest podobny w skutkach do znanych ataków odmowy obsługi, takich jak Slowloris DoS albo HTTP POST DoS, ale znacznie od nich groźniejszy pod względem skali. W odróżnieniu od typowych ataków odmowy obsługi, takich jak SYN flood (powódź pakietów SYN), lub blokowania maszyn żądaniami HTTP GET, które wymagają olbrzymiego pasma i wielu atakujących maszyn, atak wykorzystujący wielokrotne kolizje tablicy skrótu wymaga niewielkiego pasma, a jednocześnie może być zastosowany na bardzo szerokiej gamie platform webowych w niemal identyczny sposób.