gojue/ecapture

Feature Request: Add libnnzsrv.so (Oracle) TLS master secret extraction support

Open

#999 建立於 2026年5月7日

在 GitHub 查看
 (0 留言) (1 反應) (0 負責人)C (15,163 star) (1,611 fork)batch import
help wantedquestion

描述

Feature Request: Support Oracle's libnnzsrv.so (nz* symbols) for Master Secret Extraction

Background: Currently, eCapture's OpenSSL probe targets the standard OpenSSL API (e.g., SSL_do_handshake, SSL_SESSION_get_master_key) and attaches uprobes to those symbols to extract TLS master secrets. However, Oracle's libnnzsrv.so library, as used in Oracle Database clients and some proprietary apps, does not expose those OpenSSL symbols. Instead, it uses custom symbols with an nz* prefix for its own TLS implementation, causing eCapture's current uprobes to miss these flows entirely.

Proposed Solution:

  • Use readelf -s or nm -D on libnnzsrv.so to identify nz* symbols that are analogous to the OpenSSL functions currently hooked by eCapture.
  • Create a new probe following the pattern of the existing OpenSSL probe, but targeting these nz* symbols instead.
  • Implement a custom uprobe for the key extraction logic in Oracle's TLS implementation.
  • Optionally, document any gotchas or kernel-version-specific caveats encountered during development.

Expected Outcome:

  • Enable extraction of TLS master secrets from Oracle flows that use libnnzsrv.so.
  • Allow community contributions and feedback to help refine coverage for less common enterprise TLS stacks.

Reference:

Notes:

  • This feature is not on the official roadmap due to the niche nature of Oracle TLS usage.
  • Upstream focus will remain on OpenSSL, GnuTLS, BoringSSL, and other mainstream stacks, but this enhancement will help users in specialized environments like Oracle DB deployments.

If anyone in the community has Oracle DB internals experience or sample binaries, help is welcome!

貢獻者指南

Feature Request: Add libnnzsrv.so (Oracle) TLS master secret extraction support · gojue/ecapture#999 | Good First Issue