
Linuxカーネルのセキュリティ強化オプションをチェックするツール
(以前は kconfig-hardened-check)
Linuxカーネルには数多くのセキュリティ強化オプションがあります。その多くは主要なディストリビューションで有効化されていません。システムをより安全にするために、これらのオプションを自分たちで有効にする必要があります。
しかし、手動で設定を確認するのは誰も好きではありません。だからコンピュータに仕事をさせましょう!
kernel-hardening-checker (以前は kconfig-hardened-check) は、Linuxカーネルのセキュリティ強化オプションをチェックするためのツールです。
ライセンス: GPL-3.0.
kernel-hardening-checker は以下のチェックをサポートしています:
サポートされるアーキテクチャ:
セキュリティ強化の推奨設定は以下に基づいています:
また、[Linux Kernel Defence Map][4] を作成しました。これは、セキュリティ強化機能と対応する脆弱性クラスや悪用技術との関係を図示したものです。
Linuxカーネルのセキュリティパラメータを変更すると、システムのパフォーマンスやユーザースペースソフトウェアの機能にも影響を与える可能性があることに注意してください。そのため、これらのパラメータを設定する際には、Linuxベースの情報システムの脅威モデルを考慮し、典型的なワークロードを十分にテストしてください。
いくつかの方法があります:
このGitリポジトリから pip を使ってパッケージをインストールできます:
python3 -m pip install git+https://github.com/a13xp0p0v/kernel-hardening-checker
外部管理環境によるエラーが発生した場合は、python3 -m venv を使用して仮想環境を作成してください。
一部のGNU/Linuxディストリビューションでは、パッケージマネージャを使用して kernel-hardening-checker パッケージをインストールできます。詳細は https://repology.org/project/kernel-hardening-checker/versions を参照してください。
あるいは、クローンしたリポジトリからインストールせずに ./bin/kernel-hardening-checker を直接実行することもできます。
$ ./bin/kernel-hardening-checker -h usage: kernel-hardening-checker [-h] [--version] [-m {verbose,json,show_ok,show_fail}] [-a] [-c CONFIG] [-v KERNEL_VERSION] [-l CMDLINE] [-s SYSCTL] [-p {X86_64,X86_32,ARM64,ARM,RISCV}] [-g {X86_64,X86_32,ARM64,ARM,RISCV}]
A tool for checking the security hardening options of the Linux kernel
options: -h, --help show this help message and exit --version show program's version number and exit -m, --mode {verbose,json,show_ok,show_fail} select a special output mode instead of the default one -a, --autodetect autodetect and check the security hardening options of the running kernel -c, --config CONFIG check the security hardening options in a Kconfig file (also supports *.gz files) -v, --kernel-version KERNEL_VERSION extract the kernel version from a version file (such as /proc/version) instead of using a Kconfig file -l, --cmdline CMDLINE check the security hardening options in a kernel command line file (such as /proc/cmdline) -s, --sysctl SYSCTL check the security hardening options in a sysctl output file (the result of "sudo sysctl -a > file") -p, --print {X86_64,X86_32,ARM64,ARM,RISCV} print security hardening recommendations for the selected architecture -g, --generate {X86_64,X86_32,ARM64,ARM,RISCV} generate a Kconfig fragment containing the security hardening options for the selected architecture
## 出力モード
- デフォルトの出力モードでは `-m` 引数なし(以下の例を参照)
- `-m verbose` 追加情報を表示:
- 対応するチェックがない設定オプション
- AND/OR を使用した複雑なチェックの内部構造(例):
```
-------------------------------------------------------------------------------------------
<<< OR >>>
CONFIG_STRICT_DEVMEM |kconfig|cut_attack_surface|defconfig | y
CONFIG_DEVMEM |kconfig|cut_attack_surface| kspp | is not set
-------------------------------------------------------------------------------------------
```
- `-m json` 結果を JSON 形式で表示(`kernel-hardening-checker` と他のツールを組み合わせる場合)
- `-m show_ok` 成功したチェックのみ表示
- `-m show_fail` 失敗したチェックのみ表示