Carbon-Aware Cybersecurity Scheduling (CACS)
Reducing the Carbon Footprint of Security Operations Through Intelligent Workload Deferral
π― Overview
This repository contains the complete research prototype for Carbon-Aware Cybersecurity Scheduling (CACS) β a novel framework that reduces the carbon footprint of security operations by intelligently deferring non-critical tasks to time windows when the electricity grid has lower carbon intensity.
Key Finding: Carbon-aware scheduling achieves a 28.8% reduction in COβ emissions from security operations with only 3.8 hours average additional vulnerability exposure for deferrable tasks.
π Results Summary
| Strategy | COβ (kg) | Reduction | Avg Exposure (h) | Max Exposure (h) |
|---|---|---|---|---|
| Fixed (Baseline) | 98.52 | β | 0.0 | 0 |
| Carbon-Aware | 70.10 | 28.8% | 3.8 | 162 |
| Hybrid (Ξ±=0.6) | 78.77 | 20.0% | 1.1 | 22 |
| Night-Shift | 81.65 | 17.1% | 1.6 | 18 |
Statistical robustness: 29.5% Β± 1.2% mean reduction (95% CI: 27.1β31.8%) over 10 independent trials.
π Repository Structure
βββ README.md # This file
βββ METHODOLOGY.md # Full experimental design document
βββ experiment.py # Complete working prototype (run this!)
βββ paper_draft.tex # Springer ACSAR formatted paper draft
βββ figures/
β βββ fig1_carbon_intensity_pattern.png
β βββ fig2_strategy_comparison.png
β βββ fig3_pareto_front.png
β βββ fig4_savings_by_task_type.png
β βββ fig5_scheduling_timeline.png
βββ results/
βββ strategy_comparison.csv
βββ task_type_analysis.csv
π Quick Start
# Install dependencies
pip install numpy pandas matplotlib
# Run the full experiment
python experiment.py
# For real UK carbon intensity data (requires internet):
# Edit experiment.py: set use_real_data=True
π Problem Formulation
Given a set of security tasks T = {tβ, tβ, ..., tβ}, each with energy consumption eα΅’, generation time gα΅’, deadline dα΅’, and deferrability flag Ξ΄α΅’, minimize:
min Ξ£ eα΅’ Β· c(sα΅’)
Subject to:
- sα΅’ = gα΅’ if Ξ΄α΅’ = 0 (non-deferrable)
- gα΅’ β€ sα΅’ β€ gα΅’ + dα΅’ if Ξ΄α΅’ = 1 (deferrable)
Where c(h) is the carbon intensity (gCOβ/kWh) at hour h.
π¬ Scheduling Strategies
- Carbon-Aware Greedy β Defer each task to the lowest-carbon hour within its deadline
- Hybrid (Ξ±-parameterized) β Balance carbon reduction vs. urgency:
score(h) = Ξ±Β·Δ(h) + (1-Ξ±)Β·u(h) - Night-Shift Heuristic β Defer to 00:00-06:00 (industry baseline)
- Fixed Schedule β Execute immediately (baseline)
π Data Sources
| Data | Source | Access |
|---|---|---|
| Carbon Intensity (UK) | api.carbonintensity.org.uk | Free, no auth |
| Carbon Intensity (Historical) | electricityinfo.org | Free |
| Security workload model | Synthetic (SANS SOC Survey-based) | Generated in code |
π Conference Submission
- Conference: ICISET 2026 β Namibia University of Science and Technology
- Track: Infrastructure, Security and Governance β Cybersecurity and Sustainability
- Format: Springer ACSAR Series (LNCS style)
- Deadline: July 27, 2026
π Key References
- Lannelongue et al. "Green Algorithms: Quantifying the carbon footprint of computation" (2021)
- Lin et al. "Chasing Low-Carbon Electricity for Practical and Sustainable DNN Training" (2023)
- UK National Grid Carbon Intensity API
- NIST Cybersecurity Framework v2.0 (2024)
ποΈ Future Work
- Real-world SOC deployment with direct energy measurement
- Carbon intensity forecasting for predictive scheduling
- Multi-region scheduling leveraging geographic carbon differences
- Reinforcement learning adaptive policies
- Namibia/Southern Africa carbon intensity modeling
π License
MIT License β feel free to use, modify, and extend for your research.
Generated by ML Intern
This model repository was generated by ML Intern, an agent for machine learning research and development on the Hugging Face Hub.
- Try ML Intern: https://smolagents-ml-intern.hf.space
- Source code: https://github.com/huggingface/ml-intern
Usage
from transformers import AutoModelForCausalLM, AutoTokenizer
model_id = "mtjikuzu/carbon-aware-cybersecurity-scheduling"
tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(model_id)
For non-causal architectures, replace AutoModelForCausalLM with the appropriate AutoModel class.