- Introduced AGENTS.md, README.md, TASKS.md, and implementation_plan.md for Vexer, detailing mission, responsibilities, key components, and operational notes. - Established similar documentation structure for Vulnerability Explorer and Zastava modules, including their respective workflows, integrations, and observability notes. - Created risk scoring profiles documentation outlining the core workflow, factor model, governance, and deliverables. - Ensured all modules adhere to the Aggregation-Only Contract and maintain determinism and provenance in outputs.
25 lines
1.3 KiB
Markdown
25 lines
1.3 KiB
Markdown
# Entry-Point Runtime — Nginx
|
|
|
|
## Signals to gather
|
|
- `argv0` equals `nginx`.
|
|
- Config files: `/etc/nginx/nginx.conf`, `conf.d/*.conf`, `/usr/share/nginx/html`.
|
|
- Environment (`NGINX_ENTRYPOINT_QUIET_LOGS`, `NGINX_PORT`, `NGINX_ENVSUBST_TEMPLATE`).
|
|
- Listening sockets on 80/443 (dynamic mode) or `EXPOSE 80` (static).
|
|
- Modules or scripts shipped with the official Docker entrypoint (`docker-entrypoint.sh` collapsing to `nginx -g "daemon off;"`).
|
|
|
|
## Implementation notes
|
|
- Parse `nginx.conf` (basic directive traversal) to extract worker processes, include chains, upstream definitions.
|
|
- Handle official entrypoint idioms (`envsubst` templating) via ShellFlow.
|
|
- Distinguish pure reverse proxies from PHP-FPM combos; when both `nginx` and `php-fpm` run, classify container as `Supervisor`.
|
|
- Record static web content presence (`/usr/share/nginx/html/index.html`).
|
|
|
|
## Evidence & scoring
|
|
- Boost for confirmed config and workers.
|
|
- Add evidence for templating features, env substitution, or modules.
|
|
- Penalise if binary exists without config (likely not the entry point).
|
|
|
|
## Edge cases
|
|
- Alpine images may place configs under `/etc/nginx/conf.d`; include both.
|
|
- Custom builds might rename binary (`openresty`, `tengine`); consider aliases if common.
|
|
- Windows Nginx not supported; fall back to `Other`.
|