sensitive-logging-audit

โดย openai

ตรวจสอบและแก้ไขการเปิดเผยข้อมูลที่ละเอียดอ่อนผ่านการบันทึกข้อมูลของ Python runtime ใน openai-agents-python ใช้เมื่อตรวจสอบ logging, print, warnings, stderr, traceback,…

npx skills add https://github.com/openai/openai-agents-python --skill sensitive-logging-audit

Sensitive Logging Audit

Objective

Find candidate output sinks, trace their values manually, fix demonstrated leaks at shared runtime boundaries, and prove redaction with adversarial tests.

The collector is only a syntax-based search aid. It does not resolve Python aliases or control flow, certify policy guards, or prove that an absent candidate is safe.

Workflow

1. Establish the review surface

  • Work in the current checkout and preserve unrelated changes.
  • Read src/agents/_debug.py, src/agents/logger.py, and the affected callers.
  • Treat exception messages, arguments, tracebacks, causes, contexts, notes, names, URLs, and arbitrary values as potentially sensitive.
  • Read the Python redaction validation matrix.

Run the collector tests, then collect candidates:

uv run python .agents/skills/sensitive-logging-audit/scripts/test_inventory.py
uv run python .agents/skills/sensitive-logging-audit/scripts/inventory_logging.py \
  --format json --output /tmp/sensitive-logging-candidates.json

The report intentionally contains no policy, safe, or guard classification.

2. Supplement the collector with source search

The collector does not follow assignments such as emit = logger.error. Search the source directly and inspect aliases, callbacks, wrappers, and reflective dispatch:

rg -n '\.(debug|info|warning|warn|error|exception|critical|fatal|log)\b' src/agents
rg -n '\b(print|pprint|pp|warn|warn_explicit|write|writelines|print_exc|print_exception)\b' src/agents
rg -n 'DONT_LOG_(MODEL|TOOL)_DATA|log_(model|tool|model_and_tool)_action' src/agents

Do not turn collector coverage or a textual guard into a security conclusion. Trace producers and callers.

3. Classify manually

Assign each reviewed path one disposition:

  • model: model requests, responses, Realtime events, or derived values.
  • tool: tool arguments, outputs, MCP data, tool events, or derived values.
  • model+tool: either class may reach the sink.
  • operational: demonstrated to contain only non-sensitive SDK metadata.
  • intentional-output: explicitly user-facing output rather than diagnostics.
  • uncertain: source tracing is incomplete.

Record evidence in the audit report. The script does not validate or inherit dispositions.

4. Fix runtime boundaries

Before changing runtime behavior, use $implementation-strategy.

  • Check the relevant _debug.DONT_LOG_MODEL_DATA and _debug.DONT_LOG_TOOL_DATA flags before formatting or inspecting sensitive values.
  • Redact mixed model/tool values when either flag disables data logging.
  • In redacted mode, emit a fixed message and omit sensitive args, extra, and exc_info.
  • Build diagnostic-only context lazily so redacted mode never reads it.
  • Preserve useful diagnostics when sensitive-data logging is explicitly enabled.
  • Keep logging failure from changing fallback, cleanup, event, rejection, or cancellation behavior.
  • For MCP URLs, remove credentials, query parameters, and fragments in diagnostic mode; never use sanitized names as a substitute for fixed redacted messages.

5. Prove caller behavior

Add tests at every changed caller boundary. Inspect the complete LogRecord, not only rendered text. Test both redacted policies, diagnostic mode, hostile objects, exception chains, and the caller's observable fallback or cleanup behavior as applicable.

6. Re-run and close out

Re-run the collector, the manual searches, focused tests, and applicable repository gates. Use $code-change-verification for runtime or test changes and $pr-draft-summary when required.

Report candidate counts as search coverage only. Lead with confirmed leaks fixed, retained intentional output, reviewed uncertainty, and verification results. Never report a clean collector result as proof that no sensitive logging path exists.

Skills เพิ่มเติมจาก openai

release
openai
สร้าง Symphony release โดยการ bump เวอร์ชันที่ commit ไว้ นำไป merge แท็ก commit ที่รวมแล้ว และตรวจสอบ Burrito release workflow ใช้เมื่อถูกขอให้…
signing-entitlements
openai
ตรวจสอบปัญหาเกี่ยวกับการลงนาม การอนุญาต รันไทม์ที่แข็งแกร่ง และ Gatekeeper สำหรับแอป macOS ใช้เมื่อถูกขอให้วินิจฉัยความล้มเหลวในการลงนามโค้ด การอนุญาตที่ขาดหายไป…
building-ai-agent-on-cloudflare
openai
สร้าง AI agents บน Cloudflare โดยใช้ Agents SDK พร้อมการจัดการสถานะ, WebSockets แบบเรียลไทม์, งานตามกำหนดเวลา, การรวมเครื่องมือ และแชท…
epigraphdb-skill
openai
ส่งคำขอ API EpiGraphDB แบบกระชับสำหรับ ontology, วรรณกรรม, MR, ยีน-ยา และหลักฐานเส้นทางสนับสนุน ใช้เมื่อผู้ใช้ต้องการสรุป EpiGraphDB แบบสั้น
runtime-behavior-probe
openai
วางแผนและดำเนินการตรวจสอบพฤติกรรมขณะรันไทม์ด้วยสคริปต์ตรวจสอบชั่วคราว เมทริกซ์การตรวจสอบ การควบคุมสถานะ และรายงานที่เน้นผลลัพธ์เป็นหลัก ใช้เฉพาะเมื่อ…
deep-security-scan
openai
ใช้เมื่อผู้ใช้ขอการสแกนความปลอดภัยของ Codex แบบเจาะลึก ละเอียดถี่ถ้วน หลายรอบ หรือลดความแปรปรวน ครอบคลุมทั้ง repository หรือเฉพาะเส้นทางที่กำหนด โดยให้รันซ้ำแบบอิสระ…
define-security-policy
openai
กำหนด ทบทวน หรือปรับปรุงแนวทาง SECURITY.md สำหรับ repository หรือ component ใช้เมื่อผู้ใช้ต้องการชี้แจงว่า Codex Security ควรตรวจสอบอะไร สิ่งใดอยู่นอก
validation
openai
ใช้เมื่อ Codex อยู่ในขั้นตอนการตรวจสอบความปลอดภัยแล้ว หรือผู้ใช้ขออย่างชัดเจนให้ระบุว่าข้อค้นพบด้านความปลอดภัยที่อาจเป็นไปได้หนึ่งรายการหรือมากกว่านั้น…