Reproducible negative result on the BATADAL water-ICS benchmark

badatchess1 pts0 comments

GitHub - holland202/sentinel-batadal-validation · GitHub

/" data-turbo-transient="true" />

Skip to content

Search or jump to...

Search code, repositories, users, issues, pull requests...

-->

Search

Clear

Search syntax tips

Provide feedback

--><br>We read every piece of feedback, and take your input very seriously.

Include my email address so I can be contacted

Cancel

Submit feedback

Saved searches

Use saved searches to filter your results more quickly

-->

Name

Query

To see all available qualifiers, see our documentation.

Cancel

Create saved search

Sign in

/;ref_cta:Sign up;ref_loc:header logged out"}"<br>Sign up

Appearance settings

Resetting focus

You signed in with another tab or window. Reload to refresh your session.<br>You signed out in another tab or window. Reload to refresh your session.<br>You switched accounts on another tab or window. Reload to refresh your session.

Dismiss alert

{{ message }}

holland202

sentinel-batadal-validation

Public

Notifications<br>You must be signed in to change notification settings

Fork

Star

main

BranchesTags

Go to file

CodeOpen more actions menu

Folders and files<br>NameNameLast commit message<br>Last commit date<br>Latest commit

History<br>13 Commits<br>13 Commits

.gitignore

.gitignore

LICENSE.md

LICENSE.md

README.md

README.md

REPRODUCED.md

REPRODUCED.md

fetch_batadal.sh

fetch_batadal.sh

sentinel_batadal.py

sentinel_batadal.py

sentinel_results.png

sentinel_results.png

View all files

Repository files navigation

SENTINEL x BATADAL — Public Benchmark Validation

Vincit Omnia Veritas — Truth Conquers All.

Left panel y-axis is tick recall (attack ticks flagged / total attack ticks); the axis label reads "episode recall" and is wrong -- it will be corrected when the figure is regenerated. Episode counts are in the table below.

Independent validation of SENTINEL's detection method — two-window<br>Jensen-Shannon divergence change detection on per-channel sensor<br>histograms — against the public BATADAL water-distribution attack<br>benchmark (Taormina et al. 2018). Part of Sovereign Evolution:<br>edge-native critical-infrastructure defense, built and run entirely<br>on-device (Android/Termux, Python + NumPy, no cloud).

Not the proprietary SENTINEL v12: this is a faithful reference<br>implementation plus evaluation harness. class Detector is the seam<br>where the production detector drops in. Thresholds auto-calibrate from<br>clean data (99.5th percentile) — no proprietary constants anywhere.

Detection results (live runs, test set: 2,089 records, 7 attacks)

Profile<br>samples/bin<br>Episodes<br>Tick recall<br>F1

Conservative (w=100,b=12)<br>8.33<br>2/7<br>20.9%<br>0.251

Balanced (w=60,b=16)<br>3.75<br>4/7<br>15.2%<br>0.225

Aggressive (w=30,b=16)<br>1.88<br>3/7<br>1.2%<br>0.023

Definitions. Episodes = attack episodes with at least one flagged tick (of 7). Tick recall = TP/(TP+FN) over labeled attack ticks. These measure different things, so a profile can detect more episodes at lower tick recall.

The histogram under-sampling failure mode is real and reproduced on<br>external labeled data: at 1.88 samples/bin, recall collapses to ~1%.

Attribution results (vs published per-attack ground truth)

Config<br>Exact target in top-5<br>Attack-area in top-5

Point (w=30,b=12)<br>4/7<br>5/7

Area (w=48,b=16)<br>3/7<br>7/7

Two honest operating points: the wide window localizes every attack to<br>a physically-relevant channel; the tight window pins the exact sensor<br>more often. Attacks 9/12 replay L_T2 to SCADA, so coupled-channel<br>localization is the correct outcome there. Caveats: reference detector<br>(a baseline the tuned v12 should beat); exact-sensor localization at<br>hourly granularity is inherently limited — published literature reports<br>the same constraint.

Reproduce

pip install numpy --break-system-packages<br>bash fetch_batadal.sh<br>python3 sentinel_batadal.py

Data (c) its authors, not redistributed here — cite Taormina et al. 2018,<br>J. Water Resour. Plann. Manage. 144(8).

License

Research use with attribution — see LICENSE.md. Commercial licensing:<br>c.holland.arch@proton.me

Chad Edward Holland (@holland202) · Sovereign Evolution · Oklahoma, USA

About<br>No description, website, or topics provided.<br>Resources<br>Readme<br>License<br>Activity<br>Stars<br>1 star<br>Watchers<br>0 watching<br>Forks<br>0 forks<br>Report repository

Releases

Packages

Contributors

Languages

You can’t perform that action at this time.

attack window recall batadal sentinel search

Related Articles