TIBET Bill Of Hack — operator-side attack inventory with chain positions, corroborating artefacts, and markdown export
Project description
tibet-bom — TIBET Bill Of Hack
Every adversarial action indexed. Every operator-side artefact anchored.
tibet-bom is a compact operator-side evidence unit for pentest and
incident-review work. It turns a noisy attack window into a chain-indexed
inventory:
- what was hit
- when it was hit
- where it happened
- how the substrate classified it
- which corroborating artefacts anchor the claim
This draft package is seeded with the confirmed Humotica Phase 5
engagement window from 2026-05-04 12:27:24 UTC to
2026-05-04 12:29:39 UTC.
It should be read as the product-neighbour of tibet-nis2:
tibet-nis2-> compliance coveragetibet-bom-> incident transparency- next logical layer ->
tibet-incident/tibet-forensics
Why This Exists
Security reports usually describe findings. Raw logs usually describe events. A TIBET-BOM sits between them:
- more compact than a full chain dump
- more auditable than prose
- more substrate-native than a classic incident summary
For the Red Specter joint paper, that makes it a good counterpart to attacker-side evidence files.
Longer-term, this is also a credible NIS2 / ENISA / CSIRT reporting primitive: a human-readable forensic bundle with cryptographic anchors.
What It Covers
| Layer | Purpose | In This Unit |
|---|---|---|
| Chain positions | Where the event lives in the typed chain view | Yes |
| Timestamps | Exact UTC timing of the attack flow | Yes |
| Endpoint surface | Which substrate route was touched | Yes |
| Corroborating artefacts | nginx hashes and adjacent request evidence | Yes |
| Absolute DB positions | Verified ranks in jtel_security.tibet_tokens |
Yes |
| Public global chain integers | Final public chain lookup mapping | Unverified |
| pcap paths/hashes | Packet capture persistence | Not yet |
Installation
From this sandbox directory:
cd /srv/jtel-stack/sandbox/ai/codex/tibet-bom-unit
pip install -e .
Or run the module directly:
python -m tibet_bom info
CLI Usage
tibet-bom info
tibet-bom table
tibet-bom timeline
tibet-bom report
tibet-bom artifacts
tibet-bom time-source
tibet-bom json
tibet-bom markdown
All commands support --json only where explicitly noted.
Commands
info— overview of scope, exclusion note, evidence counts, and time-source summarytable— compact BOM table in terminal formattimeline— ordered timeline grouped for incident reviewreport— push-button incident transparency report (includes time-source disclosure)artifacts— corroborating artefact hashestime-source— full time-source status: evidence-server NTP sync, drift vs anchor, advisory, remediation pathjson— full machine-readable payload (includestime_source_statusfield)markdown— render a paper-ready markdown BOM (includes Time-Source Status section)
Time-Source Disclosure
Forensic timestamps depend on the clock that produced them. The current fixture reports timestamps as observed on the evidence server (P520), whose clock state at measurement-time was:
- NTP service: not active
- Drift vs NTP-anchored anchor server: +14.187s (P520 ahead of truth)
- RTC drift: ~35s
But the more important point is structural: TIBET already preserves causal/logical order independently of wall-clock authority. In practice:
prev_token_idpreserves happened-before ordergenerationacts as a logical counterparent_token_idcaptures causal predecessor relationships- the hash chain makes the ordering tamper-evident
So the time-source command should be read as an absolute-time disclosure
layer, not as the basis of truth for event ordering. Within-window
relative ordering, sequencing, and duration remain valid from the
single-clock evidence lane plus the TIBET chain structure; cross-source
absolute comparison should account for the drift band.
Important Exclusion
The 2026-05-05 08:38:06 UTC 192.168.4.76 sample is not Phase 5
attack data. It is post-engagement house-keeping / reachability testing
and should not be cited as attacker evidence.
DB Backsolve Status
The confirmed Phase 5 slice has been backsolved directly from Postgres:
- absolute ascending positions in
jtel_security.tibet_tokens:407-423 - descending ranks for the same rows:
298-282
Current route caveat:
- the deployed code clearly exposes auth-gated
/api/tibet/chains - a live public
/api/tibet/chain/[pos]implementation is referenced in paper drafts but could not be verified in the current codebase
Status
This unit currently encodes the confirmed operator-side Phase 5 slice. It is intended to be compared and merged with Jasper / Claude wording once a concrete local BOM draft path exists.
Machine-Readable Fixture
The direct DB backsolve is also stored as a reusable fixture in:
src/tibet_bom/fixtures.py
That fixture includes:
- exact token IDs
- timestamps
- endpoint/path fields
- absolute DB positions (
407-422ascending) - typed-view windows
- route-status caveat for
api/tibet/chain/[pos]
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file tibet_bom-0.1.2.tar.gz.
File metadata
- Download URL: tibet_bom-0.1.2.tar.gz
- Upload date:
- Size: 11.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9dc2c21a80bbb4716e0497f1d5d80bdd30fb3427a55454cfb214b55090cf1cca
|
|
| MD5 |
892981a6e6d6601c439f99ed90765e73
|
|
| BLAKE2b-256 |
ef44b35f4c86c15089e62705494f13cb13c7baeb28247e3809e243c31e88b39d
|
File details
Details for the file tibet_bom-0.1.2-py3-none-any.whl.
File metadata
- Download URL: tibet_bom-0.1.2-py3-none-any.whl
- Upload date:
- Size: 12.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
50c62b93f3681a64e0350291cf5d0ec7cdf5fb1665372c6397d79dd87f2eedc9
|
|
| MD5 |
dee04634c9b1cabb94bdd9d13337fca2
|
|
| BLAKE2b-256 |
43ebe2770a4c50d478f39a87f06f2d2083a3b485e85f37917a86e621490c196b
|