-
Notifications
You must be signed in to change notification settings - Fork 160
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Allow redefining rules and expanding rule sets #50
Comments
Hello @petervanvugt, Thanks for your initiative! May I ask you to describe your use-case in details? Maybe a layered yaml that you propose is not a single solution for your use-case. Moreover, I see that your use-case relates to this discussion: #9 (comment) Now about the syntax of check definitions.
So I can observe them altogether. That helps me to understand and maintain these checks, which is not an easy task. Here you propose a completely different syntax.
(I'm travelling till the beginning of March, excuse me for delayed replies) Best regards, |
Hi @a13xp0p0v , My use essentially falls into three cases:
For example, I might want to verify
For example, I may want to verify that my chip's
For example, if I'm building an embedded system that uses NXP's i.MX line, I may want to verify [EDIT] Another, potentially stronger example I have run into recently is Can we serve all these use cases? Clearly, there a few paths that could be taken here. We could add these requirements to the very compact representation in If we want to be able to specify additional requirements at runtime and/or override requirements at runtime, we need a way to specify alternate requirements. This is why I am proposing representing the requirements as runtime configuration, rather than code. As to how we would represent some of the more complex requirements, I am proposing we break them down into requirements that each only check one config each, optionally only checked for some combination of specific architectures/kernel versions/ We could take configs whose names changed, such as this:
and split them into two separate requirements, the first one for kernels >= 4.18, and the second one for kernels >= 3.14 and < 4.18. The most complex requirement I see is this one:
which could be split into two requirements: one for What do you think? |
@petervanvugt thanks a lot for describing your use-cases. I think I will experiment with that. |
other use case is prevent leakage of kernel pointers to log file, /proc directory files, or terminal output. Which is just a bunch of debugs and dmesg turned off. another one is the one provided by Whonix.org (a KSPP variant) which is more rigorous form of kernel security. Another one is for Spectre, et. al., mitigation and that has a bunch of config s as well. |
'my' checks look like the checks created by a user of the tool. Let's fix that and take the responsibility :) Refers to #50
I have found this tool quite helpful for quickly auditing embedded kernel configs. However, I've been finding that on embedded systems, I often have unique, application-specific security requirements:
I propose moving the config tests currently hard-coded in
__init__
into a set of yaml configs that can be included by a top-level config, like this:This would enable the config requirements to be layered, similar to the way kernel
defconfigs
can be layered (i.e. arch | Android | SoC vendor | device). I have some free time next week to implement this if you're open to it.The text was updated successfully, but these errors were encountered: