Add C-Prot Windows and macOS telemetry results (#180)

* Refactor code structure for improved readability and maintainability

* Fix CSV-JSON status translation in convert.py

* Correcting Agent Protection Disabled
This commit is contained in:
Kostas
2026-04-27 23:23:44 -07:00
committed by GitHub
parent abf07a8325
commit 053bb72199
3 changed files with 1644 additions and 1613 deletions
+174 -174
View File
@@ -2,755 +2,755 @@
{
"Telemetry Feature Category": "Process Activity",
"Sub-Category": "Process Creation",
"Phorion": "Yes",
"BitDefender": "Yes",
"C-Prot": "Yes",
"CrowdStrike": "Yes",
"ESET Inspect": "Yes",
"Elastic": "Yes",
"LimaCharlie": "Yes",
"MDE": "Yes",
"Qualys": "Yes",
"Unnamed: 10": null
"Phorion": "Yes",
"Qualys": "Yes"
},
{
"Telemetry Feature Category": null,
"Sub-Category": "Process Termination",
"Phorion": "Yes",
"BitDefender": "Yes",
"C-Prot": "Yes",
"CrowdStrike": "Yes",
"ESET Inspect": "Yes",
"Elastic": "Yes",
"LimaCharlie": "Yes",
"MDE": "No",
"Qualys": "Yes",
"Unnamed: 10": null
"Phorion": "Yes",
"Qualys": "Yes"
},
{
"Telemetry Feature Category": "File Activity",
"Sub-Category": "File Creation",
"Phorion": "Yes",
"BitDefender": "Yes",
"C-Prot": "Yes",
"CrowdStrike": "Yes",
"ESET Inspect": "Partially",
"Elastic": "Yes",
"LimaCharlie": "Yes",
"MDE": "Yes",
"Qualys": "Yes",
"Unnamed: 10": null
"Phorion": "Yes",
"Qualys": "Yes"
},
{
"Telemetry Feature Category": null,
"Sub-Category": "File Modification",
"Phorion": "Yes",
"BitDefender": "Yes",
"C-Prot": "Yes",
"CrowdStrike": "Yes",
"ESET Inspect": "Yes",
"Elastic": "Yes",
"LimaCharlie": "Yes",
"MDE": "Yes",
"Qualys": "Yes",
"Unnamed: 10": null
"Phorion": "Yes",
"Qualys": "Yes"
},
{
"Telemetry Feature Category": null,
"Sub-Category": "File Deletion",
"Phorion": "Yes",
"BitDefender": "Yes",
"C-Prot": "Yes",
"CrowdStrike": "Yes",
"ESET Inspect": "Yes",
"Elastic": "Yes",
"LimaCharlie": "Yes",
"MDE": "Yes",
"Qualys": "No",
"Unnamed: 10": null
"Phorion": "Yes",
"Qualys": "No"
},
{
"Telemetry Feature Category": null,
"Sub-Category": "File Attribute Change",
"Phorion": "Yes",
"BitDefender": "No",
"C-Prot": "Yes",
"CrowdStrike": "No",
"ESET Inspect": "No",
"Elastic": "No",
"LimaCharlie": "No",
"MDE": "Partially",
"Qualys": "No",
"Unnamed: 10": null
"Phorion": "Yes",
"Qualys": "No"
},
{
"Telemetry Feature Category": null,
"Sub-Category": "File Open/Access",
"Phorion": "Yes",
"BitDefender": "Yes",
"C-Prot": "No",
"CrowdStrike": "Partially",
"ESET Inspect": "No",
"Elastic": "Partially",
"LimaCharlie": "Partially",
"MDE": "Partially",
"Qualys": "Yes",
"Unnamed: 10": null
"Phorion": "Yes",
"Qualys": "Yes"
},
{
"Telemetry Feature Category": "User & Session Activity",
"Sub-Category": "User Logon",
"Phorion": "Yes",
"BitDefender": "No",
"C-Prot": "No",
"CrowdStrike": "Yes",
"ESET Inspect": "Yes",
"Elastic": "Yes",
"LimaCharlie": "Yes",
"MDE": "Yes",
"Qualys": "No",
"Unnamed: 10": null
"Phorion": "Yes",
"Qualys": "No"
},
{
"Telemetry Feature Category": null,
"Sub-Category": "User Logoff",
"Phorion": "Yes",
"BitDefender": "No",
"C-Prot": "No",
"CrowdStrike": "Yes",
"ESET Inspect": "Yes",
"Elastic": "Yes",
"LimaCharlie": "Yes",
"MDE": "No",
"Qualys": "No",
"Unnamed: 10": null
"Phorion": "Yes",
"Qualys": "No"
},
{
"Telemetry Feature Category": null,
"Sub-Category": "Logon Failed",
"Phorion": "Yes",
"BitDefender": "No",
"C-Prot": "No",
"CrowdStrike": "Yes",
"ESET Inspect": "No",
"Elastic": "Yes",
"LimaCharlie": "No",
"MDE": "Yes",
"Qualys": "No",
"Unnamed: 10": null
"Phorion": "Yes",
"Qualys": "No"
},
{
"Telemetry Feature Category": null,
"Sub-Category": "Screen Lock",
"Phorion": "Yes",
"BitDefender": "No",
"C-Prot": "No",
"CrowdStrike": "No",
"ESET Inspect": "No",
"Elastic": "No",
"LimaCharlie": "No",
"MDE": "No",
"Qualys": "No",
"Unnamed: 10": null
"Phorion": "Yes",
"Qualys": "No"
},
{
"Telemetry Feature Category": null,
"Sub-Category": "Screen Unlock",
"Phorion": "Yes",
"BitDefender": "No",
"C-Prot": "No",
"CrowdStrike": "No",
"ESET Inspect": "No",
"Elastic": "No",
"LimaCharlie": "No",
"MDE": "No",
"Qualys": "No",
"Unnamed: 10": null
"Phorion": "Yes",
"Qualys": "No"
},
{
"Telemetry Feature Category": null,
"Sub-Category": "Privilege Escalation (sudo etc.)",
"Phorion": "Yes",
"BitDefender": "No",
"C-Prot": "No",
"CrowdStrike": "No",
"ESET Inspect": "No",
"Elastic": "No",
"LimaCharlie": "No",
"MDE": "No",
"Qualys": "No",
"Unnamed: 10": null
"Phorion": "Yes",
"Qualys": "No"
},
{
"Telemetry Feature Category": "Script Activity",
"Sub-Category": "Script Content",
"Phorion": "Yes",
"BitDefender": "No",
"C-Prot": "Yes",
"CrowdStrike": "No",
"ESET Inspect": "No",
"Elastic": "Partially",
"LimaCharlie": "No",
"MDE": "No",
"Qualys": "No",
"Unnamed: 10": null
"Phorion": "Yes",
"Qualys": "No"
},
{
"Telemetry Feature Category": "Network Activity",
"Sub-Category": "Network Connection",
"Phorion": "Yes",
"BitDefender": "Yes",
"C-Prot": "Yes",
"CrowdStrike": "Yes",
"ESET Inspect": "Yes",
"Elastic": "Yes",
"LimaCharlie": "Yes",
"MDE": "Yes",
"Qualys": "Yes",
"Unnamed: 10": null
"Phorion": "Yes",
"Qualys": "Yes"
},
{
"Telemetry Feature Category": null,
"Sub-Category": "Network Socket Listen",
"Phorion": "No",
"BitDefender": "No",
"C-Prot": "Yes",
"CrowdStrike": "Yes",
"ESET Inspect": "No",
"Elastic": "Yes",
"LimaCharlie": "Yes",
"MDE": "Yes",
"Qualys": "No",
"Unnamed: 10": null
"Phorion": "No",
"Qualys": "No"
},
{
"Telemetry Feature Category": null,
"Sub-Category": "DNS Query",
"Phorion": "Yes",
"BitDefender": "No",
"C-Prot": "Yes",
"CrowdStrike": "Yes",
"ESET Inspect": "Yes",
"Elastic": "Yes",
"LimaCharlie": "Yes",
"MDE": "Partially",
"Qualys": "No",
"Unnamed: 10": null
"Phorion": "Yes",
"Qualys": "No"
},
{
"Telemetry Feature Category": "Scheduled Task & Persistence Activity",
"Sub-Category": "Scheduled Task Change (cron/at)",
"Phorion": "Yes",
"BitDefender": "Yes",
"C-Prot": "Yes",
"CrowdStrike": "No",
"ESET Inspect": "Partially",
"Elastic": "No",
"LimaCharlie": "No",
"MDE": "No",
"Qualys": "No",
"Unnamed: 10": null
"Phorion": "Yes",
"Qualys": "No"
},
{
"Telemetry Feature Category": null,
"Sub-Category": "Launchd Item Created",
"Phorion": "Yes",
"BitDefender": "Yes",
"C-Prot": "Yes",
"CrowdStrike": "Partially",
"ESET Inspect": "Partially",
"Elastic": "Yes",
"LimaCharlie": "No",
"MDE": "Partially",
"Qualys": "No",
"Unnamed: 10": null
"Phorion": "Yes",
"Qualys": "No"
},
{
"Telemetry Feature Category": null,
"Sub-Category": "Launchd Item Modified",
"Phorion": "Yes",
"BitDefender": "Yes",
"C-Prot": "Yes",
"CrowdStrike": "Partially",
"ESET Inspect": "No",
"Elastic": "No",
"LimaCharlie": "No",
"MDE": "Partially",
"Qualys": "No",
"Unnamed: 10": null
"Phorion": "Yes",
"Qualys": "No"
},
{
"Telemetry Feature Category": null,
"Sub-Category": "Launchd Item Deleted",
"Phorion": "Yes",
"BitDefender": "No",
"C-Prot": "Yes",
"CrowdStrike": "No",
"ESET Inspect": "No",
"Elastic": "No",
"LimaCharlie": "No",
"MDE": "Partially",
"Qualys": "No",
"Unnamed: 10": null
"Phorion": "Yes",
"Qualys": "No"
},
{
"Telemetry Feature Category": null,
"Sub-Category": "LoginItem Created",
"Phorion": "Yes",
"BitDefender": "No",
"C-Prot": "Yes",
"CrowdStrike": "Partially",
"ESET Inspect": "No",
"Elastic": "No",
"LimaCharlie": "No",
"MDE": "No",
"Qualys": "No",
"Unnamed: 10": null
"Phorion": "Yes",
"Qualys": "No"
},
{
"Telemetry Feature Category": null,
"Sub-Category": "LoginItem Deleted",
"Phorion": "Yes",
"BitDefender": "No",
"C-Prot": "Yes",
"CrowdStrike": "No",
"ESET Inspect": "No",
"Elastic": "No",
"LimaCharlie": "No",
"MDE": "No",
"Qualys": "No",
"Unnamed: 10": null
"Phorion": "Yes",
"Qualys": "No"
},
{
"Telemetry Feature Category": "User Account Activity",
"Sub-Category": "User Account Created",
"Phorion": "Yes",
"BitDefender": "No",
"C-Prot": "Yes",
"CrowdStrike": "No",
"ESET Inspect": "Yes",
"Elastic": "No",
"LimaCharlie": "No",
"MDE": "No",
"Qualys": "No",
"Unnamed: 10": null
"Phorion": "Yes",
"Qualys": "No"
},
{
"Telemetry Feature Category": null,
"Sub-Category": "User Account Modified",
"Phorion": "Yes",
"BitDefender": "No",
"C-Prot": "Yes",
"CrowdStrike": "No",
"ESET Inspect": "Yes",
"Elastic": "No",
"LimaCharlie": "No",
"MDE": "No",
"Qualys": "No",
"Unnamed: 10": null
"Phorion": "Yes",
"Qualys": "No"
},
{
"Telemetry Feature Category": null,
"Sub-Category": "User Account Deleted",
"Phorion": "Yes",
"BitDefender": "No",
"C-Prot": "Yes",
"CrowdStrike": "No",
"ESET Inspect": "Yes",
"Elastic": "No",
"LimaCharlie": "No",
"MDE": "No",
"Qualys": "No",
"Unnamed: 10": null
"Phorion": "Yes",
"Qualys": "No"
},
{
"Telemetry Feature Category": null,
"Sub-Category": "Group Membership Modified",
"Phorion": "Yes",
"BitDefender": "No",
"C-Prot": "Yes",
"CrowdStrike": "No",
"ESET Inspect": "No",
"Elastic": "No",
"LimaCharlie": "No",
"MDE": "No",
"Qualys": "No",
"Unnamed: 10": null
"Phorion": "Yes",
"Qualys": "No"
},
{
"Telemetry Feature Category": "System Extension & Driver Activity",
"Sub-Category": "System Extension Installed",
"Phorion": "Yes",
"BitDefender": "No",
"C-Prot": "Yes",
"CrowdStrike": "No",
"ESET Inspect": "No",
"Elastic": "No",
"LimaCharlie": "No",
"MDE": "No",
"Qualys": "No",
"Unnamed: 10": null
"Phorion": "Yes",
"Qualys": "No"
},
{
"Telemetry Feature Category": null,
"Sub-Category": "System Extension Loaded",
"Phorion": "Yes",
"BitDefender": "No",
"C-Prot": "Yes",
"CrowdStrike": "No",
"ESET Inspect": "No",
"Elastic": "Yes",
"LimaCharlie": "No",
"MDE": "No",
"Qualys": "No",
"Unnamed: 10": null
"Phorion": "Yes",
"Qualys": "No"
},
{
"Telemetry Feature Category": null,
"Sub-Category": "System Extension Uninstalled",
"Phorion": "No",
"BitDefender": "No",
"C-Prot": "No",
"CrowdStrike": "No",
"ESET Inspect": "No",
"Elastic": "No",
"LimaCharlie": "No",
"MDE": "No",
"Qualys": "No",
"Unnamed: 10": null
"Phorion": "No",
"Qualys": "No"
},
{
"Telemetry Feature Category": null,
"Sub-Category": "DriverKit Extension Loaded",
"Phorion": "No",
"BitDefender": "No",
"C-Prot": "No",
"CrowdStrike": "No",
"ESET Inspect": "No",
"Elastic": "No",
"LimaCharlie": "No",
"MDE": "No",
"Qualys": "No",
"Unnamed: 10": null
"Phorion": "No",
"Qualys": "No"
},
{
"Telemetry Feature Category": null,
"Sub-Category": "Kernel Extension Loaded (legacy)",
"Phorion": "Yes",
"BitDefender": "No",
"C-Prot": "Yes",
"CrowdStrike": "Yes",
"ESET Inspect": "Yes",
"Elastic": "No",
"LimaCharlie": "No",
"MDE": "No",
"Qualys": "No",
"Unnamed: 10": null
"Phorion": "Yes",
"Qualys": "No"
},
{
"Telemetry Feature Category": "Code Signing & Trust Activity",
"Sub-Category": "Binary Signature Info Recorded",
"Phorion": "Yes",
"BitDefender": "No",
"C-Prot": "Yes",
"CrowdStrike": "Yes",
"ESET Inspect": "Partially",
"Elastic": "Yes",
"LimaCharlie": "Yes",
"MDE": "No",
"Qualys": "Yes",
"Unnamed: 10": null
"Phorion": "Yes",
"Qualys": "Yes"
},
{
"Telemetry Feature Category": null,
"Sub-Category": "Notarization Status Recorded",
"Phorion": "No",
"BitDefender": "No",
"C-Prot": "Yes",
"CrowdStrike": "No",
"ESET Inspect": "No",
"Elastic": "No",
"LimaCharlie": "No",
"MDE": "No",
"Qualys": "No",
"Unnamed: 10": null
"Phorion": "No",
"Qualys": "No"
},
{
"Telemetry Feature Category": null,
"Sub-Category": "Quarantine Flag Set",
"Phorion": "Yes",
"BitDefender": "No",
"C-Prot": "No",
"CrowdStrike": "No",
"ESET Inspect": "No",
"Elastic": "No",
"LimaCharlie": "No",
"MDE": "No",
"Qualys": "No",
"Unnamed: 10": null
"Phorion": "Yes",
"Qualys": "No"
},
{
"Telemetry Feature Category": null,
"Sub-Category": "Quarantine Flag Cleared",
"Phorion": "Yes",
"BitDefender": "No",
"C-Prot": "No",
"CrowdStrike": "No",
"ESET Inspect": "No",
"Elastic": "No",
"LimaCharlie": "No",
"MDE": "No",
"Qualys": "No",
"Unnamed: 10": null
"Phorion": "Yes",
"Qualys": "No"
},
{
"Telemetry Feature Category": null,
"Sub-Category": "Gatekeeper Decision Logged",
"Phorion": "No",
"BitDefender": "No",
"C-Prot": "Yes",
"CrowdStrike": "No",
"ESET Inspect": "No",
"Elastic": "No",
"LimaCharlie": "No",
"MDE": "No",
"Qualys": "No",
"Unnamed: 10": null
"Phorion": "No",
"Qualys": "No"
},
{
"Telemetry Feature Category": null,
"Sub-Category": "XProtect Detection Logged",
"Phorion": "Yes",
"BitDefender": "No",
"C-Prot": "No",
"CrowdStrike": "No",
"ESET Inspect": "No",
"Elastic": "No",
"LimaCharlie": "No",
"MDE": "No",
"Qualys": "No",
"Unnamed: 10": null
"Phorion": "Yes",
"Qualys": "No"
},
{
"Telemetry Feature Category": null,
"Sub-Category": "XProtect Remediation Logged",
"Phorion": "Yes",
"BitDefender": "No",
"C-Prot": "No",
"CrowdStrike": "No",
"ESET Inspect": "No",
"Elastic": "No",
"LimaCharlie": "No",
"MDE": "No",
"Qualys": "No",
"Unnamed: 10": null
"Phorion": "Yes",
"Qualys": "No"
},
{
"Telemetry Feature Category": "Privacy & TCC Activity",
"Sub-Category": "TCC Prompt Shown",
"Phorion": "No",
"BitDefender": "No",
"C-Prot": "Yes",
"CrowdStrike": "No",
"ESET Inspect": "No",
"Elastic": "No",
"LimaCharlie": "No",
"MDE": "No",
"Qualys": "No",
"Unnamed: 10": null
"Phorion": "No",
"Qualys": "No"
},
{
"Telemetry Feature Category": null,
"Sub-Category": "TCC Decision (Allow)",
"Phorion": "Yes",
"BitDefender": "No",
"C-Prot": "Yes",
"CrowdStrike": "No",
"ESET Inspect": "No",
"Elastic": "No",
"LimaCharlie": "No",
"MDE": "No",
"Qualys": "No",
"Unnamed: 10": null
"Phorion": "Yes",
"Qualys": "No"
},
{
"Telemetry Feature Category": null,
"Sub-Category": "TCC Decision (Deny)",
"Phorion": "Yes",
"BitDefender": "No",
"C-Prot": "Yes",
"CrowdStrike": "No",
"ESET Inspect": "No",
"Elastic": "No",
"LimaCharlie": "No",
"MDE": "No",
"Qualys": "No",
"Unnamed: 10": null
"Phorion": "Yes",
"Qualys": "No"
},
{
"Telemetry Feature Category": null,
"Sub-Category": "TCC Policy Change",
"Phorion": "No",
"BitDefender": "No",
"C-Prot": "Yes",
"CrowdStrike": "No",
"ESET Inspect": "No",
"Elastic": "Yes",
"LimaCharlie": "No",
"MDE": "No",
"Qualys": "No",
"Unnamed: 10": null
"Phorion": "No",
"Qualys": "No"
},
{
"Telemetry Feature Category": null,
"Sub-Category": "TCC Access Check",
"Phorion": "Yes",
"BitDefender": "No",
"C-Prot": "Yes",
"CrowdStrike": "No",
"ESET Inspect": "No",
"Elastic": "No",
"LimaCharlie": "No",
"MDE": "No",
"Qualys": "No",
"Unnamed: 10": null
"Phorion": "Yes",
"Qualys": "No"
},
{
"Telemetry Feature Category": "Access Activity",
"Sub-Category": "Raw Device Access",
"Phorion": "No",
"BitDefender": "No",
"C-Prot": "No",
"CrowdStrike": "No",
"ESET Inspect": "No",
"Elastic": "No",
"LimaCharlie": "No",
"MDE": "No",
"Qualys": "No",
"Unnamed: 10": null
"Phorion": "No",
"Qualys": "No"
},
{
"Telemetry Feature Category": null,
"Sub-Category": "Process Access",
"Phorion": "Yes",
"BitDefender": "No",
"C-Prot": "No",
"CrowdStrike": "No",
"ESET Inspect": "No",
"Elastic": "No",
"LimaCharlie": "No",
"MDE": "No",
"Qualys": "No",
"Unnamed: 10": null
"Phorion": "Yes",
"Qualys": "No"
},
{
"Telemetry Feature Category": "Process Tampering Activity",
"Sub-Category": "Process Injection Or Tampering",
"Phorion": "Yes",
"BitDefender": "Yes",
"C-Prot": "No",
"CrowdStrike": "No",
"ESET Inspect": "No",
"Elastic": "No",
"LimaCharlie": "No",
"MDE": "No",
"Qualys": "No",
"Unnamed: 10": null
"Phorion": "Yes",
"Qualys": "No"
},
{
"Telemetry Feature Category": "Device Activity",
"Sub-Category": "External Media Mounted",
"Phorion": "Yes",
"BitDefender": "No",
"C-Prot": "Yes",
"CrowdStrike": "No",
"ESET Inspect": "No",
"Elastic": "Yes",
"LimaCharlie": "Yes",
"MDE": "Partially",
"Qualys": "No",
"Unnamed: 10": null
"Phorion": "Yes",
"Qualys": "No"
},
{
"Telemetry Feature Category": null,
"Sub-Category": "External Media Unmounted",
"Phorion": "Yes",
"BitDefender": "No",
"C-Prot": "Yes",
"CrowdStrike": "No",
"ESET Inspect": "No",
"Elastic": "No",
"LimaCharlie": "Yes",
"MDE": "Partially",
"Qualys": "No",
"Unnamed: 10": null
"Phorion": "Yes",
"Qualys": "No"
},
{
"Telemetry Feature Category": "EDR SysOps",
"Sub-Category": "Agent Start",
"Phorion": "No",
"BitDefender": "Yes",
"C-Prot": "No",
"CrowdStrike": "Yes",
"ESET Inspect": "Yes",
"Elastic": "Yes",
"LimaCharlie": "Yes",
"MDE": "Yes",
"Qualys": "Yes",
"Unnamed: 10": null
"Phorion": "No",
"Qualys": "Yes"
},
{
"Telemetry Feature Category": null,
"Sub-Category": "Agent Stop",
"Phorion": "No",
"BitDefender": "Yes",
"C-Prot": "No",
"CrowdStrike": "Yes",
"ESET Inspect": "Yes",
"Elastic": "Yes",
"LimaCharlie": "Yes",
"MDE": "Yes",
"Qualys": "Yes",
"Unnamed: 10": null
"Phorion": "No",
"Qualys": "Yes"
},
{
"Telemetry Feature Category": null,
"Sub-Category": "Agent Protection Disabled Or Tamper Event",
"Phorion": "Yes",
"BitDefender": "No",
"C-Prot": "Yes",
"CrowdStrike": "No",
"ESET Inspect": "No",
"Elastic": "No",
"LimaCharlie": "No",
"MDE": "Yes",
"Qualys": "No",
"Unnamed: 10": null
"Phorion": "Yes",
"Qualys": "No"
},
{
"Telemetry Feature Category": "File Metadata",
"Sub-Category": "MD5 Available",
"Phorion": "No",
"BitDefender": "Yes",
"C-Prot": "Yes",
"CrowdStrike": "Yes",
"ESET Inspect": "Yes",
"Elastic": "Partially",
"LimaCharlie": "No",
"MDE": "Yes",
"Qualys": "Yes",
"Unnamed: 10": null
"Phorion": "No",
"Qualys": "Yes"
},
{
"Telemetry Feature Category": null,
"Sub-Category": "SHA-256 Available",
"Phorion": "Partially",
"BitDefender": "Yes",
"C-Prot": "Yes",
"CrowdStrike": "Yes",
"ESET Inspect": "Yes",
"Elastic": "Yes",
"LimaCharlie": "Yes",
"MDE": "Yes",
"Qualys": "Yes",
"Unnamed: 10": null
"Phorion": "Partially",
"Qualys": "Yes"
},
{
"Telemetry Feature Category": null,
"Sub-Category": "Fuzzy Hash Available",
"Phorion": "Yes",
"BitDefender": "No",
"C-Prot": "Yes",
"CrowdStrike": "No",
"ESET Inspect": "No",
"Elastic": "No",
"LimaCharlie": "No",
"MDE": "No",
"Qualys": "No",
"Unnamed: 10": null
"Phorion": "Yes",
"Qualys": "No"
},
{
"Telemetry Feature Category": "Service Activity",
"Sub-Category": "Service Created",
"Phorion": "Yes",
"BitDefender": "Yes",
"C-Prot": "Yes",
"CrowdStrike": "No",
"ESET Inspect": "Partially",
"Elastic": "No",
"LimaCharlie": "Yes",
"MDE": "No",
"Qualys": "No",
"Unnamed: 10": null
"Phorion": "Yes",
"Qualys": "No"
},
{
"Telemetry Feature Category": null,
"Sub-Category": "Service Modified",
"Phorion": "Yes",
"BitDefender": "No",
"C-Prot": "Yes",
"CrowdStrike": "No",
"ESET Inspect": "No",
"Elastic": "No",
"LimaCharlie": "Yes",
"MDE": "No",
"Qualys": "No",
"Unnamed: 10": null
"Phorion": "Yes",
"Qualys": "No"
},
{
"Telemetry Feature Category": null,
"Sub-Category": "Service Deleted",
"Phorion": "Yes",
"BitDefender": "No",
"C-Prot": "Yes",
"CrowdStrike": "No",
"ESET Inspect": "No",
"Elastic": "No",
"LimaCharlie": "No",
"MDE": "No",
"Qualys": "No",
"Unnamed: 10": null
"Phorion": "Yes",
"Qualys": "No"
}
]
+1425 -1368
View File
File diff suppressed because it is too large Load Diff
+45 -71
View File
@@ -1,6 +1,6 @@
import pandas as pd
import argparse
import json
from pathlib import Path
parser = argparse.ArgumentParser(
description='Convert from JSON to CSV and the other way around')
@@ -12,76 +12,50 @@ parser.add_argument(
args = parser.parse_args()
input_file = args.input_file
def replace_to_words(file):
# Replace the target words with the replacement words
words_to_replace = {
"\u2705": "Yes", # ✅ Implemented
"\u274C": "No", # ❌ Not Implemented
"\u26A0\uFE0F": "Partially", # ⚠️ Partially Implemented
"\u2753": "Pending Response", # ❓ Pending Response
"\uD83E\uDEB5" : "Via EventLogs", # 🪵 Via EventLogs
"\ud83c\udf9a" : "Via EnablingTelemetry" # 🎚️ Via EnablingTelemetry
}
# Read the JSON file
with open(file, "r", encoding='utf-8') as f:
data = json.load(f)
# Replace values but skip "Sub-Category" and "Telemetry Feature Category" keys
for item in data:
for key, value in item.items():
if key not in ["Sub-Category", "Telemetry Feature Category"]:
if isinstance(value, str):
for emoji, word in words_to_replace.items():
value = value.replace(emoji, word)
item[key] = value
try:
with open(file, 'w', encoding='utf-8') as f:
json.dump(data, f, indent=2, ensure_ascii=False)
except PermissionError:
print(PermissionError)
pass
EXCLUDED_COLUMNS = ["Sub-Category", "Telemetry Feature Category"]
def replace_from_words(file):
# Replace the target words with the replacement words
words_to_replace = {
"Yes": "",
"No" : "",
"Partially" : "⚠️",
"N/A" : "",
"Pending Response" : "",
"Via EventLogs" : "🪵",
"Via EnablingTelemetry" : "🎚️"
#Add more words as needed
}
# Read the CSV file
with open(file, "r") as f:
lines = f.readlines()
# Skip replacement in the header (first line) and first two columns
for i in range(1, len(lines)):
# Split the line by comma
parts = lines[i].split(',')
# Replace only in columns after the first two
for j in range(2, len(parts)):
for key, value in words_to_replace.items():
parts[j] = parts[j].replace(key, value)
# Join back together
lines[i] = ','.join(parts)
try:
with open(file, 'w', encoding='utf-8') as f:
f.writelines(lines)
except PermissionError:
print(PermissionError)
pass
EMOJI_TO_WORDS = {
"": "Yes",
"": "No",
"⚠️": "Partially",
"": "Pending Response",
"": "N/A",
"🪵": "Via EventLogs",
"🎚️": "Via EnablingTelemetry",
"🎚": "Via EnablingTelemetry",
}
WORDS_TO_EMOJI = {
"Yes": "",
"No": "",
"Partially": "⚠️",
"N/A": "",
"Pending Response": "",
"Via EventLogs": "🪵",
"Via EnablingTelemetry": "🎚️",
}
def replace_values(df, replacements):
columns = [column for column in df.columns if column not in EXCLUDED_COLUMNS]
def replace_value(value):
if not isinstance(value, str):
return value
for old_value, new_value in replacements.items():
value = value.replace(old_value, new_value)
return value
df[columns] = df[columns].apply(lambda column: column.map(replace_value))
return df
def to_json(input_file):
df = pd.read_csv(input_file)
input_file = input_file.split(".")[0] + ".json"
df.to_json(input_file, orient='records', indent=2)
replace_to_words(input_file)
print(f"\n [*] Successfully converted to {input_file}\n")
df = replace_values(df, EMOJI_TO_WORDS)
output_file = Path(input_file).with_suffix(".json")
df.to_json(output_file, orient='records', indent=2, force_ascii=False)
print(f"\n [*] Successfully converted to {output_file}\n")
def to_csv(input_file):
@@ -90,11 +64,11 @@ def to_csv(input_file):
df2 = df.drop(['Telemetry Feature Category', 'Sub-Category'], axis=1)
df2.sort_index(axis=1, level=None, sort_remaining=False, inplace=True)
df = pd.concat([df1, df2], axis="columns")
df = replace_values(df, WORDS_TO_EMOJI)
input_file = input_file.split(".")[0] + ".csv"
df.to_csv(input_file, index=False)
replace_from_words(input_file)
print(f"\n [*] Successfully converted to {input_file}\n")
output_file = Path(input_file).with_suffix(".csv")
df.to_csv(output_file, index=False)
print(f"\n [*] Successfully converted to {output_file}\n")
if __name__ == '__main__':