Spaces:
Sleeping
Sleeping
Upload 5 files
Browse files- README.md +87 -14
- app.py +355 -0
- requirements.txt +5 -0
- sample_events.csv +56 -0
- sample_training.csv +532 -0
README.md
CHANGED
|
@@ -1,14 +1,87 @@
|
|
| 1 |
-
|
| 2 |
-
|
| 3 |
-
|
| 4 |
-
|
| 5 |
-
|
| 6 |
-
|
| 7 |
-
|
| 8 |
-
|
| 9 |
-
|
| 10 |
-
|
| 11 |
-
|
| 12 |
-
-
|
| 13 |
-
|
| 14 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# UEBA Risk Scoring Demo (Gradio + Hugging Face Spaces)
|
| 2 |
+
|
| 3 |
+
This repository contains a simple **User & Entity Behavior Analytics (UEBA)** anomaly detection demo. It trains an **IsolationForest** on historical logs, builds per-user baselines, and produces a **blended risk score** for new events (60% model, 40% rules).
|
| 4 |
+
|
| 5 |
+
> ⚠️ Disclaimer: This is an educational demo. For production use, harden the data pipeline, feature engineering, explainability, and security (PII handling, access controls, audit logging, etc.).
|
| 6 |
+
|
| 7 |
+
## Quick Start (Local)
|
| 8 |
+
|
| 9 |
+
1. Create a Python environment and install dependencies:
|
| 10 |
+
|
| 11 |
+
```bash
|
| 12 |
+
pip install -r requirements.txt
|
| 13 |
+
```
|
| 14 |
+
|
| 15 |
+
2. Run the app:
|
| 16 |
+
|
| 17 |
+
```bash
|
| 18 |
+
python app.py
|
| 19 |
+
```
|
| 20 |
+
|
| 21 |
+
3. In the UI:
|
| 22 |
+
- **Train Baseline**: Upload a CSV with columns
|
| 23 |
+
`user,timestamp,action,success,country,device,ip`
|
| 24 |
+
- **Score Events**: Upload a CSV with the same columns; get risk scores.
|
| 25 |
+
|
| 26 |
+
## Deploy on Hugging Face Spaces
|
| 27 |
+
|
| 28 |
+
1. Go to **Hugging Face → Spaces → New Space**.
|
| 29 |
+
2. Choose **SDK: Gradio**, **Space Type: Public or Private**.
|
| 30 |
+
3. Upload these files:
|
| 31 |
+
- `app.py` (entry point)
|
| 32 |
+
- `requirements.txt`
|
| 33 |
+
- optionally `sample_training.csv` and `sample_events.csv`
|
| 34 |
+
4. The Space will build automatically. Click **App** to use.
|
| 35 |
+
|
| 36 |
+
> Spaces use `app.py` as the default entrypoint for Gradio apps.
|
| 37 |
+
|
| 38 |
+
## Data Schema
|
| 39 |
+
|
| 40 |
+
CSV columns expected (order doesn't matter):
|
| 41 |
+
|
| 42 |
+
- `user`: string user identifier
|
| 43 |
+
- `timestamp`: ISO8601 or any pandas-parsable datetime
|
| 44 |
+
- `action`: string (e.g., `login`, `file_download`, `admin_change`)
|
| 45 |
+
- `success`: 1 or 0 (use 1 for non-login actions)
|
| 46 |
+
- `country`: country code or name
|
| 47 |
+
- `device`: string device identifier
|
| 48 |
+
- `ip`: string IP identifier
|
| 49 |
+
|
| 50 |
+
## Features & Signals
|
| 51 |
+
|
| 52 |
+
**Model Features** (used by IsolationForest):
|
| 53 |
+
- `hour` (0–23)
|
| 54 |
+
- `time_since_last_minutes` (clipped 0–1440)
|
| 55 |
+
- binary flags: `failed_login`, `is_night`, `location_change`, `new_device`, `new_ip`, `rare_action`, `impossible_travel`
|
| 56 |
+
|
| 57 |
+
**Rule Weights** (blended into risk score):
|
| 58 |
+
- failed_login: +25
|
| 59 |
+
- is_night: +10
|
| 60 |
+
- location_change: +20
|
| 61 |
+
- new_device: +15
|
| 62 |
+
- new_ip: +10
|
| 63 |
+
- rare_action: +10
|
| 64 |
+
- impossible_travel: +25 (location change within <120 minutes since prior event)
|
| 65 |
+
|
| 66 |
+
Final risk = 0.6 * normalized model anomaly + 0.4 * rules (0–100).
|
| 67 |
+
|
| 68 |
+
## Sample Data
|
| 69 |
+
|
| 70 |
+
Two synthetic CSVs are included:
|
| 71 |
+
- `sample_training.csv`: baseline historical events
|
| 72 |
+
- `sample_events.csv`: new events to score
|
| 73 |
+
|
| 74 |
+
You can upload them directly in the app to test end-to-end.
|
| 75 |
+
|
| 76 |
+
## Notes & Extensions
|
| 77 |
+
|
| 78 |
+
- Replace simplified `impossible_travel` with geodistance based on IP geolocation (ensure privacy, compliance).
|
| 79 |
+
- Add domain-specific actions and weights; calibrate with red-team exercises and historical incidents.
|
| 80 |
+
- Use SHAP or feature importance for richer explainability.
|
| 81 |
+
- Consider per-entity models (service accounts, devices) and role-based profiles.
|
| 82 |
+
- Add persistence/versioning of models and baselines; auto-retraining schedules.
|
| 83 |
+
- Integrate alerting (webhooks) and dashboards.
|
| 84 |
+
|
| 85 |
+
## License
|
| 86 |
+
|
| 87 |
+
MIT
|
app.py
ADDED
|
@@ -0,0 +1,355 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# app.py
|
| 2 |
+
"""
|
| 3 |
+
UEBA Risk Scoring demo (Gradio + Hugging Face Spaces)
|
| 4 |
+
|
| 5 |
+
- Train an unsupervised anomaly detector (IsolationForest) on historical logs
|
| 6 |
+
- Build user baseline profiles (devices, IPs, common country, frequent actions)
|
| 7 |
+
- Score new events with a blended risk score (model anomaly + rule signals)
|
| 8 |
+
|
| 9 |
+
Expected CSV schema for both training and scoring:
|
| 10 |
+
user,timestamp,action,success,country,device,ip
|
| 11 |
+
Where:
|
| 12 |
+
- user: string identifier
|
| 13 |
+
- timestamp: ISO8601 or any pandas-parsable datetime
|
| 14 |
+
- action: free-form string (e.g., 'login', 'file_download', 'admin_change')
|
| 15 |
+
- success: 1 or 0 (e.g., login success flag; use 1 for non-login actions)
|
| 16 |
+
- country: two-letter or name, free-form string
|
| 17 |
+
- device: string identifier
|
| 18 |
+
- ip: string identifier
|
| 19 |
+
|
| 20 |
+
This is a simplified educational demo -- not production security tooling.
|
| 21 |
+
"""
|
| 22 |
+
|
| 23 |
+
import os
|
| 24 |
+
import pickle
|
| 25 |
+
import json
|
| 26 |
+
from datetime import datetime
|
| 27 |
+
|
| 28 |
+
import numpy as np
|
| 29 |
+
import pandas as pd
|
| 30 |
+
from sklearn.ensemble import IsolationForest
|
| 31 |
+
from sklearn.preprocessing import MinMaxScaler
|
| 32 |
+
|
| 33 |
+
import gradio as gr
|
| 34 |
+
|
| 35 |
+
ARTIFACT_DIR = "artifacts"
|
| 36 |
+
MODEL_PATH = os.path.join(ARTIFACT_DIR, "isolation_forest.pkl")
|
| 37 |
+
PROFILE_PATH = os.path.join(ARTIFACT_DIR, "baseline_profiles.json")
|
| 38 |
+
SCALER_PATH = os.path.join(ARTIFACT_DIR, "feature_scaler.pkl")
|
| 39 |
+
ANOMALY_RANGE_PATH = os.path.join(ARTIFACT_DIR, "anomaly_range.json")
|
| 40 |
+
FEATURES_JSON = os.path.join(ARTIFACT_DIR, "features.json")
|
| 41 |
+
|
| 42 |
+
os.makedirs(ARTIFACT_DIR, exist_ok=True)
|
| 43 |
+
|
| 44 |
+
FEATURE_COLUMNS = [
|
| 45 |
+
"hour",
|
| 46 |
+
"time_since_last_minutes",
|
| 47 |
+
"failed_login",
|
| 48 |
+
"is_night",
|
| 49 |
+
"location_change",
|
| 50 |
+
"new_device",
|
| 51 |
+
"new_ip",
|
| 52 |
+
"rare_action",
|
| 53 |
+
"impossible_travel"
|
| 54 |
+
]
|
| 55 |
+
|
| 56 |
+
RULE_WEIGHTS = {
|
| 57 |
+
"failed_login": 25,
|
| 58 |
+
"is_night": 10,
|
| 59 |
+
"location_change": 20,
|
| 60 |
+
"new_device": 15,
|
| 61 |
+
"new_ip": 10,
|
| 62 |
+
"rare_action": 10,
|
| 63 |
+
"impossible_travel": 25,
|
| 64 |
+
}
|
| 65 |
+
|
| 66 |
+
# -----------------
|
| 67 |
+
# Feature Engineering
|
| 68 |
+
# -----------------
|
| 69 |
+
|
| 70 |
+
def _parse_time(ts):
|
| 71 |
+
try:
|
| 72 |
+
return pd.to_datetime(ts, errors='coerce')
|
| 73 |
+
except Exception:
|
| 74 |
+
return pd.NaT
|
| 75 |
+
|
| 76 |
+
|
| 77 |
+
def build_baseline_profiles(df: pd.DataFrame):
|
| 78 |
+
"""Create per-user baseline: common_country, known_devices, known_ips, action_counts."""
|
| 79 |
+
profiles = {}
|
| 80 |
+
for user, g in df.groupby("user"):
|
| 81 |
+
# common country = mode
|
| 82 |
+
common_country = g["country"].mode().iloc[0] if not g["country"].mode().empty else None
|
| 83 |
+
devices = sorted(list(set(g["device"].dropna().astype(str))))
|
| 84 |
+
ips = sorted(list(set(g["ip"].dropna().astype(str))))
|
| 85 |
+
action_counts = g["action"].value_counts().to_dict()
|
| 86 |
+
profiles[user] = {
|
| 87 |
+
"common_country": common_country,
|
| 88 |
+
"devices": devices,
|
| 89 |
+
"ips": ips,
|
| 90 |
+
"action_counts": action_counts,
|
| 91 |
+
"total_actions": int(g.shape[0])
|
| 92 |
+
}
|
| 93 |
+
return profiles
|
| 94 |
+
|
| 95 |
+
|
| 96 |
+
def extract_features(df: pd.DataFrame, profiles: dict):
|
| 97 |
+
df = df.copy()
|
| 98 |
+
df["timestamp"] = df["timestamp"].apply(_parse_time)
|
| 99 |
+
df.sort_values(["user", "timestamp"], inplace=True)
|
| 100 |
+
|
| 101 |
+
# Basic fields
|
| 102 |
+
df["hour"] = df["timestamp"].dt.hour.fillna(0)
|
| 103 |
+
df["is_night"] = df["hour"].apply(lambda h: 1 if (h <= 5 or h >= 22) else 0)
|
| 104 |
+
df["failed_login"] = df["success"].apply(lambda x: 1 if str(x) in ["0", 0, False, "False"] else 0)
|
| 105 |
+
|
| 106 |
+
# Time since last per user
|
| 107 |
+
df["time_since_last_minutes"] = 0.0
|
| 108 |
+
last_time = {}
|
| 109 |
+
for idx, row in df.iterrows():
|
| 110 |
+
u = row["user"]
|
| 111 |
+
t = row["timestamp"]
|
| 112 |
+
if pd.isna(t):
|
| 113 |
+
df.at[idx, "time_since_last_minutes"] = 0.0
|
| 114 |
+
else:
|
| 115 |
+
if u in last_time and not pd.isna(last_time[u]):
|
| 116 |
+
delta = (t - last_time[u]).total_seconds() / 60.0
|
| 117 |
+
df.at[idx, "time_since_last_minutes"] = max(0.0, min(delta, 1440.0)) # clip 0..1 day
|
| 118 |
+
else:
|
| 119 |
+
df.at[idx, "time_since_last_minutes"] = 1440.0
|
| 120 |
+
last_time[u] = t
|
| 121 |
+
|
| 122 |
+
# Profile-derived flags
|
| 123 |
+
df["location_change"] = 0
|
| 124 |
+
df["new_device"] = 0
|
| 125 |
+
df["new_ip"] = 0
|
| 126 |
+
df["rare_action"] = 0
|
| 127 |
+
|
| 128 |
+
for idx, row in df.iterrows():
|
| 129 |
+
u = row["user"]
|
| 130 |
+
country = str(row.get("country", ""))
|
| 131 |
+
device = str(row.get("device", ""))
|
| 132 |
+
ip = str(row.get("ip", ""))
|
| 133 |
+
action = str(row.get("action", ""))
|
| 134 |
+
prof = profiles.get(u, {
|
| 135 |
+
"common_country": None,
|
| 136 |
+
"devices": [],
|
| 137 |
+
"ips": [],
|
| 138 |
+
"action_counts": {},
|
| 139 |
+
"total_actions": 0,
|
| 140 |
+
})
|
| 141 |
+
if prof.get("common_country") and country and country != prof.get("common_country"):
|
| 142 |
+
df.at[idx, "location_change"] = 1
|
| 143 |
+
if device and device not in set(prof.get("devices", [])):
|
| 144 |
+
df.at[idx, "new_device"] = 1
|
| 145 |
+
if ip and ip not in set(prof.get("ips", [])):
|
| 146 |
+
df.at[idx, "new_ip"] = 1
|
| 147 |
+
total = max(1, prof.get("total_actions", 0))
|
| 148 |
+
count = prof.get("action_counts", {}).get(action, 0)
|
| 149 |
+
rarity = count / total
|
| 150 |
+
if rarity <= 0.05:
|
| 151 |
+
df.at[idx, "rare_action"] = 1
|
| 152 |
+
|
| 153 |
+
# Impossible travel (simplified): location change with very short time gap
|
| 154 |
+
df["impossible_travel"] = df.apply(lambda r: 1 if (r["location_change"] == 1 and r["time_since_last_minutes"] < 120) else 0, axis=1)
|
| 155 |
+
|
| 156 |
+
# Keep only expected columns; fill NaNs
|
| 157 |
+
feature_df = df[["user", "timestamp"] + FEATURE_COLUMNS].fillna(0)
|
| 158 |
+
return feature_df
|
| 159 |
+
|
| 160 |
+
|
| 161 |
+
# -----------------
|
| 162 |
+
# Training & Scoring
|
| 163 |
+
# -----------------
|
| 164 |
+
|
| 165 |
+
def train_baseline(csv_file):
|
| 166 |
+
try:
|
| 167 |
+
df = pd.read_csv(csv_file)
|
| 168 |
+
except Exception:
|
| 169 |
+
# try excel
|
| 170 |
+
df = pd.read_excel(csv_file, engine="openpyxl")
|
| 171 |
+
|
| 172 |
+
# Validate schema
|
| 173 |
+
required_cols = {"user", "timestamp", "action", "success", "country", "device", "ip"}
|
| 174 |
+
missing = required_cols - set(df.columns)
|
| 175 |
+
if missing:
|
| 176 |
+
raise ValueError(f"Missing columns: {sorted(list(missing))}")
|
| 177 |
+
|
| 178 |
+
# Build profiles
|
| 179 |
+
profiles = build_baseline_profiles(df)
|
| 180 |
+
feature_df = extract_features(df, profiles)
|
| 181 |
+
|
| 182 |
+
# Fit scaler and model
|
| 183 |
+
X = feature_df[FEATURE_COLUMNS].astype(float).values
|
| 184 |
+
scaler = MinMaxScaler()
|
| 185 |
+
X_scaled = scaler.fit_transform(X)
|
| 186 |
+
|
| 187 |
+
iso = IsolationForest(
|
| 188 |
+
n_estimators=200,
|
| 189 |
+
contamination=0.02, # assume ~2% anomalies in baseline
|
| 190 |
+
random_state=42,
|
| 191 |
+
n_jobs=-1
|
| 192 |
+
)
|
| 193 |
+
iso.fit(X_scaled)
|
| 194 |
+
|
| 195 |
+
# For scaling anomaly scores later
|
| 196 |
+
decision_scores = iso.decision_function(X_scaled)
|
| 197 |
+
# Lower decision_function -> more anomalous; we'll invert
|
| 198 |
+
anomaly_raw = -decision_scores
|
| 199 |
+
anom_min = float(np.min(anomaly_raw))
|
| 200 |
+
anom_max = float(np.max(anomaly_raw))
|
| 201 |
+
|
| 202 |
+
# Persist artifacts
|
| 203 |
+
with open(MODEL_PATH, "wb") as f:
|
| 204 |
+
pickle.dump(iso, f)
|
| 205 |
+
with open(SCALER_PATH, "wb") as f:
|
| 206 |
+
pickle.dump(scaler, f)
|
| 207 |
+
with open(PROFILE_PATH, "w") as f:
|
| 208 |
+
json.dump(profiles, f)
|
| 209 |
+
with open(ANOMALY_RANGE_PATH, "w") as f:
|
| 210 |
+
json.dump({"min": anom_min, "max": anom_max}, f)
|
| 211 |
+
with open(FEATURES_JSON, "w") as f:
|
| 212 |
+
json.dump(FEATURE_COLUMNS, f)
|
| 213 |
+
|
| 214 |
+
summary = {
|
| 215 |
+
"users": len(profiles),
|
| 216 |
+
"events": int(df.shape[0]),
|
| 217 |
+
"features_shape": list(X.shape),
|
| 218 |
+
"anomaly_range": {"min": anom_min, "max": anom_max},
|
| 219 |
+
}
|
| 220 |
+
return "Baseline trained ✅", pd.DataFrame(feature_df.head(10)), json.dumps(summary, indent=2)
|
| 221 |
+
|
| 222 |
+
|
| 223 |
+
def _load_artifacts():
|
| 224 |
+
if not (os.path.exists(MODEL_PATH) and os.path.exists(SCALER_PATH) and os.path.exists(PROFILE_PATH) and os.path.exists(ANOMALY_RANGE_PATH)):
|
| 225 |
+
raise RuntimeError("Artifacts not found. Please train the baseline first.")
|
| 226 |
+
with open(MODEL_PATH, "rb") as f:
|
| 227 |
+
iso = pickle.load(f)
|
| 228 |
+
with open(SCALER_PATH, "rb") as f:
|
| 229 |
+
scaler = pickle.load(f)
|
| 230 |
+
with open(PROFILE_PATH, "r") as f:
|
| 231 |
+
profiles = json.load(f)
|
| 232 |
+
with open(ANOMALY_RANGE_PATH, "r") as f:
|
| 233 |
+
anomaly_range = json.load(f)
|
| 234 |
+
return iso, scaler, profiles, anomaly_range
|
| 235 |
+
|
| 236 |
+
|
| 237 |
+
def _blend_risk(anomaly_raw, rule_risk):
|
| 238 |
+
# Normalize anomaly_raw to 0..100 using training range
|
| 239 |
+
with open(ANOMALY_RANGE_PATH, "r") as f:
|
| 240 |
+
rng = json.load(f)
|
| 241 |
+
mn, mx = rng["min"], rng["max"]
|
| 242 |
+
if mx <= mn:
|
| 243 |
+
anom_norm = 50.0
|
| 244 |
+
else:
|
| 245 |
+
anom_norm = 100.0 * (anomaly_raw - mn) / (mx - mn)
|
| 246 |
+
anom_norm = float(np.clip(anom_norm, 0, 100))
|
| 247 |
+
# Blend: 60% model, 40% rules
|
| 248 |
+
final = 0.6 * anom_norm + 0.4 * rule_risk
|
| 249 |
+
return float(np.clip(final, 0, 100)), float(anom_norm)
|
| 250 |
+
|
| 251 |
+
|
| 252 |
+
def score_events(csv_file):
|
| 253 |
+
iso, scaler, profiles, _ = _load_artifacts()
|
| 254 |
+
|
| 255 |
+
try:
|
| 256 |
+
df = pd.read_csv(csv_file)
|
| 257 |
+
except Exception:
|
| 258 |
+
df = pd.read_excel(csv_file, engine="openpyxl")
|
| 259 |
+
|
| 260 |
+
required_cols = {"user", "timestamp", "action", "success", "country", "device", "ip"}
|
| 261 |
+
missing = required_cols - set(df.columns)
|
| 262 |
+
if missing:
|
| 263 |
+
raise ValueError(f"Missing columns: {sorted(list(missing))}")
|
| 264 |
+
|
| 265 |
+
feats = extract_features(df, profiles)
|
| 266 |
+
X = feats[FEATURE_COLUMNS].astype(float).values
|
| 267 |
+
X_scaled = scaler.transform(X)
|
| 268 |
+
decision_scores = iso.decision_function(X_scaled)
|
| 269 |
+
anomaly_raw = -decision_scores
|
| 270 |
+
|
| 271 |
+
# Compute rule risk and reasons
|
| 272 |
+
rule_risks = []
|
| 273 |
+
reasons = []
|
| 274 |
+
for idx, row in feats.iterrows():
|
| 275 |
+
rr = 0.0
|
| 276 |
+
rs = []
|
| 277 |
+
for k, w in RULE_WEIGHTS.items():
|
| 278 |
+
if row[k] == 1:
|
| 279 |
+
rr += w
|
| 280 |
+
rs.append(f"{k.replace('_', ' ').title()} (+{w})")
|
| 281 |
+
rr = float(np.clip(rr, 0, 100))
|
| 282 |
+
rule_risks.append(rr)
|
| 283 |
+
reasons.append("; ".join(rs) if rs else "None")
|
| 284 |
+
|
| 285 |
+
final_scores = []
|
| 286 |
+
anom_norms = []
|
| 287 |
+
for a, rr in zip(anomaly_raw, rule_risks):
|
| 288 |
+
final, anorm = _blend_risk(a, rr)
|
| 289 |
+
final_scores.append(final)
|
| 290 |
+
anom_norms.append(anorm)
|
| 291 |
+
|
| 292 |
+
out = pd.DataFrame({
|
| 293 |
+
"user": feats["user"],
|
| 294 |
+
"timestamp": feats["timestamp"],
|
| 295 |
+
"risk_score": final_scores,
|
| 296 |
+
"model_anomaly": anom_norms,
|
| 297 |
+
"rule_risk": rule_risks,
|
| 298 |
+
"reasons": reasons,
|
| 299 |
+
"failed_login": feats["failed_login"],
|
| 300 |
+
"is_night": feats["is_night"],
|
| 301 |
+
"location_change": feats["location_change"],
|
| 302 |
+
"new_device": feats["new_device"],
|
| 303 |
+
"new_ip": feats["new_ip"],
|
| 304 |
+
"rare_action": feats["rare_action"],
|
| 305 |
+
"impossible_travel": feats["impossible_travel"],
|
| 306 |
+
})
|
| 307 |
+
|
| 308 |
+
# Sort by highest risk first
|
| 309 |
+
out.sort_values("risk_score", ascending=False, inplace=True)
|
| 310 |
+
return out
|
| 311 |
+
|
| 312 |
+
|
| 313 |
+
# -----------------
|
| 314 |
+
# Gradio UI
|
| 315 |
+
# -----------------
|
| 316 |
+
|
| 317 |
+
def ui_train(file):
|
| 318 |
+
if file is None:
|
| 319 |
+
return "Please upload a CSV.", None, None
|
| 320 |
+
status, head_df, summary = train_baseline(file.name)
|
| 321 |
+
return status, head_df, summary
|
| 322 |
+
|
| 323 |
+
|
| 324 |
+
def ui_score(file):
|
| 325 |
+
if file is None:
|
| 326 |
+
return None
|
| 327 |
+
out_df = score_events(file.name)
|
| 328 |
+
return out_df
|
| 329 |
+
|
| 330 |
+
with gr.Blocks(title="UEBA Risk Scoring (Demo)") as demo:
|
| 331 |
+
gr.Markdown("""
|
| 332 |
+
# UEBA Risk Scoring (Demo)
|
| 333 |
+
Train an unsupervised anomaly detector on historical logs and score new events with a blended risk score.
|
| 334 |
+
|
| 335 |
+
**Note:** This demo is simplified for illustration; tailor features, weights, and thresholds to your environment.
|
| 336 |
+
""")
|
| 337 |
+
|
| 338 |
+
with gr.Tab("1) Train Baseline"):
|
| 339 |
+
gr.Markdown("Upload historical logs (CSV) to learn normal behavior.")
|
| 340 |
+
train_file = gr.File(file_types=[".csv", ".xlsx"], label="Training data")
|
| 341 |
+
train_btn = gr.Button("Train Baseline")
|
| 342 |
+
train_status = gr.Markdown()
|
| 343 |
+
train_head = gr.Dataframe(headers=None, interactive=False)
|
| 344 |
+
train_summary = gr.JSON()
|
| 345 |
+
train_btn.click(ui_train, inputs=[train_file], outputs=[train_status, train_head, train_summary])
|
| 346 |
+
|
| 347 |
+
with gr.Tab("2) Score Events"):
|
| 348 |
+
gr.Markdown("Upload new events (CSV) to get risk scores.")
|
| 349 |
+
score_file = gr.File(file_types=[".csv", ".xlsx"], label="Events to score")
|
| 350 |
+
score_btn = gr.Button("Score")
|
| 351 |
+
score_df = gr.Dataframe(interactive=False)
|
| 352 |
+
score_btn.click(ui_score, inputs=[score_file], outputs=[score_df])
|
| 353 |
+
|
| 354 |
+
if __name__ == "__main__":
|
| 355 |
+
demo.launch()
|
requirements.txt
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
gradio==4.44.0
|
| 2 |
+
pandas>=2.0.0
|
| 3 |
+
numpy>=1.24.0
|
| 4 |
+
scikit-learn>=1.3.0
|
| 5 |
+
openpyxl>=3.1.0
|
sample_events.csv
ADDED
|
@@ -0,0 +1,56 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
user,timestamp,action,success,country,device,ip
|
| 2 |
+
alice,2025-09-09T17:00:00,login,1,US,alice_phone,10.0.0.112
|
| 3 |
+
alice,2025-09-10T00:01:00,login,1,US,alice_laptop,10.0.0.125
|
| 4 |
+
alice,2025-09-09T22:21:00,login,1,US,alice_phone,10.0.0.188
|
| 5 |
+
alice,2025-09-10T01:34:00,login,1,US,alice_phone,10.0.0.32
|
| 6 |
+
alice,2025-09-09T22:20:00,login,1,US,alice_phone,10.0.0.116
|
| 7 |
+
alice,2025-09-09T21:14:00,login,1,US,alice_phone,10.0.0.116
|
| 8 |
+
alice,2025-09-10T00:39:00,admin_change,1,US,alice_phone,10.0.0.113
|
| 9 |
+
alice,2025-09-09T17:24:00,login,1,US,alice_phone,10.0.0.97
|
| 10 |
+
alice,2025-09-10T01:51:00,file_download,1,US,alice_laptop,10.0.0.180
|
| 11 |
+
alice,2025-09-09T22:24:00,login,1,US,alice_laptop,10.0.0.51
|
| 12 |
+
alice,2025-09-09T10:55:00,login,0,NG,alice_unknown,172.16.0.74
|
| 13 |
+
bob,2025-09-09T23:23:00,login,1,US,bob_laptop,10.0.1.85
|
| 14 |
+
bob,2025-09-09T23:54:00,file_download,1,US,bob_laptop,10.0.1.176
|
| 15 |
+
bob,2025-09-09T23:17:00,login,1,US,bob_phone,10.0.1.130
|
| 16 |
+
bob,2025-09-09T22:15:00,view_report,1,US,bob_laptop,10.0.1.27
|
| 17 |
+
bob,2025-09-09T17:42:00,admin_change,1,US,bob_laptop,10.0.1.220
|
| 18 |
+
bob,2025-09-09T16:54:00,login,1,US,bob_phone,10.0.1.176
|
| 19 |
+
bob,2025-09-09T20:03:00,file_download,1,US,bob_phone,10.0.1.246
|
| 20 |
+
bob,2025-09-09T18:31:00,login,1,US,bob_laptop,10.0.1.16
|
| 21 |
+
bob,2025-09-09T16:44:00,admin_change,1,US,bob_laptop,10.0.1.158
|
| 22 |
+
bob,2025-09-09T17:03:00,admin_change,1,US,bob_phone,10.0.1.223
|
| 23 |
+
bob,2025-09-09T10:54:00,login,0,NG,bob_unknown,172.16.1.27
|
| 24 |
+
charlie,2025-09-09T20:24:00,login,0,DE,charlie_phone,10.0.2.162
|
| 25 |
+
charlie,2025-09-10T01:04:00,view_report,1,DE,charlie_phone,10.0.2.221
|
| 26 |
+
charlie,2025-09-10T00:51:00,view_report,1,DE,charlie_phone,10.0.2.211
|
| 27 |
+
charlie,2025-09-10T00:10:00,view_report,1,DE,charlie_phone,10.0.2.108
|
| 28 |
+
charlie,2025-09-10T00:20:00,login,1,DE,charlie_phone,10.0.2.220
|
| 29 |
+
charlie,2025-09-10T01:47:00,file_download,1,DE,charlie_phone,10.0.2.218
|
| 30 |
+
charlie,2025-09-09T16:20:00,login,1,DE,charlie_laptop,10.0.2.175
|
| 31 |
+
charlie,2025-09-09T17:57:00,file_download,1,DE,charlie_laptop,10.0.2.176
|
| 32 |
+
charlie,2025-09-09T21:16:00,view_report,1,DE,charlie_laptop,10.0.2.94
|
| 33 |
+
charlie,2025-09-09T18:32:00,login,1,DE,charlie_phone,10.0.2.227
|
| 34 |
+
charlie,2025-09-10T07:55:00,login,0,NG,charlie_unknown,172.16.2.47
|
| 35 |
+
dana,2025-09-09T22:05:00,view_report,1,GB,dana_phone,10.0.3.1
|
| 36 |
+
dana,2025-09-09T23:54:00,login,1,GB,dana_phone,10.0.3.186
|
| 37 |
+
dana,2025-09-10T00:46:00,login,1,GB,dana_laptop,10.0.3.57
|
| 38 |
+
dana,2025-09-09T20:52:00,file_download,1,GB,dana_phone,10.0.3.228
|
| 39 |
+
dana,2025-09-09T16:38:00,view_report,1,GB,dana_phone,10.0.3.77
|
| 40 |
+
dana,2025-09-09T17:50:00,view_report,1,GB,dana_laptop,10.0.3.219
|
| 41 |
+
dana,2025-09-09T22:58:00,login,1,GB,dana_phone,10.0.3.142
|
| 42 |
+
dana,2025-09-09T19:52:00,login,1,GB,dana_phone,10.0.3.78
|
| 43 |
+
dana,2025-09-09T19:48:00,login,1,GB,dana_phone,10.0.3.102
|
| 44 |
+
dana,2025-09-09T22:21:00,view_report,1,GB,dana_laptop,10.0.3.110
|
| 45 |
+
dana,2025-09-09T10:02:00,login,0,CN,dana_unknown,172.16.3.19
|
| 46 |
+
ed,2025-09-10T00:27:00,login,1,US,ed_laptop,10.0.4.73
|
| 47 |
+
ed,2025-09-09T22:56:00,login,1,US,ed_phone,10.0.4.120
|
| 48 |
+
ed,2025-09-09T21:52:00,login,1,US,ed_phone,10.0.4.9
|
| 49 |
+
ed,2025-09-09T16:55:00,login,1,US,ed_laptop,10.0.4.227
|
| 50 |
+
ed,2025-09-10T00:58:00,file_download,1,US,ed_laptop,10.0.4.196
|
| 51 |
+
ed,2025-09-09T19:27:00,view_report,1,US,ed_laptop,10.0.4.125
|
| 52 |
+
ed,2025-09-09T21:40:00,admin_change,1,US,ed_laptop,10.0.4.183
|
| 53 |
+
ed,2025-09-09T16:47:00,login,1,US,ed_phone,10.0.4.238
|
| 54 |
+
ed,2025-09-09T17:20:00,login,1,US,ed_phone,10.0.4.101
|
| 55 |
+
ed,2025-09-09T18:43:00,login,1,US,ed_laptop,10.0.4.137
|
| 56 |
+
ed,2025-09-10T07:34:00,login,0,RU,ed_unknown,172.16.4.226
|
sample_training.csv
ADDED
|
@@ -0,0 +1,532 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
user,timestamp,action,success,country,device,ip
|
| 2 |
+
alice,2025-09-02T03:28:00,login,1,US,alice_laptop,10.0.0.103
|
| 3 |
+
alice,2025-09-02T02:22:00,login,1,US,alice_phone,10.0.0.104
|
| 4 |
+
alice,2025-09-02T07:02:00,login,1,US,alice_phone,10.0.0.158
|
| 5 |
+
alice,2025-09-01T13:01:00,login,1,US,alice_phone,10.0.0.58
|
| 6 |
+
alice,2025-09-02T05:43:00,login,1,US,alice_laptop,10.0.0.170
|
| 7 |
+
alice,2025-09-01T23:14:00,login,1,US,alice_laptop,10.0.0.108
|
| 8 |
+
alice,2025-09-02T06:51:00,login,0,US,alice_laptop,10.0.0.135
|
| 9 |
+
alice,2025-09-02T04:08:00,login,1,US,alice_phone,10.0.0.14
|
| 10 |
+
alice,2025-09-02T01:57:00,login,1,US,alice_phone,10.0.0.92
|
| 11 |
+
alice,2025-09-01T22:59:00,login,1,US,alice_laptop,10.0.0.35
|
| 12 |
+
alice,2025-09-01T21:16:00,login,1,US,alice_phone,10.0.0.254
|
| 13 |
+
alice,2025-09-01T13:53:00,login,1,US,alice_laptop,10.0.0.146
|
| 14 |
+
alice,2025-09-01T19:33:00,login,1,US,alice_laptop,10.0.0.48
|
| 15 |
+
alice,2025-09-01T22:07:00,login,1,US,alice_phone,10.0.0.40
|
| 16 |
+
alice,2025-09-02T04:15:00,file_download,1,US,alice_laptop,10.0.0.53
|
| 17 |
+
alice,2025-09-02T07:25:00,view_report,1,US,alice_phone,10.0.0.124
|
| 18 |
+
bob,2025-09-01T22:44:00,login,1,US,bob_phone,10.0.1.129
|
| 19 |
+
bob,2025-09-01T19:07:00,login,1,US,bob_laptop,10.0.1.136
|
| 20 |
+
bob,2025-09-01T10:34:00,file_download,1,US,bob_laptop,10.0.1.234
|
| 21 |
+
bob,2025-09-01T14:57:00,login,1,US,bob_phone,10.0.1.12
|
| 22 |
+
bob,2025-09-01T09:32:00,login,1,US,bob_phone,10.0.1.37
|
| 23 |
+
bob,2025-09-01T10:43:00,file_download,1,US,bob_laptop,10.0.1.35
|
| 24 |
+
bob,2025-09-01T08:34:00,login,1,US,bob_laptop,10.0.1.5
|
| 25 |
+
bob,2025-09-02T06:13:00,login,1,US,bob_laptop,10.0.1.90
|
| 26 |
+
bob,2025-09-01T17:59:00,login,0,US,bob_laptop,10.0.1.241
|
| 27 |
+
bob,2025-09-02T03:31:00,file_download,1,US,bob_laptop,10.0.1.151
|
| 28 |
+
bob,2025-09-01T14:44:00,login,1,US,bob_laptop,10.0.1.160
|
| 29 |
+
bob,2025-09-01T14:58:00,file_download,1,US,bob_phone,10.0.1.66
|
| 30 |
+
bob,2025-09-01T17:44:00,login,1,US,bob_phone,10.0.1.28
|
| 31 |
+
bob,2025-09-01T19:43:00,login,1,US,bob_phone,10.0.1.250
|
| 32 |
+
bob,2025-09-02T06:27:00,login,1,US,bob_laptop,10.0.1.121
|
| 33 |
+
bob,2025-09-02T03:12:00,view_report,1,US,bob_laptop,10.0.1.198
|
| 34 |
+
bob,2025-09-01T15:26:00,login,1,US,bob_laptop,10.0.1.234
|
| 35 |
+
bob,2025-09-01T19:23:00,view_report,1,US,bob_phone,10.0.1.160
|
| 36 |
+
charlie,2025-09-01T16:51:00,login,1,DE,charlie_phone,10.0.2.12
|
| 37 |
+
charlie,2025-09-01T14:01:00,file_download,1,DE,charlie_laptop,10.0.2.113
|
| 38 |
+
charlie,2025-09-02T07:16:00,login,1,DE,charlie_phone,10.0.2.54
|
| 39 |
+
charlie,2025-09-02T06:36:00,login,1,DE,charlie_phone,10.0.2.130
|
| 40 |
+
charlie,2025-09-02T04:43:00,login,1,DE,charlie_laptop,10.0.2.68
|
| 41 |
+
charlie,2025-09-02T06:10:00,login,1,DE,charlie_phone,10.0.2.24
|
| 42 |
+
charlie,2025-09-01T12:51:00,admin_change,1,DE,charlie_phone,10.0.2.139
|
| 43 |
+
charlie,2025-09-01T23:15:00,view_report,1,DE,charlie_phone,10.0.2.187
|
| 44 |
+
charlie,2025-09-01T13:15:00,login,1,DE,charlie_laptop,10.0.2.164
|
| 45 |
+
charlie,2025-09-02T02:25:00,login,1,DE,charlie_phone,10.0.2.199
|
| 46 |
+
charlie,2025-09-02T03:40:00,file_download,1,DE,charlie_phone,10.0.2.39
|
| 47 |
+
charlie,2025-09-02T01:39:00,login,1,DE,charlie_laptop,10.0.2.178
|
| 48 |
+
charlie,2025-09-02T06:30:00,view_report,1,DE,charlie_laptop,10.0.2.7
|
| 49 |
+
charlie,2025-09-01T23:25:00,admin_change,1,DE,charlie_phone,10.0.2.60
|
| 50 |
+
charlie,2025-09-02T00:01:00,admin_change,1,DE,charlie_phone,10.0.2.140
|
| 51 |
+
charlie,2025-09-01T12:36:00,view_report,1,DE,charlie_laptop,10.0.2.9
|
| 52 |
+
charlie,2025-09-01T16:34:00,file_download,1,DE,charlie_phone,10.0.2.131
|
| 53 |
+
dana,2025-09-02T07:53:00,file_download,1,GB,dana_phone,10.0.3.116
|
| 54 |
+
dana,2025-09-01T18:48:00,login,1,GB,dana_phone,10.0.3.254
|
| 55 |
+
dana,2025-09-01T10:47:00,login,1,GB,dana_laptop,10.0.3.146
|
| 56 |
+
dana,2025-09-01T21:17:00,login,1,GB,dana_laptop,10.0.3.169
|
| 57 |
+
dana,2025-09-01T11:32:00,login,1,GB,dana_phone,10.0.3.148
|
| 58 |
+
dana,2025-09-02T07:07:00,view_report,1,GB,dana_laptop,10.0.3.128
|
| 59 |
+
dana,2025-09-01T08:47:00,login,1,GB,dana_laptop,10.0.3.22
|
| 60 |
+
dana,2025-09-01T21:29:00,view_report,1,GB,dana_laptop,10.0.3.51
|
| 61 |
+
dana,2025-09-02T05:07:00,file_download,1,GB,dana_phone,10.0.3.21
|
| 62 |
+
dana,2025-09-01T08:27:00,file_download,1,GB,dana_laptop,10.0.3.197
|
| 63 |
+
dana,2025-09-01T23:18:00,login,1,GB,dana_phone,10.0.3.17
|
| 64 |
+
dana,2025-09-01T19:27:00,login,1,GB,dana_phone,10.0.3.99
|
| 65 |
+
dana,2025-09-01T16:36:00,view_report,1,GB,dana_laptop,10.0.3.46
|
| 66 |
+
ed,2025-09-01T10:59:00,view_report,1,US,ed_laptop,10.0.4.253
|
| 67 |
+
ed,2025-09-02T04:31:00,view_report,1,US,ed_phone,10.0.4.67
|
| 68 |
+
ed,2025-09-02T01:24:00,login,1,US,ed_laptop,10.0.4.104
|
| 69 |
+
ed,2025-09-01T21:23:00,login,1,US,ed_laptop,10.0.4.194
|
| 70 |
+
ed,2025-09-01T17:01:00,login,1,US,ed_laptop,10.0.4.43
|
| 71 |
+
ed,2025-09-02T05:47:00,login,1,US,ed_phone,10.0.4.99
|
| 72 |
+
ed,2025-09-02T01:24:00,file_download,1,US,ed_phone,10.0.4.250
|
| 73 |
+
ed,2025-09-01T14:56:00,file_download,1,US,ed_phone,10.0.4.65
|
| 74 |
+
ed,2025-09-01T15:45:00,file_download,1,US,ed_phone,10.0.4.115
|
| 75 |
+
ed,2025-09-02T06:14:00,login,1,US,ed_laptop,10.0.4.191
|
| 76 |
+
ed,2025-09-02T05:50:00,login,1,US,ed_laptop,10.0.4.150
|
| 77 |
+
ed,2025-09-02T05:48:00,login,1,US,ed_phone,10.0.4.235
|
| 78 |
+
ed,2025-09-01T12:32:00,view_report,1,US,ed_phone,10.0.4.236
|
| 79 |
+
ed,2025-09-01T19:04:00,login,1,US,ed_phone,10.0.4.116
|
| 80 |
+
alice,2025-09-03T06:39:00,file_download,1,US,alice_laptop,10.0.0.114
|
| 81 |
+
alice,2025-09-02T17:29:00,login,1,US,alice_laptop,10.0.0.92
|
| 82 |
+
alice,2025-09-03T06:25:00,login,1,US,alice_laptop,10.0.0.127
|
| 83 |
+
alice,2025-09-02T16:11:00,login,1,US,alice_laptop,10.0.0.239
|
| 84 |
+
alice,2025-09-02T09:31:00,login,1,US,alice_phone,10.0.0.237
|
| 85 |
+
alice,2025-09-03T04:00:00,view_report,1,US,alice_laptop,10.0.0.192
|
| 86 |
+
alice,2025-09-02T12:21:00,file_download,1,US,alice_laptop,10.0.0.76
|
| 87 |
+
alice,2025-09-02T23:50:00,file_download,1,US,alice_laptop,10.0.0.29
|
| 88 |
+
alice,2025-09-02T21:27:00,login,0,US,alice_phone,10.0.0.190
|
| 89 |
+
alice,2025-09-03T03:04:00,login,1,US,alice_phone,10.0.0.85
|
| 90 |
+
alice,2025-09-02T14:35:00,login,1,US,alice_laptop,10.0.0.250
|
| 91 |
+
alice,2025-09-02T17:53:00,file_download,1,US,alice_phone,10.0.0.180
|
| 92 |
+
bob,2025-09-03T02:57:00,login,1,US,bob_laptop,10.0.1.4
|
| 93 |
+
bob,2025-09-02T23:23:00,view_report,1,US,bob_phone,10.0.1.241
|
| 94 |
+
bob,2025-09-03T03:23:00,file_download,1,US,bob_laptop,10.0.1.124
|
| 95 |
+
bob,2025-09-02T08:32:00,view_report,1,US,bob_laptop,10.0.1.101
|
| 96 |
+
bob,2025-09-02T19:02:00,view_report,1,US,bob_phone,10.0.1.74
|
| 97 |
+
bob,2025-09-02T18:43:00,login,1,US,bob_phone,10.0.1.130
|
| 98 |
+
bob,2025-09-03T02:49:00,file_download,1,US,bob_laptop,10.0.1.90
|
| 99 |
+
bob,2025-09-02T15:28:00,view_report,1,US,bob_phone,10.0.1.254
|
| 100 |
+
bob,2025-09-02T09:50:00,login,1,US,bob_laptop,10.0.1.114
|
| 101 |
+
bob,2025-09-02T20:10:00,view_report,1,US,bob_phone,10.0.1.217
|
| 102 |
+
bob,2025-09-03T04:56:00,login,1,US,bob_phone,10.0.1.192
|
| 103 |
+
bob,2025-09-02T10:48:00,file_download,1,US,bob_phone,10.0.1.210
|
| 104 |
+
bob,2025-09-03T00:38:00,login,1,US,bob_phone,10.0.1.37
|
| 105 |
+
bob,2025-09-02T19:48:00,file_download,1,US,bob_laptop,10.0.1.217
|
| 106 |
+
bob,2025-09-02T10:40:00,login,1,US,bob_phone,10.0.1.112
|
| 107 |
+
bob,2025-09-03T05:12:00,view_report,1,US,bob_laptop,10.0.1.100
|
| 108 |
+
bob,2025-09-02T19:40:00,view_report,1,US,bob_laptop,10.0.1.199
|
| 109 |
+
bob,2025-09-02T21:30:00,view_report,1,US,bob_laptop,10.0.1.250
|
| 110 |
+
bob,2025-09-02T22:15:00,login,1,US,bob_laptop,10.0.1.180
|
| 111 |
+
charlie,2025-09-02T11:52:00,file_download,1,DE,charlie_laptop,10.0.2.39
|
| 112 |
+
charlie,2025-09-02T20:52:00,login,1,DE,charlie_laptop,10.0.2.122
|
| 113 |
+
charlie,2025-09-02T12:34:00,view_report,1,DE,charlie_laptop,10.0.2.75
|
| 114 |
+
charlie,2025-09-03T01:46:00,login,1,DE,charlie_phone,10.0.2.145
|
| 115 |
+
charlie,2025-09-02T13:06:00,login,1,DE,charlie_laptop,10.0.2.178
|
| 116 |
+
charlie,2025-09-02T09:04:00,login,1,DE,charlie_phone,10.0.2.240
|
| 117 |
+
charlie,2025-09-02T20:00:00,view_report,1,DE,charlie_laptop,10.0.2.71
|
| 118 |
+
charlie,2025-09-02T20:03:00,login,1,DE,charlie_laptop,10.0.2.189
|
| 119 |
+
charlie,2025-09-02T19:53:00,file_download,1,DE,charlie_phone,10.0.2.90
|
| 120 |
+
charlie,2025-09-03T02:38:00,login,1,DE,charlie_phone,10.0.2.220
|
| 121 |
+
charlie,2025-09-03T03:27:00,file_download,1,DE,charlie_laptop,10.0.2.105
|
| 122 |
+
charlie,2025-09-02T14:00:00,file_download,1,DE,charlie_phone,10.0.2.190
|
| 123 |
+
charlie,2025-09-03T00:24:00,view_report,1,DE,charlie_phone,10.0.2.117
|
| 124 |
+
charlie,2025-09-02T13:57:00,login,1,DE,charlie_laptop,10.0.2.47
|
| 125 |
+
dana,2025-09-02T23:53:00,view_report,1,GB,dana_phone,10.0.3.229
|
| 126 |
+
dana,2025-09-02T11:34:00,file_download,1,GB,dana_laptop,10.0.3.146
|
| 127 |
+
dana,2025-09-02T22:40:00,login,1,GB,dana_laptop,10.0.3.117
|
| 128 |
+
dana,2025-09-03T05:53:00,login,1,GB,dana_laptop,10.0.3.12
|
| 129 |
+
dana,2025-09-02T17:31:00,login,1,GB,dana_phone,10.0.3.156
|
| 130 |
+
dana,2025-09-03T04:07:00,login,1,GB,dana_phone,10.0.3.186
|
| 131 |
+
dana,2025-09-03T01:27:00,login,1,GB,dana_phone,10.0.3.155
|
| 132 |
+
dana,2025-09-03T05:16:00,login,1,GB,dana_laptop,10.0.3.220
|
| 133 |
+
dana,2025-09-02T23:28:00,login,1,GB,dana_phone,10.0.3.82
|
| 134 |
+
dana,2025-09-03T02:04:00,file_download,1,GB,dana_phone,10.0.3.10
|
| 135 |
+
dana,2025-09-03T07:29:00,view_report,1,GB,dana_laptop,10.0.3.5
|
| 136 |
+
dana,2025-09-03T06:55:00,login,1,GB,dana_phone,10.0.3.239
|
| 137 |
+
dana,2025-09-03T00:10:00,login,1,GB,dana_phone,10.0.3.59
|
| 138 |
+
dana,2025-09-03T00:12:00,login,0,GB,dana_laptop,10.0.3.129
|
| 139 |
+
ed,2025-09-02T23:54:00,view_report,1,US,ed_laptop,10.0.4.197
|
| 140 |
+
ed,2025-09-02T12:37:00,view_report,1,US,ed_laptop,10.0.4.229
|
| 141 |
+
ed,2025-09-03T04:36:00,file_download,1,US,ed_laptop,10.0.4.145
|
| 142 |
+
ed,2025-09-03T04:13:00,login,1,US,ed_laptop,10.0.4.205
|
| 143 |
+
ed,2025-09-02T11:00:00,file_download,1,US,ed_phone,10.0.4.34
|
| 144 |
+
ed,2025-09-02T15:38:00,file_download,1,US,ed_phone,10.0.4.182
|
| 145 |
+
ed,2025-09-03T05:02:00,login,1,US,ed_phone,10.0.4.236
|
| 146 |
+
ed,2025-09-02T12:29:00,view_report,1,US,ed_laptop,10.0.4.145
|
| 147 |
+
ed,2025-09-02T23:46:00,login,1,US,ed_phone,10.0.4.66
|
| 148 |
+
ed,2025-09-02T18:50:00,view_report,1,US,ed_phone,10.0.4.252
|
| 149 |
+
ed,2025-09-02T09:37:00,file_download,1,US,ed_phone,10.0.4.30
|
| 150 |
+
ed,2025-09-02T22:26:00,login,1,US,ed_laptop,10.0.4.166
|
| 151 |
+
ed,2025-09-02T08:23:00,view_report,1,US,ed_phone,10.0.4.247
|
| 152 |
+
ed,2025-09-02T17:50:00,file_download,1,US,ed_laptop,10.0.4.132
|
| 153 |
+
alice,2025-09-04T07:16:00,login,1,US,alice_phone,10.0.0.69
|
| 154 |
+
alice,2025-09-03T09:05:00,login,1,US,alice_laptop,10.0.0.43
|
| 155 |
+
alice,2025-09-03T23:10:00,login,1,US,alice_laptop,10.0.0.80
|
| 156 |
+
alice,2025-09-03T18:53:00,file_download,1,US,alice_phone,10.0.0.104
|
| 157 |
+
alice,2025-09-03T11:55:00,login,1,US,alice_laptop,10.0.0.93
|
| 158 |
+
alice,2025-09-04T01:57:00,login,1,US,alice_phone,10.0.0.92
|
| 159 |
+
alice,2025-09-03T17:21:00,login,1,US,alice_laptop,10.0.0.12
|
| 160 |
+
alice,2025-09-03T21:33:00,login,1,US,alice_laptop,10.0.0.73
|
| 161 |
+
alice,2025-09-03T22:56:00,file_download,1,US,alice_phone,10.0.0.94
|
| 162 |
+
alice,2025-09-03T18:47:00,login,1,US,alice_laptop,10.0.0.8
|
| 163 |
+
alice,2025-09-04T00:34:00,login,1,US,alice_laptop,10.0.0.56
|
| 164 |
+
alice,2025-09-04T05:13:00,file_download,1,US,alice_laptop,10.0.0.78
|
| 165 |
+
alice,2025-09-04T07:01:00,file_download,1,US,alice_phone,10.0.0.187
|
| 166 |
+
alice,2025-09-04T07:50:00,file_download,1,US,alice_laptop,10.0.0.151
|
| 167 |
+
alice,2025-09-03T21:42:00,login,1,US,alice_phone,10.0.0.38
|
| 168 |
+
alice,2025-09-03T10:50:00,login,1,US,alice_laptop,10.0.0.28
|
| 169 |
+
alice,2025-09-03T17:38:00,login,1,US,alice_phone,10.0.0.126
|
| 170 |
+
alice,2025-09-03T19:24:00,view_report,1,US,alice_phone,10.0.0.25
|
| 171 |
+
alice,2025-09-03T11:09:00,file_download,1,US,alice_laptop,10.0.0.146
|
| 172 |
+
bob,2025-09-03T22:21:00,login,1,US,bob_laptop,10.0.1.236
|
| 173 |
+
bob,2025-09-04T02:41:00,login,1,US,bob_phone,10.0.1.64
|
| 174 |
+
bob,2025-09-03T09:58:00,login,1,US,bob_laptop,10.0.1.121
|
| 175 |
+
bob,2025-09-03T08:52:00,login,1,US,bob_laptop,10.0.1.112
|
| 176 |
+
bob,2025-09-03T11:29:00,login,1,US,bob_laptop,10.0.1.152
|
| 177 |
+
bob,2025-09-04T06:08:00,login,1,US,bob_phone,10.0.1.229
|
| 178 |
+
bob,2025-09-03T11:23:00,login,1,US,bob_phone,10.0.1.75
|
| 179 |
+
bob,2025-09-03T11:14:00,view_report,1,US,bob_laptop,10.0.1.94
|
| 180 |
+
bob,2025-09-04T07:37:00,file_download,1,US,bob_laptop,10.0.1.194
|
| 181 |
+
bob,2025-09-03T22:10:00,login,1,US,bob_phone,10.0.1.133
|
| 182 |
+
bob,2025-09-03T13:25:00,login,1,US,bob_laptop,10.0.1.20
|
| 183 |
+
bob,2025-09-04T00:11:00,login,1,US,bob_phone,10.0.1.38
|
| 184 |
+
bob,2025-09-03T12:10:00,view_report,1,US,bob_laptop,10.0.1.235
|
| 185 |
+
charlie,2025-09-03T08:05:00,login,1,DE,charlie_laptop,10.0.2.138
|
| 186 |
+
charlie,2025-09-03T19:01:00,login,1,DE,charlie_laptop,10.0.2.63
|
| 187 |
+
charlie,2025-09-03T12:08:00,file_download,1,DE,charlie_laptop,10.0.2.143
|
| 188 |
+
charlie,2025-09-04T07:37:00,login,1,DE,charlie_laptop,10.0.2.69
|
| 189 |
+
charlie,2025-09-03T19:49:00,login,1,DE,charlie_laptop,10.0.2.162
|
| 190 |
+
charlie,2025-09-03T19:34:00,login,1,DE,charlie_phone,10.0.2.60
|
| 191 |
+
charlie,2025-09-03T15:10:00,file_download,1,DE,charlie_phone,10.0.2.60
|
| 192 |
+
charlie,2025-09-03T10:20:00,login,1,DE,charlie_phone,10.0.2.154
|
| 193 |
+
charlie,2025-09-03T11:24:00,view_report,1,DE,charlie_laptop,10.0.2.146
|
| 194 |
+
charlie,2025-09-03T15:07:00,login,1,DE,charlie_laptop,10.0.2.125
|
| 195 |
+
charlie,2025-09-03T13:32:00,file_download,1,DE,charlie_laptop,10.0.2.225
|
| 196 |
+
charlie,2025-09-04T00:32:00,login,1,DE,charlie_laptop,10.0.2.104
|
| 197 |
+
dana,2025-09-04T02:38:00,login,1,GB,dana_laptop,10.0.3.179
|
| 198 |
+
dana,2025-09-03T15:41:00,login,1,GB,dana_laptop,10.0.3.33
|
| 199 |
+
dana,2025-09-04T03:29:00,view_report,1,GB,dana_phone,10.0.3.157
|
| 200 |
+
dana,2025-09-03T13:56:00,login,1,GB,dana_laptop,10.0.3.33
|
| 201 |
+
dana,2025-09-03T11:21:00,file_download,1,GB,dana_laptop,10.0.3.123
|
| 202 |
+
dana,2025-09-03T17:32:00,login,1,GB,dana_laptop,10.0.3.228
|
| 203 |
+
dana,2025-09-03T20:23:00,file_download,1,GB,dana_laptop,10.0.3.157
|
| 204 |
+
dana,2025-09-03T15:04:00,login,1,GB,dana_laptop,10.0.3.130
|
| 205 |
+
dana,2025-09-04T02:50:00,login,1,GB,dana_laptop,10.0.3.69
|
| 206 |
+
dana,2025-09-04T03:10:00,view_report,1,GB,dana_phone,10.0.3.38
|
| 207 |
+
dana,2025-09-03T13:07:00,login,1,GB,dana_laptop,10.0.3.140
|
| 208 |
+
dana,2025-09-03T20:39:00,login,1,GB,dana_laptop,10.0.3.104
|
| 209 |
+
dana,2025-09-03T18:11:00,login,1,GB,dana_laptop,10.0.3.120
|
| 210 |
+
dana,2025-09-03T12:07:00,file_download,1,GB,dana_laptop,10.0.3.92
|
| 211 |
+
dana,2025-09-03T16:53:00,login,1,GB,dana_laptop,10.0.3.214
|
| 212 |
+
dana,2025-09-03T18:22:00,login,1,GB,dana_phone,10.0.3.110
|
| 213 |
+
dana,2025-09-03T11:53:00,view_report,1,GB,dana_laptop,10.0.3.63
|
| 214 |
+
ed,2025-09-04T06:50:00,login,1,US,ed_laptop,10.0.4.53
|
| 215 |
+
ed,2025-09-03T16:09:00,view_report,1,US,ed_laptop,10.0.4.154
|
| 216 |
+
ed,2025-09-03T16:34:00,login,1,US,ed_laptop,10.0.4.38
|
| 217 |
+
ed,2025-09-03T09:06:00,login,1,US,ed_laptop,10.0.4.128
|
| 218 |
+
ed,2025-09-03T18:58:00,login,1,US,ed_phone,10.0.4.25
|
| 219 |
+
ed,2025-09-03T14:51:00,login,1,US,ed_laptop,10.0.4.29
|
| 220 |
+
ed,2025-09-03T18:21:00,login,1,US,ed_laptop,10.0.4.199
|
| 221 |
+
ed,2025-09-04T00:19:00,login,1,US,ed_phone,10.0.4.220
|
| 222 |
+
ed,2025-09-03T15:48:00,login,1,US,ed_phone,10.0.4.215
|
| 223 |
+
ed,2025-09-04T02:58:00,file_download,1,US,ed_phone,10.0.4.32
|
| 224 |
+
ed,2025-09-04T00:44:00,login,1,US,ed_laptop,10.0.4.18
|
| 225 |
+
ed,2025-09-03T08:13:00,file_download,1,US,ed_phone,10.0.4.194
|
| 226 |
+
ed,2025-09-04T05:27:00,login,1,US,ed_laptop,10.0.4.63
|
| 227 |
+
ed,2025-09-03T11:00:00,login,1,US,ed_laptop,10.0.4.32
|
| 228 |
+
ed,2025-09-03T17:09:00,view_report,1,US,ed_phone,10.0.4.124
|
| 229 |
+
alice,2025-09-05T06:54:00,login,1,US,alice_laptop,10.0.0.8
|
| 230 |
+
alice,2025-09-04T08:56:00,login,1,US,alice_laptop,10.0.0.253
|
| 231 |
+
alice,2025-09-04T15:53:00,login,1,US,alice_laptop,10.0.0.97
|
| 232 |
+
alice,2025-09-04T22:07:00,login,1,US,alice_phone,10.0.0.32
|
| 233 |
+
alice,2025-09-05T07:45:00,view_report,1,US,alice_phone,10.0.0.244
|
| 234 |
+
alice,2025-09-04T12:53:00,login,1,US,alice_phone,10.0.0.210
|
| 235 |
+
alice,2025-09-04T14:09:00,login,1,US,alice_laptop,10.0.0.112
|
| 236 |
+
alice,2025-09-05T02:35:00,file_download,1,US,alice_phone,10.0.0.2
|
| 237 |
+
alice,2025-09-04T08:46:00,file_download,1,US,alice_laptop,10.0.0.234
|
| 238 |
+
alice,2025-09-04T09:02:00,login,1,US,alice_laptop,10.0.0.37
|
| 239 |
+
bob,2025-09-04T16:33:00,view_report,1,US,bob_laptop,10.0.1.244
|
| 240 |
+
bob,2025-09-05T05:43:00,login,1,US,bob_phone,10.0.1.59
|
| 241 |
+
bob,2025-09-04T21:22:00,file_download,1,US,bob_laptop,10.0.1.114
|
| 242 |
+
bob,2025-09-05T02:16:00,login,1,US,bob_laptop,10.0.1.25
|
| 243 |
+
bob,2025-09-04T14:08:00,login,1,US,bob_phone,10.0.1.154
|
| 244 |
+
bob,2025-09-04T20:33:00,login,0,US,bob_phone,10.0.1.128
|
| 245 |
+
bob,2025-09-05T04:41:00,login,1,US,bob_laptop,10.0.1.165
|
| 246 |
+
bob,2025-09-04T13:57:00,file_download,1,US,bob_laptop,10.0.1.106
|
| 247 |
+
bob,2025-09-05T05:20:00,login,1,US,bob_laptop,10.0.1.168
|
| 248 |
+
bob,2025-09-04T09:11:00,file_download,1,US,bob_laptop,10.0.1.199
|
| 249 |
+
bob,2025-09-04T17:44:00,view_report,1,US,bob_laptop,10.0.1.220
|
| 250 |
+
bob,2025-09-04T21:01:00,login,1,US,bob_laptop,10.0.1.181
|
| 251 |
+
bob,2025-09-04T11:50:00,login,1,US,bob_phone,10.0.1.11
|
| 252 |
+
bob,2025-09-04T11:48:00,file_download,1,US,bob_phone,10.0.1.227
|
| 253 |
+
bob,2025-09-05T05:33:00,login,1,US,bob_phone,10.0.1.69
|
| 254 |
+
charlie,2025-09-04T08:57:00,login,1,DE,charlie_laptop,10.0.2.244
|
| 255 |
+
charlie,2025-09-04T18:16:00,login,1,DE,charlie_phone,10.0.2.201
|
| 256 |
+
charlie,2025-09-04T09:52:00,login,1,DE,charlie_laptop,10.0.2.217
|
| 257 |
+
charlie,2025-09-04T18:39:00,login,1,DE,charlie_laptop,10.0.2.242
|
| 258 |
+
charlie,2025-09-04T12:43:00,file_download,1,DE,charlie_phone,10.0.2.102
|
| 259 |
+
charlie,2025-09-04T09:11:00,login,1,DE,charlie_laptop,10.0.2.49
|
| 260 |
+
charlie,2025-09-05T00:09:00,file_download,1,DE,charlie_laptop,10.0.2.47
|
| 261 |
+
charlie,2025-09-04T19:15:00,view_report,1,DE,charlie_phone,10.0.2.223
|
| 262 |
+
charlie,2025-09-05T04:16:00,file_download,1,DE,charlie_phone,10.0.2.208
|
| 263 |
+
charlie,2025-09-04T13:07:00,login,1,DE,charlie_laptop,10.0.2.59
|
| 264 |
+
charlie,2025-09-04T16:44:00,file_download,1,DE,charlie_phone,10.0.2.10
|
| 265 |
+
charlie,2025-09-04T23:06:00,admin_change,1,DE,charlie_phone,10.0.2.213
|
| 266 |
+
charlie,2025-09-05T05:57:00,login,1,DE,charlie_laptop,10.0.2.137
|
| 267 |
+
charlie,2025-09-05T02:47:00,login,1,DE,charlie_laptop,10.0.2.82
|
| 268 |
+
charlie,2025-09-05T03:38:00,login,1,DE,charlie_laptop,10.0.2.17
|
| 269 |
+
charlie,2025-09-04T21:30:00,login,1,DE,charlie_laptop,10.0.2.98
|
| 270 |
+
charlie,2025-09-04T10:36:00,login,1,DE,charlie_laptop,10.0.2.108
|
| 271 |
+
dana,2025-09-04T22:55:00,login,1,GB,dana_laptop,10.0.3.141
|
| 272 |
+
dana,2025-09-05T01:32:00,view_report,1,GB,dana_phone,10.0.3.108
|
| 273 |
+
dana,2025-09-04T09:54:00,login,1,GB,dana_laptop,10.0.3.247
|
| 274 |
+
dana,2025-09-04T20:12:00,login,1,GB,dana_laptop,10.0.3.39
|
| 275 |
+
dana,2025-09-04T21:51:00,login,1,GB,dana_phone,10.0.3.245
|
| 276 |
+
dana,2025-09-04T19:56:00,login,1,GB,dana_laptop,10.0.3.10
|
| 277 |
+
dana,2025-09-04T14:19:00,file_download,1,GB,dana_phone,10.0.3.177
|
| 278 |
+
dana,2025-09-04T10:44:00,login,1,GB,dana_phone,10.0.3.146
|
| 279 |
+
dana,2025-09-04T12:24:00,login,1,GB,dana_laptop,10.0.3.73
|
| 280 |
+
dana,2025-09-04T22:48:00,login,1,GB,dana_laptop,10.0.3.250
|
| 281 |
+
dana,2025-09-04T12:36:00,login,1,GB,dana_phone,10.0.3.63
|
| 282 |
+
dana,2025-09-04T21:23:00,login,1,GB,dana_laptop,10.0.3.199
|
| 283 |
+
dana,2025-09-05T03:03:00,login,1,GB,dana_laptop,10.0.3.54
|
| 284 |
+
dana,2025-09-05T04:50:00,login,1,GB,dana_phone,10.0.3.57
|
| 285 |
+
dana,2025-09-04T16:48:00,view_report,1,GB,dana_phone,10.0.3.6
|
| 286 |
+
dana,2025-09-04T12:04:00,file_download,1,GB,dana_laptop,10.0.3.177
|
| 287 |
+
ed,2025-09-04T10:19:00,admin_change,1,US,ed_laptop,10.0.4.123
|
| 288 |
+
ed,2025-09-04T17:34:00,file_download,1,US,ed_phone,10.0.4.145
|
| 289 |
+
ed,2025-09-05T07:02:00,view_report,1,US,ed_phone,10.0.4.13
|
| 290 |
+
ed,2025-09-05T07:46:00,login,1,US,ed_laptop,10.0.4.98
|
| 291 |
+
ed,2025-09-04T18:40:00,login,1,US,ed_laptop,10.0.4.137
|
| 292 |
+
ed,2025-09-04T10:24:00,view_report,1,US,ed_phone,10.0.4.9
|
| 293 |
+
ed,2025-09-04T22:39:00,view_report,1,US,ed_laptop,10.0.4.187
|
| 294 |
+
ed,2025-09-04T09:23:00,login,0,US,ed_laptop,10.0.4.133
|
| 295 |
+
ed,2025-09-04T23:25:00,login,1,US,ed_phone,10.0.4.205
|
| 296 |
+
ed,2025-09-04T12:12:00,view_report,1,US,ed_phone,10.0.4.45
|
| 297 |
+
ed,2025-09-05T02:57:00,login,1,US,ed_phone,10.0.4.91
|
| 298 |
+
ed,2025-09-04T20:44:00,file_download,1,US,ed_phone,10.0.4.147
|
| 299 |
+
ed,2025-09-04T23:39:00,login,1,US,ed_phone,10.0.4.169
|
| 300 |
+
ed,2025-09-04T20:42:00,login,1,US,ed_phone,10.0.4.191
|
| 301 |
+
ed,2025-09-04T13:59:00,login,1,US,ed_phone,10.0.4.249
|
| 302 |
+
ed,2025-09-05T02:30:00,view_report,1,US,ed_phone,10.0.4.160
|
| 303 |
+
ed,2025-09-04T18:52:00,file_download,1,US,ed_laptop,10.0.4.82
|
| 304 |
+
ed,2025-09-04T11:01:00,view_report,1,US,ed_laptop,10.0.4.12
|
| 305 |
+
alice,2025-09-05T09:31:00,login,1,US,alice_laptop,10.0.0.17
|
| 306 |
+
alice,2025-09-05T15:30:00,login,0,US,alice_laptop,10.0.0.163
|
| 307 |
+
alice,2025-09-05T23:05:00,login,0,US,alice_laptop,10.0.0.224
|
| 308 |
+
alice,2025-09-05T09:27:00,file_download,1,US,alice_phone,10.0.0.37
|
| 309 |
+
alice,2025-09-06T05:03:00,login,1,US,alice_phone,10.0.0.219
|
| 310 |
+
alice,2025-09-06T00:11:00,login,1,US,alice_laptop,10.0.0.22
|
| 311 |
+
alice,2025-09-06T07:58:00,view_report,1,US,alice_phone,10.0.0.192
|
| 312 |
+
alice,2025-09-05T22:28:00,login,1,US,alice_phone,10.0.0.125
|
| 313 |
+
alice,2025-09-05T19:06:00,login,1,US,alice_laptop,10.0.0.79
|
| 314 |
+
alice,2025-09-06T02:10:00,file_download,1,US,alice_phone,10.0.0.226
|
| 315 |
+
alice,2025-09-05T21:33:00,admin_change,1,US,alice_laptop,10.0.0.99
|
| 316 |
+
alice,2025-09-05T20:40:00,login,1,US,alice_laptop,10.0.0.75
|
| 317 |
+
alice,2025-09-06T03:31:00,login,1,US,alice_phone,10.0.0.203
|
| 318 |
+
alice,2025-09-05T10:16:00,view_report,1,US,alice_phone,10.0.0.92
|
| 319 |
+
alice,2025-09-06T04:46:00,login,1,US,alice_phone,10.0.0.147
|
| 320 |
+
alice,2025-09-05T12:02:00,login,1,US,alice_phone,10.0.0.15
|
| 321 |
+
bob,2025-09-05T10:48:00,file_download,1,US,bob_phone,10.0.1.18
|
| 322 |
+
bob,2025-09-05T22:43:00,login,1,US,bob_phone,10.0.1.217
|
| 323 |
+
bob,2025-09-06T00:28:00,file_download,1,US,bob_laptop,10.0.1.27
|
| 324 |
+
bob,2025-09-05T21:49:00,file_download,1,US,bob_laptop,10.0.1.93
|
| 325 |
+
bob,2025-09-05T19:52:00,view_report,1,US,bob_phone,10.0.1.131
|
| 326 |
+
bob,2025-09-06T03:45:00,login,0,US,bob_laptop,10.0.1.17
|
| 327 |
+
bob,2025-09-05T19:19:00,login,1,US,bob_laptop,10.0.1.188
|
| 328 |
+
bob,2025-09-06T05:53:00,login,1,US,bob_phone,10.0.1.139
|
| 329 |
+
bob,2025-09-05T20:16:00,login,1,US,bob_phone,10.0.1.82
|
| 330 |
+
bob,2025-09-05T21:46:00,file_download,1,US,bob_phone,10.0.1.11
|
| 331 |
+
bob,2025-09-05T20:24:00,view_report,1,US,bob_phone,10.0.1.169
|
| 332 |
+
charlie,2025-09-05T18:21:00,file_download,1,DE,charlie_laptop,10.0.2.145
|
| 333 |
+
charlie,2025-09-05T19:56:00,login,0,DE,charlie_phone,10.0.2.86
|
| 334 |
+
charlie,2025-09-06T03:32:00,login,0,DE,charlie_phone,10.0.2.97
|
| 335 |
+
charlie,2025-09-05T09:32:00,login,1,DE,charlie_laptop,10.0.2.77
|
| 336 |
+
charlie,2025-09-06T03:25:00,login,1,DE,charlie_laptop,10.0.2.90
|
| 337 |
+
charlie,2025-09-05T21:57:00,view_report,1,DE,charlie_phone,10.0.2.106
|
| 338 |
+
charlie,2025-09-06T06:43:00,login,1,DE,charlie_laptop,10.0.2.123
|
| 339 |
+
charlie,2025-09-05T13:08:00,view_report,1,DE,charlie_laptop,10.0.2.223
|
| 340 |
+
charlie,2025-09-05T16:49:00,view_report,1,DE,charlie_phone,10.0.2.178
|
| 341 |
+
charlie,2025-09-06T03:46:00,view_report,1,DE,charlie_laptop,10.0.2.203
|
| 342 |
+
charlie,2025-09-06T03:15:00,login,1,DE,charlie_phone,10.0.2.127
|
| 343 |
+
charlie,2025-09-05T10:40:00,login,1,DE,charlie_phone,10.0.2.246
|
| 344 |
+
charlie,2025-09-05T19:22:00,file_download,1,DE,charlie_laptop,10.0.2.45
|
| 345 |
+
charlie,2025-09-06T02:57:00,login,1,DE,charlie_laptop,10.0.2.136
|
| 346 |
+
charlie,2025-09-06T06:52:00,file_download,1,DE,charlie_laptop,10.0.2.44
|
| 347 |
+
charlie,2025-09-06T01:05:00,file_download,1,DE,charlie_phone,10.0.2.37
|
| 348 |
+
charlie,2025-09-06T07:40:00,login,1,DE,charlie_laptop,10.0.2.35
|
| 349 |
+
dana,2025-09-05T22:32:00,view_report,1,GB,dana_laptop,10.0.3.94
|
| 350 |
+
dana,2025-09-06T04:30:00,login,1,GB,dana_laptop,10.0.3.4
|
| 351 |
+
dana,2025-09-05T19:19:00,login,1,GB,dana_laptop,10.0.3.96
|
| 352 |
+
dana,2025-09-05T16:35:00,login,1,GB,dana_phone,10.0.3.66
|
| 353 |
+
dana,2025-09-05T22:33:00,file_download,1,GB,dana_laptop,10.0.3.170
|
| 354 |
+
dana,2025-09-06T02:50:00,login,1,GB,dana_laptop,10.0.3.237
|
| 355 |
+
dana,2025-09-06T01:39:00,view_report,1,GB,dana_laptop,10.0.3.99
|
| 356 |
+
dana,2025-09-05T15:35:00,view_report,1,GB,dana_laptop,10.0.3.42
|
| 357 |
+
dana,2025-09-05T19:13:00,view_report,1,GB,dana_laptop,10.0.3.37
|
| 358 |
+
dana,2025-09-05T12:37:00,login,1,GB,dana_phone,10.0.3.125
|
| 359 |
+
dana,2025-09-05T22:13:00,login,1,GB,dana_phone,10.0.3.231
|
| 360 |
+
dana,2025-09-05T13:16:00,login,1,GB,dana_phone,10.0.3.163
|
| 361 |
+
dana,2025-09-05T12:04:00,login,1,GB,dana_phone,10.0.3.164
|
| 362 |
+
dana,2025-09-05T20:22:00,login,1,GB,dana_laptop,10.0.3.118
|
| 363 |
+
dana,2025-09-05T21:15:00,login,1,GB,dana_phone,10.0.3.105
|
| 364 |
+
ed,2025-09-05T12:19:00,login,1,US,ed_laptop,10.0.4.64
|
| 365 |
+
ed,2025-09-06T05:19:00,login,1,US,ed_laptop,10.0.4.229
|
| 366 |
+
ed,2025-09-05T19:36:00,file_download,1,US,ed_phone,10.0.4.44
|
| 367 |
+
ed,2025-09-06T07:27:00,view_report,1,US,ed_phone,10.0.4.108
|
| 368 |
+
ed,2025-09-06T03:49:00,admin_change,1,US,ed_laptop,10.0.4.37
|
| 369 |
+
ed,2025-09-06T03:25:00,login,1,US,ed_phone,10.0.4.229
|
| 370 |
+
ed,2025-09-06T04:58:00,login,1,US,ed_phone,10.0.4.12
|
| 371 |
+
ed,2025-09-05T17:19:00,admin_change,1,US,ed_phone,10.0.4.251
|
| 372 |
+
ed,2025-09-05T18:33:00,login,1,US,ed_laptop,10.0.4.223
|
| 373 |
+
ed,2025-09-06T07:46:00,login,1,US,ed_phone,10.0.4.84
|
| 374 |
+
alice,2025-09-06T20:51:00,file_download,1,US,alice_phone,10.0.0.124
|
| 375 |
+
alice,2025-09-07T06:07:00,view_report,1,US,alice_laptop,10.0.0.247
|
| 376 |
+
alice,2025-09-06T15:28:00,login,1,US,alice_phone,10.0.0.175
|
| 377 |
+
alice,2025-09-06T09:00:00,view_report,1,US,alice_phone,10.0.0.171
|
| 378 |
+
alice,2025-09-06T17:29:00,login,1,US,alice_phone,10.0.0.47
|
| 379 |
+
alice,2025-09-06T15:48:00,login,1,US,alice_phone,10.0.0.196
|
| 380 |
+
alice,2025-09-06T08:00:00,login,1,US,alice_laptop,10.0.0.48
|
| 381 |
+
alice,2025-09-06T12:40:00,login,1,US,alice_phone,10.0.0.192
|
| 382 |
+
alice,2025-09-06T13:08:00,view_report,1,US,alice_laptop,10.0.0.176
|
| 383 |
+
alice,2025-09-06T20:08:00,login,1,US,alice_laptop,10.0.0.68
|
| 384 |
+
alice,2025-09-06T09:37:00,login,1,US,alice_phone,10.0.0.226
|
| 385 |
+
alice,2025-09-07T01:12:00,file_download,1,US,alice_laptop,10.0.0.109
|
| 386 |
+
alice,2025-09-06T18:00:00,login,1,US,alice_laptop,10.0.0.213
|
| 387 |
+
alice,2025-09-06T22:00:00,login,1,US,alice_laptop,10.0.0.147
|
| 388 |
+
alice,2025-09-06T08:48:00,login,1,US,alice_phone,10.0.0.218
|
| 389 |
+
alice,2025-09-06T18:34:00,login,1,US,alice_phone,10.0.0.174
|
| 390 |
+
bob,2025-09-06T10:20:00,view_report,1,US,bob_phone,10.0.1.194
|
| 391 |
+
bob,2025-09-06T13:27:00,login,1,US,bob_phone,10.0.1.133
|
| 392 |
+
bob,2025-09-06T09:47:00,login,1,US,bob_laptop,10.0.1.43
|
| 393 |
+
bob,2025-09-06T23:22:00,view_report,1,US,bob_phone,10.0.1.108
|
| 394 |
+
bob,2025-09-06T18:44:00,view_report,1,US,bob_laptop,10.0.1.247
|
| 395 |
+
bob,2025-09-06T23:46:00,login,1,US,bob_phone,10.0.1.203
|
| 396 |
+
bob,2025-09-07T02:14:00,login,1,US,bob_laptop,10.0.1.34
|
| 397 |
+
bob,2025-09-06T21:03:00,login,1,US,bob_laptop,10.0.1.157
|
| 398 |
+
bob,2025-09-06T22:27:00,login,1,US,bob_phone,10.0.1.158
|
| 399 |
+
bob,2025-09-07T01:01:00,login,1,US,bob_laptop,10.0.1.94
|
| 400 |
+
bob,2025-09-06T18:06:00,file_download,1,US,bob_phone,10.0.1.39
|
| 401 |
+
bob,2025-09-06T20:30:00,file_download,1,US,bob_phone,10.0.1.241
|
| 402 |
+
bob,2025-09-06T17:41:00,view_report,1,US,bob_phone,10.0.1.196
|
| 403 |
+
bob,2025-09-07T05:06:00,view_report,1,US,bob_phone,10.0.1.120
|
| 404 |
+
bob,2025-09-06T20:41:00,login,0,US,bob_phone,10.0.1.118
|
| 405 |
+
bob,2025-09-07T04:21:00,login,1,US,bob_laptop,10.0.1.10
|
| 406 |
+
bob,2025-09-07T07:57:00,login,1,US,bob_phone,10.0.1.208
|
| 407 |
+
bob,2025-09-07T00:25:00,login,1,US,bob_phone,10.0.1.19
|
| 408 |
+
charlie,2025-09-06T14:09:00,view_report,1,DE,charlie_laptop,10.0.2.164
|
| 409 |
+
charlie,2025-09-06T17:32:00,login,1,DE,charlie_laptop,10.0.2.227
|
| 410 |
+
charlie,2025-09-06T19:33:00,login,1,DE,charlie_phone,10.0.2.176
|
| 411 |
+
charlie,2025-09-06T12:14:00,login,1,DE,charlie_laptop,10.0.2.138
|
| 412 |
+
charlie,2025-09-06T16:13:00,file_download,1,DE,charlie_laptop,10.0.2.254
|
| 413 |
+
charlie,2025-09-06T09:34:00,login,1,DE,charlie_phone,10.0.2.118
|
| 414 |
+
charlie,2025-09-06T14:40:00,file_download,1,DE,charlie_laptop,10.0.2.24
|
| 415 |
+
charlie,2025-09-06T21:18:00,file_download,1,DE,charlie_phone,10.0.2.42
|
| 416 |
+
charlie,2025-09-06T14:44:00,login,1,DE,charlie_laptop,10.0.2.164
|
| 417 |
+
charlie,2025-09-06T10:08:00,login,1,DE,charlie_laptop,10.0.2.231
|
| 418 |
+
charlie,2025-09-06T11:12:00,login,1,DE,charlie_laptop,10.0.2.172
|
| 419 |
+
charlie,2025-09-07T04:07:00,view_report,1,DE,charlie_phone,10.0.2.67
|
| 420 |
+
charlie,2025-09-07T05:43:00,login,1,DE,charlie_phone,10.0.2.130
|
| 421 |
+
dana,2025-09-06T19:01:00,login,1,GB,dana_laptop,10.0.3.30
|
| 422 |
+
dana,2025-09-07T03:07:00,login,1,GB,dana_laptop,10.0.3.77
|
| 423 |
+
dana,2025-09-06T22:56:00,login,1,GB,dana_phone,10.0.3.121
|
| 424 |
+
dana,2025-09-07T06:15:00,login,1,GB,dana_phone,10.0.3.212
|
| 425 |
+
dana,2025-09-06T10:15:00,login,1,GB,dana_laptop,10.0.3.104
|
| 426 |
+
dana,2025-09-07T05:04:00,file_download,1,GB,dana_phone,10.0.3.108
|
| 427 |
+
dana,2025-09-06T08:56:00,file_download,1,GB,dana_phone,10.0.3.198
|
| 428 |
+
dana,2025-09-07T05:17:00,file_download,1,GB,dana_phone,10.0.3.161
|
| 429 |
+
dana,2025-09-07T04:15:00,login,1,GB,dana_laptop,10.0.3.142
|
| 430 |
+
dana,2025-09-06T11:32:00,login,1,GB,dana_laptop,10.0.3.85
|
| 431 |
+
dana,2025-09-06T09:26:00,login,1,GB,dana_laptop,10.0.3.180
|
| 432 |
+
dana,2025-09-07T06:25:00,file_download,1,GB,dana_laptop,10.0.3.6
|
| 433 |
+
dana,2025-09-06T10:21:00,login,1,GB,dana_laptop,10.0.3.244
|
| 434 |
+
dana,2025-09-06T17:11:00,view_report,1,GB,dana_phone,10.0.3.166
|
| 435 |
+
dana,2025-09-07T01:44:00,login,1,GB,dana_phone,10.0.3.206
|
| 436 |
+
dana,2025-09-06T13:02:00,file_download,1,GB,dana_phone,10.0.3.14
|
| 437 |
+
ed,2025-09-06T22:20:00,login,1,US,ed_laptop,10.0.4.210
|
| 438 |
+
ed,2025-09-06T21:19:00,login,1,US,ed_phone,10.0.4.25
|
| 439 |
+
ed,2025-09-07T05:32:00,view_report,1,US,ed_phone,10.0.4.65
|
| 440 |
+
ed,2025-09-06T21:15:00,file_download,1,US,ed_laptop,10.0.4.180
|
| 441 |
+
ed,2025-09-06T10:34:00,login,1,US,ed_laptop,10.0.4.226
|
| 442 |
+
ed,2025-09-06T15:20:00,login,1,US,ed_phone,10.0.4.173
|
| 443 |
+
ed,2025-09-06T19:31:00,login,1,US,ed_laptop,10.0.4.78
|
| 444 |
+
ed,2025-09-07T03:17:00,login,1,US,ed_phone,10.0.4.93
|
| 445 |
+
ed,2025-09-06T18:01:00,file_download,1,US,ed_laptop,10.0.4.31
|
| 446 |
+
ed,2025-09-07T02:04:00,file_download,1,US,ed_phone,10.0.4.89
|
| 447 |
+
ed,2025-09-06T09:10:00,file_download,1,US,ed_laptop,10.0.4.56
|
| 448 |
+
ed,2025-09-06T22:08:00,login,1,US,ed_laptop,10.0.4.73
|
| 449 |
+
ed,2025-09-06T21:50:00,login,1,US,ed_laptop,10.0.4.4
|
| 450 |
+
ed,2025-09-06T11:38:00,login,1,US,ed_phone,10.0.4.52
|
| 451 |
+
ed,2025-09-07T03:35:00,login,1,US,ed_laptop,10.0.4.229
|
| 452 |
+
ed,2025-09-07T03:34:00,login,1,US,ed_phone,10.0.4.199
|
| 453 |
+
ed,2025-09-06T12:21:00,view_report,1,US,ed_laptop,10.0.4.130
|
| 454 |
+
ed,2025-09-07T04:53:00,file_download,1,US,ed_laptop,10.0.4.138
|
| 455 |
+
alice,2025-09-08T07:38:00,file_download,1,US,alice_laptop,10.0.0.213
|
| 456 |
+
alice,2025-09-08T01:44:00,view_report,1,US,alice_phone,10.0.0.229
|
| 457 |
+
alice,2025-09-07T20:31:00,login,1,US,alice_phone,10.0.0.139
|
| 458 |
+
alice,2025-09-08T04:51:00,login,1,US,alice_phone,10.0.0.196
|
| 459 |
+
alice,2025-09-07T09:51:00,login,1,US,alice_laptop,10.0.0.233
|
| 460 |
+
alice,2025-09-08T03:28:00,login,1,US,alice_laptop,10.0.0.113
|
| 461 |
+
alice,2025-09-07T16:16:00,file_download,1,US,alice_laptop,10.0.0.129
|
| 462 |
+
alice,2025-09-07T09:59:00,login,1,US,alice_phone,10.0.0.58
|
| 463 |
+
alice,2025-09-07T15:20:00,view_report,1,US,alice_laptop,10.0.0.34
|
| 464 |
+
alice,2025-09-07T15:58:00,login,1,US,alice_laptop,10.0.0.188
|
| 465 |
+
alice,2025-09-08T06:23:00,view_report,1,US,alice_laptop,10.0.0.160
|
| 466 |
+
alice,2025-09-07T19:00:00,login,0,US,alice_phone,10.0.0.249
|
| 467 |
+
alice,2025-09-08T06:42:00,file_download,1,US,alice_laptop,10.0.0.152
|
| 468 |
+
alice,2025-09-07T10:23:00,login,1,US,alice_phone,10.0.0.58
|
| 469 |
+
alice,2025-09-07T21:35:00,login,1,US,alice_laptop,10.0.0.243
|
| 470 |
+
alice,2025-09-08T02:42:00,login,1,US,alice_phone,10.0.0.96
|
| 471 |
+
bob,2025-09-07T17:37:00,login,1,US,bob_laptop,10.0.1.223
|
| 472 |
+
bob,2025-09-07T15:39:00,file_download,1,US,bob_phone,10.0.1.207
|
| 473 |
+
bob,2025-09-08T01:02:00,login,1,US,bob_phone,10.0.1.105
|
| 474 |
+
bob,2025-09-07T16:24:00,login,0,US,bob_phone,10.0.1.10
|
| 475 |
+
bob,2025-09-08T04:35:00,login,1,US,bob_phone,10.0.1.13
|
| 476 |
+
bob,2025-09-08T04:31:00,file_download,1,US,bob_phone,10.0.1.32
|
| 477 |
+
bob,2025-09-07T09:10:00,login,1,US,bob_phone,10.0.1.183
|
| 478 |
+
bob,2025-09-07T16:24:00,login,1,US,bob_phone,10.0.1.217
|
| 479 |
+
bob,2025-09-08T01:21:00,login,1,US,bob_phone,10.0.1.32
|
| 480 |
+
bob,2025-09-08T02:45:00,login,1,US,bob_phone,10.0.1.32
|
| 481 |
+
bob,2025-09-08T06:38:00,view_report,1,US,bob_laptop,10.0.1.175
|
| 482 |
+
bob,2025-09-08T01:20:00,file_download,1,US,bob_laptop,10.0.1.126
|
| 483 |
+
bob,2025-09-07T15:45:00,file_download,1,US,bob_laptop,10.0.1.151
|
| 484 |
+
bob,2025-09-07T19:31:00,login,1,US,bob_laptop,10.0.1.89
|
| 485 |
+
bob,2025-09-08T05:27:00,login,1,US,bob_laptop,10.0.1.213
|
| 486 |
+
bob,2025-09-07T22:51:00,view_report,1,US,bob_laptop,10.0.1.207
|
| 487 |
+
bob,2025-09-08T02:22:00,view_report,1,US,bob_laptop,10.0.1.22
|
| 488 |
+
charlie,2025-09-07T08:55:00,file_download,1,DE,charlie_phone,10.0.2.19
|
| 489 |
+
charlie,2025-09-08T06:28:00,login,1,DE,charlie_laptop,10.0.2.128
|
| 490 |
+
charlie,2025-09-07T12:46:00,login,1,DE,charlie_phone,10.0.2.129
|
| 491 |
+
charlie,2025-09-07T19:04:00,view_report,1,DE,charlie_phone,10.0.2.104
|
| 492 |
+
charlie,2025-09-07T10:31:00,view_report,1,DE,charlie_phone,10.0.2.235
|
| 493 |
+
charlie,2025-09-07T17:20:00,file_download,1,DE,charlie_laptop,10.0.2.219
|
| 494 |
+
charlie,2025-09-07T09:40:00,login,1,DE,charlie_phone,10.0.2.86
|
| 495 |
+
charlie,2025-09-07T17:25:00,view_report,1,DE,charlie_phone,10.0.2.209
|
| 496 |
+
charlie,2025-09-07T21:13:00,file_download,1,DE,charlie_laptop,10.0.2.121
|
| 497 |
+
charlie,2025-09-08T03:10:00,file_download,1,DE,charlie_laptop,10.0.2.247
|
| 498 |
+
charlie,2025-09-07T13:55:00,login,1,DE,charlie_laptop,10.0.2.125
|
| 499 |
+
charlie,2025-09-07T11:19:00,file_download,1,DE,charlie_phone,10.0.2.227
|
| 500 |
+
charlie,2025-09-07T12:37:00,login,1,DE,charlie_laptop,10.0.2.202
|
| 501 |
+
charlie,2025-09-07T13:45:00,login,1,DE,charlie_phone,10.0.2.17
|
| 502 |
+
dana,2025-09-07T14:03:00,login,1,GB,dana_laptop,10.0.3.80
|
| 503 |
+
dana,2025-09-08T06:51:00,login,1,GB,dana_phone,10.0.3.158
|
| 504 |
+
dana,2025-09-08T01:18:00,login,1,GB,dana_laptop,10.0.3.63
|
| 505 |
+
dana,2025-09-07T21:18:00,login,1,GB,dana_phone,10.0.3.58
|
| 506 |
+
dana,2025-09-07T13:52:00,file_download,1,GB,dana_phone,10.0.3.19
|
| 507 |
+
dana,2025-09-07T23:44:00,login,1,GB,dana_laptop,10.0.3.225
|
| 508 |
+
dana,2025-09-08T01:51:00,login,1,GB,dana_laptop,10.0.3.203
|
| 509 |
+
dana,2025-09-08T05:44:00,login,1,GB,dana_phone,10.0.3.240
|
| 510 |
+
dana,2025-09-07T22:26:00,file_download,1,GB,dana_laptop,10.0.3.78
|
| 511 |
+
dana,2025-09-07T18:38:00,login,1,GB,dana_laptop,10.0.3.244
|
| 512 |
+
dana,2025-09-07T17:49:00,login,1,GB,dana_phone,10.0.3.254
|
| 513 |
+
dana,2025-09-08T05:44:00,file_download,1,GB,dana_laptop,10.0.3.109
|
| 514 |
+
dana,2025-09-08T02:52:00,login,1,GB,dana_phone,10.0.3.243
|
| 515 |
+
dana,2025-09-07T12:28:00,login,1,GB,dana_laptop,10.0.3.74
|
| 516 |
+
dana,2025-09-07T12:35:00,login,1,GB,dana_laptop,10.0.3.39
|
| 517 |
+
dana,2025-09-08T01:34:00,login,1,GB,dana_phone,10.0.3.41
|
| 518 |
+
ed,2025-09-07T21:59:00,login,1,US,ed_phone,10.0.4.152
|
| 519 |
+
ed,2025-09-07T11:20:00,login,1,US,ed_phone,10.0.4.86
|
| 520 |
+
ed,2025-09-07T14:34:00,login,1,US,ed_phone,10.0.4.80
|
| 521 |
+
ed,2025-09-07T23:53:00,login,1,US,ed_phone,10.0.4.44
|
| 522 |
+
ed,2025-09-07T16:44:00,view_report,1,US,ed_laptop,10.0.4.84
|
| 523 |
+
ed,2025-09-08T01:57:00,login,1,US,ed_phone,10.0.4.161
|
| 524 |
+
ed,2025-09-07T14:05:00,view_report,1,US,ed_phone,10.0.4.160
|
| 525 |
+
ed,2025-09-08T07:10:00,view_report,1,US,ed_laptop,10.0.4.176
|
| 526 |
+
ed,2025-09-07T14:20:00,login,1,US,ed_phone,10.0.4.142
|
| 527 |
+
ed,2025-09-07T12:57:00,view_report,1,US,ed_laptop,10.0.4.131
|
| 528 |
+
ed,2025-09-08T06:25:00,login,1,US,ed_laptop,10.0.4.89
|
| 529 |
+
ed,2025-09-08T04:11:00,login,1,US,ed_phone,10.0.4.117
|
| 530 |
+
ed,2025-09-07T11:41:00,login,1,US,ed_laptop,10.0.4.81
|
| 531 |
+
ed,2025-09-08T07:33:00,login,1,US,ed_laptop,10.0.4.86
|
| 532 |
+
ed,2025-09-08T00:16:00,file_download,1,US,ed_phone,10.0.4.198
|