The Cybersecurity Monitoring SDK is a Python-based tool designed to analyze system processes, detect anomalies, and visualize data through a user-friendly dashboard. It leverages system monitoring libraries, a graph database, machine learning models, and AI-powered explanations to provide insights into your system's security posture.
- System Analysis:
- Collects data on running processes, network connections, users, and open files.
- Anomaly Detection:
- Uses Isolation Forest algorithm to identify anomalous processes based on resource usage.
- Graph Database Integration:
- Stores and manages data using Neo4j for efficient querying and relationship mapping.
- AI Assistant:
- Generates explanations for anomalies using the Gemini AI API.
- Interactive Dashboard:
- Visualizes data and anomalies using Streamlit for easy monitoring.
- Python 3.7 or higher
- Neo4j Graph Database
- Gemini AI API Key (from Google AI Studio)
-
Clone the Repository:
git clone https://github.com/kishoraditya/cybersec_sdk.git cd cybersec_sdk
-
Install Dependencies:
pip install -r requirements.txt
-
Set Up Neo4j:
- Download and install Neo4j Desktop or Community Edition.
- Start the Neo4j server and set your username and password.
-
Configure Environment Variables:
export NEO4J_URI=bolt://localhost:7687 export NEO4J_USER=neo4j export NEO4J_PASSWORD=your_neo4j_password export API_KEY=your_gemini_api_key
-
Run the Main Script:
python example_usage.py
-
Launch the Dashboard:
If not automatically opened, run:
streamlit run example_usage.py
-
Explore the Dashboard:
- Access the dashboard at
http://localhost:8501
. - View total processes, users, and anomalous processes.
- Examine detailed explanations for each anomaly.
- Access the dashboard at
- Adjust Anomaly Detection:
- Modify
ml_models.py
to fine-tune the Isolation Forest parameters.
- Modify
- Update Data Collection:
- Edit
analyzer.py
to collect additional system metrics.
- Edit
- Enhance the Dashboard:
- Customize
ui.py
to improve the user interface and add new features.
- Customize
Contributions are welcome! Please submit a pull request or open an issue to discuss changes.
Refer to the LICENSE file