用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/CyberStrikeus/CyberStrike --skill cis-nginx-v300-3-1命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
基于 SOC 职业分类
正在显示 SKILL.md
| name | cis-nginx-v300-3-1 |
| description | Ensure detailed logging is enabled (Manual) |
| category | cis-nginx |
| version | 3.0 |
| author | cyberstrike-official |
| tags | ["cis","nginx","web-server","reverse-proxy","logging"] |
| cis_id | 3.1 |
| cis_benchmark | CIS NGINX Benchmark v3.0.0 |
| tech_stack | ["nginx","linux","web-server"] |
| cwe_ids | [] |
| chains_with | [] |
| prerequisites | [] |
| severity_boost | {} |
System logging must be configured to meet organizational security and privacy policies. Detailed logs provide the necessary context (event source, timestamp, user, network data) for incident response and forensic analysis. Modern logging strategies favor structured formats (JSON) over unstructured text to facilitate parsing by SIEM solutions.
Note: Sensitive information (e.g., session tokens, PII in query strings) should be excluded or masked in logs to prevent data leaks.
Detailed logs are the foundation of effective incident response. CIS Control 8.5 ("Collect Detailed Audit Logs") recommends capturing event sources, dates, users, timestamps, and network addresses. Traditional text logs require complex, fragile Regex parsing that breaks easily when formats change. Structured logging (JSON) solves this by providing a self-describing format that is natively ingested by modern analysis tools (SIEM), ensuring that critical forensic data is always indexable and searchable.
Enabling detailed JSON logging increases the volume of log data. Ensure your log rotation policies (logrotate) and disk space monitoring are adjusted to handle the increased storage requirements.
1. Verify Log Format Configuration:
Inspect the log_format directives in your configuration:
nginx -T 2>/dev/null | grep -i "log_format"
Evaluation:
$time_iso8601, $remote_addr, $remote_user, $request, $status, $http_user_agent.2. Verify Access Log Usage:
Check that the defined format is actually used by the access_log directive:
nginx -T 2>/dev/null | grep "access_log"
Evaluation:
access_log directive should reference the detailed format name (e.g., access_log /var/log/nginx/access.json main_access_json;).Define a detailed log format in the http block of /etc/nginx/nginx.conf. It is highly recommended to use JSON format for compatibility with modern SIEM tools.
Recommended Configuration (JSON):
http {
log_format main_access_json escape=json '{'
'"timestamp": "$time_iso8601",'
'"remote_addr": "$remote_addr",'
'"remote_user": "$remote_user",'
'"server_name": "$server_name",'
'"request_method": "$request_method",'
'"request_uri": "$request_uri",'
'"status": $status,'
'"body_bytes_sent": $body_bytes_sent,'
'"http_referer": "$http_referer",'
'"http_user_agent": "$http_user_agent",'
'"x_forwarded_for": "$http_x_forwarded_for",'
'"request_id": "$request_id"'
'}';
# Apply the format globally or per server
access_log /var/log/nginx/access.json main_access_json;
}
Legacy Configuration (Text-based):
If JSON is not feasible, ensure the text format captures all necessary fields:
log_format main_detailed '$remote_addr - $remote_user [$time_local] '
'"$request" $status $body_bytes_sent '
'"$http_referer" "$http_user_agent" '
'"$http_x_forwarded_for"';
By default, NGINX uses the combined log format, which is a standard text format but lacks details (e.g., request processing time, upstream information).
$remote_addr variable may only show the LB's IP. Ensure you log $http_x_forwarded_for (as shown in the JSON example) to capture the true client IP.escape=json parameter automatically handles escaping of special characters, preventing broken JSON structures.| Controls Version | Control | IG 1 | IG 2 | IG 3 |
|---|---|---|---|---|
| v8 | 8.5 Collect Detailed Audit Logs | N | Y | Y |
| v7 | 6.3 Enable Detailed Logging | N | Y | Y |
| Tactic | Technique |
|---|---|
| Defense Evasion | T1070 - Indicator Removal |
| Discovery | T1082 - System Information Discovery |