Uff. Jestli jsem to dobře pochopil tak Centrální registr vozidel provedl takový DoS útok na server Policejního prezidia ČR -
„V některých případech jsme zaznamenali až 135 dotazů u jednoho VIN kódu od jednoho uživatele, čímž došlo k zahlcení a přetížení systému, který na to nebyl připraven,“ uvedl Pavel Osvald. http://www.mdcr.cz/cs/Media/Tiskove_zpravy/Problemy_registru_vozidel_s_pristupem_do+aplikaci_Policejniho_prezidia_CR_nebyly_zpusobeny_Ministers.htm
Tím se potvrzuje moje úvaha, že ten systém neposílá požadavky dávkově, ale pro každé VIN to posílá zvlášť a zřejmě to při absenci odpovědi do nějakého limitu opakuje.
Když si vezmete, že je to 130x jedno VIN, tak tam docházelo k opakování dotazu (např. co 2s), dejme tomu 400 uživatelů souběžně, tak to opravdu nemusel ten server ustát. A čím méně % odpovědí posílal, tím více opakovaných dotazů bylo generováno...
Předpokládám, že tam ani nemají náhodný čas do opakování a exponential backoff, takže se jim ty požadavky pěkně zasynchronizovaly...
A pokud ke každému dotazu zvlášť zakládají TCP spojení a byl tam 1 server...
Dobre, ale to prece znamena ze:
1. server co zpracovava to VIN by mel mit vhodne nastaveny throttling/concurrency tech dotazu.
2. aplikace registru by kvuli tomu nemela prestat pracovat, protoze ten dotaz by mel byt (i v uzivatelskem rozhrani) zpracovan asynchronne. Zvlaste kdyz jde o volani externiho systemu.
Jestli ze je to typicka web service, tak nedava smysl pro kazdy novy request vytvaret dalsi connection. Vzdyt to umi HTTP uz davno. Nevim jak se ty VIN kody casto meni, ale nebyl by asi problem na strane volajiciho (tedy aplikace registru co se pta na VIN) ty data nejaky cas cachovat a neptat se 100x zbytecne znova na totez.
Bavíme se tady akademicky, protože ty kódy ani komunikační protokol nevidíme. Vůbec první otázkou je, zda je použita WS, nebo nějaký HTTP požadavek či něco úplně jiného (sokety, ...). Dále, já si nemyslím, že by bylo třeba 100x ověřovat VIN:
Aplikace se zřejmě zasekne, dokud odpověď od serveru PČR nedorazí. A ani nejde o to, že by se ta data kešovala, ona je asi ani napoprvé nezíská a tak to zkouší pořád dokola. Nebo provádí reload stránky v prohlížeči ten úředník a generuje nové dotazy. Silně pochybuji, že to tam řešili asynchronně...
No a pokud má server PČR nastavený throttling, tak možná nadbytek dotazů zařezával a vznikl problém.