{"description": "Ensure kernel structures associated with LSMs are always mapped as read-only after system boot.\n\nThe configuration that was used to build kernel is available at <tt>/boot/config-*</tt>.\n    To check the configuration value for <tt>CONFIG_SECURITY_WRITABLE_HOOKS</tt>, run the following command:\n    <tt>grep CONFIG_SECURITY_WRITABLE_HOOKS /boot/config-*</tt>\n    \n    Configs with value 'n' are not explicitly set in the file, so either commented lines or no\n    lines should be returned.\n    ", "rationale": "If CONFIG_SECURITY_WRITABLE_HOOKS is enabled, then hooks can be loaded at runtime and\nbeing able to manipulate hooks is a way to bypass all LSMs.", "severity": "medium", "references": {"anssi": ["R20"]}, "control_references": {"anssi": ["R20"]}, "components": [], "identifiers": {}, "ocil_clause": "the kernel was not built with the required value", "ocil": "To determine the config value the kernel was built with, run the following command:\n    <pre>$ grep CONFIG_SECURITY_WRITABLE_HOOKS /boot/config.*</pre>\n    \n    Configs with value 'n' are not explicitly set in the file, so either commented lines or no\n    lines should be returned.\n    ", "oval_external_content": null, "fixtext": "", "checktext": "", "vuldiscussion": "", "srg_requirement": "", "warnings": [{"general": "There is no remediation for this besides re-compiling the kernel with the appropriate value for the config."}], "conflicts": [], "requires": [], "policy_specific_content": {}, "platform": null, "platforms": [], "sce_metadata": {}, "inherited_platforms": ["system_with_kernel"], "cpe_platform_names": [], "inherited_cpe_platform_names": ["system_with_kernel"], "bash_conditional": null, "fixes": {}, "title": "Disable mutable hooks", "definition_location": "/aptdata/openscap/scap-security-guide/linux_os/guide/system/kernel_build_config/kernel_config_security_writable_hooks/rule.yml", "template": {"name": "kernel_build_config", "vars": {"config": "CONFIG_SECURITY_WRITABLE_HOOKS", "value": "n"}, "backends": {}}}