freedomofpress / freedomofpress/kernel-builder

Build a monolithic kernel

Open
#48 4 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Python
Stars
5
Forks
3
PR merge metrics
No merged PRs in 30d

Description

At https://github.com/freedomofpress/kernel-builder/pull/45#issuecomment-2029144010 @thedeadliestcatch wrote:

I would strongly suggest considering building monolithic kernels with a minimal config. If you transition away from HVM to pvgrub, and even if you don't, it will be a good idea. Removing LKM support has several benefits in terms of reducing attack surface in the kernel for ROP and code injection scenarios (after all, LKM support comes with the implicit need for a dynamic linker in kernel space).

I replied:

This is a good point and something I started wondering about mid-last week, whether there was any benefit to building individual modules. I'll look into doing a monolithic build.

From what I can tell we just need to change all the m settings to y and then turn off CONFIG_MODULES. We should make sure that the blacklisted modules (see https://github.com/freedomofpress/securedrop/issues/1886) are disabled at build-time as well.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Read the kernel configuration changes described in this issue and the referenced SecureDrop issue #1886 first; no file or test is named. Done means the build uses built-in settings instead of modules, disables CONFIG_MODULES, and disables the blacklisted modules at build time.

Written by the indexing model from the issue text.

Assessment

Tech stack
linux
Domain
build-system, operating-systems, security
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.