{"id":2952,"date":"2025-11-28T14:20:45","date_gmt":"2025-11-28T13:20:45","guid":{"rendered":"https:\/\/www.sycope.com\/post\/idor-vulnerability-how-to-detect-an-attack-on-web-applications-through-http-traffic-analysis"},"modified":"2026-01-30T16:20:29","modified_gmt":"2026-01-30T15:20:29","slug":"podatnosc-idor-jak-wykryc-atak-na-aplikacje-webowe-przez-analize-ruchu-http","status":"publish","type":"post","link":"https:\/\/www.sycope.com\/pl\/post\/podatnosc-idor-jak-wykryc-atak-na-aplikacje-webowe-przez-analize-ruchu-http","title":{"rendered":"Podatno\u015b\u0107 IDOR \u2013 jak wykry\u0107 atak na aplikacje webowe przez analiz\u0119 ruchu HTTP"},"content":{"rendered":"<p><span data-contrast=\"auto\">Luka ta ujawnia si\u0119 wtedy, gdy system nie weryfikuje uprawnie\u0144 u\u017cytkownika do konkretnego zasobu po stronie serwera, a jedynie zak\u0142ada, \u017ce skoro \u017c\u0105danie pochodzi z zalogowanego konta, jest ono prawid\u0142owe. W efekcie atakuj\u0105cy mo\u017ce manipulowa\u0107 parametrami identyfikuj\u0105cymi obiekty \u2013 na przyk\u0142ad w adresie URL lub tre\u015bci \u017c\u0105dania HTTP \u2013 i uzyska\u0107 dost\u0119p do danych, kt\u00f3re nie s\u0105 jego w\u0142asno\u015bci\u0105. Typowy przyk\u0142ad to adres <\/span><span data-contrast=\"auto\">\/faktura.php?id=123<\/span><span data-contrast=\"auto\">, w kt\u00f3rym zmiana warto\u015bci <\/span><span data-contrast=\"auto\">id<\/span><span data-contrast=\"auto\"> na <\/span><span data-contrast=\"auto\">124<\/span><span data-contrast=\"auto\"> pozwala podejrze\u0107 cudz\u0105 faktur\u0119.<\/span><span data-ccp-props=\"{&quot;335559738&quot;:240,&quot;335559739&quot;:240}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">To, co czyni atak IDOR szczeg\u00f3lnie gro\u017anym, to jego niewidoczno\u015b\u0107 dla klasycznych mechanizm\u00f3w ochronnych. Tradycyjny firewall lub nawet system WAF nie zablokuje takiego ruchu, poniewa\u017c zapytanie HTTP jest sk\u0142adniowo poprawne, nie zawiera z\u0142o\u015bliwego kodu ani nietypowych nag\u0142\u00f3wk\u00f3w. Dla warstwy sieciowej wygl\u0105da jak zwyk\u0142a komunikacja aplikacji z autoryzowanym u\u017cytkownikiem. Problem polega na tym, \u017ce firewall nie zna logiki biznesowej aplikacji, nie wie, kt\u00f3re dane nale\u017c\u0105 do kogo i jakie operacje s\u0105 dopuszczalne w kontek\u015bcie danego konta.<\/span><span data-ccp-props=\"{&quot;335559738&quot;:240,&quot;335559739&quot;:240}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">Dlatego skuteczne wykrywanie takich pr\u00f3b wymaga zupe\u0142nie innego podej\u015bcia \u2013 opartego na kontek\u015bcie, korelacji i analizie zachowania u\u017cytkownik\u00f3w. Kluczem staje si\u0119 analiza ruchu HTTP, czyli obserwacja wzorc\u00f3w komunikacji mi\u0119dzy klientem a serwerem. To w\u0142a\u015bnie w tych danych mo\u017cna dostrzec subtelne symptomy nadu\u017cy\u0107: sekwencyjne odpytywanie kolejnych identyfikator\u00f3w, nienaturalnie du\u017c\u0105 liczb\u0119 b\u0142\u0119d\u00f3w 401 (Unauthorized) i 403 (Forbidden), czy pr\u00f3by dost\u0119pu do zasob\u00f3w o nietypowych warto\u015bciach ID.<\/span><span data-ccp-props=\"{&quot;335559738&quot;:240,&quot;335559739&quot;:240}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">Tabela poni\u017cej podsumowuje najwa\u017cniejsze elementy, kt\u00f3re pozwalaj\u0105 zidentyfikowa\u0107 i powi\u0105za\u0107 atak IDOR z konkretn\u0105 aktywno\u015bci\u0105 w systemie:<\/span><span data-ccp-props=\"{&quot;335559738&quot;:240,&quot;335559739&quot;:240}\">\u00a0<\/span><\/p>\n<div style=\"overflow-x: auto; margin: 20px 0; font-family: 'DM Sans', sans-serif;\">\n<table style=\"width: 100%; border-collapse: collapse; border: 1px solid #ddd; font-size: 15px; font-family: 'DM Sans', sans-serif;\">\n<thead>\n<tr style=\"background-color: #f4f6fb; color: #222; text-align: left;\">\n<th style=\"padding: 12px; border: 1px solid #ddd;\">Objaw w ruchu HTTP<\/th>\n<th style=\"padding: 12px; border: 1px solid #ddd;\">Potencjalne znaczenie<\/th>\n<th style=\"padding: 12px; border: 1px solid #ddd;\">Warto\u015b\u0107 analityczna<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td style=\"padding: 12px; border: 1px solid #ddd; font-weight: bold; color: #1769ff;\">Wzrost liczby b\u0142\u0119d\u00f3w 401\/403 z jednego \u017ar\u00f3d\u0142a<\/td>\n<td style=\"padding: 12px; border: 1px solid #ddd;\">Pr\u00f3by uzyskania dost\u0119pu do cudzych zasob\u00f3w<\/td>\n<td style=\"padding: 12px; border: 1px solid #ddd;\">Wska\u017anik intensywnego skanowania ID<\/td>\n<\/tr>\n<tr style=\"background-color: #fafbff;\">\n<td style=\"padding: 12px; border: 1px solid #ddd; font-weight: bold; color: #1769ff;\">Sekwencyjne zapytania typu id=100, id=101, id=102<\/td>\n<td style=\"padding: 12px; border: 1px solid #ddd;\">Brute-force identyfikator\u00f3w obiekt\u00f3w<\/td>\n<td style=\"padding: 12px; border: 1px solid #ddd;\">Silny sygna\u0142 automatyzacji ataku<\/td>\n<\/tr>\n<tr>\n<td style=\"padding: 12px; border: 1px solid #ddd; font-weight: bold; color: #1769ff;\">Odwo\u0142ania do ID spoza typowego zakresu u\u017cytkownika<\/td>\n<td style=\"padding: 12px; border: 1px solid #ddd;\">Eskalacja przywilej\u00f3w lub dost\u0119p do danych admina<\/td>\n<td style=\"padding: 12px; border: 1px solid #ddd;\">Wska\u017anik nienaturalnego zachowania<\/td>\n<\/tr>\n<tr style=\"background-color: #fafbff;\">\n<td style=\"padding: 12px; border: 1px solid #ddd; font-weight: bold; color: #1769ff;\">Zmienno\u015b\u0107 kontekstu sesji (np. token u\u017cytkownika vs dane innego konta)<\/td>\n<td style=\"padding: 12px; border: 1px solid #ddd;\">Pr\u00f3ba obej\u015bcia mechanizm\u00f3w autoryzacji<\/td>\n<td style=\"padding: 12px; border: 1px solid #ddd;\">Kluczowy dow\u00f3d naruszenia logiki bezpiecze\u0144stwa<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p>&nbsp;<\/p>\n<p><span data-contrast=\"auto\">Jak pokazuje praktyka, \u017cadna pojedyncza warstwa zabezpiecze\u0144 nie jest w stanie zapewni\u0107 pe\u0142nej ochrony przed tego typu nadu\u017cyciami. Skuteczna strategia wymaga po\u0142\u0105czenia dw\u00f3ch perspektyw: <\/span><b><span data-contrast=\"auto\">prewencyjnej<\/span><\/b><span data-contrast=\"auto\">, w kt\u00f3rej deweloperzy implementuj\u0105 w\u0142a\u015bciwe kontrole dost\u0119pu po stronie serwera, oraz <\/span><b><span data-contrast=\"auto\">detekcyjnej<\/span><\/b><span data-contrast=\"auto\">, w kt\u00f3rej zesp\u00f3\u0142 bezpiecze\u0144stwa monitoruje zachowanie u\u017cytkownik\u00f3w i wykrywa anomalie w czasie rzeczywistym. Dopiero taka synergia pozwala nie tylko zapobiec b\u0142\u0119dom w kodzie, ale tak\u017ce reagowa\u0107 na aktywne pr\u00f3by ich wykorzystania.<\/span><span data-ccp-props=\"{&quot;335559738&quot;:240,&quot;335559739&quot;:240}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">W skr\u00f3cie \u2013 podatno\u015b\u0107 IDOR nie jest problemem, kt\u00f3ry mo\u017cna rozwi\u0105za\u0107 pojedynczym narz\u0119dziem czy regu\u0142\u0105 firewallow\u0105. To wyzwanie systemowe, wymagaj\u0105ce rozumienia kontekstu aplikacji, korelacji danych z wielu \u017ar\u00f3de\u0142 i inteligentnej analizy ruchu HTTP. W kolejnych cz\u0119\u015bciach poka\u017cemy, jak dok\u0142adnie rozpozna\u0107 t\u0119 luk\u0119, jak odr\u00f3\u017cni\u0107 normalne zachowanie u\u017cytkownika od pr\u00f3b nadu\u017cycia oraz w jaki spos\u00f3b monitoring sieci wspiera aktywn\u0105 ochron\u0119 API w \u015brodowiskach produkcyjnych.<\/span><span data-ccp-props=\"{&quot;335559738&quot;:240,&quot;335559739&quot;:240}\">\u00a0<\/span><\/p>\n<p>&nbsp;<\/p>\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_88 counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Table of Contents<\/p>\n<span class=\"ez-toc-title-toggle\"><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/www.sycope.com\/pl\/post\/podatnosc-idor-jak-wykryc-atak-na-aplikacje-webowe-przez-analize-ruchu-http\/#Czym_jest_podatnosc_IDOR_i_na_czym_polega_atak\" >Czym jest podatno\u015b\u0107 IDOR i na czym polega atak\u00a0<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/www.sycope.com\/pl\/post\/podatnosc-idor-jak-wykryc-atak-na-aplikacje-webowe-przez-analize-ruchu-http\/#Dlaczego_WAF_i_tradycyjne_firewalle_moga_przegapic_atak_IDOR\" >Dlaczego WAF i tradycyjne firewalle mog\u0105 przegapi\u0107 atak IDOR\u00a0<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/www.sycope.com\/pl\/post\/podatnosc-idor-jak-wykryc-atak-na-aplikacje-webowe-przez-analize-ruchu-http\/#Symptomy_ataku_widoczne_w_logach_Jakie_anomalie_w_analizie_ruchu_HTTP_wskazuja_na_atak_IDOR\" >Symptomy ataku widoczne w logach: Jakie anomalie w analizie ruchu HTTP wskazuj\u0105 na atak IDOR\u00a0<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/www.sycope.com\/pl\/post\/podatnosc-idor-jak-wykryc-atak-na-aplikacje-webowe-przez-analize-ruchu-http\/#Rola_monitoringu_sieci_w_ochronie_API_i_wykrywaniu_naduzyc_w_czasie_rzeczywistym\" >Rola monitoringu sieci w ochronie API i wykrywaniu nadu\u017cy\u0107 w czasie rzeczywistym\u00a0<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/www.sycope.com\/pl\/post\/podatnosc-idor-jak-wykryc-atak-na-aplikacje-webowe-przez-analize-ruchu-http\/#Wykrywanie_SecOps_vs_Zapobieganie_DevOps_Jak_budowac_pelna_ochrone\" >Wykrywanie (SecOps) vs. Zapobieganie (DevOps): Jak budowa\u0107 pe\u0142n\u0105 ochron\u0119\u00a0<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/www.sycope.com\/pl\/post\/podatnosc-idor-jak-wykryc-atak-na-aplikacje-webowe-przez-analize-ruchu-http\/#Podsumowanie_i_kluczowe_wnioski\" >Podsumowanie i kluczowe wnioski\u00a0<\/a><\/li><\/ul><\/nav><\/div>\n<h2 aria-level=\"2\"><span class=\"ez-toc-section\" id=\"Czym_jest_podatnosc_IDOR_i_na_czym_polega_atak\"><\/span><b><span data-contrast=\"none\">Czym jest podatno\u015b\u0107 IDOR i na czym polega atak<\/span><\/b><span data-ccp-props=\"{&quot;134245418&quot;:true,&quot;134245529&quot;:true,&quot;335559738&quot;:299,&quot;335559739&quot;:299}\">\u00a0<\/span><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p><span data-contrast=\"auto\">Podatno\u015b\u0107 IDOR, czyli <\/span><i><span data-contrast=\"auto\">Insecure Direct Object References<\/span><\/i><span data-contrast=\"auto\">, to b\u0142\u0105d logiczny w warstwie autoryzacji aplikacji, kt\u00f3ry polega na braku odpowiedniej weryfikacji uprawnie\u0144 u\u017cytkownika po stronie serwera. Innymi s\u0142owy \u2013 aplikacja udost\u0119pnia zasoby (np. pliki, dane klient\u00f3w, faktury czy rekordy bazy danych) w spos\u00f3b bezpo\u015bredni, opieraj\u0105c si\u0119 wy\u0142\u0105cznie na identyfikatorach przekazywanych w \u017c\u0105daniu. Je\u015bli system nie sprawdzi, czy u\u017cytkownik rzeczywi\u015bcie ma prawo dost\u0119pu do danego obiektu, otwiera drog\u0119 do nieautoryzowanego odczytu lub modyfikacji danych.<\/span><span data-ccp-props=\"{&quot;335559738&quot;:240,&quot;335559739&quot;:240}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">Najprostszy przyk\u0142ad tej luki mo\u017cna zobrazowa\u0107 na klasycznym scenariuszu: aplikacja udost\u0119pnia u\u017cytkownikowi podgl\u0105d jego faktur pod adresem <\/span><a href=\"https:\/\/example.com\/faktura.php?id=123\" target=\"_blank\" rel=\"noopener\"><span data-contrast=\"none\">https:\/\/example.com\/faktura.php?id=123<\/span><\/a><span data-contrast=\"auto\">. Ka\u017cdy zalogowany klient ma przypisane w\u0142asne ID faktury, a aplikacja \u2013 zamiast weryfikowa\u0107 uprawnienia po stronie serwera \u2013 po prostu wy\u015bwietla dokument na podstawie parametru <\/span><span data-contrast=\"auto\">id<\/span><span data-contrast=\"auto\">. W takiej sytuacji atakuj\u0105cy mo\u017ce w spos\u00f3b banalny zmieni\u0107 warto\u015b\u0107 parametru w przegl\u0105darce, wpisuj\u0105c <\/span><span data-contrast=\"auto\">id=124<\/span><span data-contrast=\"auto\">, i uzyska\u0107 dost\u0119p do cudzej faktury. Z punktu widzenia serwera wszystko wygl\u0105da prawid\u0142owo: \u017c\u0105danie pochodzi od uwierzytelnionego u\u017cytkownika, sk\u0142adnia adresu jest poprawna, a zapytanie nie zawiera \u017cadnego kodu atakuj\u0105cego. W\u0142a\u015bnie ta \u201eniewinno\u015b\u0107\u201d sprawia, \u017ce atak IDOR jest tak skuteczny i trudny do wykrycia.<\/span><span data-ccp-props=\"{&quot;335559738&quot;:240,&quot;335559739&quot;:240}\">\u00a0<\/span><\/p>\n<h3 aria-level=\"3\"><b><span data-contrast=\"none\">Gdzie mo\u017cna znale\u017a\u0107 t\u0119 luk\u0119<\/span><\/b><span data-ccp-props=\"{&quot;134245418&quot;:true,&quot;134245529&quot;:true,&quot;335559738&quot;:281,&quot;335559739&quot;:281}\">\u00a0<\/span><\/h3>\n<p><span data-contrast=\"auto\">Wbrew pozorom podatno\u015b\u0107 IDOR nie dotyczy wy\u0142\u0105cznie parametr\u00f3w w adresach URL. Mo\u017ce wyst\u0119powa\u0107 w wielu r\u00f3\u017cnych miejscach aplikacji webowych, zar\u00f3wno w tradycyjnych interfejsach, jak i w nowoczesnych \u015brodowiskach opartych o mikroserwisy i ochron\u0119 API. Najcz\u0119stsze wektory podatno\u015bci obejmuj\u0105:<\/span><span data-ccp-props=\"{&quot;335559738&quot;:240,&quot;335559739&quot;:240}\">\u00a0<\/span><\/p>\n<ul>\n<li aria-setsize=\"-1\" data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"10\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" data-aria-posinset=\"1\" data-aria-level=\"1\"><b><span data-contrast=\"auto\">Parametry w zapytaniach GET<\/span><\/b><span data-contrast=\"auto\"> \u2013 np. <\/span><span data-contrast=\"auto\">?user=105<\/span><span data-contrast=\"auto\"> lub <\/span><span data-contrast=\"auto\">?order=999<\/span><span data-contrast=\"auto\">.<\/span><span data-ccp-props=\"{&quot;335559738&quot;:240,&quot;335559739&quot;:240}\">\u00a0<\/span><\/li>\n<\/ul>\n<ul>\n<li aria-setsize=\"-1\" data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"10\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" data-aria-posinset=\"2\" data-aria-level=\"1\"><b><span data-contrast=\"auto\">Pola w formularzach POST<\/span><\/b><span data-contrast=\"auto\"> \u2013 ukryte parametry, kt\u00f3re mo\u017cna \u0142atwo zmodyfikowa\u0107 w narz\u0119dziu typu Burp Suite.<\/span><span data-ccp-props=\"{&quot;335559738&quot;:240,&quot;335559739&quot;:240}\">\u00a0<\/span><\/li>\n<\/ul>\n<ul>\n<li aria-setsize=\"-1\" data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"10\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" data-aria-posinset=\"3\" data-aria-level=\"1\"><b><span data-contrast=\"auto\">\u017b\u0105dania REST API<\/span><\/b><span data-contrast=\"auto\"> \u2013 np. <\/span><span data-contrast=\"auto\">\/api\/v1\/user\/124<\/span><span data-contrast=\"auto\"> lub <\/span><span data-contrast=\"auto\">\/api\/v1\/orders\/2000<\/span><span data-contrast=\"auto\">, gdzie brak autoryzacji po stronie serwera pozwala pobiera\u0107 dane innych u\u017cytkownik\u00f3w.<\/span><span data-ccp-props=\"{&quot;335559738&quot;:240,&quot;335559739&quot;:240}\">\u00a0<\/span><\/li>\n<\/ul>\n<ul>\n<li aria-setsize=\"-1\" data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"10\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" data-aria-posinset=\"4\" data-aria-level=\"1\"><b><span data-contrast=\"auto\">Pliki cookie i tokeny sesji<\/span><\/b><span data-contrast=\"auto\"> \u2013 zawieraj\u0105ce identyfikatory u\u017cytkownika lub sesji, kt\u00f3re nie s\u0105 odpowiednio walidowane.<\/span><span data-ccp-props=\"{&quot;335559738&quot;:240,&quot;335559739&quot;:240}\">\u00a0<\/span><\/li>\n<\/ul>\n<ul>\n<li aria-setsize=\"-1\" data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"10\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" data-aria-posinset=\"5\" data-aria-level=\"1\"><b><span data-contrast=\"auto\">Obiekty JSON<\/span><\/b><span data-contrast=\"auto\"> \u2013 zw\u0142aszcza w aplikacjach typu SPA (Single Page Application), gdzie dane przekazywane s\u0105 w formie surowych struktur JSON w \u017c\u0105daniach AJAX.<\/span><span data-ccp-props=\"{&quot;335559738&quot;:240,&quot;335559739&quot;:240}\">\u00a0<\/span><\/li>\n<\/ul>\n<p><span data-contrast=\"auto\">W ka\u017cdym z tych przypadk\u00f3w kluczowym problemem jest brak w\u0142a\u015bciwej kontroli autoryzacji. Aplikacja \u201eufa\u201d danym przekazywanym przez klienta, zak\u0142adaj\u0105c, \u017ce u\u017cytkownik nie zmodyfikuje parametr\u00f3w identyfikuj\u0105cych obiekty. W praktyce jednak ka\u017cd\u0105 tak\u0105 informacj\u0119 mo\u017cna \u0142atwo przechwyci\u0107, zmieni\u0107 i ponownie wys\u0142a\u0107 do serwera.<\/span><span data-ccp-props=\"{&quot;335559738&quot;:240,&quot;335559739&quot;:240}\">\u00a0<\/span><\/p>\n<h3 aria-level=\"3\"><b><span data-contrast=\"none\">Rodzaje eskalacji \u2013 pozioma i pionowa<\/span><\/b><span data-ccp-props=\"{&quot;134245418&quot;:true,&quot;134245529&quot;:true,&quot;335559738&quot;:281,&quot;335559739&quot;:281}\">\u00a0<\/span><\/h3>\n<p><span data-contrast=\"auto\">Skutki ataku IDOR mog\u0105 by\u0107 r\u00f3\u017cne w zale\u017cno\u015bci od kontekstu aplikacji i poziomu dost\u0119pnych danych. W literaturze bezpiecze\u0144stwa, m.in. w analizach Netii czy OWASP, wyr\u00f3\u017cnia si\u0119 dwa g\u0142\u00f3wne typy eskalacji wynikaj\u0105ce z tej podatno\u015bci:<\/span><span data-ccp-props=\"{&quot;335559738&quot;:240,&quot;335559739&quot;:240}\">\u00a0<\/span><\/p>\n<ul>\n<li aria-setsize=\"-1\" data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"2\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" data-aria-posinset=\"1\" data-aria-level=\"1\"><b><span data-contrast=\"auto\">Eskalacja pozioma<\/span><\/b><span data-contrast=\"auto\"> \u2013 u\u017cytkownik o okre\u015blonych uprawnieniach uzyskuje dost\u0119p do zasob\u00f3w innego u\u017cytkownika o tym samym poziomie dost\u0119pu. Przyk\u0142adowo, klient A przegl\u0105da swoj\u0105 faktur\u0119, ale poprzez manipulacj\u0119 parametrem <\/span><span data-contrast=\"auto\">id<\/span><span data-contrast=\"auto\"> uzyskuje dost\u0119p do faktury klienta B. To najcz\u0119stszy przypadek wyst\u0119powania b\u0142\u0119du IDOR w aplikacjach biznesowych, systemach CRM czy panelach samoobs\u0142ugowych.<\/span><span data-ccp-props=\"{&quot;335559738&quot;:240,&quot;335559739&quot;:240}\">\u00a0<\/span><\/li>\n<\/ul>\n<ul>\n<li aria-setsize=\"-1\" data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"2\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" data-aria-posinset=\"2\" data-aria-level=\"1\"><b><span data-contrast=\"auto\">Eskalacja pionowa<\/span><\/b><span data-contrast=\"auto\"> \u2013 sytuacja bardziej krytyczna, w kt\u00f3rej zwyk\u0142y u\u017cytkownik uzyskuje dost\u0119p do funkcji lub danych zarezerwowanych dla administratora lub wy\u017cszych r\u00f3l. Mo\u017ce to oznacza\u0107 np. mo\u017cliwo\u015b\u0107 edycji danych kont innych u\u017cytkownik\u00f3w, zatwierdzania zam\u00f3wie\u0144 lub dost\u0119pu do panelu konfiguracyjnego systemu. W \u015brodowiskach korporacyjnych skutki takiej eskalacji mog\u0105 obejmowa\u0107 nieautoryzowane modyfikacje konfiguracji, dost\u0119p do poufnych raport\u00f3w lub przej\u0119cie pe\u0142nej kontroli nad aplikacj\u0105.<\/span><span data-ccp-props=\"{&quot;335559738&quot;:240,&quot;335559739&quot;:240}\">\u00a0<\/span><\/li>\n<\/ul>\n<p><span data-contrast=\"auto\">Z punktu widzenia analizy zagro\u017ce\u0144, obie formy eskalacji \u2013 mimo r\u00f3\u017cnej skali \u2013 maj\u0105 wsp\u00f3lny mianownik: system nie odr\u00f3\u017cnia, do kogo nale\u017cy dany obiekt i kto ma prawo nim operowa\u0107. W efekcie ka\u017cda luka w autoryzacji staje si\u0119 potencjalnym wektorem ataku, a ka\u017cdy parametr identyfikuj\u0105cy zas\u00f3b \u2013 punktem wej\u015bcia.<\/span><span data-ccp-props=\"{&quot;335559738&quot;:240,&quot;335559739&quot;:240}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">W kolejnej cz\u0119\u015bci przyjrzymy si\u0119 temu, <\/span><b><span data-contrast=\"auto\">dlaczego nawet najbardziej zaawansowane firewalle i systemy WAF cz\u0119sto nie s\u0105 w stanie wykry\u0107 ataku IDOR<\/span><\/b><span data-contrast=\"auto\">, mimo \u017ce ruch wydaje si\u0119 w pe\u0142ni prawid\u0142owy. To kluczowy moment w zrozumieniu, dlaczego analiza kontekstowa i analiza ruchu HTTP s\u0105 dzi\u015b niezb\u0119dne dla skutecznej ochrony API.<\/span><span data-ccp-props=\"{&quot;335559738&quot;:240,&quot;335559739&quot;:240}\">\u00a0<\/span><\/p>\n<p>&nbsp;<\/p>\n<h2 aria-level=\"2\"><span class=\"ez-toc-section\" id=\"Dlaczego_WAF_i_tradycyjne_firewalle_moga_przegapic_atak_IDOR\"><\/span><b><span data-contrast=\"none\">Dlaczego WAF i tradycyjne firewalle mog\u0105 przegapi\u0107 atak IDOR<\/span><\/b><span data-ccp-props=\"{&quot;134245418&quot;:true,&quot;134245529&quot;:true,&quot;335559738&quot;:299,&quot;335559739&quot;:299}\">\u00a0<\/span><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p><span data-contrast=\"auto\">Cho\u0107 wsp\u00f3\u0142czesne organizacje inwestuj\u0105 znacz\u0105ce \u015brodki w warstwow\u0105 ochron\u0119 sieci, wiele z nich wci\u0105\u017c pozostaje bezbronne wobec subtelnych atak\u00f3w opartych na logice aplikacji. Atak IDOR jest jednym z najbardziej podst\u0119pnych przyk\u0142ad\u00f3w tego zjawiska, poniewa\u017c wykorzystuje zaufanie systemu do u\u017cytkownika oraz ograniczenia klasycznych rozwi\u0105za\u0144 bezpiecze\u0144stwa, takich jak firewalle czy Web Application Firewalle (WAF). Zrozumienie, dlaczego te narz\u0119dzia zawodz\u0105, wymaga przyjrzenia si\u0119, jak one faktycznie dzia\u0142aj\u0105 \u2013 oraz czego <\/span><i><span data-contrast=\"auto\">nie<\/span><\/i><span data-contrast=\"auto\"> s\u0105 w stanie zrozumie\u0107.<\/span><span data-ccp-props=\"{&quot;335559738&quot;:240,&quot;335559739&quot;:240}\">\u00a0<\/span><\/p>\n<h3 aria-level=\"3\"><b><span data-contrast=\"none\">Problem \u201ezaufanego\u201d u\u017cytkownika<\/span><\/b><span data-ccp-props=\"{&quot;134245418&quot;:true,&quot;134245529&quot;:true,&quot;335559738&quot;:281,&quot;335559739&quot;:281}\">\u00a0<\/span><\/h3>\n<p><span data-contrast=\"auto\">Tradycyjne systemy ochronne, takie jak WAF, zosta\u0142y zaprojektowane przede wszystkim do filtrowania z\u0142o\u015bliwego ruchu z zewn\u0105trz: pr\u00f3b wstrzykni\u0119\u0107 SQL, atak\u00f3w XSS, exploit\u00f3w czy skan\u00f3w port\u00f3w. Ich zadaniem jest rozpoznanie sygnatury zagro\u017cenia, wykrycie anomalii w strukturze zapytania lub zablokowanie znanych wzorc\u00f3w atak\u00f3w. Tymczasem atak IDOR odbywa si\u0119 w ramach w pe\u0142ni uwierzytelnionej sesji u\u017cytkownika. To nie anonimowy napastnik z zewn\u0105trz, ale zalogowany, autoryzowany u\u017cytkownik \u2013 cz\u0119sto z prawid\u0142owym tokenem JWT lub wa\u017cnym ciasteczkiem sesyjnym. Dla firewalla taki ruch jest wi\u0119c ca\u0142kowicie \u201eczysty\u201d.<\/span><span data-ccp-props=\"{&quot;335559738&quot;:240,&quot;335559739&quot;:240}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">Z perspektywy systemu bezpiecze\u0144stwa nie dzieje si\u0119 nic podejrzanego: po\u0142\u0105czenie odbywa si\u0119 przez HTTPS, \u017c\u0105dania maj\u0105 prawid\u0142ow\u0105 sk\u0142adni\u0119, a adres IP nie znajduje si\u0119 na \u017cadnej czarnej li\u015bcie. Firewall widzi u\u017cytkownika jako zaufanego i nie ma powodu, by ingerowa\u0107 w ruch, kt\u00f3ry w pe\u0142ni mie\u015bci si\u0119 w ramach dozwolonych regu\u0142. Problem polega na tym, \u017ce atakuj\u0105cy wykorzystuje swoje rzeczywiste uprawnienia do wykonania czynno\u015bci, kt\u00f3rych system nie przewidzia\u0142 \u2013 w\u0142a\u015bnie to sprawia, \u017ce podatno\u015b\u0107 IDOR jest tak trudna do wykrycia klasycznymi metodami.<\/span><span data-ccp-props=\"{&quot;335559738&quot;:240,&quot;335559739&quot;:240}\">\u00a0<\/span><\/p>\n<h3 aria-level=\"3\"><b><span data-contrast=\"none\">Problem \u201eprawid\u0142owego\u201d ruchu<\/span><\/b><span data-ccp-props=\"{&quot;134245418&quot;:true,&quot;134245529&quot;:true,&quot;335559738&quot;:281,&quot;335559739&quot;:281}\">\u00a0<\/span><\/h3>\n<p><span data-contrast=\"auto\">Kolejnym powodem, dla kt\u00f3rego firewalle przegapiaj\u0105 atak IDOR, jest to, \u017ce ca\u0142y ruch HTTP wygl\u0105da zupe\u0142nie normalnie. \u017b\u0105danie typu <\/span><span data-contrast=\"auto\">GET \/faktura.php?id=124<\/span><span data-contrast=\"auto\"> nie r\u00f3\u017cni si\u0119 strukturalnie od <\/span><span data-contrast=\"auto\">GET \/faktura.php?id=123<\/span><span data-contrast=\"auto\">. Dla warstwy sieciowej to tylko r\u00f3\u017cnica w parametrach \u2013 \u017cadne regu\u0142y bezpiecze\u0144stwa nie s\u0105 \u0142amane, a tre\u015b\u0107 zapytania nie zawiera z\u0142o\u015bliwego kodu. Firewall nie posiada kontekstu, kt\u00f3ry pozwoli\u0142by mu stwierdzi\u0107, \u017ce u\u017cytkownik JanKowalski powinien widzie\u0107 jedynie faktur\u0119 <\/span><span data-contrast=\"auto\">id=123<\/span><span data-contrast=\"auto\">, a pr\u00f3ba dost\u0119pu do <\/span><span data-contrast=\"auto\">id=124<\/span><span data-contrast=\"auto\"> jest naruszeniem logiki aplikacji.<\/span><span data-ccp-props=\"{&quot;335559738&quot;:240,&quot;335559739&quot;:240}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">Ta sytuacja przypomina kontrol\u0119 na lotnisku, kt\u00f3ra sprawdza baga\u017c pod k\u0105tem materia\u0142\u00f3w wybuchowych, ale nie wie, \u017ce kto\u015b pr\u00f3buje przej\u015b\u0107 z cudzym biletem \u2013 technicznie wszystko wygl\u0105da poprawnie, dop\u00f3ki nie zrozumiemy <\/span><i><span data-contrast=\"auto\">intencji<\/span><\/i><span data-contrast=\"auto\"> u\u017cytkownika. Firewall nie analizuje semantyki \u017c\u0105dania, nie rozumie relacji pomi\u0119dzy identyfikatorem a to\u017csamo\u015bci\u0105 u\u017cytkownika. W efekcie traktuje ka\u017cde zapytanie jako poprawne, je\u015bli mie\u015bci si\u0119 w dopuszczalnej sk\u0142adni protoko\u0142u.<\/span><span data-ccp-props=\"{&quot;335559738&quot;:240,&quot;335559739&quot;:240}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">W praktyce oznacza to, \u017ce nawet najbardziej restrykcyjne regu\u0142y WAF nie pomog\u0105, je\u015bli aplikacja nie posiada w\u0142asnej, poprawnej logiki autoryzacji po stronie serwera. Dla mechanizmu inspekcji pakiet\u00f3w r\u00f3\u017cnica mi\u0119dzy zapytaniem prawid\u0142owym a nadu\u017cyciem jest niewidoczna \u2013 oba wygl\u0105daj\u0105 identycznie w warstwie HTTP.<\/span><span data-ccp-props=\"{&quot;335559738&quot;:240,&quot;335559739&quot;:240}\">\u00a0<\/span><\/p>\n<h3 aria-level=\"3\"><b><span data-contrast=\"none\">Brak znajomo\u015bci logiki biznesowej<\/span><\/b><span data-ccp-props=\"{&quot;134245418&quot;:true,&quot;134245529&quot;:true,&quot;335559738&quot;:281,&quot;335559739&quot;:281}\">\u00a0<\/span><\/h3>\n<p><span data-contrast=\"auto\">Najg\u0142\u0119bsz\u0105 przyczyn\u0105 niepowodzenia klasycznych narz\u0119dzi bezpiecze\u0144stwa jest brak kontekstu aplikacyjnego. Firewall nie zna logiki biznesowej systemu, a wi\u0119c nie wie, kt\u00f3re dane \u201enale\u017c\u0105\u201d do kt\u00f3rego u\u017cytkownika. Nie rozumie, \u017ce ID 124 odpowiada fakturze przypisanej do innego konta, ani \u017ce konkretne \u017c\u0105danie HTTP jest pr\u00f3b\u0105 dost\u0119pu do zasobu, do kt\u00f3rego u\u017cytkownik nie ma uprawnie\u0144. Jego rola ko\u0144czy si\u0119 na analizie struktury pakietu \u2013 rozumie protok\u00f3\u0142, ale nie sens danych, kt\u00f3re s\u0105 przesy\u0142ane.<\/span><span data-ccp-props=\"{&quot;335559738&quot;:240,&quot;335559739&quot;:240}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">Ta granica mo\u017cliwo\u015bci staje si\u0119 szczeg\u00f3lnie widoczna w przypadku ochrony API, gdzie ka\u017cde zapytanie mo\u017ce dotyczy\u0107 wielu mikrous\u0142ug, a identyfikatory zasob\u00f3w s\u0105 generowane dynamicznie. WAF nie posiada informacji o powi\u0105zaniu mi\u0119dzy u\u017cytkownikiem a danymi, nie rozumie modelu uprawnie\u0144 i nie analizuje historii wcze\u015bniejszych \u017c\u0105da\u0144. Dlatego nie potrafi oceni\u0107, czy aktualne \u017c\u0105danie mie\u015bci si\u0119 w dopuszczonym kontek\u015bcie dzia\u0142ania.<\/span><span data-ccp-props=\"{&quot;335559738&quot;:240,&quot;335559739&quot;:240}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">W praktyce oznacza to, \u017ce dopiero rozwi\u0105zania analizuj\u0105ce zachowanie u\u017cytkownik\u00f3w w czasie rzeczywistym, oparte o analiz\u0119 ruchu HTTP, mog\u0105 skutecznie wykrywa\u0107 anomalie wskazuj\u0105ce na atak IDOR. Takie systemy nie ograniczaj\u0105 si\u0119 do regu\u0142 syntaktycznych \u2013 buduj\u0105 pe\u0142ny kontekst transakcji, rozpoznaj\u0105 wzorce dost\u0119pu i potrafi\u0105 zauwa\u017cy\u0107, \u017ce u\u017cytkownik pr\u00f3buje manipulowa\u0107 identyfikatorami w spos\u00f3b nienaturalny.<\/span><span data-ccp-props=\"{&quot;335559738&quot;:240,&quot;335559739&quot;:240}\">\u00a0<\/span><\/p>\n<h3 data-start=\"151\" data-end=\"260\"><\/h3>\n<h2 aria-level=\"2\"><span class=\"ez-toc-section\" id=\"Symptomy_ataku_widoczne_w_logach_Jakie_anomalie_w_analizie_ruchu_HTTP_wskazuja_na_atak_IDOR\"><\/span><b><span data-contrast=\"none\">Symptomy ataku widoczne w logach: Jakie anomalie w analizie ruchu HTTP wskazuj\u0105 na atak IDOR<\/span><\/b><span data-ccp-props=\"{&quot;134245418&quot;:true,&quot;134245529&quot;:true,&quot;335559738&quot;:299,&quot;335559739&quot;:299}\">\u00a0<\/span><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p><span data-contrast=\"auto\">Ka\u017cdy atak IDOR pozostawia \u015blady \u2013 cho\u0107 cz\u0119sto subtelne, mo\u017cliwe do zauwa\u017cenia jedynie wtedy, gdy organizacja dysponuje narz\u0119dziami zdolnymi do g\u0142\u0119bokiej analizy ruchu HTTP. To w\u0142a\u015bnie w tym poziomie szczeg\u00f3\u0142owo\u015bci kryje si\u0119 prawdziwa warto\u015b\u0107 system\u00f3w monitoruj\u0105cych ruch sieciowy: w umiej\u0119tno\u015bci odr\u00f3\u017cnienia normalnej aktywno\u015bci u\u017cytkownika od nadu\u017cy\u0107, kt\u00f3re z pozoru wygl\u0105daj\u0105 zupe\u0142nie niewinnie.<\/span><span data-ccp-props=\"{&quot;335559738&quot;:240,&quot;335559739&quot;:240}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">W odr\u00f3\u017cnieniu od atak\u00f3w typu injection czy brute-force na logowanie, atak IDOR nie generuje alarmuj\u0105cych sygnatur \u2013 nie ma w nim wstrzykni\u0119\u0107 SQL, nietypowych nag\u0142\u00f3wk\u00f3w ani nieprawid\u0142owych metod HTTP. To, co zdradza nadu\u017cycie, to <\/span><b><span data-contrast=\"auto\">zmiana wzorca zachowania<\/span><\/b><span data-contrast=\"auto\">: inna struktura zapyta\u0144, inny rytm \u017c\u0105da\u0144, inna logika dost\u0119pu do zasob\u00f3w. W\u0142a\u015bnie dlatego analiza statystyczna i kontekstowa log\u00f3w HTTP jest tak skuteczna \u2013 pozwala zidentyfikowa\u0107 anomali\u0119 tam, gdzie pojedyncze zapytanie nie wygl\u0105da podejrzanie.<\/span><span data-ccp-props=\"{&quot;335559738&quot;:240,&quot;335559739&quot;:240}\">\u00a0<\/span><\/p>\n<p><span data-ccp-props=\"{}\">\u00a0<\/span><\/p>\n<h3 aria-level=\"3\"><b><span data-contrast=\"none\">Wska\u017anik 1. Nag\u0142y wzrost b\u0142\u0119d\u00f3w 401\/403 (Unauthorized \/ Forbidden)<\/span><\/b><span data-ccp-props=\"{&quot;134245418&quot;:true,&quot;134245529&quot;:true,&quot;335559738&quot;:281,&quot;335559739&quot;:281}\">\u00a0<\/span><\/h3>\n<p><span data-contrast=\"auto\">Jednym z najbardziej charakterystycznych symptom\u00f3w ataku IDOR jest gwa\u0142towny wzrost liczby b\u0142\u0119d\u00f3w autoryzacji w kr\u00f3tkim przedziale czasu. Atakuj\u0105cy, dzia\u0142aj\u0105c metod\u0105 pr\u00f3b i b\u0142\u0119d\u00f3w, wysy\u0142a kolejne zapytania do zasob\u00f3w o r\u00f3\u017cnych identyfikatorach, licz\u0105c na to, \u017ce trafi na taki, do kt\u00f3rego ma nie\u015bwiadomy dost\u0119p.<\/span><span data-ccp-props=\"{&quot;335559738&quot;:240,&quot;335559739&quot;:240}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">W logach sieciowych lub systemowych wida\u0107 w\u00f3wczas sekwencje zapyta\u0144 generuj\u0105cych kody odpowiedzi HTTP <\/span><b><span data-contrast=\"auto\">401 (Unauthorized)<\/span><\/b><span data-contrast=\"auto\"> lub <\/span><b><span data-contrast=\"auto\">403 (Forbidden)<\/span><\/b><span data-contrast=\"auto\">, cz\u0119sto pochodz\u0105ce z jednego adresu IP, konta u\u017cytkownika lub sesji.<\/span><span data-ccp-props=\"{&quot;335559738&quot;:240,&quot;335559739&quot;:240}\">\u00a0<\/span><\/p>\n<p><b><span data-contrast=\"auto\">Przyk\u0142adowy fragment log\u00f3w:<\/span><\/b><span data-ccp-props=\"{&quot;335559738&quot;:240,&quot;335559739&quot;:240}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">10:12:33 GET \/api\/v1\/invoices?id=5012 -&gt; 403\u00a0 <\/span><br \/>\n<span data-contrast=\"auto\">10:12:33 GET \/api\/v1\/invoices?id=5013 -&gt; 403\u00a0 <\/span><br \/>\n<span data-contrast=\"auto\">10:12:33 GET \/api\/v1\/invoices?id=5014 -&gt; 403\u00a0 <\/span><br \/>\n<span data-contrast=\"auto\">10:12:34 GET \/api\/v1\/invoices?id=5015 -&gt; 200 \u2705<\/span><br \/>\n<span data-ccp-props=\"{&quot;335559739&quot;:0}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">Dla systemu monitoringu taki wzorzec to klasyczny sygna\u0142 <\/span><i><span data-contrast=\"auto\">blind enumeration<\/span><\/i><span data-contrast=\"auto\"> \u2013 u\u017cytkownik \u201estrzela\u201d w kolejne identyfikatory, a\u017c uzyska odpowied\u017a pozytywn\u0105.<\/span><span data-ccp-props=\"{&quot;335559738&quot;:240,&quot;335559739&quot;:240}\">\u00a0<\/span><\/p>\n<p><b><span data-contrast=\"auto\">Warto zwr\u00f3ci\u0107 uwag\u0119 na:<\/span><\/b><span data-ccp-props=\"{&quot;335559738&quot;:240,&quot;335559739&quot;:240}\">\u00a0<\/span><\/p>\n<ul>\n<li aria-setsize=\"-1\" data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"14\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" data-aria-posinset=\"1\" data-aria-level=\"1\"><span data-contrast=\"auto\">liczb\u0119 b\u0142\u0119d\u00f3w 401\/403 generowanych w jednostce czasu,<\/span><span data-ccp-props=\"{&quot;335559738&quot;:240,&quot;335559739&quot;:240}\">\u00a0<\/span><\/li>\n<\/ul>\n<ul>\n<li aria-setsize=\"-1\" data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"14\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" data-aria-posinset=\"2\" data-aria-level=\"1\"><span data-contrast=\"auto\">korelacj\u0119 mi\u0119dzy jednym kontem a wieloma nieudanymi pr\u00f3bami,<\/span><span data-ccp-props=\"{&quot;335559738&quot;:240,&quot;335559739&quot;:240}\">\u00a0<\/span><\/li>\n<\/ul>\n<ul>\n<li aria-setsize=\"-1\" data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"14\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" data-aria-posinset=\"3\" data-aria-level=\"1\"><span data-contrast=\"auto\">wzorzec sekwencyjnych zapyta\u0144 w kr\u00f3tkich odst\u0119pach.<\/span><span data-ccp-props=\"{&quot;335559738&quot;:240,&quot;335559739&quot;:240}\">\u00a0<\/span><\/li>\n<\/ul>\n<div style=\"overflow-x: auto; margin: 20px 0; font-family: 'DM Sans', sans-serif;\">\n<table style=\"width: 100%; border-collapse: collapse; border: 1px solid #ddd; font-size: 15px; font-family: 'DM Sans', sans-serif;\">\n<thead>\n<tr style=\"background-color: #f4f6fb; color: #222; text-align: left;\">\n<th style=\"padding: 12px; border: 1px solid #ddd;\">Metryka<\/th>\n<th style=\"padding: 12px; border: 1px solid #ddd;\">Warto\u015b\u0107 ostrzegawcza<\/th>\n<th style=\"padding: 12px; border: 1px solid #ddd;\">Opis<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td style=\"padding: 12px; border: 1px solid #ddd; font-weight: bold; color: #1769ff;\">B\u0142\u0119dy 401\/403 na minut\u0119<\/td>\n<td style=\"padding: 12px; border: 1px solid #ddd;\">&gt; 50 z jednego IP<\/td>\n<td style=\"padding: 12px; border: 1px solid #ddd;\">Mo\u017cliwy fuzzing lub brute-force ID<\/td>\n<\/tr>\n<tr style=\"background-color: #fafbff;\">\n<td style=\"padding: 12px; border: 1px solid #ddd; font-weight: bold; color: #1769ff;\">R\u00f3\u017cnica mi\u0119dzy liczb\u0105 b\u0142\u0119d\u00f3w a sukces\u00f3w<\/td>\n<td style=\"padding: 12px; border: 1px solid #ddd;\">&gt; 95% b\u0142\u0119d\u00f3w<\/td>\n<td style=\"padding: 12px; border: 1px solid #ddd;\">Skanowanie zasob\u00f3w<\/td>\n<\/tr>\n<tr>\n<td style=\"padding: 12px; border: 1px solid #ddd; font-weight: bold; color: #1769ff;\">Czas mi\u0119dzy kolejnymi \u017c\u0105daniami<\/td>\n<td style=\"padding: 12px; border: 1px solid #ddd;\">&lt; 200 ms<\/td>\n<td style=\"padding: 12px; border: 1px solid #ddd;\">Automatyzacja ataku<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p>&nbsp;<\/p>\n<h3 aria-level=\"3\"><b><span data-contrast=\"none\">Wska\u017anik 2. Sekwencyjne odpytywanie zasob\u00f3w (Brute-force \/ Fuzzing)<\/span><\/b><span data-ccp-props=\"{&quot;134245418&quot;:true,&quot;134245529&quot;:true,&quot;335559738&quot;:281,&quot;335559739&quot;:281}\">\u00a0<\/span><\/h3>\n<p><span data-contrast=\"auto\">\u017baden prawid\u0142owy u\u017cytkownik nie generuje zapyta\u0144 o zasoby o rosn\u0105cych numerach ID w kr\u00f3tkim czasie. Taki wzorzec \u2013 <\/span><span data-contrast=\"auto\">id=100<\/span><span data-contrast=\"auto\">, <\/span><span data-contrast=\"auto\">id=101<\/span><span data-contrast=\"auto\">, <\/span><span data-contrast=\"auto\">id=102<\/span><span data-contrast=\"auto\"> \u2013 jest niemal zawsze oznak\u0105 automatyzacji. W praktyce atakuj\u0105cy u\u017cywa narz\u0119dzi takich jak <\/span><b><span data-contrast=\"auto\">Burp Intruder<\/span><\/b><span data-contrast=\"auto\">, <\/span><b><span data-contrast=\"auto\">ffuf<\/span><\/b><span data-contrast=\"auto\">, <\/span><b><span data-contrast=\"auto\">DirBuster<\/span><\/b><span data-contrast=\"auto\"> czy skrypt\u00f3w w Pythonie, aby systematycznie testowa\u0107 kolejne identyfikatory i sprawdza\u0107, kt\u00f3re z nich zwracaj\u0105 poprawne dane.<\/span><span data-ccp-props=\"{&quot;335559738&quot;:240,&quot;335559739&quot;:240}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">W systemie analizy ruchu HTTP mo\u017cna to wychwyci\u0107 poprzez:<\/span><span data-ccp-props=\"{&quot;335559738&quot;:240,&quot;335559739&quot;:240}\">\u00a0<\/span><\/p>\n<ul>\n<li aria-setsize=\"-1\" data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"9\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" data-aria-posinset=\"1\" data-aria-level=\"1\"><span data-contrast=\"auto\">wykrycie sekwencji zapyta\u0144 z rosn\u0105cymi lub malej\u0105cymi warto\u015bciami parametru,<\/span><span data-ccp-props=\"{&quot;335559738&quot;:240,&quot;335559739&quot;:240}\">\u00a0<\/span><\/li>\n<\/ul>\n<ul>\n<li aria-setsize=\"-1\" data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"9\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" data-aria-posinset=\"2\" data-aria-level=\"1\"><span data-contrast=\"auto\">korelacj\u0119 czasu pomi\u0119dzy \u017c\u0105daniami (np. regularny interwa\u0142 100\u2013200 ms),<\/span><span data-ccp-props=\"{&quot;335559738&quot;:240,&quot;335559739&quot;:240}\">\u00a0<\/span><\/li>\n<\/ul>\n<ul>\n<li aria-setsize=\"-1\" data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"9\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" data-aria-posinset=\"3\" data-aria-level=\"1\"><span data-contrast=\"auto\">wykrycie nienaturalnej liczby zapyta\u0144 do tego samego endpointu w kr\u00f3tkim czasie.<\/span><span data-ccp-props=\"{&quot;335559738&quot;:240,&quot;335559739&quot;:240}\">\u00a0<\/span><\/li>\n<\/ul>\n<p><b><span data-contrast=\"auto\">W logach wygl\u0105da to tak:<\/span><\/b><span data-ccp-props=\"{&quot;335559738&quot;:240,&quot;335559739&quot;:240}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">GET \/api\/v1\/user?id=100\u00a0 <\/span><br \/>\n<span data-contrast=\"auto\">GET \/api\/v1\/user?id=101\u00a0 <\/span><br \/>\n<span data-contrast=\"auto\">GET \/api\/v1\/user?id=102\u00a0 <\/span><br \/>\n<span data-contrast=\"auto\">GET \/api\/v1\/user?id=103\u00a0 <\/span><br \/>\n<span data-ccp-props=\"{&quot;335559739&quot;:0}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">Dla cz\u0142owieka to banalny wzorzec, dla klasycznego firewalla \u2013 ca\u0142kowicie normalny. Dopiero system analizuj\u0105cy ruch HTTP kontekstowo jest w stanie zidentyfikowa\u0107, \u017ce jest to atak enumeracyjny.<\/span><span data-ccp-props=\"{&quot;335559738&quot;:240,&quot;335559739&quot;:240}\">\u00a0<\/span><\/p>\n<div style=\"overflow-x: auto; margin: 20px 0; font-family: 'DM Sans', sans-serif;\">\n<table style=\"width: 100%; border-collapse: collapse; border: 1px solid #ddd; font-size: 15px; font-family: 'DM Sans', sans-serif;\">\n<thead>\n<tr style=\"background-color: #f4f6fb; color: #222; text-align: left;\">\n<th style=\"padding: 12px; border: 1px solid #ddd;\">Objaw<\/th>\n<th style=\"padding: 12px; border: 1px solid #ddd;\">Interpretacja<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td style=\"padding: 12px; border: 1px solid #ddd; font-weight: bold; color: #1769ff;\">Sekwencyjne ID (rosn\u0105ce\/malej\u0105ce)<\/td>\n<td style=\"padding: 12px; border: 1px solid #ddd;\">Pr\u00f3ba systematycznego testowania zasob\u00f3w<\/td>\n<\/tr>\n<tr style=\"background-color: #fafbff;\">\n<td style=\"padding: 12px; border: 1px solid #ddd; font-weight: bold; color: #1769ff;\">Sta\u0142y interwa\u0142 czasowy mi\u0119dzy \u017c\u0105daniami<\/td>\n<td style=\"padding: 12px; border: 1px solid #ddd;\">Automatyzacja (skrypt, narz\u0119dzie fuzzuj\u0105ce)<\/td>\n<\/tr>\n<tr>\n<td style=\"padding: 12px; border: 1px solid #ddd; font-weight: bold; color: #1769ff;\">Wysoka liczba zapyta\u0144 w kr\u00f3tkim czasie<\/td>\n<td style=\"padding: 12px; border: 1px solid #ddd;\">Pr\u00f3ba enumeracji obiekt\u00f3w w aplikacji<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p>&nbsp;<\/p>\n<h3 aria-level=\"3\"><b><span data-contrast=\"none\">Wska\u017anik 3. Dost\u0119p do zasob\u00f3w o nietypowych ID<\/span><\/b><span data-ccp-props=\"{&quot;134245418&quot;:true,&quot;134245529&quot;:true,&quot;335559738&quot;:281,&quot;335559739&quot;:281}\">\u00a0<\/span><\/h3>\n<p><span data-contrast=\"auto\">Ka\u017cdy u\u017cytkownik w aplikacji dzia\u0142a w okre\u015blonym kontek\u015bcie \u2013 jego zapytania zazwyczaj dotycz\u0105 powi\u0105zanych zasob\u00f3w, np. identyfikator\u00f3w z okre\u015blonego zakresu. Je\u015bli system wykryje, \u017ce u\u017cytkownik, kt\u00f3ry zwykle operuje w przedziale <\/span><span data-contrast=\"auto\">id=5000\u20135100<\/span><span data-contrast=\"auto\">, nagle pr\u00f3buje uzyska\u0107 dost\u0119p do <\/span><span data-contrast=\"auto\">id=1<\/span><span data-contrast=\"auto\"> lub <\/span><span data-contrast=\"auto\">id=10<\/span><span data-contrast=\"auto\">, jest to silny sygna\u0142 potencjalnego nadu\u017cycia.<\/span><span data-ccp-props=\"{&quot;335559738&quot;:240,&quot;335559739&quot;:240}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">Ten typ anomalii szczeg\u00f3lnie dobrze wychodzi w analizie behawioralnej, opartej na <\/span><b><span data-contrast=\"auto\">profilowaniu aktywno\u015bci u\u017cytkownika<\/span><\/b><span data-contrast=\"auto\">. Systemy mog\u0105 automatycznie budowa\u0107 \u201ebaseline\u201d \u2013 model typowego zachowania \u2013 i wychwytywa\u0107 odchylenia od normy.<\/span><span data-ccp-props=\"{&quot;335559738&quot;:240,&quot;335559739&quot;:240}\">\u00a0<\/span><\/p>\n<p><b><span data-contrast=\"auto\">Przyk\u0142ad wykrycia anomalii:<\/span><\/b><span data-ccp-props=\"{&quot;335559738&quot;:240,&quot;335559739&quot;:240}\">\u00a0<\/span><\/p>\n<div style=\"overflow-x: auto; margin: 20px 0; font-family: 'DM Sans', sans-serif;\">\n<table style=\"width: 100%; border-collapse: collapse; border: 1px solid #ddd; font-size: 15px; font-family: 'DM Sans', sans-serif;\">\n<thead>\n<tr style=\"background-color: #f4f6fb; color: #222; text-align: left;\">\n<th style=\"padding: 12px; border: 1px solid #ddd;\">Parametr<\/th>\n<th style=\"padding: 12px; border: 1px solid #ddd;\">Normalny zakres u\u017cytkownika<\/th>\n<th style=\"padding: 12px; border: 1px solid #ddd;\">Warto\u015b\u0107 w zapytaniu<\/th>\n<th style=\"padding: 12px; border: 1px solid #ddd;\">Ocena ryzyka<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td style=\"padding: 12px; border: 1px solid #ddd; font-weight: bold; color: #1769ff;\">invoice_id<\/td>\n<td style=\"padding: 12px; border: 1px solid #ddd;\">5000\u20135100<\/td>\n<td style=\"padding: 12px; border: 1px solid #ddd;\">12<\/td>\n<td style=\"padding: 12px; border: 1px solid #ddd;\">Wysokie<\/td>\n<\/tr>\n<tr style=\"background-color: #fafbff;\">\n<td style=\"padding: 12px; border: 1px solid #ddd; font-weight: bold; color: #1769ff;\">customer_id<\/td>\n<td style=\"padding: 12px; border: 1px solid #ddd;\">600\u2013650<\/td>\n<td style=\"padding: 12px; border: 1px solid #ddd;\">1<\/td>\n<td style=\"padding: 12px; border: 1px solid #ddd;\">Krytyczne<\/td>\n<\/tr>\n<tr>\n<td style=\"padding: 12px; border: 1px solid #ddd; font-weight: bold; color: #1769ff;\">project_id<\/td>\n<td style=\"padding: 12px; border: 1px solid #ddd;\">200\u2013220<\/td>\n<td style=\"padding: 12px; border: 1px solid #ddd;\">999<\/td>\n<td style=\"padding: 12px; border: 1px solid #ddd;\">Podejrzane<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p>&nbsp;<\/p>\n<p><span data-contrast=\"auto\">Takie zdarzenia s\u0105 szczeg\u00f3lnie niebezpieczne, poniewa\u017c cz\u0119sto wskazuj\u0105 na pr\u00f3b\u0119 <\/span><b><span data-contrast=\"auto\">eskalacji pionowej<\/span><\/b><span data-contrast=\"auto\"> \u2013 u\u017cytkownik testuje czy ma dost\u0119p do danych administracyjnych lub systemowych.<\/span><span data-ccp-props=\"{&quot;335559738&quot;:240,&quot;335559739&quot;:240}\">\u00a0<\/span><\/p>\n<p><span data-ccp-props=\"{}\">\u00a0<\/span><\/p>\n<h3 aria-level=\"3\"><b><span data-contrast=\"none\">Wska\u017anik 4. Mieszanie kontekst\u00f3w sesji<\/span><\/b><span data-ccp-props=\"{&quot;134245418&quot;:true,&quot;134245529&quot;:true,&quot;335559738&quot;:281,&quot;335559739&quot;:281}\">\u00a0<\/span><\/h3>\n<p><span data-contrast=\"auto\">To jeden z bardziej zaawansowanych symptom\u00f3w ataku IDOR, wykrywany g\u0142\u00f3wnie w \u015brodowiskach z wieloma poziomami autoryzacji. W normalnym przebiegu sesji ka\u017cde \u017c\u0105danie HTTP odnosi si\u0119 do danych przypisanych do tego samego konta, tokenu lub ciasteczka sesyjnego. Gdy system wykryje, \u017ce w obr\u0119bie jednej sesji u\u017cytkownik pr\u00f3buje uzyska\u0107 dost\u0119p do zasob\u00f3w nale\u017c\u0105cych do innego konta (np. inny <\/span><span data-contrast=\"auto\">user_id<\/span><span data-contrast=\"auto\"> w tokenie ni\u017c w zapytaniu), jest to sygna\u0142 manipulacji.<\/span><span data-ccp-props=\"{&quot;335559738&quot;:240,&quot;335559739&quot;:240}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">Tego typu anomalii nie da si\u0119 wykry\u0107 bez <\/span><b><span data-contrast=\"auto\">kontekstowego mapowania sesji i to\u017csamo\u015bci<\/span><\/b><span data-contrast=\"auto\">. System musi rozumie\u0107 powi\u0105zania mi\u0119dzy u\u017cytkownikiem, jego tokenem, zakresem danych i histori\u0105 aktywno\u015bci.<\/span><span data-ccp-props=\"{&quot;335559738&quot;:240,&quot;335559739&quot;:240}\">\u00a0<\/span><\/p>\n<p><b><span data-contrast=\"auto\">Scenariusz detekcji:<\/span><\/b><span data-ccp-props=\"{&quot;335559738&quot;:240,&quot;335559739&quot;:240}\">\u00a0<\/span><\/p>\n<ol>\n<li aria-setsize=\"-1\" data-leveltext=\"%1.\" data-font=\"Aptos\" data-listid=\"12\" data-list-defn-props=\"{&quot;335552541&quot;:0,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769242&quot;:[65533,0],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;%1.&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" data-aria-posinset=\"1\" data-aria-level=\"1\"><span data-contrast=\"auto\">U\u017cytkownik <\/span><a href=\"mailto:user@example.com\"><span data-contrast=\"none\">user@example.com<\/span><\/a><span data-contrast=\"auto\"> z tokenem <\/span><span data-contrast=\"auto\">session_ABC<\/span><span data-contrast=\"auto\"> wysy\u0142a \u017c\u0105danie <\/span><span data-contrast=\"auto\">GET \/api\/v1\/user\/789<\/span><span data-contrast=\"auto\">.<\/span><span data-ccp-props=\"{&quot;335559738&quot;:240,&quot;335559739&quot;:240}\">\u00a0<\/span><\/li>\n<\/ol>\n<ol>\n<li aria-setsize=\"-1\" data-leveltext=\"%1.\" data-font=\"Aptos\" data-listid=\"12\" data-list-defn-props=\"{&quot;335552541&quot;:0,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769242&quot;:[65533,0],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;%1.&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" data-aria-posinset=\"2\" data-aria-level=\"1\"><span data-contrast=\"auto\">W logach wida\u0107, \u017ce <\/span><span data-contrast=\"auto\">user_id<\/span><span data-contrast=\"auto\"> w tokenie to <\/span><span data-contrast=\"auto\">456<\/span><span data-contrast=\"auto\">.<\/span><span data-ccp-props=\"{&quot;335559738&quot;:240,&quot;335559739&quot;:240}\">\u00a0<\/span><\/li>\n<\/ol>\n<ol>\n<li aria-setsize=\"-1\" data-leveltext=\"%1.\" data-font=\"Aptos\" data-listid=\"12\" data-list-defn-props=\"{&quot;335552541&quot;:0,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769242&quot;:[65533,0],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;%1.&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" data-aria-posinset=\"3\" data-aria-level=\"1\"><span data-contrast=\"auto\">System rozpoznaje niezgodno\u015b\u0107 kontekstu \u2013 u\u017cytkownik 456 pr\u00f3buje odczyta\u0107 dane u\u017cytkownika 789.<\/span><span data-ccp-props=\"{&quot;335559738&quot;:240,&quot;335559739&quot;:240}\">\u00a0<\/span><\/li>\n<\/ol>\n<p><span data-contrast=\"auto\">Efekt: generowany jest alert o pr\u00f3bie obej\u015bcia autoryzacji w ramach jednej sesji.<\/span><span data-ccp-props=\"{&quot;335559738&quot;:240,&quot;335559739&quot;:240}\">\u00a0<\/span><\/p>\n<p><span data-ccp-props=\"{}\">\u00a0<\/span><\/p>\n<h3 aria-level=\"3\"><b><span data-contrast=\"none\">Podsumowanie: korelacja wska\u017anik\u00f3w i warto\u015b\u0107 analizy ruchu HTTP<\/span><\/b><span data-ccp-props=\"{&quot;134245418&quot;:true,&quot;134245529&quot;:true,&quot;335559738&quot;:281,&quot;335559739&quot;:281}\">\u00a0<\/span><\/h3>\n<p><span data-contrast=\"auto\">Skuteczna detekcja ataku IDOR nie polega na analizie pojedynczych b\u0142\u0119d\u00f3w, ale na <\/span><b><span data-contrast=\"auto\">korelacji kilku zjawisk<\/span><\/b><span data-contrast=\"auto\">:<\/span><span data-ccp-props=\"{&quot;335559738&quot;:240,&quot;335559739&quot;:240}\">\u00a0<\/span><\/p>\n<ul>\n<li aria-setsize=\"-1\" data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"8\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" data-aria-posinset=\"1\" data-aria-level=\"1\"><span data-contrast=\"auto\">gwa\u0142townego wzrostu b\u0142\u0119d\u00f3w 401\/403,<\/span><span data-ccp-props=\"{&quot;335559738&quot;:240,&quot;335559739&quot;:240}\">\u00a0<\/span><\/li>\n<\/ul>\n<ul>\n<li aria-setsize=\"-1\" data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"8\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" data-aria-posinset=\"2\" data-aria-level=\"1\"><span data-contrast=\"auto\">sekwencyjnego odpytywania zasob\u00f3w,<\/span><span data-ccp-props=\"{&quot;335559738&quot;:240,&quot;335559739&quot;:240}\">\u00a0<\/span><\/li>\n<\/ul>\n<ul>\n<li aria-setsize=\"-1\" data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"8\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" data-aria-posinset=\"3\" data-aria-level=\"1\"><span data-contrast=\"auto\">pr\u00f3b dost\u0119pu do nietypowych identyfikator\u00f3w,<\/span><span data-ccp-props=\"{&quot;335559738&quot;:240,&quot;335559739&quot;:240}\">\u00a0<\/span><\/li>\n<\/ul>\n<ul>\n<li aria-setsize=\"-1\" data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"8\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" data-aria-posinset=\"4\" data-aria-level=\"1\"><span data-contrast=\"auto\">niezgodno\u015bci kontekstu sesji i to\u017csamo\u015bci u\u017cytkownika.<\/span><span data-ccp-props=\"{&quot;335559738&quot;:240,&quot;335559739&quot;:240}\">\u00a0<\/span><\/li>\n<\/ul>\n<p><span data-contrast=\"auto\">Systemy, kt\u00f3re monitoruj\u0105 ruch HTTP w czasie rzeczywistym, potrafi\u0105 te dane \u0142\u0105czy\u0107, profilowa\u0107 u\u017cytkownik\u00f3w, a nast\u0119pnie generowa\u0107 precyzyjne alerty bezpiecze\u0144stwa. Dzi\u0119ki temu mo\u017cliwe jest szybkie wykrycie pr\u00f3b enumeracji, eskalacji przywilej\u00f3w czy manipulacji parametrami API \u2013 zanim dojdzie do faktycznego naruszenia danych.<\/span><span data-ccp-props=\"{&quot;335559738&quot;:240,&quot;335559739&quot;:240}\">\u00a0<\/span><\/p>\n<p>&nbsp;<\/p>\n<div class=\"_tableContainer_1rjym_1\">\n<div class=\"_tableContainer_1rjym_1\">\n<h2 aria-level=\"2\"><span class=\"ez-toc-section\" id=\"Rola_monitoringu_sieci_w_ochronie_API_i_wykrywaniu_naduzyc_w_czasie_rzeczywistym\"><\/span><b><span data-contrast=\"none\">Rola monitoringu sieci w ochronie API i wykrywaniu nadu\u017cy\u0107 w czasie rzeczywistym<\/span><\/b><span data-ccp-props=\"{&quot;134245418&quot;:true,&quot;134245529&quot;:true,&quot;335559738&quot;:299,&quot;335559739&quot;:299}\">\u00a0<\/span><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p><span data-contrast=\"auto\">Tradycyjne podej\u015bcie do bezpiecze\u0144stwa aplikacji webowych koncentrowa\u0142o si\u0119 g\u0142\u00f3wnie na gromadzeniu log\u00f3w i reagowaniu po fakcie. Administratorzy analizowali zdarzenia, korelowali kody b\u0142\u0119d\u00f3w i pr\u00f3bowali odtworzy\u0107 przebieg ataku. W dzisiejszych \u015brodowiskach \u2013 rozproszonych, opartych na mikroserwisach, z dynamicznie skaluj\u0105cymi si\u0119 komponentami \u2013 takie podej\u015bcie jest ju\u017c niewystarczaj\u0105ce. Aby skutecznie chroni\u0107 interfejsy API i aplikacje webowe przed atakami takimi jak atak IDOR, potrzebne s\u0105 narz\u0119dzia zdolne do <\/span><b><span data-contrast=\"auto\">aktywnej detekcji w czasie rzeczywistym<\/span><\/b><span data-contrast=\"auto\">.<\/span><span data-ccp-props=\"{&quot;335559738&quot;:240,&quot;335559739&quot;:240}\">\u00a0<\/span><\/p>\n<p><span data-ccp-props=\"{}\">\u00a0<\/span><\/p>\n<h3 aria-level=\"3\"><b><span data-contrast=\"none\">Od logowania do aktywnej detekcji<\/span><\/b><span data-ccp-props=\"{&quot;134245418&quot;:true,&quot;134245529&quot;:true,&quot;335559738&quot;:281,&quot;335559739&quot;:281}\">\u00a0<\/span><\/h3>\n<p><span data-contrast=\"auto\">Posiadanie log\u00f3w to dopiero pocz\u0105tek. Dane z serwer\u00f3w WWW, API Gateway czy load balancer\u00f3w s\u0105 warto\u015bciowe, ale bez odpowiedniej analizy nie wnosz\u0105 realnej warto\u015bci bezpiecze\u0144stwa. <\/span><span data-contrast=\"auto\">Samo gromadzenie wpis\u00f3w typu:<\/span><span data-ccp-props=\"{&quot;335559738&quot;:240,&quot;335559739&quot;:240}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">2025-10-24 10:12:33 GET \/api\/v1\/user?id=502 -&gt; 403\u00a0 <\/span><br \/>\n<span data-contrast=\"auto\">2025-10-24 10:12:33 GET \/api\/v1\/user?id=503 -&gt; 403\u00a0 <\/span><br \/>\n<span data-contrast=\"auto\">2025-10-24 10:12:34 GET \/api\/v1\/user?id=504 -&gt; 403\u00a0 <\/span><br \/>\n<span data-ccp-props=\"{&quot;335559739&quot;:0}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">nie m\u00f3wi jeszcze nic o intencji u\u017cytkownika. Dopiero system potrafi\u0105cy te logi <\/span><b><span data-contrast=\"auto\">analizowa\u0107 w czasie rzeczywistym<\/span><\/b><span data-contrast=\"auto\">, rozumie\u0107 ich kontekst i powi\u0105zania, jest w stanie wykry\u0107, \u017ce to wzorzec typowy dla ataku IDOR.<\/span><span data-ccp-props=\"{&quot;335559738&quot;:240,&quot;335559739&quot;:240}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">R\u00f3\u017cnica mi\u0119dzy \u201eposiadaniem log\u00f3w\u201d a \u201erozumieniem log\u00f3w\u201d jest fundamentalna. Systemy nie ograniczaj\u0105 si\u0119 do rejestrowania zdarze\u0144 \u2013 one mog\u0105 <\/span><b><span data-contrast=\"auto\">interpretowa\u0107<\/span><\/b><span data-contrast=\"auto\"> je<\/span><span data-contrast=\"auto\">, analizuj\u0105c:<\/span><span data-ccp-props=\"{&quot;335559738&quot;:240,&quot;335559739&quot;:240}\">\u00a0<\/span><\/p>\n<ul>\n<li aria-setsize=\"-1\" data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"7\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" data-aria-posinset=\"1\" data-aria-level=\"1\"><span data-contrast=\"auto\">cz\u0119stotliwo\u015b\u0107 i regularno\u015b\u0107 zapyta\u0144,<\/span><span data-ccp-props=\"{&quot;335559738&quot;:240,&quot;335559739&quot;:240}\">\u00a0<\/span><\/li>\n<\/ul>\n<ul>\n<li aria-setsize=\"-1\" data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"7\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" data-aria-posinset=\"2\" data-aria-level=\"1\"><span data-contrast=\"auto\">typy zwracanych kod\u00f3w HTTP,<\/span><span data-ccp-props=\"{&quot;335559738&quot;:240,&quot;335559739&quot;:240}\">\u00a0<\/span><\/li>\n<\/ul>\n<ul>\n<li aria-setsize=\"-1\" data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"7\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" data-aria-posinset=\"3\" data-aria-level=\"1\"><span data-contrast=\"auto\">zmienno\u015b\u0107 parametr\u00f3w w obr\u0119bie jednej sesji,<\/span><span data-ccp-props=\"{&quot;335559738&quot;:240,&quot;335559739&quot;:240}\">\u00a0<\/span><\/li>\n<\/ul>\n<ul>\n<li aria-setsize=\"-1\" data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"7\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" data-aria-posinset=\"4\" data-aria-level=\"1\"><span data-contrast=\"auto\">powi\u0105zania mi\u0119dzy u\u017cytkownikami, adresami IP i tokenami.<\/span><span data-ccp-props=\"{&quot;335559738&quot;:240,&quot;335559739&quot;:240}\">\u00a0<\/span><\/li>\n<\/ul>\n<p><span data-contrast=\"auto\">Dzi\u0119ki temu mo\u017cliwe jest przej\u015bcie od reaktywnego podej\u015bcia do <\/span><b><span data-contrast=\"auto\">proaktywnego monitoringu<\/span><\/b><span data-contrast=\"auto\">, w kt\u00f3rym system automatycznie wykrywa anomali\u0119 i generuje alert zanim dojdzie do naruszenia poufno\u015bci danych.<\/span><span data-ccp-props=\"{&quot;335559738&quot;:240,&quot;335559739&quot;:240}\">\u00a0<\/span><\/p>\n<p><span data-ccp-props=\"{}\">\u00a0<\/span><\/p>\n<h3 aria-level=\"3\"><b><span data-contrast=\"none\">Budowanie linii bazowej (Baseline)<\/span><\/b><span data-ccp-props=\"{&quot;134245418&quot;:true,&quot;134245529&quot;:true,&quot;335559738&quot;:281,&quot;335559739&quot;:281}\">\u00a0<\/span><\/h3>\n<p><span data-contrast=\"auto\">Podstaw\u0105 skutecznej analizy ruchu HTTP w kontek\u015bcie ochrony API jest <\/span><b><span data-contrast=\"auto\">modelowanie normalnego zachowania<\/span><\/b><span data-contrast=\"auto\"> u\u017cytkownik\u00f3w i aplikacji. Systemy\u00a0i narz\u0119dzia buduj\u0105 tzw. <\/span><i><span data-contrast=\"auto\">baseline<\/span><\/i><span data-contrast=\"auto\"> \u2013 lini\u0119 bazow\u0105, kt\u00f3ra odzwierciedla typowe wzorce aktywno\u015bci w danym \u015brodowisku.<\/span><span data-ccp-props=\"{&quot;335559738&quot;:240,&quot;335559739&quot;:240}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">Przyk\u0142adowo:<\/span><span data-ccp-props=\"{&quot;335559738&quot;:240,&quot;335559739&quot;:240}\">\u00a0<\/span><\/p>\n<ul>\n<li aria-setsize=\"-1\" data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"11\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" data-aria-posinset=\"1\" data-aria-level=\"1\"><span data-contrast=\"auto\">U\u017cytkownik <\/span><a href=\"mailto:user@example.com\"><span data-contrast=\"none\">user@example.com<\/span><\/a><span data-contrast=\"auto\"> zwykle wykonuje 20\u201330 zapyta\u0144 na godzin\u0119, dotycz\u0105cych zasob\u00f3w <\/span><span data-contrast=\"auto\">id=5000\u20135100<\/span><span data-contrast=\"auto\">.<\/span><span data-ccp-props=\"{&quot;335559738&quot;:240,&quot;335559739&quot;:240}\">\u00a0<\/span><\/li>\n<\/ul>\n<ul>\n<li aria-setsize=\"-1\" data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"11\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" data-aria-posinset=\"2\" data-aria-level=\"1\"><span data-contrast=\"auto\">Kod HTTP 403 pojawia si\u0119 w jego sesjach sporadycznie (0\u20131 raz dziennie).<\/span><span data-ccp-props=\"{&quot;335559738&quot;:240,&quot;335559739&quot;:240}\">\u00a0<\/span><\/li>\n<\/ul>\n<ul>\n<li aria-setsize=\"-1\" data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"11\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" data-aria-posinset=\"3\" data-aria-level=\"1\"><span data-contrast=\"auto\">Interwa\u0142 mi\u0119dzy kolejnymi \u017c\u0105daniami wynosi \u015brednio 3\u20135 sekund.<\/span><span data-ccp-props=\"{&quot;335559738&quot;:240,&quot;335559739&quot;:240}\">\u00a0<\/span><\/li>\n<\/ul>\n<p><span data-contrast=\"auto\">Gdy system zauwa\u017cy nag\u0142e odchylenie od tego wzorca \u2013 np. 150 \u017c\u0105da\u0144 w ci\u0105gu minuty, z czego 80% ko\u0144czy si\u0119 b\u0142\u0119dem autoryzacji \u2013 automatycznie klasyfikuje to jako <\/span><b><span data-contrast=\"auto\">anomali\u0119<\/span><\/b><span data-contrast=\"auto\">.<\/span><span data-ccp-props=\"{&quot;335559738&quot;:240,&quot;335559739&quot;:240}\">\u00a0<\/span><\/p>\n<div style=\"overflow-x: auto; margin: 20px 0; font-family: 'DM Sans', sans-serif;\">\n<table style=\"width: 100%; border-collapse: collapse; border: 1px solid #ddd; font-size: 15px; font-family: 'DM Sans', sans-serif;\">\n<thead>\n<tr style=\"background-color: #f4f6fb; color: #222; text-align: left;\">\n<th style=\"padding: 12px; border: 1px solid #ddd;\">Parametr monitorowany<\/th>\n<th style=\"padding: 12px; border: 1px solid #ddd;\">Normalna warto\u015b\u0107 (baseline)<\/th>\n<th style=\"padding: 12px; border: 1px solid #ddd;\">Warto\u015b\u0107 odnotowana<\/th>\n<th style=\"padding: 12px; border: 1px solid #ddd;\">Ocena<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td style=\"padding: 12px; border: 1px solid #ddd; font-weight: bold; color: #1769ff;\">Liczba zapyta\u0144 \/ minut\u0119<\/td>\n<td style=\"padding: 12px; border: 1px solid #ddd;\">2\u20135<\/td>\n<td style=\"padding: 12px; border: 1px solid #ddd;\">150<\/td>\n<td style=\"padding: 12px; border: 1px solid #ddd;\">Krytyczna<\/td>\n<\/tr>\n<tr style=\"background-color: #fafbff;\">\n<td style=\"padding: 12px; border: 1px solid #ddd; font-weight: bold; color: #1769ff;\">Odsetek b\u0142\u0119d\u00f3w 403<\/td>\n<td style=\"padding: 12px; border: 1px solid #ddd;\">&lt; 1%<\/td>\n<td style=\"padding: 12px; border: 1px solid #ddd;\">80%<\/td>\n<td style=\"padding: 12px; border: 1px solid #ddd;\">Podejrzane<\/td>\n<\/tr>\n<tr>\n<td style=\"padding: 12px; border: 1px solid #ddd; font-weight: bold; color: #1769ff;\">Zakres ID w zapytaniach<\/td>\n<td style=\"padding: 12px; border: 1px solid #ddd;\">5000\u20135100<\/td>\n<td style=\"padding: 12px; border: 1px solid #ddd;\">1\u20139999<\/td>\n<td style=\"padding: 12px; border: 1px solid #ddd;\">Anomalia<\/td>\n<\/tr>\n<tr style=\"background-color: #fafbff;\">\n<td style=\"padding: 12px; border: 1px solid #ddd; font-weight: bold; color: #1769ff;\">\u0179r\u00f3d\u0142owy adres IP<\/td>\n<td style=\"padding: 12px; border: 1px solid #ddd;\">Sta\u0142y (firmowy)<\/td>\n<td style=\"padding: 12px; border: 1px solid #ddd;\">Dynamiczny \/ zewn\u0119trzny<\/td>\n<td style=\"padding: 12px; border: 1px solid #ddd;\">Wysokie ryzyko<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p>&nbsp;<\/p>\n<p><span data-contrast=\"auto\">System mo\u017ce r\u00f3wnie\u017c analizowa\u0107 sezonowo\u015b\u0107 i zmienno\u015b\u0107 zachowa\u0144 \u2013 inne wzorce obowi\u0105zuj\u0105 w godzinach szczytu, inne w weekendy, jeszcze inne dla u\u017cytkownik\u00f3w z API partner\u00f3w biznesowych. Dzi\u0119ki temu redukuje si\u0119 liczb\u0119 fa\u0142szywych alarm\u00f3w i zwi\u0119ksza precyzj\u0119 detekcji.<\/span><span data-ccp-props=\"{&quot;335559738&quot;:240,&quot;335559739&quot;:240}\">\u00a0<\/span><\/p>\n<p><span data-ccp-props=\"{}\">\u00a0<\/span><\/p>\n<h3 aria-level=\"3\"><b><span data-contrast=\"none\">Praktyczny alert \u2013 przyk\u0142ad z systemu<\/span><\/b><span data-ccp-props=\"{&quot;134245418&quot;:true,&quot;134245529&quot;:true,&quot;335559738&quot;:281,&quot;335559739&quot;:281}\">\u00a0<\/span><\/h3>\n<p><span data-contrast=\"auto\">Poni\u017cszy przyk\u0142ad ilustruje, jak wygl\u0105da\u0142by rzeczywisty alert wygenerowany przez system monitoringu w kontek\u015bcie ataku IDOR:<\/span><span data-ccp-props=\"{&quot;335559738&quot;:240,&quot;335559739&quot;:240}\">\u00a0<\/span><\/p>\n<p><b><span data-contrast=\"auto\">Alert bezpiecze\u0144stwa \u2013 wykryto potencjalny atak IDOR<\/span><\/b><br \/>\n<b><span data-contrast=\"auto\">\u0179r\u00f3d\u0142o:<\/span><\/b> <a href=\"mailto:user@example.com\"><span data-contrast=\"none\">user@example.com<\/span><\/a><br \/>\n<b><span data-contrast=\"auto\">Adres IP:<\/span><\/b> <span data-contrast=\"auto\">1.2.3.4<\/span><br \/>\n<b><span data-contrast=\"auto\">Czas:<\/span><\/b><span data-contrast=\"auto\"> 2025-10-24 10:12:00 \u2013 10:13:00<\/span><br \/>\n<b><span data-contrast=\"auto\">Szczeg\u00f3\u0142y zdarzenia:<\/span><\/b><span data-ccp-props=\"{&quot;335559738&quot;:240,&quot;335559739&quot;:240}\">\u00a0<\/span><\/p>\n<ul>\n<li aria-setsize=\"-1\" data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"3\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" data-aria-posinset=\"1\" data-aria-level=\"1\"><span data-contrast=\"auto\">W ci\u0105gu 60 sekund u\u017cytkownik wygenerowa\u0142 <\/span><b><span data-contrast=\"auto\">150 \u017c\u0105da\u0144 HTTP<\/span><\/b><span data-contrast=\"auto\"> do zasobu <\/span><span data-contrast=\"auto\">\/api\/v1\/user\/<\/span><span data-contrast=\"auto\">.<\/span><span data-ccp-props=\"{&quot;335559738&quot;:240,&quot;335559739&quot;:240}\">\u00a0<\/span><\/li>\n<\/ul>\n<ul>\n<li aria-setsize=\"-1\" data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"3\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" data-aria-posinset=\"2\" data-aria-level=\"1\"><b><span data-contrast=\"auto\">80%<\/span><\/b><span data-contrast=\"auto\"> \u017c\u0105da\u0144 zako\u0144czy\u0142o si\u0119 kodem <\/span><b><span data-contrast=\"auto\">403 (Forbidden)<\/span><\/b><span data-contrast=\"auto\">.<\/span><span data-ccp-props=\"{&quot;335559738&quot;:240,&quot;335559739&quot;:240}\">\u00a0<\/span><\/li>\n<\/ul>\n<ul>\n<li aria-setsize=\"-1\" data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"3\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" data-aria-posinset=\"3\" data-aria-level=\"1\"><span data-contrast=\"auto\">Parametry \u017c\u0105da\u0144 wykazywa\u0142y <\/span><b><span data-contrast=\"auto\">sekwencyjny wzrost ID<\/span><\/b><span data-contrast=\"auto\"> (<\/span><span data-contrast=\"auto\">id=1000\u20131150<\/span><span data-contrast=\"auto\">).<\/span><span data-ccp-props=\"{&quot;335559738&quot;:240,&quot;335559739&quot;:240}\">\u00a0<\/span><\/li>\n<\/ul>\n<ul>\n<li aria-setsize=\"-1\" data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"3\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" data-aria-posinset=\"4\" data-aria-level=\"1\"><span data-contrast=\"auto\">Wyst\u0105pi\u0142y pr\u00f3by dost\u0119pu do danych spoza zakresu przypisanego u\u017cytkownikowi.<\/span><span data-ccp-props=\"{&quot;335559738&quot;:240,&quot;335559739&quot;:240}\">\u00a0<\/span><\/li>\n<\/ul>\n<ul>\n<li aria-setsize=\"-1\" data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"3\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" data-aria-posinset=\"5\" data-aria-level=\"1\"><span data-contrast=\"auto\">System wykry\u0142 <\/span><b><span data-contrast=\"auto\">niesp\u00f3jno\u015b\u0107 tokenu sesyjnego<\/span><\/b><span data-contrast=\"auto\"> z zakresem danych.<\/span><span data-ccp-props=\"{&quot;335559738&quot;:240,&quot;335559739&quot;:240}\">\u00a0<\/span><\/li>\n<\/ul>\n<p><b><span data-contrast=\"auto\">Klasyfikacja:<\/span><\/b><span data-contrast=\"auto\"> Wysokie prawdopodobie\u0144stwo ataku IDOR<\/span><br \/>\n<b><span data-contrast=\"auto\">Zalecane dzia\u0142anie:<\/span><\/b><span data-ccp-props=\"{&quot;335559738&quot;:240,&quot;335559739&quot;:240}\">\u00a0<\/span><\/p>\n<ol>\n<li><span data-contrast=\"auto\">Tymczasowo zablokowa\u0107 u\u017cytkownika lub adres IP.<\/span><span data-ccp-props=\"{&quot;335559738&quot;:240,&quot;335559739&quot;:240}\">\u00a0<\/span><\/li>\n<li><span data-contrast=\"auto\">Przeanalizowa\u0107 \u017c\u0105dania pod k\u0105tem modyfikacji parametr\u00f3w ID.<\/span><span data-ccp-props=\"{&quot;335559738&quot;:240,&quot;335559739&quot;:240}\">\u00a0<\/span><\/li>\n<li><span data-contrast=\"auto\">Powiadomi\u0107 zesp\u00f3\u0142 DevOps o potencjalnym b\u0142\u0119dzie w logice autoryzacji.<\/span><span data-ccp-props=\"{&quot;335559738&quot;:240,&quot;335559739&quot;:240}\">\u00a0<\/span><\/li>\n<\/ol>\n<p><span data-ccp-props=\"{}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">Taki alert nie jest wynikiem prostego dopasowania regu\u0142y, lecz efektem <\/span><b><span data-contrast=\"auto\">korelacji wielowymiarowych danych<\/span><\/b><span data-contrast=\"auto\">: log\u00f3w HTTP, metryk czasowych, profili u\u017cytkownik\u00f3w i historii aktywno\u015bci. Dzi\u0119ki temu zesp\u00f3\u0142 bezpiecze\u0144stwa (SecOps) otrzymuje informacj\u0119 o rzeczywistym incydencie, a nie o pojedynczym zdarzeniu.<\/span><span data-ccp-props=\"{&quot;335559738&quot;:240,&quot;335559739&quot;:240}\">\u00a0<\/span><\/p>\n<p><span data-ccp-props=\"{}\">\u00a0<\/span><\/p>\n<h3 aria-level=\"3\"><b><span data-contrast=\"none\">Warto\u015b\u0107 detekcji w czasie rzeczywistym<\/span><\/b><span data-ccp-props=\"{&quot;134245418&quot;:true,&quot;134245529&quot;:true,&quot;335559738&quot;:281,&quot;335559739&quot;:281}\">\u00a0<\/span><\/h3>\n<p><span data-contrast=\"auto\">Najwi\u0119ksz\u0105 przewag\u0105 monitoringu sieci w ochronie API jest mo\u017cliwo\u015b\u0107 <\/span><b><span data-contrast=\"auto\">natychmiastowego reagowania<\/span><\/b><span data-contrast=\"auto\">. W momencie, gdy system zauwa\u017cy wzorzec typowy dla ataku IDOR, mo\u017ce automatycznie uruchomi\u0107 mechanizmy:<\/span><span data-ccp-props=\"{&quot;335559738&quot;:240,&quot;335559739&quot;:240}\">\u00a0<\/span><\/p>\n<ul>\n<li aria-setsize=\"-1\" data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"6\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" data-aria-posinset=\"1\" data-aria-level=\"1\"><span data-contrast=\"auto\">blokowania lub throttlingu \u017c\u0105da\u0144 z danego adresu IP,<\/span><span data-ccp-props=\"{&quot;335559738&quot;:240,&quot;335559739&quot;:240}\">\u00a0<\/span><\/li>\n<\/ul>\n<ul>\n<li aria-setsize=\"-1\" data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"6\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" data-aria-posinset=\"2\" data-aria-level=\"1\"><span data-contrast=\"auto\">izolacji sesji u\u017cytkownika,<\/span><span data-ccp-props=\"{&quot;335559738&quot;:240,&quot;335559739&quot;:240}\">\u00a0<\/span><\/li>\n<\/ul>\n<ul>\n<li aria-setsize=\"-1\" data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"6\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" data-aria-posinset=\"3\" data-aria-level=\"1\"><span data-contrast=\"auto\">dynamicznego wzbogacania log\u00f3w kontekstowych,<\/span><span data-ccp-props=\"{&quot;335559738&quot;:240,&quot;335559739&quot;:240}\">\u00a0<\/span><\/li>\n<\/ul>\n<ul>\n<li aria-setsize=\"-1\" data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"6\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" data-aria-posinset=\"4\" data-aria-level=\"1\"><span data-contrast=\"auto\">powiadamiania zespo\u0142u DevOps o podejrzanych operacjach.<\/span><span data-ccp-props=\"{&quot;335559738&quot;:240,&quot;335559739&quot;:240}\">\u00a0<\/span><\/li>\n<\/ul>\n<p><span data-contrast=\"auto\">W praktyce pozwala to skr\u00f3ci\u0107 czas detekcji z godzin czy dni \u2013 do kilku sekund. Oznacza to, \u017ce organizacja nie tylko <\/span><b><span data-contrast=\"auto\">reaguje na incydenty<\/span><\/b><span data-contrast=\"auto\">, ale <\/span><b><span data-contrast=\"auto\">wyprzedza je<\/span><\/b><span data-contrast=\"auto\">, zanim dojdzie do eskalacji.<\/span><span data-ccp-props=\"{&quot;335559738&quot;:240,&quot;335559739&quot;:240}\">\u00a0<\/span><\/p>\n<p>&nbsp;<\/p>\n<h2 aria-level=\"2\"><span class=\"ez-toc-section\" id=\"Wykrywanie_SecOps_vs_Zapobieganie_DevOps_Jak_budowac_pelna_ochrone\"><\/span><b><span data-contrast=\"none\">Wykrywanie (SecOps) vs. Zapobieganie (DevOps): Jak budowa\u0107 pe\u0142n\u0105 ochron\u0119<\/span><\/b><span data-ccp-props=\"{&quot;134245418&quot;:true,&quot;134245529&quot;:true,&quot;335559738&quot;:299,&quot;335559739&quot;:299}\">\u00a0<\/span><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p><span data-contrast=\"auto\">Zrozumienie i ochrona przed podatno\u015bci\u0105 IDOR to zadanie, kt\u00f3re wymaga zar\u00f3wno \u015bwiadomo\u015bci po stronie deweloper\u00f3w, jak i czujno\u015bci zespo\u0142\u00f3w bezpiecze\u0144stwa. Nawet najlepiej zaprojektowany kod mo\u017ce zawiera\u0107 b\u0142\u0119dy, a najdoskonalszy system monitoringu nie zast\u0105pi prawid\u0142owej logiki autoryzacji. Skuteczna strategia musi wi\u0119c \u0142\u0105czy\u0107 <\/span><b><span data-contrast=\"auto\">prewencj\u0119 (DevOps)<\/span><\/b><span data-contrast=\"auto\"> i <\/span><b><span data-contrast=\"auto\">detekcj\u0119 (SecOps)<\/span><\/b><span data-contrast=\"auto\"> w sp\u00f3jny cykl bezpiecze\u0144stwa, w kt\u00f3rym ka\u017cda strona odgrywa kluczow\u0105 rol\u0119.<\/span><span data-ccp-props=\"{&quot;335559738&quot;:240,&quot;335559739&quot;:240}\">\u00a0<\/span><\/p>\n<p><span data-ccp-props=\"{}\">\u00a0<\/span><\/p>\n<h3 aria-level=\"3\"><b><span data-contrast=\"none\">Cz\u0119\u015b\u0107 1. Zapobieganie \u2013 odpowiedzialno\u015b\u0107 deweloper\u00f3w (DevOps)<\/span><\/b><span data-ccp-props=\"{&quot;134245418&quot;:true,&quot;134245529&quot;:true,&quot;335559738&quot;:281,&quot;335559739&quot;:281}\">\u00a0<\/span><\/h3>\n<p><span data-contrast=\"auto\">Zapobieganie to fundament bezpiecze\u0144stwa aplikacji. Celem dewelopera nie jest tworzenie kodu \u201edzia\u0142aj\u0105cego\u201d, lecz kodu <\/span><b><span data-contrast=\"auto\">bezpiecznego z definicji<\/span><\/b><span data-contrast=\"auto\">. Wed\u0142ug wytycznych OWASP (<\/span><i><span data-contrast=\"auto\">Insecure Direct Object References Prevention Guide<\/span><\/i><span data-contrast=\"auto\">) i najlepszych praktyk publikowanych przez Neti\u0119 czy Cyberwiedz\u0119, minimalizacja ryzyka ataku IDOR wymaga wdro\u017cenia kilku kluczowych zasad:<\/span><span data-ccp-props=\"{&quot;335559738&quot;:240,&quot;335559739&quot;:240}\">\u00a0<\/span><\/p>\n<p aria-level=\"4\"><b><i><span data-contrast=\"none\">1. Zawsze weryfikuj uprawnienia po stronie serwera<\/span><\/i><\/b><span data-ccp-props=\"{&quot;134245418&quot;:true,&quot;134245529&quot;:true,&quot;335559738&quot;:319,&quot;335559739&quot;:319}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">Ka\u017cde \u017c\u0105danie \u2013 niezale\u017cnie od tego, czy pochodzi z zalogowanego u\u017cytkownika, czy z zaufanego \u017ar\u00f3d\u0142a \u2013 powinno by\u0107 zweryfikowane przez logik\u0119 autoryzacyjn\u0105 po stronie serwera. Oznacza to, \u017ce aplikacja musi sprawdzi\u0107:<\/span><span data-ccp-props=\"{&quot;335559738&quot;:240,&quot;335559739&quot;:240}\">\u00a0<\/span><\/p>\n<ul>\n<li aria-setsize=\"-1\" data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"13\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" data-aria-posinset=\"1\" data-aria-level=\"1\"><span data-contrast=\"auto\">czy token lub sesja u\u017cytkownika jest poprawna,<\/span><span data-ccp-props=\"{&quot;335559738&quot;:240,&quot;335559739&quot;:240}\">\u00a0<\/span><\/li>\n<\/ul>\n<ul>\n<li aria-setsize=\"-1\" data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"13\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" data-aria-posinset=\"2\" data-aria-level=\"1\"><span data-contrast=\"auto\">czy u\u017cytkownik ma prawo dost\u0119pu do danego zasobu,<\/span><span data-ccp-props=\"{&quot;335559738&quot;:240,&quot;335559739&quot;:240}\">\u00a0<\/span><\/li>\n<\/ul>\n<ul>\n<li aria-setsize=\"-1\" data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"13\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" data-aria-posinset=\"3\" data-aria-level=\"1\"><span data-contrast=\"auto\">czy \u017c\u0105dana operacja (np. odczyt, modyfikacja) mie\u015bci si\u0119 w jego roli i zakresie uprawnie\u0144.<\/span><span data-ccp-props=\"{&quot;335559738&quot;:240,&quot;335559739&quot;:240}\">\u00a0<\/span><\/li>\n<\/ul>\n<p><span data-contrast=\"auto\">Brak tej kontroli sprawia, \u017ce ka\u017cde <\/span><span data-contrast=\"auto\">id=124<\/span><span data-contrast=\"auto\"> staje si\u0119 potencjaln\u0105 bram\u0105 do cudzych danych.<\/span><span data-ccp-props=\"{&quot;335559738&quot;:240,&quot;335559739&quot;:240}\">\u00a0<\/span><\/p>\n<p aria-level=\"4\"><b><i><span data-contrast=\"none\">2. Stosuj nieprzewidywalne identyfikatory (GUID\/UUID)<\/span><\/i><\/b><span data-ccp-props=\"{&quot;134245418&quot;:true,&quot;134245529&quot;:true,&quot;335559738&quot;:319,&quot;335559739&quot;:319}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">U\u017cywanie prostych, sekwencyjnych identyfikator\u00f3w (<\/span><span data-contrast=\"auto\">1, 2, 3, 4\u2026<\/span><span data-contrast=\"auto\">) to zaproszenie do ataku. Ka\u017cdy atakuj\u0105cy wie, \u017ce je\u015bli dane s\u0105 indeksowane numerycznie, mo\u017cna pr\u00f3bowa\u0107 kolejnych warto\u015bci. Rozwi\u0105zaniem jest stosowanie losowych identyfikator\u00f3w o wysokiej entropii \u2013 np. <\/span><b><span data-contrast=\"auto\">GUID<\/span><\/b><span data-contrast=\"auto\"> lub <\/span><b><span data-contrast=\"auto\">UUID<\/span><\/b><span data-contrast=\"auto\">, kt\u00f3re s\u0105 praktycznie niemo\u017cliwe do przewidzenia.<\/span><span data-ccp-props=\"{&quot;335559738&quot;:240,&quot;335559739&quot;:240}\">\u00a0<\/span><\/p>\n<p><b><span data-contrast=\"auto\">Por\u00f3wnanie podej\u015b\u0107:<\/span><\/b><span data-ccp-props=\"{&quot;335559738&quot;:240,&quot;335559739&quot;:240}\">\u00a0<\/span><\/p>\n<div style=\"overflow-x: auto; margin: 20px 0; font-family: 'DM Sans', sans-serif;\">\n<table style=\"width: 100%; border-collapse: collapse; border: 1px solid #ddd; font-size: 15px; font-family: 'DM Sans', sans-serif;\">\n<thead>\n<tr style=\"background-color: #f4f6fb; color: #222; text-align: left;\">\n<th style=\"padding: 12px; border: 1px solid #ddd;\">Podej\u015bcie<\/th>\n<th style=\"padding: 12px; border: 1px solid #ddd;\">Przyk\u0142ad ID<\/th>\n<th style=\"padding: 12px; border: 1px solid #ddd;\">Ocena bezpiecze\u0144stwa<\/th>\n<th style=\"padding: 12px; border: 1px solid #ddd;\">Komentarz<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td style=\"padding: 12px; border: 1px solid #ddd; font-weight: bold; color: #1769ff;\">Sekwencyjne ID<\/td>\n<td style=\"padding: 12px; border: 1px solid #ddd;\">1, 2, 3, 4<\/td>\n<td style=\"padding: 12px; border: 1px solid #ddd;\">Niskie<\/td>\n<td style=\"padding: 12px; border: 1px solid #ddd;\">\u0141atwe do odgadni\u0119cia, sprzyja IDOR<\/td>\n<\/tr>\n<tr style=\"background-color: #fafbff;\">\n<td style=\"padding: 12px; border: 1px solid #ddd; font-weight: bold; color: #1769ff;\">Losowe GUID<\/td>\n<td style=\"padding: 12px; border: 1px solid #ddd;\">3f2504e0-4f89-11d3-9a0c-0305e82c3301<\/td>\n<td style=\"padding: 12px; border: 1px solid #ddd;\">Wysokie<\/td>\n<td style=\"padding: 12px; border: 1px solid #ddd;\">Trudne do przewidzenia, eliminuje enumeracj\u0119<\/td>\n<\/tr>\n<tr>\n<td style=\"padding: 12px; border: 1px solid #ddd; font-weight: bold; color: #1769ff;\">Mapowanie sesyjne<\/td>\n<td style=\"padding: 12px; border: 1px solid #ddd;\">session_abc123 \u2192 invoice_5021<\/td>\n<td style=\"padding: 12px; border: 1px solid #ddd;\">Bardzo wysokie<\/td>\n<td style=\"padding: 12px; border: 1px solid #ddd;\">ID u\u017cytkownika nie ma bezpo\u015bredniego odniesienia do danych<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p>&nbsp;<\/p>\n<p aria-level=\"4\"><b><i><span data-contrast=\"none\">3. Ukrywaj bezpo\u015brednie ID \u2013 stosuj mapowanie po stronie serwera<\/span><\/i><\/b><span data-ccp-props=\"{&quot;134245418&quot;:true,&quot;134245529&quot;:true,&quot;335559738&quot;:319,&quot;335559739&quot;:319}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">Zamiast przekazywa\u0107 identyfikatory obiekt\u00f3w z bazy danych bezpo\u015brednio do klienta, warto wprowadzi\u0107 warstw\u0119 po\u015bredni\u0105, kt\u00f3ra <\/span><b><span data-contrast=\"auto\">mapuje dane u\u017cytkownika do zasob\u00f3w<\/span><\/b><span data-contrast=\"auto\">.<\/span><br \/>\n<span data-contrast=\"auto\"> Przyk\u0142ad:<\/span><br \/>\n<span data-contrast=\"auto\"> Zamiast wysy\u0142a\u0107 <\/span><span data-contrast=\"auto\">GET \/invoice?id=124<\/span><span data-contrast=\"auto\">, system powinien przetworzy\u0107 zapytanie <\/span><span data-contrast=\"auto\">GET \/invoice\/current<\/span><span data-contrast=\"auto\">, a nast\u0119pnie na podstawie sesji u\u017cytkownika odszuka\u0107 w\u0142a\u015bciwe dane po stronie serwera. W ten spos\u00f3b nawet je\u015bli kto\u015b zmodyfikuje parametr, aplikacja nie udost\u0119pni cudzych zasob\u00f3w, poniewa\u017c logika mapowania przypisuje dane jednoznacznie do to\u017csamo\u015bci u\u017cytkownika.<\/span><span data-ccp-props=\"{&quot;335559738&quot;:240,&quot;335559739&quot;:240}\">\u00a0<\/span><\/p>\n<p aria-level=\"4\"><b><i><span data-contrast=\"none\">4. Waliduj dane wej\u015bciowe i kontekst \u017c\u0105dania<\/span><\/i><\/b><span data-ccp-props=\"{&quot;134245418&quot;:true,&quot;134245529&quot;:true,&quot;335559738&quot;:319,&quot;335559739&quot;:319}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">Ka\u017cde \u017c\u0105danie powinno by\u0107 analizowane nie tylko syntaktycznie, ale tak\u017ce semantycznie \u2013 czy jego tre\u015b\u0107 ma sens w danym kontek\u015bcie u\u017cytkownika. Je\u015bli zwyk\u0142y u\u017cytkownik pr\u00f3buje pobra\u0107 zas\u00f3b <\/span><span data-contrast=\"auto\">\/admin\/settings<\/span><span data-contrast=\"auto\">, aplikacja powinna natychmiast odrzuci\u0107 takie \u017c\u0105danie, niezale\u017cnie od jego sk\u0142adni.<\/span><span data-ccp-props=\"{&quot;335559738&quot;:240,&quot;335559739&quot;:240}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">Wdro\u017cenie powy\u017cszych zasad eliminuje znaczn\u0105 cz\u0119\u015b\u0107 przypadk\u00f3w podatno\u015bci IDOR ju\u017c na etapie kodowania. Jednak w praktyce nie istnieje kod wolny od b\u0142\u0119d\u00f3w \u2013 dlatego konieczne jest wsparcie ze strony zespo\u0142\u00f3w bezpiecze\u0144stwa.<\/span><span data-ccp-props=\"{&quot;335559738&quot;:240,&quot;335559739&quot;:240}\">\u00a0<\/span><\/p>\n<p><span data-ccp-props=\"{}\">\u00a0<\/span><\/p>\n<h3 aria-level=\"3\"><b><span data-contrast=\"none\">Cz\u0119\u015b\u0107 2. Wykrywanie \u2013 odpowiedzialno\u015b\u0107 zespo\u0142\u00f3w bezpiecze\u0144stwa (SecOps)<\/span><\/b><span data-ccp-props=\"{&quot;134245418&quot;:true,&quot;134245529&quot;:true,&quot;335559738&quot;:281,&quot;335559739&quot;:281}\">\u00a0<\/span><\/h3>\n<p><span data-contrast=\"auto\">Nawet przy najwy\u017cszych standardach kodowania b\u0142\u0119dy w autoryzacji mog\u0105 si\u0119 pojawi\u0107. Czasami s\u0105 efektem zmian w logice aplikacji, integracji z nowymi API, a czasem po prostu przeoczenia w testach. W\u0142a\u015bnie tu swoj\u0105 rol\u0119 odgrywa warstwa <\/span><b><span data-contrast=\"auto\">detekcji<\/span><\/b><span data-contrast=\"auto\">, oparta na analizie ruchu HTTP.<\/span><span data-ccp-props=\"{&quot;335559738&quot;:240,&quot;335559739&quot;:240}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">Zesp\u00f3\u0142 SecOps odpowiada za:<\/span><span data-ccp-props=\"{&quot;335559738&quot;:240,&quot;335559739&quot;:240}\">\u00a0<\/span><\/p>\n<ul>\n<li aria-setsize=\"-1\" data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"5\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" data-aria-posinset=\"1\" data-aria-level=\"1\"><span data-contrast=\"auto\">analiz\u0119 i korelacj\u0119 ruchu sieciowego w czasie rzeczywistym,<\/span><span data-ccp-props=\"{&quot;335559738&quot;:240,&quot;335559739&quot;:240}\">\u00a0<\/span><\/li>\n<\/ul>\n<ul>\n<li aria-setsize=\"-1\" data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"5\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" data-aria-posinset=\"2\" data-aria-level=\"1\"><span data-contrast=\"auto\">wykrywanie anomalii opisanych wcze\u015bniej (401\/403, sekwencyjne ID, mieszanie kontekst\u00f3w sesji),<\/span><span data-ccp-props=\"{&quot;335559738&quot;:240,&quot;335559739&quot;:240}\">\u00a0<\/span><\/li>\n<\/ul>\n<ul>\n<li aria-setsize=\"-1\" data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"5\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" data-aria-posinset=\"3\" data-aria-level=\"1\"><span data-contrast=\"auto\">tworzenie regu\u0142 detekcji opartych na danych historycznych,<\/span><span data-ccp-props=\"{&quot;335559738&quot;:240,&quot;335559739&quot;:240}\">\u00a0<\/span><\/li>\n<\/ul>\n<ul>\n<li aria-setsize=\"-1\" data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"5\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" data-aria-posinset=\"4\" data-aria-level=\"1\"><span data-contrast=\"auto\">wsp\u00f3\u0142prac\u0119 z DevOps przy analizie b\u0142\u0119d\u00f3w logiki aplikacyjnej.<\/span><span data-ccp-props=\"{&quot;335559738&quot;:240,&quot;335559739&quot;:240}\">\u00a0<\/span><\/li>\n<\/ul>\n<p><span data-contrast=\"auto\">Specjalistyczne systemy<\/span><span data-contrast=\"auto\">\u00a0pe\u0142ni\u0105 tu funkcj\u0119 ostatniej linii obrony \u2013 wychwytuj\u0105 moment, w kt\u00f3rym kto\u015b faktycznie pr\u00f3buje wykorzysta\u0107 luk\u0119, zanim dojdzie do wycieku danych. W praktyce oznacza to, \u017ce nawet je\u015bli deweloper pope\u0142ni\u0142 b\u0142\u0105d w autoryzacji, detektor anomalii wychwyci symptom ataku i powiadomi zesp\u00f3\u0142 zanim incydent eskaluje.<\/span><span data-ccp-props=\"{&quot;335559738&quot;:240,&quot;335559739&quot;:240}\">\u00a0<\/span><\/p>\n<p><span data-ccp-props=\"{}\">\u00a0<\/span><\/p>\n<h3 aria-level=\"3\"><b><span data-contrast=\"none\">Wsp\u00f3\u0142praca DevOps i SecOps \u2013 pe\u0142en cykl ochrony<\/span><\/b><span data-ccp-props=\"{&quot;134245418&quot;:true,&quot;134245529&quot;:true,&quot;335559738&quot;:281,&quot;335559739&quot;:281}\">\u00a0<\/span><\/h3>\n<p><span data-contrast=\"auto\">Najwi\u0119ksz\u0105 warto\u015bci\u0105 organizacji dojrza\u0142ych w zakresie cyberbezpiecze\u0144stwa jest <\/span><b><span data-contrast=\"auto\">synergia<\/span><\/b><span data-contrast=\"auto\"> mi\u0119dzy DevOps a SecOps. W tym modelu alert wykryty przez system monitoringu nie ko\u0144czy swojego \u017cycia w SOC \u2013 staje si\u0119 <\/span><b><span data-contrast=\"auto\">informacj\u0105 zwrotn\u0105<\/span><\/b><span data-contrast=\"auto\"> dla zespo\u0142u deweloperskiego, kt\u00f3ry mo\u017ce b\u0142yskawicznie zidentyfikowa\u0107 \u017ar\u00f3d\u0142o b\u0142\u0119du i wdro\u017cy\u0107 poprawk\u0119.<\/span><span data-ccp-props=\"{&quot;335559738&quot;:240,&quot;335559739&quot;:240}\">\u00a0<\/span><\/p>\n<p><b><span data-contrast=\"auto\">Model wsp\u00f3\u0142pracy:<\/span><\/b><span data-ccp-props=\"{&quot;335559738&quot;:240,&quot;335559739&quot;:240}\">\u00a0<\/span><\/p>\n<div style=\"overflow-x: auto; margin: 20px 0; font-family: 'DM Sans', sans-serif;\">\n<table style=\"width: 100%; border-collapse: collapse; border: 1px solid #ddd; font-size: 15px; font-family: 'DM Sans', sans-serif;\">\n<thead>\n<tr style=\"background-color: #f4f6fb; color: #222; text-align: left;\">\n<th style=\"padding: 12px; border: 1px solid #ddd;\">Etap<\/th>\n<th style=\"padding: 12px; border: 1px solid #ddd;\">Zesp\u00f3\u0142<\/th>\n<th style=\"padding: 12px; border: 1px solid #ddd;\">Dzia\u0142anie<\/th>\n<th style=\"padding: 12px; border: 1px solid #ddd;\">Efekt<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td style=\"padding: 12px; border: 1px solid #ddd; font-weight: bold; color: #1769ff;\">Wykrycie anomalii<\/td>\n<td style=\"padding: 12px; border: 1px solid #ddd;\">SecOps<\/td>\n<td style=\"padding: 12px; border: 1px solid #ddd;\">Analiza ruchu HTTP, identyfikacja wzorca IDOR<\/td>\n<td style=\"padding: 12px; border: 1px solid #ddd;\">Generacja alertu<\/td>\n<\/tr>\n<tr style=\"background-color: #fafbff;\">\n<td style=\"padding: 12px; border: 1px solid #ddd; font-weight: bold; color: #1769ff;\">Korelacja i kontekst<\/td>\n<td style=\"padding: 12px; border: 1px solid #ddd;\">SecOps + DevOps<\/td>\n<td style=\"padding: 12px; border: 1px solid #ddd;\">Potwierdzenie b\u0142\u0119du logicznego w kodzie<\/td>\n<td style=\"padding: 12px; border: 1px solid #ddd;\">Diagnoza przyczyny<\/td>\n<\/tr>\n<tr>\n<td style=\"padding: 12px; border: 1px solid #ddd; font-weight: bold; color: #1769ff;\">Poprawa kodu<\/td>\n<td style=\"padding: 12px; border: 1px solid #ddd;\">DevOps<\/td>\n<td style=\"padding: 12px; border: 1px solid #ddd;\">Aktualizacja logiki autoryzacji<\/td>\n<td style=\"padding: 12px; border: 1px solid #ddd;\">Eliminacja podatno\u015bci<\/td>\n<\/tr>\n<tr style=\"background-color: #fafbff;\">\n<td style=\"padding: 12px; border: 1px solid #ddd; font-weight: bold; color: #1769ff;\">Walidacja<\/td>\n<td style=\"padding: 12px; border: 1px solid #ddd;\">SecOps<\/td>\n<td style=\"padding: 12px; border: 1px solid #ddd;\">Retest po wdro\u017ceniu<\/td>\n<td style=\"padding: 12px; border: 1px solid #ddd;\">Weryfikacja skuteczno\u015bci poprawki<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p>&nbsp;<\/p>\n<p><span data-contrast=\"auto\">W ten spos\u00f3b monitoring nie tylko chroni \u015brodowisko operacyjne, ale tak\u017ce <\/span><b><span data-contrast=\"auto\">wzmacnia proces wytwarzania oprogramowania<\/span><\/b><span data-contrast=\"auto\">, tworz\u0105c zamkni\u0119t\u0105 p\u0119tl\u0119 uczenia si\u0119 i doskonalenia bezpiecze\u0144stwa.<\/span><span data-ccp-props=\"{&quot;335559738&quot;:240,&quot;335559739&quot;:240}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">Pe\u0142na ochrona przed atakiem IDOR wymaga dw\u00f3ch filar\u00f3w: <\/span><b><span data-contrast=\"auto\">\u015bwiadomego kodowania<\/span><\/b><span data-contrast=\"auto\"> po stronie DevOps i <\/span><b><span data-contrast=\"auto\">inteligentnego monitoringu<\/span><\/b><span data-contrast=\"auto\"> po stronie SecOps. DevOps zapobiega, SecOps wykrywa, a ich wsp\u00f3\u0142praca zamyka cykl bezpiecze\u0144stwa. Systemy analizuj\u0105ceruch HTTP w czasie rzeczywistym staj\u0105 si\u0119 kluczowym \u0142\u0105cznikiem mi\u0119dzy tymi \u015bwiatami \u2013 zapewniaj\u0105 widoczno\u015b\u0107, kt\u00f3rej nie wida\u0107 w kodzie, i wiedz\u0119, kt\u00f3rej nie wida\u0107 w logach.<\/span><\/p>\n<p>&nbsp;<\/p>\n<div class=\"_tableContainer_1rjym_1\">\n<h2 aria-level=\"2\"><span class=\"ez-toc-section\" id=\"Podsumowanie_i_kluczowe_wnioski\"><\/span><b><span data-contrast=\"none\">Podsumowanie i kluczowe wnioski<\/span><\/b><span data-ccp-props=\"{&quot;134245418&quot;:true,&quot;134245529&quot;:true,&quot;335559738&quot;:299,&quot;335559739&quot;:299}\">\u00a0<\/span><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p><span data-contrast=\"auto\">Podatno\u015b\u0107 IDOR pozostaje jedn\u0105 z najbardziej podst\u0119pnych luk w bezpiecze\u0144stwie aplikacji webowych. Jej prostota techniczna kontrastuje z powag\u0105 skutk\u00f3w \u2013 od naruszenia poufno\u015bci danych po pe\u0142n\u0105 eskalacj\u0119 uprawnie\u0144 w systemie. Najwi\u0119kszym problemem nie jest sam b\u0142\u0105d w kodzie, lecz fakt, \u017ce dla tradycyjnych narz\u0119dzi bezpiecze\u0144stwa atak IDOR wygl\u0105da jak ca\u0142kowicie normalny ruch.<\/span><span data-ccp-props=\"{&quot;335559738&quot;:240,&quot;335559739&quot;:240}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">Klucz do skutecznej ochrony le\u017cy w <\/span><b><span data-contrast=\"auto\">po\u0142\u0105czeniu trzech warstw<\/span><\/b><span data-contrast=\"auto\">:<\/span><span data-ccp-props=\"{&quot;335559738&quot;:240,&quot;335559739&quot;:240}\">\u00a0<\/span><\/p>\n<ol>\n<li><b><span data-contrast=\"auto\">Bezpiecznego projektowania i kodowania<\/span><\/b><span data-contrast=\"auto\"> \u2013 ka\u017cdy endpoint musi weryfikowa\u0107, czy u\u017cytkownik ma prawo do \u017c\u0105danego zasobu.<\/span><span data-ccp-props=\"{&quot;335559738&quot;:240,&quot;335559739&quot;:240}\">\u00a0<\/span><\/li>\n<li><b><span data-contrast=\"auto\">Monitoringu zachowa\u0144 i analizy ruchu HTTP<\/span><\/b><span data-contrast=\"auto\"> \u2013 systemy potrafi\u0105 zauwa\u017cy\u0107 anomalie, kt\u00f3re dla firewalli s\u0105 niewidoczne.<\/span><span data-ccp-props=\"{&quot;335559738&quot;:240,&quot;335559739&quot;:240}\">\u00a0<\/span><\/li>\n<li><b><span data-contrast=\"auto\">\u015acis\u0142ej wsp\u00f3\u0142pracy DevOps i SecOps<\/span><\/b><span data-contrast=\"auto\"> \u2013 b\u0142yskawiczna reakcja na alert i informacja zwrotna do zespo\u0142u deweloperskiego pozwalaj\u0105 usun\u0105\u0107 luk\u0119 zanim zostanie wykorzystana.<\/span><span data-ccp-props=\"{&quot;335559738&quot;:240,&quot;335559739&quot;:240}\">\u00a0<\/span><\/li>\n<\/ol>\n<p><span data-ccp-props=\"{}\">\u00a0<\/span><\/p>\n<p aria-level=\"3\"><b><span data-contrast=\"none\">Praktyczne wskaz\u00f3wki:<\/span><\/b><span data-ccp-props=\"{&quot;134245418&quot;:true,&quot;134245529&quot;:true,&quot;335559738&quot;:281,&quot;335559739&quot;:281}\">\u00a0<\/span><\/p>\n<ul>\n<li aria-setsize=\"-1\" data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"4\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" data-aria-posinset=\"1\" data-aria-level=\"1\"><b><span data-contrast=\"auto\">Nie ufaj danym z klienta.<\/span><\/b><span data-contrast=\"auto\"> Ka\u017cde \u017c\u0105danie, nawet z autoryzowanego konta, traktuj jako potencjalnie niebezpieczne.<\/span><span data-ccp-props=\"{&quot;335559738&quot;:240,&quot;335559739&quot;:240}\">\u00a0<\/span><\/li>\n<\/ul>\n<ul>\n<li aria-setsize=\"-1\" data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"4\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" data-aria-posinset=\"2\" data-aria-level=\"1\"><b><span data-contrast=\"auto\">Nie ujawniaj ID wprost.<\/span><\/b><span data-contrast=\"auto\"> Zast\u0105p sekwencyjne identyfikatory losowymi lub mapowanymi po stronie serwera.<\/span><span data-ccp-props=\"{&quot;335559738&quot;:240,&quot;335559739&quot;:240}\">\u00a0<\/span><\/li>\n<\/ul>\n<ul>\n<li aria-setsize=\"-1\" data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"4\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" data-aria-posinset=\"3\" data-aria-level=\"1\"><b><span data-contrast=\"auto\">Analizuj b\u0142\u0119dy autoryzacji.<\/span><\/b><span data-contrast=\"auto\"> Wzrost liczby kod\u00f3w 401\/403 w kr\u00f3tkim czasie to cz\u0119sto pierwszy sygna\u0142 ataku.<\/span><span data-ccp-props=\"{&quot;335559738&quot;:240,&quot;335559739&quot;:240}\">\u00a0<\/span><\/li>\n<\/ul>\n<ul>\n<li aria-setsize=\"-1\" data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"4\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" data-aria-posinset=\"4\" data-aria-level=\"1\"><b><span data-contrast=\"auto\">Buduj baseline i monitoruj odchylenia.<\/span><\/b><span data-contrast=\"auto\"> Zrozumienie, co jest \u201enormalne\u201d w Twojej aplikacji, to podstawa skutecznej detekcji.<\/span><span data-ccp-props=\"{&quot;335559738&quot;:240,&quot;335559739&quot;:240}\">\u00a0<\/span><\/li>\n<\/ul>\n<ul>\n<li aria-setsize=\"-1\" data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"4\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" data-aria-posinset=\"5\" data-aria-level=\"1\"><b><span data-contrast=\"auto\">Integruj dane z wielu \u017ar\u00f3de\u0142.<\/span><\/b><span data-contrast=\"auto\"> Logi HTTP, sesje u\u017cytkownik\u00f3w, tokeny API i kontekst aplikacyjny razem tworz\u0105 pe\u0142ny obraz bezpiecze\u0144stwa.<\/span><span data-ccp-props=\"{&quot;335559738&quot;:240,&quot;335559739&quot;:240}\">\u00a0<\/span><\/li>\n<\/ul>\n<p><span data-ccp-props=\"{}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">W dojrza\u0142ym \u015brodowisku bezpiecze\u0144stwo nie ko\u0144czy si\u0119 na zapobieganiu b\u0142\u0119dom \u2013 zaczyna si\u0119 od ich \u015bwiadomego monitorowania. Analiza ruchu HTTP staje si\u0119 nie tylko narz\u0119dziem diagnostycznym, ale <\/span><b><span data-contrast=\"auto\">strategicznym komponentem ochrony API<\/span><\/b><span data-contrast=\"auto\">, kt\u00f3ry pozwala widzie\u0107 wi\u0119cej ni\u017c sama aplikacja. To w\u0142a\u015bnie ten poziom widoczno\u015bci decyduje o tym, czy organizacja reaguje na incydenty, czy potrafi im zapobiega\u0107 w czasie rzeczywistym.<\/span><span data-ccp-props=\"{&quot;335559738&quot;:240,&quot;335559739&quot;:240}\">\u00a0<\/span><\/p>\n<div class=\"_tableContainer_1rjym_1\">\n<p data-start=\"6622\" data-end=\"6912\">\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Luka ta ujawnia si\u0119 wtedy, gdy system nie weryfikuje uprawnie\u0144 u\u017cytkownika do konkretnego zasobu po stronie serwera, a jedynie zak\u0142ada, \u017ce skoro \u017c\u0105danie pochodzi z zalogowanego konta, jest ono prawid\u0142owe. W efekcie atakuj\u0105cy mo\u017ce manipulowa\u0107 parametrami identyfikuj\u0105cymi obiekty \u2013 na przyk\u0142ad w adresie URL lub tre\u015bci \u017c\u0105dania HTTP \u2013 i uzyska\u0107 dost\u0119p do danych, kt\u00f3re [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":1397,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[99],"tags":[219,218,205,217],"product":[165],"topic":[167],"sycope_author":[251],"class_list":["post-2952","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blog","tag-analiza-ruchu-http","tag-bezpieczenstwo-api","tag-bezpieczenstwo-sieci","tag-podatnosc-idor","product-security-pl","topic-bezpieczenstwo-sieci","sycope_author-pawel-drzewiecki"],"acf":[],"_links":{"self":[{"href":"https:\/\/www.sycope.com\/pl\/wp-json\/wp\/v2\/posts\/2952","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.sycope.com\/pl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.sycope.com\/pl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.sycope.com\/pl\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.sycope.com\/pl\/wp-json\/wp\/v2\/comments?post=2952"}],"version-history":[{"count":3,"href":"https:\/\/www.sycope.com\/pl\/wp-json\/wp\/v2\/posts\/2952\/revisions"}],"predecessor-version":[{"id":3317,"href":"https:\/\/www.sycope.com\/pl\/wp-json\/wp\/v2\/posts\/2952\/revisions\/3317"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.sycope.com\/pl\/wp-json\/wp\/v2\/media\/1397"}],"wp:attachment":[{"href":"https:\/\/www.sycope.com\/pl\/wp-json\/wp\/v2\/media?parent=2952"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.sycope.com\/pl\/wp-json\/wp\/v2\/categories?post=2952"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.sycope.com\/pl\/wp-json\/wp\/v2\/tags?post=2952"},{"taxonomy":"product","embeddable":true,"href":"https:\/\/www.sycope.com\/pl\/wp-json\/wp\/v2\/product?post=2952"},{"taxonomy":"topic","embeddable":true,"href":"https:\/\/www.sycope.com\/pl\/wp-json\/wp\/v2\/topic?post=2952"},{"taxonomy":"sycope_author","embeddable":true,"href":"https:\/\/www.sycope.com\/pl\/wp-json\/wp\/v2\/sycope_author?post=2952"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}