File size: 4,088 Bytes
0c68f52
 
 
 
 
 
 
 
 
 
 
 
e9828a3
774bf05
e9828a3
 
0c68f52
9fde97a
e9828a3
 
9fde97a
e9828a3
9fde97a
e9828a3
9fde97a
e9828a3
 
 
 
 
9fde97a
e9828a3
9fde97a
e9828a3
9fde97a
e9828a3
9fde97a
c546e9e
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
e9828a3
a18460f
e9828a3
 
 
 
 
9fde97a
e9828a3
 
 
 
9fde97a
e9828a3
 
 
 
9fde97a
e9828a3
 
 
 
9fde97a
e9828a3
ece9fc8
e9828a3
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
9fde97a
e9828a3
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
---
title: Shadow Log
emoji: 📊
colorFrom: green
colorTo: indigo
sdk: streamlit
sdk_version: 1.42.2
app_file: app.py
pinned: false
python_version: 3.11.11
---

## 🌐 Online Demo

You can try ShadowLog online at our Hugging Face demo: 
[https://huggingface.co/spaces/berangerthomas/shadowlog](https://huggingface.co/spaces/berangerthomas/shadowlog)


## 🔐 ShadowLog - Your Advanced Log Analysis Platform
**Because attacks hide… but your logs don't.**

ShadowLog is a powerful Streamlit-based application designed to simplify and enhance log file analysis. Whether you're debugging an application, monitoring system performance, or investigating security incidents, ShadowLog provides the tools you need to efficiently process and extract insights from your log data.

## 📊 Key Features

- **📁 Log File Upload & Parsing**: Upload and process log files with automatic parsing and filtering
- **📈 Statistical Analysis**: Get comprehensive statistics and insights about your log data
- **🔍 Advanced Data Visualization**: Interactive charts and graphs to spot patterns and anomalies
- **🔎 Powerful Filtering**: Filter logs by time, action type, port ranges, and more
- **🤖 AI-Powered Analytics**: Machine learning clustering to identify patterns and anomalies

## 🚀 Installation

### Prerequisites

- Docker installed on your system

### Quick Start with Docker Image

If you have a prebuilt "shadowlog.tar" Docker image, you can load and run it as follows:

1. Load the image:
   ```bash
   docker load -i shadowlog.tar
   ```
2. Verify the image name (usually "shadowlog") by running:
   ```bash
   docker images
   ```
3. Run the container:
   ```bash
   docker run -p 8501:8501 shadowlog
   ```
4. Navigate to:
   ```
   http://localhost:8501
   ```

### Quick Start with Docker

1. Clone the repository:
   ```bash
   git clone https://github.com/berangerthomas/ShadowLog.git
   cd ShadowLog
   ```

2. Build the Docker image:
   ```bash
   docker build -t shadowlog .
   ```

3. Run the container:
   ```bash
   docker run -p 8501:8501 shadowlog
   ```

4. Open your browser and navigate to:
   ```
   http://localhost:8501
   ```

### Manual Installation

If you prefer not to use Docker:

1. Clone the repository:
   ```bash
   git clone https://github.com/yourusername/ShadowLog.git
   cd ShadowLog
   ```

2. Install the required packages:
   ```bash
   pip install -r requirements.txt
   ```

3. Run the application:
   ```bash
   streamlit run app.py
   ```

## 📝 Usage Guide

1. **Upload Log Files**: Navigate to the Upload section and upload your log files
2. **Analyze Data**: Use the Statistics section to get an overview of your log data
3. **Visualize Patterns**: Explore visualizations in the Analyze section
4. **Detect Anomalies**: Check the Alerts section for potential security issues
5. **Apply AI Analysis**: Use the Analytics section for advanced pattern detection

ShadowLog currently supports only one log format, describe on the "Upload" page :

| Column name | timestamp | ipsrc | ipdst | protocole | portsrc | portdst | rule | action | interface | unknown | fw |
|------------|-----------|-------|-------|-----------|---------|---------|------|--------|-----------|---------|-----|
| Format | YYYY-MM-DD HH:MM:SS | str | str | str | int | int | int | str | str | str | int |

## 🛠️ Technical Details

ShadowLog is built with:
- **Python 3.11+**
- **Streamlit** for the web interface
- **Polars** and **Pandas** for high-performance data processing
- **Plotly** for interactive visualizations
- **scikit-learn** for machine learning capabilities

## 🤝 Contributing

Contributions are welcome! To contribute:
1. Fork the repository
2. Create your feature branch (`git checkout -b feature/new-feature`)
3. Commit your changes (`git commit -m 'Add new feature'`)
4. Push to the branch (`git push origin feature/new-feature`)
5. Open a Pull Request

## 📄 License

This project is licensed under the MIT License - see the LICENSE file for details.

## 👥 Authors

- Nancy Randriamiarijaona
- Cyril Kocab
- Béranger Thomas