Show HN: Stratoshark, a sibling application to Wireshark

1 month ago (stratoshark.org)

Hi all, I'm excited to announce Stratoshark, a sibling application to Wireshark that lets you capture and analyze process activity (system calls) and log messages in the same way that Wireshark lets you capture and analyze network packets. If you would like to try it out you can download installers for Windows and macOS and source code for all platforms at https://stratoshark.org.

AMA: I'm the goofball whose name is at the top of the "About" box in both applications, and I'll be happy to answer any questions you might have.

Long, long time user of Wireshark and I instantly recognize your name. Thank you for all the great work over the years :-)

Looks really awesome! I didn't see Linux installation instructions so clicked on the link to the source code, but it links to the Wireshark source[1]. Is Stratoshark part of the same repo as Wireshark? Is Linux supported by Stratoshark?

[1]: https://gitlab.com/wireshark/wireshark

The OP URL has been flagged as grayware by Palo Alto and is thus inaccessible to a large number of people, possibly indicating typosquatting, or being miscategorized?

https://wiki.wireshark.org/Stratoshark is a good link for those who can't reach the stratoshark URL directly. The OP link may get recategorized and become accessible in the meantime.

Wireshark is to tcpdump as stratoshark is to strace.

Did I get the analogy right?

  • Pretty much. It's part of the same ecosystem as Sysdig OSS[1], which works much like strace. It uses the same underlying libraries as sysdig and Falco, and you can move capture files between them.

    It'd be interesting to see if we can integrate more fully with strace as well, but that might require updating strace itself.

    [1]https://github.com/draios/sysdig

The first section on the homepage doesn’t give me a good sense of what the application does. The references to Wireshark suggest it has something to do with network traffic but that doesn’t seem to be the case. It also talks about cloud but nothing seems to be cloud-specific?

  • Thanks for the feedback! I'll see if we can make the top of the site more descriptive.

    Update: Changed the first sentence to "Stratoshark lets you explore and analyze applications at the system call level using a mature, proven interface based on Wireshark.

  • The blog article is a bit more descriptive : https://sysdig.com/blog/stratoshark-extending-wiresharks-leg...

    tl;dr version: system calls, but in the wireshark ui. (I've probably oversimplified that!)

    • Thanks for your work! Been using Wireshark for many years after it was used for a network course in university.

      Why do you focus on "what happens in your cloud" when we talk about system calls? It'd seem it's useful for any machine, is it just bad marketing copy or am I missing something?

      4 replies →

Would I be right in assuming this is like Sysinternals procmon but with a better interface and for Linux?

  • The tools are similar in many ways, but Stratoshark shares Wireshark's dissection, filtering, and UI code, which provides a more low-level details and a free-form filtering language. Stratoshark is currently limited to capture on Linux (we're hoping to expand to macOS and Windows in the future) and the UI runs on all three platforms. There's an enhancement request[1] to add Procmon file support but I haven't had a chance to investigate what that might require.

    [1]https://gitlab.com/wireshark/wireshark/-/issues/20317

It is not clear what the architecture for system-call capture is. Is it ptrace, ebpf or some custom thing or some combo? What is the overhead of running this?

The tool looks really cool, hopefully it moves ui state of art beyond windows xperf

We have a Python application that we develop inside Docker on macOS using the `python:3.11-slim-bullseye` image that it would be great to generate scap files from for viewing with Stratoshark. I tried installing sysdig in that image but ran into kernel module errors when trying to run it. Should we expect that to work? Am I missing an easier method?

  • You might try passing `--modern-bpf` to sysdig. It has traditionally captured syscalls using a kernel module, and it sounds like that's where your errors are coming from. Newer versions have added eBPF support, which doesn't require a kmod but you have to pass in the `--modern-bpf` flag.

Does sysdig (and stratoshark by extension) still require custom out-of-tree kernel module to function?

  • No, with the parameter '--modern-bpf' you can use eBPF. So, no kmod required any more.

I just want to thank you for wireshark. I use it almost every day when I'm troubleshooting why this or that piece of industrial controls hardware springs a leak in its bit plumbing.

You have the rare distinction of developing a tool that will probably outlive us all. So, thanks!

Can this program do more than just observe and trace what happens?

Can one use it to set up some rule to suppress some of the syscalls sent to a specific process? Or alter them by some logic on the go?

Wow, I've been a wireshark user for many years, this is really exciting.

How does it trace syscalls on macos? Do you need to disable SIP?

  • Right now the UI runs on Windows, macOS, and Linux but you can only capture system calls on Linux via Falco libs[1]. Expanding local capture to include macOS and Windows is definitely something we'd love to do!

    [1]https://github.com/falcosecurity/libs

    • Awesome! Thanks for your work on this and everything else.

      Once you add capture on macOS with something like dtrace, could you concievably capture a system call inside Docker on macOS and watch it trickle down through the linux hypervisor and then to the host darwin kernel and back?

      How does it conceptually track the handoff of system calls between hypervisors/VMs/containers/etc?

      2 replies →