316316 "localhost" : {
317317 attacker : "http://localhost:6088/" ,
318318 defender : "http://localhost:6080/" ,
319- caldera : "http://localhost:8888/"
319+ caldera : "http://localhost:8888/" ,
320+ wazuh : "http://localhost:5601/"
320321 } ,
321322 "127.0.0.1" : {
322323 attacker : "http://127.0.0.1:6088/" ,
323324 defender : "http://127.0.0.1:6080/" ,
324- caldera : "http://127.0.0.1:8888/"
325+ caldera : "http://127.0.0.1:8888/" ,
326+ wazuh : "http://127.0.0.1:5601/"
325327 } ,
326328 "192.168.95.45" : {
327329 attacker : "http://192.168.90.6:6080/" ,
328330 defender : "http://192.168.95.5:6080/" ,
329- caldera : "http://192.168.90.250:8888/"
331+ caldera : "http://192.168.90.250:8888/" ,
332+ wazuh : "http://192.168.90.20:5601/"
330333 }
331334 } ;
332335
367370 attacker : { current : null , okStreak : 0 , failStreak : 0 } ,
368371 defender : { current : null , okStreak : 0 , failStreak : 0 } ,
369372 caldera : { current : null , okStreak : 0 , failStreak : 0 } ,
373+ wazuh : { current : null , okStreak : 0 , failStreak : 0 } ,
370374 } ;
371375
372376 function setToolStatus ( toolName , ok , detailText ) {
441445 }
442446
443447 async function pollOnce ( ) {
444- const [ attOk , defOk , calOk ] = await Promise . all ( [
448+ const [ attOk , defOk , calOk , wazOk ] = await Promise . all ( [
445449 checkTool ( "attacker" ) ,
446450 checkTool ( "defender" ) ,
447451 checkTool ( "caldera" ) ,
452+ checkTool ( "wazuh" ) ,
448453 ] ) ;
449454
450455 applyStabilizedResult ( "attacker" , attOk ) ;
451456 applyStabilizedResult ( "defender" , defOk ) ;
452457 applyStabilizedResult ( "caldera" , calOk ) ;
458+ applyStabilizedResult ( "wazuh" , wazOk ) ;
453459
454460 const next = anyUnstable ( ) ? POLL_MS_UNSTABLE : POLL_MS_STABLE ;
455461 setTimeout ( pollOnce , next ) ;
500506 // Tool indicators start calm
501507 setToolStatus ( "attacker" , null , "Checking…" ) ;
502508 setToolStatus ( "defender" , null , "Checking…" ) ;
509+ setToolStatus ( "wazuh" , null , "Checking…" ) ;
503510 pollOnce ( ) ;
504511
505512 refreshSimulationStatus ( ) ;
@@ -578,6 +585,19 @@ <h1>GRFICSv3</h1>
578585 </ div >
579586 </ button >
580587
588+ < button class ="btn " onclick ="openTool('wazuh') ">
589+ < div class ="icon "> 🛡️</ div >
590+ < div class ="meta ">
591+ < div class ="label "> Wazuh SIEM</ div >
592+ < div class ="hint ">
593+ < span class ="tool-status ">
594+ < span id ="wazuhDot " class ="tool-dot "> </ span >
595+ < span id ="wazuhText " class ="tool-status-text "> Checking…</ span >
596+ </ span >
597+ </ div >
598+ </ div >
599+ </ button >
600+
581601 < div class ="section-title "> Simulation</ div >
582602
583603 < button class ="btn " onclick ="unityInstance && unityInstance.SetFullscreen(1) ">
@@ -600,6 +620,7 @@ <h1>GRFICSv3</h1>
600620 < div class ="actions ">
601621 < button class ="small-btn " onclick ="openTool('attacker') "> Attacker</ button >
602622 < button class ="small-btn " onclick ="openTool('defender') "> Defender</ button >
623+ < button class ="small-btn " onclick ="openTool('wazuh') "> Wazuh</ button >
603624 < button class ="small-btn " onclick ="unityInstance && unityInstance.SetFullscreen(1) "> Fullscreen</ button >
604625 </ div >
605626 </ div >
0 commit comments