diff mbox series

[RFC] security: tomoyo: Add default builtin-policy.h for default policy

Message ID 20240727-tomoyo-gen-file-v1-1-eb6439e837a1@suse.com (mailing list archive)
State Handled Elsewhere
Headers show
Series [RFC] security: tomoyo: Add default builtin-policy.h for default policy | expand

Commit Message

Marcos Paulo de Souza July 28, 2024, 12:51 a.m. UTC
When checking tomoyo code there is an include for a file that is not
included on kernel-source since it's generated at build time, and the
kernel-source uses git archive to create the tarball.

Having the source code referencing a file that is not included in the
tarball can confuse tools that inspect/parse code, since the file is not
there.

The builtin-policy.h added is generated from the same default policy
that already exists on policy/ directory, so it doesn't break the
current usage of that file.

Signed-off-by: Marcos Paulo de Souza <mpdesouza@suse.com>
---
Hello, I sent this patch because we saw some issues while running
clang-extract[1] on tomoyo given CVE 2024-26622. Since clang-extract
parses the C files it failed to find builtin-policy.h. As a bandaid, I
had to add
	-DCONFIG_SECURITY_TOMOYO_INSECURE_BUILTIN_SETTING

to clang-extract (we feed the gcc arguments used to compile common.c got
from compile_commands.json on kernel-source).

Per my tests it works with my patch, and I don't see why this would hurt
to have builtin-policy.h on git, since it would regenerate the file if
the policy scripts are changed.

Please let me know if I'm missing something here.

Thanks!

[1]: https://github.com/SUSE/clang-extract
---
 security/tomoyo/.gitignore       |  1 -
 security/tomoyo/builtin-policy.h | 13 +++++++++++++
 2 files changed, 13 insertions(+), 1 deletion(-)


---
base-commit: 910bfc26d16d07df5a2bfcbc63f0aa9d1397e2ef
change-id: 20240727-tomoyo-gen-file-fcfc3a0c0f46

Best regards,

Comments

Tetsuo Handa July 28, 2024, 1:18 p.m. UTC | #1
Hello, Michal and Masahiro. What do you think on this proposal?

I guess that .gitignore needs to keep builtin-policy.h included, or
"git diff" will complain if builtin-policy.h was rebuilt due to
changes in policy/*.conf files.

Regarding having default security/tomoyo/builtin-policy.h , is there
a pitfall with modification time of security/tomoyo/builtin-policy.h
and files involved in generating security/tomoyo/builtin-policy.h ?

On 2024/07/28 9:51, Marcos Paulo de Souza wrote:
> When checking tomoyo code there is an include for a file that is not
> included on kernel-source since it's generated at build time, and the
> kernel-source uses git archive to create the tarball.
> 
> Having the source code referencing a file that is not included in the
> tarball can confuse tools that inspect/parse code, since the file is not
> there.
> 
> The builtin-policy.h added is generated from the same default policy
> that already exists on policy/ directory, so it doesn't break the
> current usage of that file.
> 
> Signed-off-by: Marcos Paulo de Souza <mpdesouza@suse.com>
> ---
> Hello, I sent this patch because we saw some issues while running
> clang-extract[1] on tomoyo given CVE 2024-26622. Since clang-extract
> parses the C files it failed to find builtin-policy.h. As a bandaid, I
> had to add
> 	-DCONFIG_SECURITY_TOMOYO_INSECURE_BUILTIN_SETTING
> 
> to clang-extract (we feed the gcc arguments used to compile common.c got
> from compile_commands.json on kernel-source).
> 
> Per my tests it works with my patch, and I don't see why this would hurt
> to have builtin-policy.h on git, since it would regenerate the file if
> the policy scripts are changed.
> 
> Please let me know if I'm missing something here.
> 
> Thanks!
> 
> [1]: https://github.com/SUSE/clang-extract
> ---
>  security/tomoyo/.gitignore       |  1 -
>  security/tomoyo/builtin-policy.h | 13 +++++++++++++
>  2 files changed, 13 insertions(+), 1 deletion(-)
> 
> diff --git a/security/tomoyo/.gitignore b/security/tomoyo/.gitignore
> index 9f300cdce362..85d086c6502d 100644
> --- a/security/tomoyo/.gitignore
> +++ b/security/tomoyo/.gitignore
> @@ -1,3 +1,2 @@
>  # SPDX-License-Identifier: GPL-2.0-only
> -builtin-policy.h
>  policy/*.conf
> diff --git a/security/tomoyo/builtin-policy.h b/security/tomoyo/builtin-policy.h
> new file mode 100644
> index 000000000000..781d35b3ccb3
> --- /dev/null
> +++ b/security/tomoyo/builtin-policy.h
> @@ -0,0 +1,13 @@
> +/* SPDX-License-Identifier: GPL-2.0 */
> +static char tomoyo_builtin_profile[] __initdata =
> +	"";
> +static char tomoyo_builtin_exception_policy[] __initdata =
> +	"initialize_domain /sbin/modprobe from any\n"
> +	"initialize_domain /sbin/hotplug from any\n"
> +	"";
> +static char tomoyo_builtin_domain_policy[] __initdata =
> +	"";
> +static char tomoyo_builtin_manager[] __initdata =
> +	"";
> +static char tomoyo_builtin_stat[] __initdata =
> +	"";
> 
> ---
> base-commit: 910bfc26d16d07df5a2bfcbc63f0aa9d1397e2ef
> change-id: 20240727-tomoyo-gen-file-fcfc3a0c0f46
> 
> Best regards,
diff mbox series

Patch

diff --git a/security/tomoyo/.gitignore b/security/tomoyo/.gitignore
index 9f300cdce362..85d086c6502d 100644
--- a/security/tomoyo/.gitignore
+++ b/security/tomoyo/.gitignore
@@ -1,3 +1,2 @@ 
 # SPDX-License-Identifier: GPL-2.0-only
-builtin-policy.h
 policy/*.conf
diff --git a/security/tomoyo/builtin-policy.h b/security/tomoyo/builtin-policy.h
new file mode 100644
index 000000000000..781d35b3ccb3
--- /dev/null
+++ b/security/tomoyo/builtin-policy.h
@@ -0,0 +1,13 @@ 
+/* SPDX-License-Identifier: GPL-2.0 */
+static char tomoyo_builtin_profile[] __initdata =
+	"";
+static char tomoyo_builtin_exception_policy[] __initdata =
+	"initialize_domain /sbin/modprobe from any\n"
+	"initialize_domain /sbin/hotplug from any\n"
+	"";
+static char tomoyo_builtin_domain_policy[] __initdata =
+	"";
+static char tomoyo_builtin_manager[] __initdata =
+	"";
+static char tomoyo_builtin_stat[] __initdata =
+	"";