diff mbox series

utils/genrandconfig: drop hardening Config enables

Message ID 20210521131752.9893-1-matthew.weber@collins.com
State Accepted
Headers show
Series utils/genrandconfig: drop hardening Config enables | expand

Commit Message

Matthew Weber May 21, 2021, 1:17 p.m. UTC
Since 810ba387bec3c5b, some form of these options are enable
by default. Specifically:

- Kept FORTIFY level 2 option as the default is now level 1.
- Removed all SSP options as the default now uses the best
  option based on toolchain support.
- Similar to SSP, for RELRO, the default now uses the best
  option based on toolchain support.
- Completely drop PIC PIE as it defaults =y

Signed-off-by: Matthew Weber <matthew.weber@collins.com>
---
 utils/genrandconfig | 14 --------------
 1 file changed, 14 deletions(-)

Comments

Yann E. MORIN May 24, 2021, 1:16 p.m. UTC | #1
Matthew, All,

On 2021-05-21 08:17 -0500, Matthew Weber via buildroot spake thusly:
> Since 810ba387bec3c5b, some form of these options are enable
> by default. Specifically:
> 
> - Kept FORTIFY level 2 option as the default is now level 1.
> - Removed all SSP options as the default now uses the best
>   option based on toolchain support.
> - Similar to SSP, for RELRO, the default now uses the best
>   option based on toolchain support.
> - Completely drop PIC PIE as it defaults =y
> 
> Signed-off-by: Matthew Weber <matthew.weber@collins.com>
> ---
>  utils/genrandconfig | 14 --------------
>  1 file changed, 14 deletions(-)
> 
> diff --git a/utils/genrandconfig b/utils/genrandconfig
> index 93dc6d898b..e1655655fa 100755
> --- a/utils/genrandconfig
> +++ b/utils/genrandconfig
> @@ -371,22 +371,8 @@ def gen_config(args):
>          configlines.append("BR2_OPTIMIZE_2=y\n")
>      if randint(0, 4) == 0:
>          configlines.append("BR2_SYSTEM_ENABLE_NLS=y\n")
> -    if randint(0, 4) == 0:
> -        configlines.append("BR2_PIC_PIE=y\n")
> -    if randint(0, 4) == 0:
> -        configlines.append("BR2_RELRO_FULL=y\n")
> -    elif randint(0, 4) == 0:
> -        configlines.append("BR2_RELRO_PARTIAL=y\n")
> -    if randint(0, 4) == 0:
> -        configlines.append("BR2_SSP_ALL=y\n")
> -    elif randint(0, 4) == 0:
> -        configlines.append("BR2_SSP_REGULAR=y\n")
> -    elif randint(0, 4) == 0:
> -        configlines.append("BR2_SSP_STRONG=y\n")
>      if randint(0, 4) == 0:
>          configlines.append("BR2_FORTIFY_SOURCE_2=y\n")
> -    elif randint(0, 4) == 0:
> -        configlines.append("BR2_FORTIFY_SOURCE_1=y\n")

I was going to apply this, but then I was wondering: shouldn't we
randomly *disable* them, now?

Indeed, as much enabling those options randomly helped uncover build
issues, maybe disabling them would also help?

But I don't feel very strong either, so you should have no issue
convincing me to apply as-is. ;-)

Regards,
Yann E. MORIN.

>      # Randomly enable BR2_REPRODUCIBLE 10% of times
>      # also enable tar filesystem images for testing
> -- 
> 2.17.1
> 
> _______________________________________________
> buildroot mailing list
> buildroot@busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot
Yann E. MORIN May 24, 2021, 1:31 p.m. UTC | #2
Matthew, All,

On 2021-05-21 08:17 -0500, Matthew Weber via buildroot spake thusly:
> Since 810ba387bec3c5b, some form of these options are enable
> by default. Specifically:
> 
> - Kept FORTIFY level 2 option as the default is now level 1.
> - Removed all SSP options as the default now uses the best
>   option based on toolchain support.
> - Similar to SSP, for RELRO, the default now uses the best
>   option based on toolchain support.
> - Completely drop PIC PIE as it defaults =y
> 
> Signed-off-by: Matthew Weber <matthew.weber@collins.com>

Applied to master, thanks.

Regards,
Yann E. MORIN.

> ---
>  utils/genrandconfig | 14 --------------
>  1 file changed, 14 deletions(-)
> 
> diff --git a/utils/genrandconfig b/utils/genrandconfig
> index 93dc6d898b..e1655655fa 100755
> --- a/utils/genrandconfig
> +++ b/utils/genrandconfig
> @@ -371,22 +371,8 @@ def gen_config(args):
>          configlines.append("BR2_OPTIMIZE_2=y\n")
>      if randint(0, 4) == 0:
>          configlines.append("BR2_SYSTEM_ENABLE_NLS=y\n")
> -    if randint(0, 4) == 0:
> -        configlines.append("BR2_PIC_PIE=y\n")
> -    if randint(0, 4) == 0:
> -        configlines.append("BR2_RELRO_FULL=y\n")
> -    elif randint(0, 4) == 0:
> -        configlines.append("BR2_RELRO_PARTIAL=y\n")
> -    if randint(0, 4) == 0:
> -        configlines.append("BR2_SSP_ALL=y\n")
> -    elif randint(0, 4) == 0:
> -        configlines.append("BR2_SSP_REGULAR=y\n")
> -    elif randint(0, 4) == 0:
> -        configlines.append("BR2_SSP_STRONG=y\n")
>      if randint(0, 4) == 0:
>          configlines.append("BR2_FORTIFY_SOURCE_2=y\n")
> -    elif randint(0, 4) == 0:
> -        configlines.append("BR2_FORTIFY_SOURCE_1=y\n")
>  
>      # Randomly enable BR2_REPRODUCIBLE 10% of times
>      # also enable tar filesystem images for testing
> -- 
> 2.17.1
> 
> _______________________________________________
> buildroot mailing list
> buildroot@busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot
Yann E. MORIN May 24, 2021, 1:32 p.m. UTC | #3
Matthew, All,

On 2021-05-24 15:16 +0200, Yann E. MORIN spake thusly:
> On 2021-05-21 08:17 -0500, Matthew Weber via buildroot spake thusly:
> > Since 810ba387bec3c5b, some form of these options are enable
> > by default. Specifically:
> > 
> > - Kept FORTIFY level 2 option as the default is now level 1.
> > - Removed all SSP options as the default now uses the best
> >   option based on toolchain support.
> > - Similar to SSP, for RELRO, the default now uses the best
> >   option based on toolchain support.
> > - Completely drop PIC PIE as it defaults =y
> > 
> > Signed-off-by: Matthew Weber <matthew.weber@collins.com>
> > ---
[--SNIP--]
> I was going to apply this, but then I was wondering: shouldn't we
> randomly *disable* them, now?
> 
> Indeed, as much enabling those options randomly helped uncover build
> issues, maybe disabling them would also help?
> 
> But I don't feel very strong either, so you should have no issue
> convincing me to apply as-is. ;-)

As discussed on IRC: if there is an issue with any of those disabled, we
can handle them as they are reported by users.

Regards,
Yann E. MORIN.
diff mbox series

Patch

diff --git a/utils/genrandconfig b/utils/genrandconfig
index 93dc6d898b..e1655655fa 100755
--- a/utils/genrandconfig
+++ b/utils/genrandconfig
@@ -371,22 +371,8 @@  def gen_config(args):
         configlines.append("BR2_OPTIMIZE_2=y\n")
     if randint(0, 4) == 0:
         configlines.append("BR2_SYSTEM_ENABLE_NLS=y\n")
-    if randint(0, 4) == 0:
-        configlines.append("BR2_PIC_PIE=y\n")
-    if randint(0, 4) == 0:
-        configlines.append("BR2_RELRO_FULL=y\n")
-    elif randint(0, 4) == 0:
-        configlines.append("BR2_RELRO_PARTIAL=y\n")
-    if randint(0, 4) == 0:
-        configlines.append("BR2_SSP_ALL=y\n")
-    elif randint(0, 4) == 0:
-        configlines.append("BR2_SSP_REGULAR=y\n")
-    elif randint(0, 4) == 0:
-        configlines.append("BR2_SSP_STRONG=y\n")
     if randint(0, 4) == 0:
         configlines.append("BR2_FORTIFY_SOURCE_2=y\n")
-    elif randint(0, 4) == 0:
-        configlines.append("BR2_FORTIFY_SOURCE_1=y\n")
 
     # Randomly enable BR2_REPRODUCIBLE 10% of times
     # also enable tar filesystem images for testing