get-report 0.1.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (40) hide show
  1. get_report-0.1.0/PKG-INFO +128 -0
  2. get_report-0.1.0/README.md +116 -0
  3. get_report-0.1.0/pyproject.toml +24 -0
  4. get_report-0.1.0/setup.cfg +4 -0
  5. get_report-0.1.0/src/get_report.egg-info/PKG-INFO +128 -0
  6. get_report-0.1.0/src/get_report.egg-info/SOURCES.txt +38 -0
  7. get_report-0.1.0/src/get_report.egg-info/dependency_links.txt +1 -0
  8. get_report-0.1.0/src/get_report.egg-info/entry_points.txt +2 -0
  9. get_report-0.1.0/src/get_report.egg-info/requires.txt +5 -0
  10. get_report-0.1.0/src/get_report.egg-info/top_level.txt +1 -0
  11. get_report-0.1.0/src/secretscan/__init__.py +1 -0
  12. get_report-0.1.0/src/secretscan/__main__.py +3 -0
  13. get_report-0.1.0/src/secretscan/cli.py +243 -0
  14. get_report-0.1.0/src/secretscan/config.py +187 -0
  15. get_report-0.1.0/src/secretscan/model.py +409 -0
  16. get_report-0.1.0/src/secretscan/redact.py +43 -0
  17. get_report-0.1.0/src/secretscan/report/__init__.py +6 -0
  18. get_report-0.1.0/src/secretscan/report/csv_report.py +26 -0
  19. get_report-0.1.0/src/secretscan/report/html_report.py +235 -0
  20. get_report-0.1.0/src/secretscan/report/json_report.py +15 -0
  21. get_report-0.1.0/src/secretscan/report/table_report.py +145 -0
  22. get_report-0.1.0/src/secretscan/rules/__init__.py +14 -0
  23. get_report-0.1.0/src/secretscan/rules/default.yaml +132 -0
  24. get_report-0.1.0/src/secretscan/rules/entropy.py +17 -0
  25. get_report-0.1.0/src/secretscan/rules/loader.py +34 -0
  26. get_report-0.1.0/src/secretscan/rules/placeholder.py +66 -0
  27. get_report-0.1.0/src/secretscan/rules/rule.py +70 -0
  28. get_report-0.1.0/src/secretscan/scanner/__init__.py +3 -0
  29. get_report-0.1.0/src/secretscan/scanner/chrome.py +518 -0
  30. get_report-0.1.0/src/secretscan/scanner/content.py +104 -0
  31. get_report-0.1.0/src/secretscan/scanner/docker.py +81 -0
  32. get_report-0.1.0/src/secretscan/scanner/engine.py +186 -0
  33. get_report-0.1.0/src/secretscan/scanner/filesystem.py +240 -0
  34. get_report-0.1.0/src/secretscan/scanner/internet.py +48 -0
  35. get_report-0.1.0/src/secretscan/scanner/keychain.py +116 -0
  36. get_report-0.1.0/src/secretscan/scanner/lan.py +167 -0
  37. get_report-0.1.0/src/secretscan/scanner/network.py +156 -0
  38. get_report-0.1.0/src/secretscan/scanner/process_env.py +132 -0
  39. get_report-0.1.0/src/secretscan/scanner/shell_history.py +70 -0
  40. get_report-0.1.0/src/secretscan/scanner/tools.py +174 -0
@@ -0,0 +1,128 @@
1
+ Metadata-Version: 2.4
2
+ Name: get-report
3
+ Version: 0.1.0
4
+ Summary: Scan your computer for secrets and generate a report.
5
+ License-Expression: MIT
6
+ Requires-Python: >=3.10
7
+ Description-Content-Type: text/markdown
8
+ Requires-Dist: pyyaml>=6.0
9
+ Requires-Dist: websocket-client>=1.6.0
10
+ Provides-Extra: crypto
11
+ Requires-Dist: cryptography>=41.0; extra == "crypto"
12
+
13
+ # secretscan-report
14
+
15
+ A personal security-hygiene tool: scans your own machine for accidentally
16
+ exposed secrets (API keys, tokens, passwords, private keys), audits what's
17
+ installed and what's exposed (Docker containers, listening ports, Chrome
18
+ browser cookies), and can optionally check your local network and internet
19
+ connectivity.
20
+
21
+ **Everything runs locally. No secrets ever leave your machine.**
22
+
23
+ ## Install
24
+
25
+ ```sh
26
+ pip install secretscan-report[all]
27
+ ```
28
+
29
+ The `[all]` extra installs `websocket-client`, which is used **only** to talk
30
+ to Chrome's DevTools Protocol on `localhost:9222` for headless browser auditing
31
+ (the same mechanism as [chromedp](https://github.com/chromedp/chromedp) in Go).
32
+ It never makes outbound network connections.
33
+
34
+ Without `[all]`:
35
+
36
+ ```sh
37
+ pip install secretscan-report
38
+ ```
39
+
40
+ This installs the core scanner (filesystem, shell history, keychain, processes,
41
+ network, Docker). Chrome headless auditing is skipped if `websocket-client` is
42
+ not installed.
43
+
44
+ ## Usage
45
+
46
+ ```sh
47
+ # Full scan — all modules including Chrome, LAN, Internet
48
+ # Generates HTML + JSON reports with a progress bar
49
+ secretscan fullscan
50
+
51
+ # Default scan (home dir, default modules)
52
+ secretscan run
53
+
54
+ # Scan a specific directory, filesystem module only
55
+ secretscan run --paths ~/Projects --modules filesystem
56
+
57
+ # Full scan with custom output directory
58
+ secretscan fullscan --output-dir ./report
59
+
60
+ # List all detection rules
61
+ secretscan rules list
62
+ ```
63
+
64
+ ## Modules
65
+
66
+ | Module | Default | What it does |
67
+ |---|---|---|
68
+ | `filesystem` | yes | Scans files under `--paths` (default `$HOME`) for secret patterns |
69
+ | `shell-history` | yes | Scans `.zsh_history`, `.bash_history`, and other history files |
70
+ | `keychain` | yes | Audits macOS Keychain metadata (never decrypts values) |
71
+ | `process-env` | yes | Inspects your own running processes' command lines |
72
+ | `installed-tools` | yes | Inventories security/dev tools and packages |
73
+ | `network` | yes | Lists TCP/UDP ports this machine is listening on |
74
+ | `docker` | yes | Lists running containers, checks for exposed Docker API |
75
+ | `chrome` | yes | Audits Chrome browser: launches headless, reads cookies via CDP, takes screenshots |
76
+ | `lan` | opt-in | Probes other devices on your local network (`--yes-lan`) |
77
+ | `internet` | opt-in | Tests outbound connectivity to public endpoints |
78
+
79
+ ## Output formats
80
+
81
+ - `table` — colored terminal output (default)
82
+ - `json` — machine-readable `{meta, findings}` document
83
+ - `html` — self-contained HTML report with dark/light theme
84
+ - `csv` — flat CSV of findings
85
+
86
+ ## Detection
87
+
88
+ 15 built-in rules covering AWS, GitHub, GitLab, Slack, Stripe, Google, npm,
89
+ PEM private keys, and generic password/secret/token assignments. Each rule
90
+ uses regex matching with optional Shannon entropy scoring and keyword
91
+ pre-filtering for performance.
92
+
93
+ Values that look like placeholders (`{{password}}`, `changeme`, `your_api_key_here`)
94
+ are detected and downgraded rather than competing with real findings.
95
+
96
+ ## Security & privacy
97
+
98
+ - **No outbound network calls** from secret-detection modules — ever.
99
+ - The `chrome` module connects to `localhost:9222` (Chrome DevTools Protocol)
100
+ to audit your own browser. This is the same protocol used by Selenium,
101
+ Playwright, Puppeteer, and chromedp. It copies essential Chrome profile
102
+ files to a temp directory, launches headless Chrome against the copy,
103
+ reads cookies and takes a screenshot, then deletes the copy.
104
+ - The optional `lan` module sends pings to your local subnet (requires `--yes-lan`).
105
+ - The optional `internet` module makes TCP connections to well-known public
106
+ endpoints (e.g. `google.com:443`) to test connectivity.
107
+ - All scan results stay on disk in the output directory you choose.
108
+
109
+ ## Cross-platform
110
+
111
+ Works on macOS, Linux, and Windows. Platform-specific features:
112
+ - **macOS**: Keychain audit, Chrome cookie decryption via Keychain
113
+ - **Linux**: `/proc`-based process inspection
114
+ - **Windows**: `netstat`/`wmic`/`ipconfig` fallbacks
115
+
116
+ ## What this tool does NOT do
117
+
118
+ - No git-history scanning (use Gitleaks/TruffleHog for that)
119
+ - No live credential verification
120
+ - No bypassing macOS security prompts
121
+ - No outbound transmission of findings
122
+ - Secret detection modules never make outbound network calls
123
+
124
+ ## Dependencies
125
+
126
+ - `pyyaml` — for loading rules YAML files
127
+ - `websocket-client` (optional, via `[all]`) — localhost-only CDP communication for Chrome auditing
128
+ - `cryptography` (optional, via `[crypto]`) — macOS Chrome cookie decryption from SQLite fallback
@@ -0,0 +1,116 @@
1
+ # secretscan-report
2
+
3
+ A personal security-hygiene tool: scans your own machine for accidentally
4
+ exposed secrets (API keys, tokens, passwords, private keys), audits what's
5
+ installed and what's exposed (Docker containers, listening ports, Chrome
6
+ browser cookies), and can optionally check your local network and internet
7
+ connectivity.
8
+
9
+ **Everything runs locally. No secrets ever leave your machine.**
10
+
11
+ ## Install
12
+
13
+ ```sh
14
+ pip install secretscan-report[all]
15
+ ```
16
+
17
+ The `[all]` extra installs `websocket-client`, which is used **only** to talk
18
+ to Chrome's DevTools Protocol on `localhost:9222` for headless browser auditing
19
+ (the same mechanism as [chromedp](https://github.com/chromedp/chromedp) in Go).
20
+ It never makes outbound network connections.
21
+
22
+ Without `[all]`:
23
+
24
+ ```sh
25
+ pip install secretscan-report
26
+ ```
27
+
28
+ This installs the core scanner (filesystem, shell history, keychain, processes,
29
+ network, Docker). Chrome headless auditing is skipped if `websocket-client` is
30
+ not installed.
31
+
32
+ ## Usage
33
+
34
+ ```sh
35
+ # Full scan — all modules including Chrome, LAN, Internet
36
+ # Generates HTML + JSON reports with a progress bar
37
+ secretscan fullscan
38
+
39
+ # Default scan (home dir, default modules)
40
+ secretscan run
41
+
42
+ # Scan a specific directory, filesystem module only
43
+ secretscan run --paths ~/Projects --modules filesystem
44
+
45
+ # Full scan with custom output directory
46
+ secretscan fullscan --output-dir ./report
47
+
48
+ # List all detection rules
49
+ secretscan rules list
50
+ ```
51
+
52
+ ## Modules
53
+
54
+ | Module | Default | What it does |
55
+ |---|---|---|
56
+ | `filesystem` | yes | Scans files under `--paths` (default `$HOME`) for secret patterns |
57
+ | `shell-history` | yes | Scans `.zsh_history`, `.bash_history`, and other history files |
58
+ | `keychain` | yes | Audits macOS Keychain metadata (never decrypts values) |
59
+ | `process-env` | yes | Inspects your own running processes' command lines |
60
+ | `installed-tools` | yes | Inventories security/dev tools and packages |
61
+ | `network` | yes | Lists TCP/UDP ports this machine is listening on |
62
+ | `docker` | yes | Lists running containers, checks for exposed Docker API |
63
+ | `chrome` | yes | Audits Chrome browser: launches headless, reads cookies via CDP, takes screenshots |
64
+ | `lan` | opt-in | Probes other devices on your local network (`--yes-lan`) |
65
+ | `internet` | opt-in | Tests outbound connectivity to public endpoints |
66
+
67
+ ## Output formats
68
+
69
+ - `table` — colored terminal output (default)
70
+ - `json` — machine-readable `{meta, findings}` document
71
+ - `html` — self-contained HTML report with dark/light theme
72
+ - `csv` — flat CSV of findings
73
+
74
+ ## Detection
75
+
76
+ 15 built-in rules covering AWS, GitHub, GitLab, Slack, Stripe, Google, npm,
77
+ PEM private keys, and generic password/secret/token assignments. Each rule
78
+ uses regex matching with optional Shannon entropy scoring and keyword
79
+ pre-filtering for performance.
80
+
81
+ Values that look like placeholders (`{{password}}`, `changeme`, `your_api_key_here`)
82
+ are detected and downgraded rather than competing with real findings.
83
+
84
+ ## Security & privacy
85
+
86
+ - **No outbound network calls** from secret-detection modules — ever.
87
+ - The `chrome` module connects to `localhost:9222` (Chrome DevTools Protocol)
88
+ to audit your own browser. This is the same protocol used by Selenium,
89
+ Playwright, Puppeteer, and chromedp. It copies essential Chrome profile
90
+ files to a temp directory, launches headless Chrome against the copy,
91
+ reads cookies and takes a screenshot, then deletes the copy.
92
+ - The optional `lan` module sends pings to your local subnet (requires `--yes-lan`).
93
+ - The optional `internet` module makes TCP connections to well-known public
94
+ endpoints (e.g. `google.com:443`) to test connectivity.
95
+ - All scan results stay on disk in the output directory you choose.
96
+
97
+ ## Cross-platform
98
+
99
+ Works on macOS, Linux, and Windows. Platform-specific features:
100
+ - **macOS**: Keychain audit, Chrome cookie decryption via Keychain
101
+ - **Linux**: `/proc`-based process inspection
102
+ - **Windows**: `netstat`/`wmic`/`ipconfig` fallbacks
103
+
104
+ ## What this tool does NOT do
105
+
106
+ - No git-history scanning (use Gitleaks/TruffleHog for that)
107
+ - No live credential verification
108
+ - No bypassing macOS security prompts
109
+ - No outbound transmission of findings
110
+ - Secret detection modules never make outbound network calls
111
+
112
+ ## Dependencies
113
+
114
+ - `pyyaml` — for loading rules YAML files
115
+ - `websocket-client` (optional, via `[all]`) — localhost-only CDP communication for Chrome auditing
116
+ - `cryptography` (optional, via `[crypto]`) — macOS Chrome cookie decryption from SQLite fallback
@@ -0,0 +1,24 @@
1
+ [build-system]
2
+ requires = ["setuptools>=68.0", "wheel"]
3
+ build-backend = "setuptools.build_meta"
4
+
5
+ [project]
6
+ name = "get-report"
7
+ version = "0.1.0"
8
+ description = "Scan your computer for secrets and generate a report."
9
+ readme = "README.md"
10
+ license = "MIT"
11
+ requires-python = ">=3.10"
12
+ dependencies = ["pyyaml>=6.0", "websocket-client>=1.6.0"]
13
+
14
+ [project.optional-dependencies]
15
+ crypto = ["cryptography>=41.0"]
16
+
17
+ [project.scripts]
18
+ secretscan = "secretscan.cli:main"
19
+
20
+ [tool.setuptools.packages.find]
21
+ where = ["src"]
22
+
23
+ [tool.setuptools.package-data]
24
+ secretscan = ["rules/*.yaml"]
@@ -0,0 +1,4 @@
1
+ [egg_info]
2
+ tag_build =
3
+ tag_date = 0
4
+
@@ -0,0 +1,128 @@
1
+ Metadata-Version: 2.4
2
+ Name: get-report
3
+ Version: 0.1.0
4
+ Summary: Scan your computer for secrets and generate a report.
5
+ License-Expression: MIT
6
+ Requires-Python: >=3.10
7
+ Description-Content-Type: text/markdown
8
+ Requires-Dist: pyyaml>=6.0
9
+ Requires-Dist: websocket-client>=1.6.0
10
+ Provides-Extra: crypto
11
+ Requires-Dist: cryptography>=41.0; extra == "crypto"
12
+
13
+ # secretscan-report
14
+
15
+ A personal security-hygiene tool: scans your own machine for accidentally
16
+ exposed secrets (API keys, tokens, passwords, private keys), audits what's
17
+ installed and what's exposed (Docker containers, listening ports, Chrome
18
+ browser cookies), and can optionally check your local network and internet
19
+ connectivity.
20
+
21
+ **Everything runs locally. No secrets ever leave your machine.**
22
+
23
+ ## Install
24
+
25
+ ```sh
26
+ pip install secretscan-report[all]
27
+ ```
28
+
29
+ The `[all]` extra installs `websocket-client`, which is used **only** to talk
30
+ to Chrome's DevTools Protocol on `localhost:9222` for headless browser auditing
31
+ (the same mechanism as [chromedp](https://github.com/chromedp/chromedp) in Go).
32
+ It never makes outbound network connections.
33
+
34
+ Without `[all]`:
35
+
36
+ ```sh
37
+ pip install secretscan-report
38
+ ```
39
+
40
+ This installs the core scanner (filesystem, shell history, keychain, processes,
41
+ network, Docker). Chrome headless auditing is skipped if `websocket-client` is
42
+ not installed.
43
+
44
+ ## Usage
45
+
46
+ ```sh
47
+ # Full scan — all modules including Chrome, LAN, Internet
48
+ # Generates HTML + JSON reports with a progress bar
49
+ secretscan fullscan
50
+
51
+ # Default scan (home dir, default modules)
52
+ secretscan run
53
+
54
+ # Scan a specific directory, filesystem module only
55
+ secretscan run --paths ~/Projects --modules filesystem
56
+
57
+ # Full scan with custom output directory
58
+ secretscan fullscan --output-dir ./report
59
+
60
+ # List all detection rules
61
+ secretscan rules list
62
+ ```
63
+
64
+ ## Modules
65
+
66
+ | Module | Default | What it does |
67
+ |---|---|---|
68
+ | `filesystem` | yes | Scans files under `--paths` (default `$HOME`) for secret patterns |
69
+ | `shell-history` | yes | Scans `.zsh_history`, `.bash_history`, and other history files |
70
+ | `keychain` | yes | Audits macOS Keychain metadata (never decrypts values) |
71
+ | `process-env` | yes | Inspects your own running processes' command lines |
72
+ | `installed-tools` | yes | Inventories security/dev tools and packages |
73
+ | `network` | yes | Lists TCP/UDP ports this machine is listening on |
74
+ | `docker` | yes | Lists running containers, checks for exposed Docker API |
75
+ | `chrome` | yes | Audits Chrome browser: launches headless, reads cookies via CDP, takes screenshots |
76
+ | `lan` | opt-in | Probes other devices on your local network (`--yes-lan`) |
77
+ | `internet` | opt-in | Tests outbound connectivity to public endpoints |
78
+
79
+ ## Output formats
80
+
81
+ - `table` — colored terminal output (default)
82
+ - `json` — machine-readable `{meta, findings}` document
83
+ - `html` — self-contained HTML report with dark/light theme
84
+ - `csv` — flat CSV of findings
85
+
86
+ ## Detection
87
+
88
+ 15 built-in rules covering AWS, GitHub, GitLab, Slack, Stripe, Google, npm,
89
+ PEM private keys, and generic password/secret/token assignments. Each rule
90
+ uses regex matching with optional Shannon entropy scoring and keyword
91
+ pre-filtering for performance.
92
+
93
+ Values that look like placeholders (`{{password}}`, `changeme`, `your_api_key_here`)
94
+ are detected and downgraded rather than competing with real findings.
95
+
96
+ ## Security & privacy
97
+
98
+ - **No outbound network calls** from secret-detection modules — ever.
99
+ - The `chrome` module connects to `localhost:9222` (Chrome DevTools Protocol)
100
+ to audit your own browser. This is the same protocol used by Selenium,
101
+ Playwright, Puppeteer, and chromedp. It copies essential Chrome profile
102
+ files to a temp directory, launches headless Chrome against the copy,
103
+ reads cookies and takes a screenshot, then deletes the copy.
104
+ - The optional `lan` module sends pings to your local subnet (requires `--yes-lan`).
105
+ - The optional `internet` module makes TCP connections to well-known public
106
+ endpoints (e.g. `google.com:443`) to test connectivity.
107
+ - All scan results stay on disk in the output directory you choose.
108
+
109
+ ## Cross-platform
110
+
111
+ Works on macOS, Linux, and Windows. Platform-specific features:
112
+ - **macOS**: Keychain audit, Chrome cookie decryption via Keychain
113
+ - **Linux**: `/proc`-based process inspection
114
+ - **Windows**: `netstat`/`wmic`/`ipconfig` fallbacks
115
+
116
+ ## What this tool does NOT do
117
+
118
+ - No git-history scanning (use Gitleaks/TruffleHog for that)
119
+ - No live credential verification
120
+ - No bypassing macOS security prompts
121
+ - No outbound transmission of findings
122
+ - Secret detection modules never make outbound network calls
123
+
124
+ ## Dependencies
125
+
126
+ - `pyyaml` — for loading rules YAML files
127
+ - `websocket-client` (optional, via `[all]`) — localhost-only CDP communication for Chrome auditing
128
+ - `cryptography` (optional, via `[crypto]`) — macOS Chrome cookie decryption from SQLite fallback
@@ -0,0 +1,38 @@
1
+ README.md
2
+ pyproject.toml
3
+ src/get_report.egg-info/PKG-INFO
4
+ src/get_report.egg-info/SOURCES.txt
5
+ src/get_report.egg-info/dependency_links.txt
6
+ src/get_report.egg-info/entry_points.txt
7
+ src/get_report.egg-info/requires.txt
8
+ src/get_report.egg-info/top_level.txt
9
+ src/secretscan/__init__.py
10
+ src/secretscan/__main__.py
11
+ src/secretscan/cli.py
12
+ src/secretscan/config.py
13
+ src/secretscan/model.py
14
+ src/secretscan/redact.py
15
+ src/secretscan/report/__init__.py
16
+ src/secretscan/report/csv_report.py
17
+ src/secretscan/report/html_report.py
18
+ src/secretscan/report/json_report.py
19
+ src/secretscan/report/table_report.py
20
+ src/secretscan/rules/__init__.py
21
+ src/secretscan/rules/default.yaml
22
+ src/secretscan/rules/entropy.py
23
+ src/secretscan/rules/loader.py
24
+ src/secretscan/rules/placeholder.py
25
+ src/secretscan/rules/rule.py
26
+ src/secretscan/scanner/__init__.py
27
+ src/secretscan/scanner/chrome.py
28
+ src/secretscan/scanner/content.py
29
+ src/secretscan/scanner/docker.py
30
+ src/secretscan/scanner/engine.py
31
+ src/secretscan/scanner/filesystem.py
32
+ src/secretscan/scanner/internet.py
33
+ src/secretscan/scanner/keychain.py
34
+ src/secretscan/scanner/lan.py
35
+ src/secretscan/scanner/network.py
36
+ src/secretscan/scanner/process_env.py
37
+ src/secretscan/scanner/shell_history.py
38
+ src/secretscan/scanner/tools.py
@@ -0,0 +1,2 @@
1
+ [console_scripts]
2
+ secretscan = secretscan.cli:main
@@ -0,0 +1,5 @@
1
+ pyyaml>=6.0
2
+ websocket-client>=1.6.0
3
+
4
+ [crypto]
5
+ cryptography>=41.0
@@ -0,0 +1 @@
1
+ secretscan
@@ -0,0 +1 @@
1
+ __version__ = "0.1.0"
@@ -0,0 +1,3 @@
1
+ from secretscan.cli import main
2
+
3
+ main()