This is the repository for the CESER 40125b RC project (2023 to 2026) - Adaptive Cybersecurity for DER: A Game-Theoretic and Machine Learning approach for Real-Time Threat Detection and Mitigation. A high-level overview of the project is shown in Fig.1.
Fig. 1. High-level overview of the project
Active development
-
Please do not commit directly to the main branch. Create branches and create merge requests.
-
Please use separate folders for logically related code deliverables from tasks/sub-tasks.
The table below gives information on the commonly agreed upon software solutions used in this project.
| Software requirement | Solution |
|---|---|
| Programming language | Python 3.11 or higher |
| Software version control | Git |
| Machine Learning framework | Keras 3 (previously Keras core) with TensorFlow or PyTorch backend |
| Container management | Docker or Podman |
| Federated learning frame work | TBD |
| DER communication protocol | SunSpec MODBUS or equivalent |
Please clone this repository using the below steps:
git clone https://git.cels.anl.gov/ceser_dercybersecurity/dercybersecurity.git
cd dercybersecurity
To update local repository with changes from GitLab repository:
git pull origin
To create a new branch:
git checkout -b yourbranchname
To push the changes made in your local branch (yourbranchname) to the remote repository, specifically to the branch with the same name on the remote repository:
git push origin yourbranchname
To learn more about using Git, please use this tutorial.
Use the Dockerfile to build a Docker image which can be used for running containers. Make sure that that the code added to the repository will run within the container.
docker build -t dercybersecurity:0.0.1 .
Update RUN_CONFIG_PATH in Dockerfile-service to point to configuration file that needs to be loaded at start time. Config file can be updated with the inference container UI.
docker build -f Dockerfile-service -t ads-system:0.1.5 .
docker run --rm -it -v "~/dercybersecurity:/home/dercybersecurity" dercybersecurity:0.0.1
docker run --rm -it -p 5000:5000 --network podman ads-system:0.1.5
Then got to http://localhost:5000/docs on browser to access the UI for inference environment.
podman save $imageid > s_c_container.oci
This project is supported by U.S. DOE Office of Cybersecurity, Energy Security, and Emergency Response through the 40125bRC program.
- Invite team members and collaborators
- Create a new merge request
- Automatically close issues from merge requests
- Enable merge request approvals
- Automatically merge when pipeline succeeds
Use the built-in continuous integration in GitLab.
- Get started with GitLab CI/CD
- Analyze your code for known vulnerabilities with Static Application Security Testing(SAST)
- Deploy to Kubernetes, Amazon EC2, or Amazon ECS using Auto Deploy
- Use pull-based deployments for improved Kubernetes management
- Set up protected environments
Show your appreciation to those who have contributed to the project.
For open source projects, say how it is licensed.
