Catalyst / admin/AirportCyberSimulator 14.8 GB / 57.8 GB 40.0 GB free
Help Sign in

admin / AirportCyberSimulator

public

Airport Cyber Attack Simulation Application

Code Issues Pull requests Pipelines Packages Security Insights Wiki Settings
AirportCyberSimulator / airport-cyber-sim-v2 / backend / static / index.html 11064 B · main
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8" />
  <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no" />
  <title>Airport Cyber Resilience Simulator · V2</title>
  <!-- All libraries vendored locally: the container needs no runtime internet -->
  <script src="vendor/react.production.min.js"></script>
  <script src="vendor/react-dom.production.min.js"></script>
  <script src="vendor/htm.js"></script>
  <script src="vendor/gsap.min.js"></script>
  <link rel="preconnect" href="https://fonts.googleapis.com" />
  <link href="https://fonts.googleapis.com/css2?family=Orbitron:wght@500;700;900&family=Rajdhani:wght@400;500;600;700&display=swap" rel="stylesheet" />
  <link rel="stylesheet" href="styles.css" />
</head>
<body>
  <div id="root"></div>

  <!-- ================= SVG ICON SPRITE ================= -->
  <svg width="0" height="0" style="position:absolute" aria-hidden="true"><defs>
    <g id="icon-shield"><path d="M24 3l16 6v11c0 10-7 18-16 21-9-3-16-11-16-21V9z" fill="none" stroke="currentColor" stroke-width="2.5"/><path d="M16 24l6 6 10-12" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"/></g>
    <g id="icon-reset"><path d="M4 12a8 8 0 1 1 2.3 5.6M4 12V6M4 12h6" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/></g>
    <g id="icon-speaker-on"><path d="M4 9v6h4l6 5V4L8 9zM18 8a6 6 0 010 8M21 5a10 10 0 010 14" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/></g>
    <g id="icon-speaker-off"><path d="M4 9v6h4l6 5V4L8 9zM17 9l6 6m0-6l-6 6" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/></g>
    <g id="icon-phone"><path d="M6 4h5l2 6-3 2a12 12 0 006 6l2-3 6 2v5a2 2 0 01-2 2A18 18 0 014 6a2 2 0 012-2z" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linejoin="round"/></g>
    <g id="icon-email"><rect x="4" y="7" width="28" height="20" rx="3" transform="scale(0.75) translate(4,3)" fill="none" stroke="currentColor" stroke-width="2.6"/><path d="M7 9l10 8 10-8" fill="none" stroke="currentColor" stroke-width="2.2"/></g>

    <!-- 26 node icons (48x48) -->
    <g id="node-atc"><path d="M24 6v20M14 26h20l-3 16H17z" fill="none" stroke="currentColor" stroke-width="2.4" stroke-linejoin="round"/><circle cx="24" cy="7" r="3" fill="currentColor"/></g>
    <g id="node-runway"><path d="M20 8h8l6 34H14zM24 8v34M18 20h12M17 30h14" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linejoin="round"/></g>
    <g id="node-comms"><path d="M24 14a10 10 0 00-10 10M24 8a16 16 0 00-16 16M24 27v13" fill="none" stroke="currentColor" stroke-width="2.4" stroke-linecap="round"/><circle cx="24" cy="24" r="3" fill="currentColor"/></g>
    <g id="node-power"><path d="M26 6L12 27h10l-2 15 16-22H26z" fill="none" stroke="currentColor" stroke-width="2.4" stroke-linejoin="round"/></g>
    <g id="node-ev"><rect x="12" y="10" width="16" height="30" rx="2" fill="none" stroke="currentColor" stroke-width="2.2"/><path d="M20 16l-3 7h5l-3 7M28 18h4v8a3 3 0 01-6 0" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/></g>
    <g id="node-gps"><path d="M24 6a10 10 0 00-10 10c0 8 10 20 10 20s10-12 10-20A10 10 0 0024 6z" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linejoin="round"/><circle cx="24" cy="16" r="3.5" fill="currentColor"/></g>
    <g id="node-security"><path d="M24 6l14 5v9c0 9-6 15-14 18-8-3-14-9-14-18v-9z" fill="none" stroke="currentColor" stroke-width="2.4"/><circle cx="24" cy="21" r="4" fill="none" stroke="currentColor" stroke-width="2.2"/><path d="M24 25v6" stroke="currentColor" stroke-width="2.2"/></g>
    <g id="node-identity"><circle cx="24" cy="18" r="7" fill="none" stroke="currentColor" stroke-width="2.4"/><path d="M12 40c0-7 5-11 12-11s12 4 12 11" fill="none" stroke="currentColor" stroke-width="2.4"/></g>
    <g id="node-boarding"><rect x="10" y="14" width="28" height="20" rx="3" fill="none" stroke="currentColor" stroke-width="2.4"/><path d="M10 22h28M18 28h6" stroke="currentColor" stroke-width="2.2"/></g>
    <g id="node-door"><rect x="14" y="8" width="20" height="34" rx="2" fill="none" stroke="currentColor" stroke-width="2.4"/><circle cx="29" cy="25" r="1.8" fill="currentColor"/></g>
    <g id="node-cctv"><path d="M8 16l24-6 2 7-24 6zM12 22l3 8M28 14l3 5 5-2" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linejoin="round"/><circle cx="14" cy="34" r="4" fill="none" stroke="currentColor" stroke-width="2.2"/></g>
    <g id="node-loading"><path d="M8 30h20V16H8zM28 22h6l6 6v2H28z" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linejoin="round"/><circle cx="15" cy="34" r="3" fill="none" stroke="currentColor" stroke-width="2.2"/><circle cx="33" cy="34" r="3" fill="none" stroke="currentColor" stroke-width="2.2"/></g>
    <g id="node-services"><circle cx="24" cy="15" r="6" fill="none" stroke="currentColor" stroke-width="2.4"/><path d="M12 40c0-7 5-12 12-12s12 5 12 12M32 20l4-2M16 20l-4-2" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round"/></g>
    <g id="node-loyalty"><path d="M24 8l4 9 10 1-7 7 2 10-9-5-9 5 2-10-7-7 10-1z" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linejoin="round"/></g>
    <g id="node-border"><circle cx="24" cy="24" r="16" fill="none" stroke="currentColor" stroke-width="2.2"/><path d="M8 24h32M24 8c5 6 5 26 0 32M24 8c-5 6-5 26 0 32" fill="none" stroke="currentColor" stroke-width="1.8"/></g>
    <g id="node-checkin"><rect x="12" y="10" width="24" height="30" rx="2" fill="none" stroke="currentColor" stroke-width="2.4"/><path d="M18 18h12M18 24h12M18 30h8" stroke="currentColor" stroke-width="2.2" stroke-linecap="round"/></g>
    <g id="node-hvac"><rect x="8" y="12" width="32" height="24" rx="3" fill="none" stroke="currentColor" stroke-width="2.4"/><path d="M14 20h6M28 20h6M14 28h20" stroke="currentColor" stroke-width="2.2" stroke-linecap="round"/></g>
    <g id="node-ticketing"><ellipse cx="24" cy="14" rx="14" ry="5" fill="none" stroke="currentColor" stroke-width="2.2"/><path d="M10 14v20c0 3 6 5 14 5s14-2 14-5V14M10 24c0 3 6 5 14 5s14-2 14-5" fill="none" stroke="currentColor" stroke-width="2.2"/></g>
    <g id="node-retail"><path d="M10 16h28l-3 22H13zM16 16a8 8 0 0116 0" fill="none" stroke="currentColor" stroke-width="2.4" stroke-linejoin="round"/></g>
    <g id="node-baggage"><rect x="14" y="16" width="20" height="24" rx="3" fill="none" stroke="currentColor" stroke-width="2.4"/><path d="M19 16v-4a3 3 0 013-3h4a3 3 0 013 3v4M22 22v12M26 22v12" stroke="currentColor" stroke-width="2.2" stroke-linecap="round"/></g>
    <g id="node-logistics"><path d="M6 30h20V16H6zM26 22h8l6 6v2H26z" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linejoin="round"/><circle cx="14" cy="34" r="3" fill="none" stroke="currentColor" stroke-width="2.2"/><circle cx="32" cy="34" r="3" fill="none" stroke="currentColor" stroke-width="2.2"/></g>
    <g id="node-terminal"><rect x="12" y="8" width="24" height="32" rx="2" fill="none" stroke="currentColor" stroke-width="2.4"/><circle cx="30" cy="24" r="1.8" fill="currentColor"/><path d="M17 14h6" stroke="currentColor" stroke-width="2.2" stroke-linecap="round"/></g>
    <g id="node-wifi"><path d="M8 20a24 24 0 0132 0M14 27a15 15 0 0120 0M20 34a6 6 0 018 0" fill="none" stroke="currentColor" stroke-width="2.4" stroke-linecap="round"/><circle cx="24" cy="39" r="2.2" fill="currentColor"/></g>
    <g id="node-display"><rect x="7" y="10" width="34" height="22" rx="2" fill="none" stroke="currentColor" stroke-width="2.4"/><path d="M14 18h10M14 24h20M20 32v6M28 38h-8" stroke="currentColor" stroke-width="2.2" stroke-linecap="round"/></g>
    <g id="node-speaker"><path d="M10 19v10h6l9 7V12l-9 7zM30 18a8 8 0 010 12" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linejoin="round" stroke-linecap="round"/></g>
    <g id="node-mobile"><rect x="16" y="6" width="16" height="36" rx="3" fill="none" stroke="currentColor" stroke-width="2.4"/><path d="M21 10h6" stroke="currentColor" stroke-width="2" stroke-linecap="round"/><circle cx="24" cy="36" r="1.6" fill="currentColor"/></g>

    <!-- 9 ingress method icons -->
    <g id="ing-usb_drive"><rect x="18" y="18" width="12" height="24" rx="2" fill="none" stroke="currentColor" stroke-width="2.4"/><path d="M20 18v-6h8v6M24 6v6" stroke="currentColor" stroke-width="2.4"/><path d="M22 26v8M26 26v8" stroke="currentColor" stroke-width="2"/></g>
    <g id="ing-unlocked_padlock"><rect x="12" y="22" width="24" height="18" rx="3" fill="none" stroke="currentColor" stroke-width="2.4"/><path d="M16 22v-4a8 8 0 0115-4" fill="none" stroke="currentColor" stroke-width="2.4" stroke-linecap="round"/><circle cx="24" cy="31" r="2.5" fill="currentColor"/></g>
    <g id="ing-phishing_email"><rect x="8" y="12" width="32" height="24" rx="3" fill="none" stroke="currentColor" stroke-width="2.4"/><path d="M8 14l16 12 16-12" fill="none" stroke="currentColor" stroke-width="2.4"/><path d="M30 30l4 4m0-4l-4 4" stroke="currentColor" stroke-width="2.4" stroke-linecap="round"/></g>
    <g id="ing-rogue_smartphone"><rect x="16" y="6" width="16" height="36" rx="3" fill="none" stroke="currentColor" stroke-width="2.4"/><path d="M21 10h6" stroke="currentColor" stroke-width="2" stroke-linecap="round"/><path d="M30 16l6-6m-6 0l6 6" stroke="currentColor" stroke-width="2" stroke-linecap="round"/></g>
    <g id="ing-vpn_breach"><path d="M24 6l14 5v9c0 9-6 15-14 18-8-3-14-9-14-18v-9z" fill="none" stroke="currentColor" stroke-width="2.4"/><path d="M17 18l14 12M31 18L17 30" stroke="currentColor" stroke-width="2.2" stroke-linecap="round"/></g>
    <g id="ing-password_crack"><rect x="12" y="22" width="24" height="18" rx="3" fill="none" stroke="currentColor" stroke-width="2.4"/><path d="M17 22v-5a7 7 0 0114 0v5" fill="none" stroke="currentColor" stroke-width="2.4"/><path d="M24 28v6" stroke="currentColor" stroke-width="2.4" stroke-linecap="round"/><path d="M8 40l6-4" stroke="currentColor" stroke-width="2" stroke-linecap="round"/></g>
    <g id="ing-rogue_router"><rect x="8" y="24" width="32" height="12" rx="3" fill="none" stroke="currentColor" stroke-width="2.4"/><circle cx="14" cy="30" r="1.6" fill="currentColor"/><path d="M24 24v-6M24 18a6 6 0 00-6-6M24 18a6 6 0 016-6M30 30h4" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round"/></g>
    <g id="ing-cloud_leak"><path d="M14 26a7 7 0 011-14 9 9 0 0117 2 6 6 0 01-1 12H15" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linejoin="round"/><path d="M18 30v6M24 32v7M30 30v6" stroke="currentColor" stroke-width="2.2" stroke-linecap="round"/></g>
    <g id="ing-malware_bug"><circle cx="24" cy="24" r="9" fill="none" stroke="currentColor" stroke-width="2.4"/><path d="M24 15v-5M14 18l-4-3M34 18l4-3M13 24H7M35 24h6M15 32l-4 4M33 32l4 4M24 33v6" stroke="currentColor" stroke-width="2" stroke-linecap="round"/></g>
  </defs></svg>

  <script src="app.js"></script>
</body>
</html>