Documentation
¶
Overview ¶
Package models provides OT network model definitions.
Package models provides OT network model definitions.
Package models provides OT network model definitions.
Package models provides node and edge definitions for OT network models. These definitions are used by the builder to construct graph instances.
Package models provides OT network model definitions.
Index ¶
Constants ¶
const ( NodeTypeTechnical = "technical" NodeTypeHuman = "human" NodeTypeProcess = "process" NodeTypeExternal = "external" )
Node type constants used throughout the codebase.
const ( EdgeTypeTechnical = "TECHNICAL" EdgeTypeHumanAccess = "HUMAN_ACCESS" EdgeTypeProcess = "PROCESS" )
Edge type constants used for layer analysis.
Variables ¶
var ChemicalFacilityEdgePairs = [][2]string{
{"SIS_Controller", "SIS_Logic_Solver"},
{"SIS_Logic_Solver", "ESD_Panel"},
{"SIS_Controller", "DCS_Server"},
{"DCS_Controller1", "DCS_Server"},
{"DCS_Controller2", "DCS_Server"},
{"DCS_Server", "Op_Console1"},
{"DCS_Server", "Op_Console2"},
{"DCS_Server", "OT_Firewall"},
{"OT_Firewall", "Historian"},
{"OT_Firewall", "MES_Server"},
{"OT_Firewall", "Eng_Station"},
{"OT_Firewall", "DMZ_Firewall"},
{"DMZ_Firewall", "Patch_Relay"},
{"DMZ_Firewall", "Remote_Access"},
{"DMZ_Firewall", "Corp_Firewall"},
{"Corp_Firewall", "Corp_Network"},
{"Corp_Network", "ERP"},
{"Corp_Network", "Internet_GW"},
{"DCS_Engineer", "Eng_Station"},
{"DCS_Engineer", "DCS_Server"},
{"DCS_Engineer", "DCS_Controller1"},
{"DCS_Engineer", "DCS_Controller2"},
{"Process_Operator", "Op_Console1"},
{"Process_Operator", "Op_Console2"},
{"Safety_Engineer", "SIS_Controller"},
{"Safety_Engineer", "SIS_Logic_Solver"},
{"Safety_Engineer", "DCS_Server"},
{"IT_OT_Coord", "OT_Firewall"},
{"IT_OT_Coord", "DMZ_Firewall"},
{"IT_OT_Coord", "Corp_Firewall"},
{"IT_OT_Coord", "Remote_Access"},
{"IT_OT_Coord", "Patch_Relay"},
{"IT_OT_Coord", "DCS_Engineer"},
{"IT_OT_Coord", "Site_IT"},
{"Site_IT", "Corp_Network"},
{"Site_IT", "Corp_Firewall"},
{"Site_IT", "DMZ_Firewall"},
}
ChemicalFacilityEdgePairs defines edges as simple [from, to] pairs. Edge types are auto-detected based on node types.
var ChemicalFacilityNodes = []NodeDef{ {"SIS_Controller", []string{"Technical", "SIS", "SafetyCritical"}, "Safety", NodeTypeTechnical, ""}, {"SIS_Logic_Solver", []string{"Technical", "SIS"}, "Safety", NodeTypeTechnical, ""}, {"ESD_Panel", []string{"Technical", "SIS"}, "Safety", NodeTypeTechnical, ""}, {"DCS_Controller1", []string{"Technical", "DCS"}, "DCS", NodeTypeTechnical, ""}, {"DCS_Controller2", []string{"Technical", "DCS"}, "DCS", NodeTypeTechnical, ""}, {"DCS_Server", []string{"Technical", "DCS", "Server"}, "DCS", NodeTypeTechnical, ""}, {"Op_Console1", []string{"Technical", "Console"}, "DCS", NodeTypeTechnical, ""}, {"Op_Console2", []string{"Technical", "Console"}, "DCS", NodeTypeTechnical, ""}, {"OT_Firewall", []string{"Technical", "Firewall"}, "Site", NodeTypeTechnical, ""}, {"Historian", []string{"Technical", "Database"}, "Site", NodeTypeTechnical, ""}, {"MES_Server", []string{"Technical", "Server"}, "Site", NodeTypeTechnical, ""}, {"Eng_Station", []string{"Technical", "Workstation"}, "Site", NodeTypeTechnical, ""}, {"DMZ_Firewall", []string{"Technical", "Firewall"}, "DMZ", NodeTypeTechnical, ""}, {"Patch_Relay", []string{"Technical", "Server"}, "DMZ", NodeTypeTechnical, ""}, {"Remote_Access", []string{"Technical", "Gateway"}, "DMZ", NodeTypeTechnical, ""}, {"Corp_Firewall", []string{"Technical", "Firewall"}, "Corporate", NodeTypeTechnical, ""}, {"Corp_Network", []string{"Technical", "Network"}, "Corporate", NodeTypeTechnical, ""}, {"ERP", []string{"Technical", "Server"}, "Corporate", NodeTypeTechnical, ""}, {"Internet_GW", []string{"Technical", "Gateway"}, "Corporate", NodeTypeTechnical, ""}, {"DCS_Engineer", []string{"Human", "Engineer"}, "Human", NodeTypeHuman, ""}, {"Process_Operator", []string{"Human", "Operator"}, "Human", NodeTypeHuman, ""}, {"Safety_Engineer", []string{"Human", "Engineer", "SafetyCertified"}, "Human", NodeTypeHuman, ""}, {"IT_OT_Coord", []string{"Human", "Coordinator"}, "Human", NodeTypeHuman, ""}, {"Site_IT", []string{"Human", "Admin"}, "Human", NodeTypeHuman, ""}, }
ChemicalFacilityNodes defines all 24 nodes for the Chemical Facility model. Demonstrates IT/OT bridge concentration through the IT_OT_Coord role.
var StevesUtilityEdges = []EdgeDef{ {"PLC_Turbine1", "HMI_Control1", EdgeTypeTechnical}, {"PLC_Turbine2", "HMI_Control2", EdgeTypeTechnical}, {"PLC_Substation", "HMI_Control1", EdgeTypeTechnical}, {"RTU_Remote1", "SCADA_Server", EdgeTypeTechnical}, {"RTU_Remote2", "SCADA_Server", EdgeTypeTechnical}, {"Safety_PLC", "HMI_Control1", EdgeTypeTechnical}, {"Safety_PLC", "HMI_Control2", EdgeTypeTechnical}, {"HMI_Control1", "SCADA_Server", EdgeTypeTechnical}, {"HMI_Control2", "SCADA_Server", EdgeTypeTechnical}, {"SCADA_Server", "Historian_OT", EdgeTypeTechnical}, {"SCADA_Server", "Eng_Workstation", EdgeTypeTechnical}, {"SCADA_Server", "OT_Switch_Core", EdgeTypeTechnical}, {"Historian_OT", "OT_Switch_Core", EdgeTypeTechnical}, {"Eng_Workstation", "OT_Switch_Core", EdgeTypeTechnical}, {"OT_Switch_Core", "Patch_Server", EdgeTypeTechnical}, {"OT_Switch_Core", "AD_Server_OT", EdgeTypeTechnical}, {"OT_Switch_Core", "Firewall_ITOT", EdgeTypeTechnical}, {"Firewall_ITOT", "Jump_Server", EdgeTypeTechnical}, {"Firewall_ITOT", "Data_Diode", EdgeTypeTechnical}, {"Data_Diode", "Historian_OT", EdgeTypeTechnical}, {"Firewall_ITOT", "IT_Switch_Core", EdgeTypeTechnical}, {"Jump_Server", "IT_Switch_Core", EdgeTypeTechnical}, {"IT_Switch_Core", "Email_Server", EdgeTypeTechnical}, {"IT_Switch_Core", "ERP_System", EdgeTypeTechnical}, {"IT_Switch_Core", "AD_Server_IT", EdgeTypeTechnical}, {"IT_Switch_Core", "VPN_Gateway", EdgeTypeTechnical}, {"Steve", "PLC_Turbine1", EdgeTypeHumanAccess}, {"Steve", "PLC_Turbine2", EdgeTypeHumanAccess}, {"Steve", "PLC_Substation", EdgeTypeHumanAccess}, {"Steve", "HMI_Control1", EdgeTypeHumanAccess}, {"Steve", "HMI_Control2", EdgeTypeHumanAccess}, {"Steve", "SCADA_Server", EdgeTypeHumanAccess}, {"Steve", "Eng_Workstation", EdgeTypeHumanAccess}, {"Steve", "Historian_OT", EdgeTypeHumanAccess}, {"Steve", "OT_Switch_Core", EdgeTypeHumanAccess}, {"Steve", "Patch_Server", EdgeTypeHumanAccess}, {"Steve", "Jump_Server", EdgeTypeHumanAccess}, {"Steve", "Firewall_ITOT", EdgeTypeHumanAccess}, {"Steve", "VPN_Gateway", EdgeTypeHumanAccess}, {"Steve", "AD_Server_OT", EdgeTypeHumanAccess}, {"Steve", "Vendor_Rep", EdgeTypeHumanAccess}, {"Steve", "OT_Manager", EdgeTypeHumanAccess}, {"Steve", "Control_Op1", EdgeTypeHumanAccess}, {"Steve", "Control_Op2", EdgeTypeHumanAccess}, {"Steve", "IT_Admin", EdgeTypeHumanAccess}, {"Control_Op1", "HMI_Control1", EdgeTypeHumanAccess}, {"Control_Op1", "HMI_Control2", EdgeTypeHumanAccess}, {"Control_Op2", "HMI_Control1", EdgeTypeHumanAccess}, {"Control_Op2", "HMI_Control2", EdgeTypeHumanAccess}, {"OT_Manager", "SCADA_Server", EdgeTypeHumanAccess}, {"OT_Manager", "Plant_Manager", EdgeTypeHumanAccess}, {"IT_Admin", "IT_Switch_Core", EdgeTypeHumanAccess}, {"IT_Admin", "Email_Server", EdgeTypeHumanAccess}, {"IT_Admin", "ERP_System", EdgeTypeHumanAccess}, {"IT_Admin", "AD_Server_IT", EdgeTypeHumanAccess}, {"IT_Admin", "VPN_Gateway", EdgeTypeHumanAccess}, {"IT_Admin", "Firewall_ITOT", EdgeTypeHumanAccess}, {"Plant_Manager", "ERP_System", EdgeTypeHumanAccess}, {"Plant_Manager", "Email_Server", EdgeTypeHumanAccess}, {"Vendor_Rep", "VPN_Gateway", EdgeTypeHumanAccess}, {"Vendor_Rep", "Jump_Server", EdgeTypeHumanAccess}, {"Steve", "Change_Mgmt_Process", EdgeTypeProcess}, {"Steve", "Incident_Response", EdgeTypeProcess}, {"Steve", "Vendor_Access_Process", EdgeTypeProcess}, {"Steve", "Patch_Approval", EdgeTypeProcess}, {"Control_Op1", "Incident_Response", EdgeTypeProcess}, {"Control_Op2", "Incident_Response", EdgeTypeProcess}, {"OT_Manager", "Change_Mgmt_Process", EdgeTypeProcess}, {"OT_Manager", "Patch_Approval", EdgeTypeProcess}, {"Vendor_Rep", "Vendor_Access_Process", EdgeTypeProcess}, }
StevesUtilityEdges defines all edges with their types for layer analysis.
var StevesUtilityNodes = []NodeDef{ {"PLC_Turbine1", []string{"Technical", "PLC"}, "L0_Process", NodeTypeTechnical, ""}, {"PLC_Turbine2", []string{"Technical", "PLC"}, "L0_Process", NodeTypeTechnical, ""}, {"PLC_Substation", []string{"Technical", "PLC"}, "L0_Process", NodeTypeTechnical, ""}, {"RTU_Remote1", []string{"Technical", "RTU"}, "L0_Process", NodeTypeTechnical, ""}, {"RTU_Remote2", []string{"Technical", "RTU"}, "L0_Process", NodeTypeTechnical, ""}, {"HMI_Control1", []string{"Technical", "HMI"}, "L1_Control", NodeTypeTechnical, ""}, {"HMI_Control2", []string{"Technical", "HMI"}, "L1_Control", NodeTypeTechnical, ""}, {"Safety_PLC", []string{"Technical", "PLC", "SafetyCritical"}, "L1_Control", NodeTypeTechnical, ""}, {"SCADA_Server", []string{"Technical", "SCADA"}, "L2_Supervisory", NodeTypeTechnical, ""}, {"Historian_OT", []string{"Technical", "Database"}, "L2_Supervisory", NodeTypeTechnical, ""}, {"Eng_Workstation", []string{"Technical", "Workstation"}, "L2_Supervisory", NodeTypeTechnical, ""}, {"OT_Switch_Core", []string{"Technical", "NetworkSwitch"}, "L3_SiteOps", NodeTypeTechnical, ""}, {"Patch_Server", []string{"Technical", "Server"}, "L3_SiteOps", NodeTypeTechnical, ""}, {"AD_Server_OT", []string{"Technical", "Server"}, "L3_SiteOps", NodeTypeTechnical, ""}, {"Firewall_ITOT", []string{"Technical", "Firewall"}, "L3.5_DMZ", NodeTypeTechnical, ""}, {"Jump_Server", []string{"Technical", "Server"}, "L3.5_DMZ", NodeTypeTechnical, ""}, {"Data_Diode", []string{"Technical", "SecurityDevice"}, "L3.5_DMZ", NodeTypeTechnical, ""}, {"IT_Switch_Core", []string{"Technical", "NetworkSwitch"}, "L4_IT", NodeTypeTechnical, ""}, {"Email_Server", []string{"Technical", "Server"}, "L4_IT", NodeTypeTechnical, ""}, {"ERP_System", []string{"Technical", "Server"}, "L4_IT", NodeTypeTechnical, ""}, {"AD_Server_IT", []string{"Technical", "Server"}, "L4_IT", NodeTypeTechnical, ""}, {"VPN_Gateway", []string{"Technical", "Gateway"}, "L4_IT", NodeTypeTechnical, ""}, {"Steve", []string{"Human", "Operator"}, "Human", NodeTypeHuman, ""}, {"OT_Manager", []string{"Human", "Manager"}, "Human", NodeTypeHuman, ""}, {"IT_Admin", []string{"Human", "Admin"}, "Human", NodeTypeHuman, ""}, {"Control_Op1", []string{"Human", "Operator"}, "Human", NodeTypeHuman, ""}, {"Control_Op2", []string{"Human", "Operator"}, "Human", NodeTypeHuman, ""}, {"Plant_Manager", []string{"Human", "Manager"}, "Human", NodeTypeHuman, ""}, {"Vendor_Rep", []string{"Human", "Vendor"}, "Human", NodeTypeHuman, ""}, {"Change_Mgmt_Process", []string{"Process", "ChangeManagement"}, "Process", NodeTypeProcess, ""}, {"Incident_Response", []string{"Process", "IncidentResponse"}, "Process", NodeTypeProcess, ""}, {"Vendor_Access_Process", []string{"Process", "VendorManagement"}, "Process", NodeTypeProcess, ""}, {"Patch_Approval", []string{"Process", "PatchManagement"}, "Process", NodeTypeProcess, ""}, }
StevesUtilityNodes defines all 33 nodes for Steve's Utility model. Demonstrates how one helpful senior OT technician accumulates cross-domain access, creating an invisible single point of failure.
var TelecomEdgeGroups = []EdgeGroup{ {"BACKBONE", [][2]string{ {"Core_Router_SYD", "DWDM_SYD_MEL"}, {"Core_Router_SYD", "DWDM_SYD_BNE"}, {"Core_Router_SYD", "Core_Router_MEL"}, {"Core_Router_SYD", "Core_Router_BNE"}, {"Core_Router_MEL", "DWDM_SYD_MEL"}, {"Core_Router_MEL", "DWDM_MEL_ADL"}, {"Core_Router_BNE", "DWDM_SYD_BNE"}, {"Core_Router_PER", "DWDM_ADL_PER"}, {"Core_Router_ADL", "DWDM_MEL_ADL"}, {"Core_Router_ADL", "DWDM_ADL_PER"}, }}, {"MOBILE_CORE", [][2]string{ {"Core_Router_SYD", "PGW_Primary"}, {"Core_Router_SYD", "MME_Primary"}, {"Core_Router_MEL", "PGW_Secondary"}, {"Core_Router_MEL", "MME_Secondary"}, {"MME_Primary", "SGW_Primary"}, {"MME_Primary", "HSS_Primary"}, {"MME_Secondary", "SGW_Secondary"}, {"MME_Secondary", "HSS_Primary"}, {"SGW_Primary", "PGW_Primary"}, {"SGW_Primary", "IMS_Core"}, {"SGW_Secondary", "PGW_Secondary"}, {"IMS_Core", "SIP_Trunk_Emergency"}, }}, {"ACCESS", [][2]string{ {"Core_Router_SYD", "Exchange_CBD"}, {"Core_Router_SYD", "Exchange_North"}, {"Core_Router_SYD", "Exchange_South"}, {"Core_Router_SYD", "Exchange_West"}, {"Core_Router_SYD", "Exchange_Industrial"}, {"MME_Primary", "Cell_CBD_1"}, {"MME_Primary", "Cell_CBD_2"}, {"MME_Primary", "Cell_CBD_3"}, {"MME_Primary", "Cell_Suburban_1"}, {"MME_Primary", "Cell_Hospital"}, {"MME_Primary", "Cell_Emergency_HQ"}, {"MME_Secondary", "Cell_Suburban_2"}, {"MME_Secondary", "Cell_Regional_1"}, {"MME_Secondary", "Cell_Regional_2"}, {"Exchange_CBD", "Cell_CBD_1"}, {"Exchange_CBD", "Cell_CBD_2"}, {"Exchange_CBD", "Cell_CBD_3"}, {"Exchange_CBD", "Cell_Emergency_HQ"}, {"Exchange_CBD", "FDH_CBD"}, {"Exchange_CBD", "FDH_Gov_Precinct"}, {"Exchange_North", "Cell_Suburban_1"}, {"Exchange_North", "FDH_Business_Park"}, {"Exchange_South", "Cell_Suburban_2"}, {"Exchange_South", "Cell_Hospital"}, {"Exchange_South", "FDH_Hospital"}, {"Exchange_West", "Cell_Regional_1"}, {"Exchange_West", "Cell_Regional_2"}, {"Exchange_Industrial", "FDH_Data_Centre"}, }}, {"MANAGEMENT", [][2]string{ {"Core_Router_SYD", "NMS_Primary"}, {"Core_Router_SYD", "Performance_Monitor"}, {"NMS_Primary", "NMS_Secondary"}, {"NMS_Primary", "NOC_Dashboard"}, {"NMS_Primary", "Fault_Mgmt_System"}, {"NMS_Primary", "Performance_Monitor"}, {"NMS_Primary", "SIEM_Telecom"}, {"NMS_Secondary", "NOC_Dashboard"}, {"SIEM_Telecom", "Corp_Firewall"}, {"SIEM_Telecom", "AAA_Server"}, {"SIEM_Telecom", "Security_Manager"}, {"Fault_Mgmt_System", "NOC_Dashboard"}, {"Fault_Mgmt_System", "Ticketing_System"}, {"NOC_Dashboard", "Ticketing_System"}, {"Ticketing_System", "Workforce_Mgmt"}, {"Corp_Email", "CTO"}, {"Corp_ERP", "CTO"}, {"NOC_Shift_Lead", "NOC_Manager"}, {"Security_Manager", "CTO"}, {"Security_Manager", "Regulatory_Compliance"}, {"Security_Manager", "Vendor_Access_Control"}, {"Security_Manager", "Patch_Management"}, {"CTO", "Network_Director"}, {"CTO", "NOC_Manager"}, {"CTO", "Change_Advisory_Board"}, {"CTO", "Regulatory_Compliance"}, {"NOC_Manager", "Network_Director"}, {"NOC_Manager", "Incident_Mgmt_Process"}, {"NOC_Manager", "SLA_Management"}, {"Network_Director", "Change_Advisory_Board"}, {"Network_Director", "Capacity_Planning"}, {"Network_Director", "Disaster_Recovery"}, }}, {"BSS_OSS", [][2]string{ {"Core_Router_SYD", "DNS_Primary"}, {"Core_Router_SYD", "AAA_Server"}, {"Core_Router_SYD", "RADIUS_Server"}, {"Core_Router_MEL", "DNS_Secondary"}, {"NMS_Primary", "Provisioning_System"}, {"Billing_System", "CRM_System"}, {"Billing_System", "Provisioning_System"}, {"CRM_System", "Corp_ERP"}, {"Provisioning_System", "Inventory_System"}, {"Inventory_System", "Workforce_Mgmt"}, {"DNS_Primary", "DNS_Secondary"}, {"AAA_Server", "RADIUS_Server"}, }}, {"CORPORATE", [][2]string{ {"Core_Router_SYD", "Corp_Firewall"}, {"Corp_Firewall", "IT_Switch_Core"}, {"Corp_Firewall", "Corp_VPN"}, {"Corp_AD", "IT_Switch_Core"}, {"Corp_Email", "IT_Switch_Core"}, {"Corp_ERP", "IT_Switch_Core"}, }}, {"INTERCONNECTION", [][2]string{ {"Core_Router_SYD", "IX_Peering"}, {"Core_Router_SYD", "Gateway_Internet"}, {"Core_Router_SYD", "Gateway_Banking"}, {"Core_Router_SYD", "Gateway_Emergency"}, {"Core_Router_SYD", "Gateway_Healthcare"}, {"Core_Router_SYD", "Gateway_Transport"}, {"Core_Router_SYD", "Gateway_Energy"}, {"Core_Router_MEL", "IX_Peering"}, {"Exchange_Industrial", "Gateway_Transport"}, {"Exchange_Industrial", "Gateway_Energy"}, {"FDH_CBD", "Gateway_Banking"}, {"FDH_Business_Park", "Gateway_Banking"}, {"FDH_Hospital", "Gateway_Healthcare"}, {"FDH_Gov_Precinct", "Gateway_Emergency"}, {"IX_Peering", "Gateway_Internet"}, {"Gateway_Emergency", "SIP_Trunk_Emergency"}, }}, {"SECTOR_DEPENDENCY", [][2]string{ {"FDH_Hospital", "Hospital_Network"}, {"Gateway_Banking", "Bank_ATM_Network"}, {"Gateway_Banking", "Bank_Branch_WAN"}, {"Gateway_Banking", "Bank_Trading_Floor"}, {"Gateway_Banking", "Bank_SWIFT_Gateway"}, {"Gateway_Emergency", "Triple_Zero_Centre"}, {"Gateway_Emergency", "CAD_System"}, {"Gateway_Emergency", "Police_Radio_GW"}, {"Gateway_Healthcare", "Hospital_Network"}, {"Gateway_Healthcare", "Telehealth_Platform"}, {"Gateway_Healthcare", "Pathology_WAN"}, {"Gateway_Transport", "Rail_SCADA_Comms"}, {"Gateway_Transport", "Traffic_Mgmt_System"}, {"Gateway_Transport", "Port_Operations"}, {"Gateway_Energy", "Grid_SCADA_Comms"}, {"Gateway_Energy", "Gas_Pipeline_Comms"}, {"Gateway_Energy", "Substation_Comms"}, {"SIP_Trunk_Emergency", "Triple_Zero_Centre"}, {"CAD_System", "Fire_Dispatch"}, {"CAD_System", "Ambulance_Dispatch"}, }}, {EdgeTypeHumanAccess, [][2]string{ {"Core_Router_SYD", "Senior_Network_Eng"}, {"Core_Router_SYD", "IP_Engineer"}, {"Core_Router_MEL", "Senior_Network_Eng"}, {"Core_Router_MEL", "IP_Engineer"}, {"Core_Router_BNE", "Senior_Network_Eng"}, {"Core_Router_BNE", "IP_Engineer"}, {"Core_Router_PER", "IP_Engineer"}, {"Core_Router_ADL", "IP_Engineer"}, {"DWDM_SYD_MEL", "Optical_Engineer"}, {"DWDM_SYD_BNE", "Optical_Engineer"}, {"DWDM_MEL_ADL", "Optical_Engineer"}, {"DWDM_ADL_PER", "Optical_Engineer"}, {"MME_Primary", "Senior_Network_Eng"}, {"MME_Primary", "Mobile_Engineer"}, {"MME_Secondary", "Senior_Network_Eng"}, {"MME_Secondary", "Mobile_Engineer"}, {"SGW_Primary", "Mobile_Engineer"}, {"SGW_Secondary", "Mobile_Engineer"}, {"PGW_Primary", "Mobile_Engineer"}, {"HSS_Primary", "Mobile_Engineer"}, {"IMS_Core", "Mobile_Engineer"}, {"Exchange_CBD", "Senior_Network_Eng"}, {"Exchange_CBD", "Field_Tech_1"}, {"Exchange_North", "Field_Tech_1"}, {"Exchange_South", "Field_Tech_2"}, {"Exchange_West", "Field_Tech_2"}, {"Cell_CBD_1", "Field_Tech_1"}, {"Cell_CBD_2", "Field_Tech_1"}, {"Cell_Suburban_1", "Field_Tech_1"}, {"Cell_Suburban_2", "Field_Tech_2"}, {"Cell_Regional_1", "Field_Tech_2"}, {"Cell_Regional_2", "Field_Tech_2"}, {"NMS_Primary", "Senior_Network_Eng"}, {"NMS_Primary", "NOC_Shift_Lead"}, {"SIEM_Telecom", "NOC_Security_Analyst"}, {"Fault_Mgmt_System", "Senior_Network_Eng"}, {"Fault_Mgmt_System", "NOC_Shift_Lead"}, {"Fault_Mgmt_System", "NOC_Operator_1"}, {"Fault_Mgmt_System", "NOC_Operator_2"}, {"NOC_Dashboard", "NOC_Shift_Lead"}, {"NOC_Dashboard", "NOC_Operator_1"}, {"NOC_Dashboard", "NOC_Operator_2"}, {"NOC_Dashboard", "NOC_Security_Analyst"}, {"Ticketing_System", "NOC_Shift_Lead"}, {"Ticketing_System", "NOC_Operator_1"}, {"Ticketing_System", "NOC_Operator_2"}, {"Billing_System", "BSS_Admin"}, {"CRM_System", "BSS_Admin"}, {"Provisioning_System", "Senior_Network_Eng"}, {"Provisioning_System", "BSS_Admin"}, {"Inventory_System", "BSS_Admin"}, {"Workforce_Mgmt", "Field_Tech_1"}, {"Workforce_Mgmt", "Field_Tech_2"}, {"DNS_Primary", "Senior_Network_Eng"}, {"AAA_Server", "Senior_Network_Eng"}, {"AAA_Server", "IP_Engineer"}, {"Corp_Firewall", "IT_Admin_Corp"}, {"Corp_AD", "IT_Admin_Corp"}, {"Corp_Email", "IT_Admin_Corp"}, {"Corp_VPN", "Senior_Network_Eng"}, {"Corp_VPN", "IT_Admin_Corp"}, {"IT_Switch_Core", "IT_Admin_Corp"}, {"Gateway_Banking", "Senior_Network_Eng"}, {"Gateway_Emergency", "Senior_Network_Eng"}, {"NOC_Shift_Lead", "Senior_Network_Eng"}, {"NOC_Shift_Lead", "NOC_Operator_1"}, {"NOC_Shift_Lead", "NOC_Operator_2"}, {"NOC_Shift_Lead", "NOC_Security_Analyst"}, {"NOC_Shift_Lead", "Incident_Mgmt_Process"}, {"NOC_Security_Analyst", "Security_Manager"}, {"NOC_Security_Analyst", "Incident_Mgmt_Process"}, {"Senior_Network_Eng", "Change_Advisory_Board"}, {"Senior_Network_Eng", "Incident_Mgmt_Process"}, {"Senior_Network_Eng", "Vendor_Access_Control"}, {"Senior_Network_Eng", "Capacity_Planning"}, {"Senior_Network_Eng", "Disaster_Recovery"}, {"Senior_Network_Eng", "IP_Engineer"}, {"Senior_Network_Eng", "Mobile_Engineer"}, {"Senior_Network_Eng", "Optical_Engineer"}, {"Senior_Network_Eng", "Vendor_Ericsson"}, {"Senior_Network_Eng", "Vendor_Cisco"}, {"Senior_Network_Eng", "Vendor_Nokia"}, {"Senior_Network_Eng", "Network_Director"}, {"Senior_Network_Eng", "CTO"}, {"Senior_Network_Eng", "Emergency_Liaison"}, {"Senior_Network_Eng", "Banking_Liaison"}, {"IP_Engineer", "Change_Advisory_Board"}, {"Mobile_Engineer", "Change_Advisory_Board"}, {"Optical_Engineer", "Change_Advisory_Board"}, {"IT_Admin_Corp", "Patch_Management"}, {"BSS_Admin", "SLA_Management"}, {"BSS_Admin", "Patch_Management"}, }}, {"VENDOR_ACCESS", [][2]string{ {"Core_Router_SYD", "Vendor_Cisco"}, {"Core_Router_MEL", "Vendor_Cisco"}, {"DWDM_SYD_MEL", "Vendor_Nokia"}, {"DWDM_SYD_BNE", "Vendor_Nokia"}, {"MME_Primary", "Vendor_Ericsson"}, {"MME_Secondary", "Vendor_Ericsson"}, {"HSS_Primary", "Vendor_Ericsson"}, {"SIEM_Telecom", "Managed_SOC_Analyst"}, {"Corp_VPN", "Vendor_Ericsson"}, {"Corp_VPN", "Vendor_Cisco"}, {"Corp_VPN", "Vendor_Nokia"}, {"Corp_VPN", "Managed_SOC_Analyst"}, {"Security_Manager", "Managed_SOC_Analyst"}, {"Vendor_Ericsson", "Vendor_Access_Control"}, {"Vendor_Cisco", "Vendor_Access_Control"}, {"Vendor_Nokia", "Vendor_Access_Control"}, {"Managed_SOC_Analyst", "Vendor_Access_Control"}, }}, {"LIAISON", [][2]string{ {"CRM_System", "Banking_Liaison"}, {"Gateway_Banking", "Banking_Liaison"}, {"Gateway_Emergency", "Emergency_Liaison"}, {"SIP_Trunk_Emergency", "Emergency_Liaison"}, {"Banking_Liaison", "SLA_Management"}, {"Banking_Liaison", "Incident_Mgmt_Process"}, {"Emergency_Liaison", "Incident_Mgmt_Process"}, {"Emergency_Liaison", "Regulatory_Compliance"}, }}, }
TelecomEdgeGroups organizes all 253 edges by type.
var TelecomProviderNodes = []NodeDef{}/* 114 elements not displayed */
TelecomProviderNodes defines all 114 nodes for the Telecom Provider model. Demonstrates cross-sector critical infrastructure dependencies and the invisible node pattern at scale. The telecom sector is the "infrastructure of infrastructures".
var WaterFlatEdgePairs = [][2]string{
{"Switch_A", "Switch_B"},
{"Switch_B", "Switch_C"},
{"Switch_A", "Switch_C"},
{"PLC_Chlorine", "Switch_A"},
{"PLC_Filtration", "Switch_A"},
{"PLC_Pumping", "Switch_B"},
{"HMI_1", "Switch_A"},
{"HMI_2", "Switch_B"},
{"SCADA_Server", "Switch_B"},
{"Historian", "Switch_C"},
{"Eng_Laptop", "Switch_C"},
{"Operator_PC", "Switch_C"},
{"Router_WAN", "Switch_C"},
}
WaterFlatEdgePairs defines edges for the flat mesh topology. Three switches in full mesh topology (13 nodes, 13 undirected edges).
var WaterTreatmentNodes = []NodeDef{ {"PLC_Chlorine", []string{"Technical", "PLC"}, "Flat", NodeTypeTechnical, ""}, {"PLC_Filtration", []string{"Technical", "PLC"}, "Flat", NodeTypeTechnical, ""}, {"PLC_Pumping", []string{"Technical", "PLC"}, "Flat", NodeTypeTechnical, ""}, {"HMI_1", []string{"Technical", "HMI"}, "Flat", NodeTypeTechnical, ""}, {"HMI_2", []string{"Technical", "HMI"}, "Flat", NodeTypeTechnical, ""}, {"SCADA_Server", []string{"Technical", "SCADA"}, "Flat", NodeTypeTechnical, ""}, {"Historian", []string{"Technical", "Database"}, "Flat", NodeTypeTechnical, ""}, {"Switch_A", []string{"Technical", "NetworkSwitch"}, "Flat", NodeTypeTechnical, ""}, {"Switch_B", []string{"Technical", "NetworkSwitch"}, "Flat", NodeTypeTechnical, ""}, {"Switch_C", []string{"Technical", "NetworkSwitch"}, "Flat", NodeTypeTechnical, ""}, {"Eng_Laptop", []string{"Technical", "Workstation"}, "Flat", NodeTypeTechnical, ""}, {"Operator_PC", []string{"Technical", "Workstation"}, "Flat", NodeTypeTechnical, ""}, {"Router_WAN", []string{"Technical", "Router"}, "Flat", NodeTypeTechnical, ""}, }
WaterTreatmentNodes defines all 13 nodes for the Water Treatment model. Used by both flat and VLAN variants.
var WaterVLANEdgePairs = [][2]string{
{"Switch_A", "L3_Core_Switch"},
{"Switch_B", "L3_Core_Switch"},
{"Switch_C", "L3_Core_Switch"},
{"PLC_Chlorine", "Switch_A"},
{"PLC_Filtration", "Switch_A"},
{"PLC_Pumping", "Switch_A"},
{"HMI_1", "Switch_B"},
{"HMI_2", "Switch_B"},
{"SCADA_Server", "Switch_B"},
{"Historian", "Switch_C"},
{"Eng_Laptop", "Switch_C"},
{"Operator_PC", "Switch_C"},
{"Router_WAN", "L3_Core_Switch"},
}
WaterVLANEdgePairs defines edges for the VLAN star topology. Star topology through L3 core switch (14 nodes, 13 undirected edges). Demonstrates how VLAN segmentation concentrates betweenness centrality.
Functions ¶
This section is empty.
Types ¶
type EdgeDef ¶
type EdgeDef struct {
From string
To string
EdgeType string // EdgeTypeTechnical, EdgeTypeHumanAccess, EdgeTypeProcess
}
EdgeDef defines an edge between two nodes.
func StevesUtilityEdgesWithoutSteve ¶
func StevesUtilityEdgesWithoutSteve() []EdgeDef
StevesUtilityEdgesWithoutSteve returns edges filtered to exclude Steve.
type EdgeGroup ¶
EdgeGroup groups edges by their type for cleaner iteration.
func TelecomEdgeGroupsWithoutSeniorEng ¶
func TelecomEdgeGroupsWithoutSeniorEng() []EdgeGroup
TelecomEdgeGroupsWithoutSeniorEng filters edge groups to exclude Senior_Network_Eng.
type NodeDef ¶
type NodeDef struct {
Name string
Labels []string
Level string
NodeType string // NodeTypeTechnical, NodeTypeHuman, NodeTypeProcess, NodeTypeExternal
Function string // optional function description (for telecom model)
}
NodeDef defines a node with its properties.
func StevesUtilityNodesWithoutSteve ¶
func StevesUtilityNodesWithoutSteve() []NodeDef
StevesUtilityNodesWithoutSteve returns nodes filtered to exclude Steve.
func TelecomNodesWithoutSeniorEng ¶
func TelecomNodesWithoutSeniorEng() []NodeDef
TelecomNodesWithoutSeniorEng returns nodes filtered to exclude Senior_Network_Eng.
func WaterVLANNodes ¶
func WaterVLANNodes() []NodeDef
WaterVLANNodes returns nodes for the VLAN variant, including L3 core switch.