AuditWalk
Project description
AuditWalk
Local-first security + audit toolkit to capture evidence from the browser, queue it for review, and run lightweight integrity scans without leaving your machine.
Build Planning
- Master MVP checklist:
docs/MVP_BUILD_DOCUMENTATION.md - Execution roadmap:
docs/ROADMAP.md - Near-term task list:
TODO.md - Module ownership map:
docs/architecture/module_ownership.md
Quick Start (Developer Setup)
Clone the repository and run the initial setup:
make install-dev
make hooks
make repo-steward-check
This will:
- Install development dependencies into the local virtual environment
- Install the repository pre-commit hook
- Verify repository stewardship checks pass
Developer setup
Install the local git pre-commit hook:
make hooks
Check whether it is installed:
make hooks-status
MVP Scope
- Bookmarklet that POSTs the active tab (URL + title + timestamp) to a localhost ingest endpoint.
- Loopback-only ingest server (
scripts/run_ingest.py) that validates payloads and appends them to~/.auditwalk/inbox.jsonl. - Inbox utilities + CLI commands (
scripts/auditwalk_cli.py) for listing, processing, and manually adding queue entries. - Hardened file-system scanner (
scanner.py) with optional hashing, suspicious-extension detection, and JSON export to feed future analysis steps. - Documentation covering install, security notes, and usage so Antoine can run the MVP end-to-end.
Install
# Clone + enter repo
cd ~/DevEnv
# (repo already exists locally, update if needed)
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt # if/when we add one; for now: pip install rich tqdm
Usage
1. Run the ingest server
source venv/bin/activate
python3 scripts/run_ingest.py --port 8841 --token YOUR_SHARED_TOKEN
Options:
--host(default127.0.0.1)--port(default8841)--inbox(default~/.auditwalk/inbox.jsonl)--token(optional shared secret; bookmarklet must sendX-AuditWalk-Tokenheader)
2. Install the bookmarklet
Create a new browser bookmark with the URL field set to:
javascript:(()=>{const data={url:location.href,title:document.title,timestamp:Date.now()/1000,source:'bookmarklet'};fetch('http://127.0.0.1:8841/share',{method:'POST',headers:{'Content-Type':'application/json','X-AuditWalk-Token':'TOKEN_HERE'},body:JSON.stringify(data)}).then(()=>console.log('Sent to AuditWalk')).catch(err=>alert('AuditWalk share failed: '+err));})();
Update TOKEN_HERE if you launched the server with --token.
3. Manage the inbox
python3 scripts/auditwalk_cli.py inbox-list --limit 10
python3 scripts/auditwalk_cli.py inbox-process --clear
python3 scripts/auditwalk_cli.py inbox-add https://example.com --title "Manual"
inbox-list– prints recent captures.inbox-process– dumps entries (optionally--clear).inbox-add– helper for manual testing without the bookmarklet.
4. Run the scanner
python3 scanner.py --path /home/adenmediagroup --recent-hours 24 --json-report outputs/scan.json
Flags:
--no-hashto skip SHA-256 (faster, no dedupe)--suspicious-exts ".exe,.dll"to customize detection list--json-reportto capture structured results for later diffing
Outputs
- Inbox file:
~/.auditwalk/inbox.jsonl(one JSON object per line). Use the CLI to view/process entries. - Scanner report: Rich tables in the console + optional JSON file containing every record, suspicious hits, and recent-change counts.
- Docs:
docs/inbox_workflow.mdfor the share workflow, plus this README for quick start.
Security Notes
- Ingest server binds to
127.0.0.1only. Keep it behind a shared token to avoid drive-by localhost POSTs. - Bookmarklet may require allowing mixed content on strict HTTPS pages.
- Inbox file inherits your home permissions; ensure
~/.auditwalkis not world-readable. - Scanner skip lists prevent re-hashing this repo and common churn directories; adjust as needed per environment.
Project details
Release history Release notifications | RSS feed
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 auditwalk-0.1.0.tar.gz.
File metadata
- Download URL: auditwalk-0.1.0.tar.gz
- Upload date:
- Size: 43.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6e5b19c85567ceda744e2c6231c215aa8ac70eadd0aaf0bbb0d70b409e5bb5fd
|
|
| MD5 |
d287df01fb5f2a9d8791cdae9ce361ef
|
|
| BLAKE2b-256 |
2402c9c798060dff9b9eb8b2f540c4d096f585abc65246fff2c6bf347c5079c6
|
File details
Details for the file auditwalk-0.1.0-py3-none-any.whl.
File metadata
- Download URL: auditwalk-0.1.0-py3-none-any.whl
- Upload date:
- Size: 49.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
074d3b45fd8dd1e0c6a2c077ba0466d82c3cbffd4b67ad1d433031772efe7438
|
|
| MD5 |
62246e0a805c18f0400fe4e30ea081e8
|
|
| BLAKE2b-256 |
f308466316f45d1d5a8fbf22183cb4ab1ea86425fe451ef3abf05037e17fe479
|