Commit graph

22 commits

Author SHA1 Message Date
Richard Nixon
6edc45b3fe run container as non-root and prune unused deps
Add a dedicated `eirescope` user (UID 1000) and chown /app to it so
the image no longer runs as root.

Drop flask and sqlalchemy from requirements.txt — neither is imported
anywhere; the server uses stdlib http.server and raw sqlite3. Add
jinja2 explicitly (it was previously a transitive of Flask) and pin
upper bounds on every dep so builds are at least somewhat reproducible.
2026-05-16 10:06:38 +00:00
Richard Nixon
a101dc61d5 bind to loopback by default and serve concurrently
`run.py` and the server defaults exposed the dashboard on every
interface with no authentication. Default to 127.0.0.1; the Docker
entrypoint still passes --host 0.0.0.0 explicitly, so containers are
unaffected. Document the override in the --host help text.

Also switch from HTTPServer to ThreadingHTTPServer so one slow
investigation (subdomain enumeration / whois / ~200 social URL
probes) no longer blocks every other request.
2026-05-15 02:52:15 +00:00
Richard Nixon
9dda742fef cap request body to prevent memory DoS
Both search handlers trusted the client-supplied Content-Length and
passed it straight to `rfile.read()`, so a single request with a
forged `Content-Length: 1073741824` would allocate gigabytes. Clamp
to 64 KiB, well above any legitimate search payload.
2026-05-09 18:29:49 +00:00
Richard Nixon
dd3a3db95d fix stored XSS in investigation/report templates
`{{ json_data|safe }}` injected the output of `json.dumps(summary)` raw
into a <script> block. Python's json.dumps does not escape </script>,
so any attacker-controlled string in the summary (the query itself
when entity_type is company/person, scraped WHOIS, breach names, etc.)
could close the script tag and execute arbitrary JS in viewers'
browsers.

Use Jinja2's `tojson` filter, which produces HTML-safe JSON (escapes
<, >, &, ' to \uXXXX). Drop the server-side json.dumps argument and
the unused `json` import in report_generator.
2026-05-09 00:55:13 +00:00
Richard Nixon
3365e0b23e fix path traversal in /static/ handler
`_serve_static` joined the URL-supplied filepath directly into STATIC_DIR
without normalising `..` segments or rejecting absolute paths, allowing
arbitrary file read on the host. Resolve both sides to realpaths and
require the result to live under STATIC_DIR.
2026-05-08 17:59:19 +00:00
root
0eb17a3b37 add Docker containerization and Umami analytics support
- Dockerfile with python:3.11-slim, whois and dnsutils
- docker-entrypoint.sh for container startup
- .dockerignore to keep image lean
- Umami analytics script in base.html (conditional)
- Inject EIRESCOPE_UMAMI_WEBSITE_ID via Jinja2 globals
2026-03-04 22:38:34 +01:00
Richard Nixon
0168261e00 fix CRO module: use correct CKAN resource, add SQL search fallback, integrate CWS API 2026-02-21 13:30:00 +00:00
Richard Nixon
ee84906f6d add company and person types to search form, fix CRO visibility, update platform count 2026-02-21 13:00:00 +00:00
Richard Nixon
e405df7a08 add company and person entity types to graph legend and CSS styles 2026-02-21 12:45:00 +00:00
Richard Nixon
6117feea72 update README with enhanced breach sources, 200+ platforms, and CRO module docs 2026-02-21 12:30:00 +00:00
Richard Nixon
e4289decfa add Irish Companies Office (CRO) module with CKAN open data API 2026-02-21 12:00:00 +00:00
Richard Nixon
2de192556b expand username search from 40 to 200+ platforms 2026-02-21 11:30:00 +00:00
Richard Nixon
acc346b5d0 add enhanced breach database integrations (LeakCheck, BreachDirectory, EmailRep) 2026-02-21 11:00:00 +00:00
Richard Nixon
caa104c2ff clean up README and remove unnecessary references 2026-02-21 10:30:00 +00:00
Richard Nixon
212a1b274d add report generator, entry point, README and LICENSE 2026-02-21 10:00:00 +00:00
Richard Nixon
0ee2f7da9a add web UI: HTTP server, templates, dark theme CSS, D3.js graph visualization 2026-02-21 01:30:00 +00:00
Richard Nixon
2456047f8c implement investigation engine, plugin manager and result aggregation 2026-02-21 00:00:00 +00:00
Richard Nixon
214ef8ad1b add OSINT modules: IP recon, domain recon, social media discovery 2026-02-20 23:15:00 +00:00
Richard Nixon
faed675969 add OSINT modules: username search, email enrichment, phone analysis 2026-02-20 22:30:00 +00:00
Richard Nixon
d1561f1120 implement core foundation: entity models, validators, http client, database 2026-02-20 21:45:00 +00:00
Richard Nixon
40a463ba03 add project structure, config and dependencies 2026-02-20 21:00:00 +00:00
Richard Nixon
486036f89a
Initial commit 2026-02-20 21:44:10 +00:00