44from aikido_zen .api_discovery .update_route_info import update_route_info_from_context
55from aikido_zen .helpers .is_useful_route import is_useful_route
66from aikido_zen .helpers .logging import logger
7+ from aikido_zen .helpers .create_attack_wave_event import create_attack_wave_event
78from aikido_zen .thread .thread_cache import get_cache
89from .ip_allowed_to_access_route import ip_allowed_to_access_route
910import aikido_zen .background_process .comms as c
1011from ...background_process .commands import PutEventCommand
1112from ...background_process .commands .check_firewall_lists import CheckFirewallListsRes
1213from ...helpers .ipc .send_payload import send_payload
14+ from ...helpers .serialize_to_json import serialize_to_json
1315from ...vulnerabilities .attack_wave_detection .is_web_scanner import is_web_scanner
1416
1517
@@ -66,7 +68,6 @@ def pre_response():
6668 obj = {
6769 "ip" : context .remote_address ,
6870 "user-agent" : context .get_user_agent (),
69- "is_attack_wave_request" : bool (is_attack_wave_request ),
7071 },
7172 receive = True ,
7273 timeout_in_sec = (10 / 1000 ),
@@ -90,11 +91,15 @@ def pre_response():
9091
9192 # We only check for attack waves after IP/Bot blocking, the reason being that if you already block the scanner
9293 # There is no attack wave happening.
93- if res .is_attack_wave :
94- attack_wave_event = {}
95- send_payload (comms , PutEventCommand .generate (attack_wave_event ))
94+ attack_wave = {}
95+ if attack_wave :
9696 cache .stats .on_detected_attack_wave (blocked = res .blocked )
9797
98+ event = create_attack_wave_event (context , attack_wave )
99+ logger .debug ("Attack wave: %s" , serialize_to_json (event )[:5000 ])
100+ if comms and event :
101+ send_payload (comms , PutEventCommand .generate (event ))
102+
98103 return None
99104
100105
0 commit comments