• Stars
    star
    290
  • Rank 142,981 (Top 3 %)
  • Language
    Scala
  • Created about 10 years ago
  • Updated about 10 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Toolkit for auditing "phone home" behavior on Mac OS X Yosemite.

Capture ALL The Things

Net-Monitor (NM) is toolkit for auditing "phone home" behavior of all user and system-level processes on Mac OS X Yosemite.

Example data extracted by Net-Monitor is provided for collaborative review and analysis via the Yosemite Phone Home project.

Features include:

  • Transparent plaintext logging of TCP/TLS/HTTPS traffic via pf(4) and a custom version of SSLSplit. No custom proxy configuration is required.
  • Automatic correlation of connections with initiating application, user, and group.
  • Logging of non-TCP traffic via pf(4), pflog(4), and tcpdump.
  • Automatic generation and trust of a local, per-machine MITM certificate authority.

By default, NM generates the following logs:

  • TCP/SSL: /var/log/sslsplit//--.log
  • UDP/other: /var/log/udp-monitor/*.pcap

NM relies on SSLsplit to provide TLS introspection; all of our previous local patches have been integrated upstream.

Additional contributions to improve accuracy/transparency of the collected data are always very welcome.

Caveats

  • NM is intended to be used on a dedicated VM or research installation; it overrides default configuration files and interposes itself in TLS network communications, and is not currently recommended for day-to-day use.
  • Correlation of sockets, processes, and file system executable paths is imperfect; there are cases where connections will be ascribed to the wrong application path.
  • TLS traffic using client certificates cannot be captured in plaintext by default. For example, NM captures the key exchange performed by apsd (Apple Push Services Daemon), that establishes a client certificate, but NM can't transparently sniff future communications protected by that certificate without the addition of apsd-specific protocol handling.

Developing

Installation is handled entirely by install.sh; the pf(4) and launchd configuration files may be found in conf/.

To update the embedded copy of SSLsplit:

  • Clone and build sslsplit locally.
  • Update NM's standalone sslsplit binary via sslsplit-create-standalone.sh, e.g., sslsplit-create-standalone.sh ~/sslsplit/sslsplit ~/net-monitor