GithubHelp home page GithubHelp logo

imds-tracker's Introduction

IMDS Tracker

License: GPL v2 License

IMDS Tracker is a small tracing utility powered by eBPF that analyzes IMDS requests to identify which services are making IMDS calls on a host.

System requirements

This project was developed on an Ubuntu Jammy machine (Linux Kernel 6.2).

  • golang 1.20+
  • (optional) Kernel headers are expected to be installed in lib/modules/$(uname -r), update the Makefile with their location otherwise.
  • (optional) clang & llvm 11.0.1+
  • (optional) libbpf-dev

Optional dependencies are required to recompile the eBPF programs.

Build

  1. Since IMDS Tracker was built using CORE, you don't need to rebuild the eBPF programs. That said, if you want to rebuild the eBPF programs anyway, you can use the following command:
# ~ make build-ebpf
  1. To build IMDS Tracker, run:
# ~ make generate
# ~ make build
  1. To install IMDS Tracker (copies the tracker to /usr/bin/imds-tracker) run:
# ~ make install

Getting started

IMDS Tracker needs to run as root. Run sudo imds-tracker -h to get help.

# ~ imds-tracker -h
Usage:
  imds-tracker [flags]

Flags:
      --datadog            when set, the tracker will send the captured events to Datadog. You can configure the log sender using environment variables (see https://docs.datadoghq.com/api/latest/logs).
  -h, --help               help for imds-tracker
      --log-level string   log level of the IMDS tracker. Options are: panic, fatal, error, warn, info, debug and trace (default "info")
      --unsafe             when set, the tracker will send the entire response body of all IMDS requests instead of simply the fields known to be free of secrets or credentials.
      --vmlinux string     path to a "vmlinux" file on the system (this path should be provided only if imds-tracker can't find it by itself)

License

  • The golang code is under Apache 2.0 License.
  • The eBPF programs are under the GPL v2 License.

imds-tracker's People

Contributors

gui774ume avatar

Stargazers

Nicolas RUFF avatar

Watchers

Hemanth Malla avatar Guillaume Valadon avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.