Atak DoS na aplikacje: Jak wyrażenia regularne mogą stać się zagrożeniem
Atak DoS na aplikacje: Jak wyrażenia regularne mogą stać się zagrożeniem
Ataki DoS, czyli Denial of Service, to poważne zagrożenie dla aplikacji internetowych. Jednym z mniej znanych, ale niezwykle skutecznych sposobów przeprowadzenia takiego ataku jest wykorzystanie wyrażeń regularnych. W tym artykule przyjrzymy się, jak to działa.
Implementacja wyrażeń regularnych w popularnych językach programowania, takich jak C#, Python, PHP czy Java, opiera się na budowie niedeterministycznego automatu skończonego (NFA). Silniki regexów, działając w trybie zachłannym, próbują dopasować maksymalną ilość powtórzeń danego znaku.
Co się dzieje, gdy silnik napotka problem? Wówczas następuje backtracking, co może prowadzić do ogromnych opóźnień i, w konsekwencji, ataków DoS. Przykład? Wyrażenie “a+.b” i ciąg “aab” mogą prowadzić do nieprzewidywalnych rezultatów i obciążenia serwera.
Na podstawie: Źródła







