-
Notifications
You must be signed in to change notification settings - Fork 807
Closed
Description
Description
Infection Monkey agents are built with PyInstaller. PyInstaller includes a small binary called a bootloader that's tasked with bootstraping the binary. Infection Monkey has a custom bootloader whose goal is to provide a minimal amount of feedback in the event that it runs on a system that's so old it can't support the PyInstaller binary. This has a few drawbacks:
- The bootloader code (written in C) is full of mismanaged memory. Sometimes these memory errors cause bugs that are difficult to diagnose.
- We maintain a fork of PyInstaller in order to use the custom bootloader.
- The bootloader is an extra step in agent startup that can sometimes cause delays of 1 minute or more per victim.
- It exists only to support legacy systems, most of which are no longer supported by the manufacturer.
At this time, the effort to rebuild the bootloader to alleviate some of these issues is not worth the cost. Remove the bootloader; we can add a similar feature back in later if the need arises.
Tasks
- Change
Pipfile
to use upstream pyinstaller (0d) - @shreyamalviya - Update documentation (0d) - @shreyamalviya
- Remove bootloader endpoints and services from Monkey Island (0d) @ilija-lazoroski, @shreyamalviya
- Update mongo queries
- Remove bootloader server
- Remove bootloader telemetry
- Revert the changes that set the node's IP and OS from the bootloader telemetry
- Modify the UI's "starting state" logic so it doesn't depend on the bootloader (0d) - @shreyamalviya
- Run lots of tests (0d) @ilija-lazoroski
- Update the release test template (0d)
Notes
Don't waste any time worrying about the 32-bit binaries, since they will be removed in #1675