Hello Matthias,

We are currently setting -z now for slowdebug builds. That should be removed if it's now set by default for all configs.

/Erik

On 2020-04-01 06:35, Baesken, Matthias wrote:
Hello, please review this binary hardening related change.

To improve binary hardening, we should enable full relro in the OpenJDK builds. 
Currently
our build settings enable only partial relro (they miss z,now).
See 
https://www.redhat.com/en/blog/hardening-elf-binaries-using-relocation-read-only-relro

"Both partial and full RELRO reorder the ELF internal data sections to protect 
them from being overwritten in the event of a buffer-overflow,
but only full RELRO mitigates the above mentioned popular technique of overwriting 
the GOT entry to get control of program execution."

See also :
https://wiki.debian.org/Hardening

Some documentations/blogs mention slight performance impact of full relro (for 
startup performance) .

My quick checks on an example Linux server show not much impact (checked on 
linux x86_64) .
1)time on a   java HelloWorld  varies   (for both a patched and  unpatched  
JDK)    between 0,6 and 0,7 seconds  ;
2) perf - runs on a java HelloWorld   show  a bit less  cycles (not clear why) 
but more  instructions :


"normal  JVM" :
         185,085,660      cycles                    #    2.424 GHz              
        ( +-  0.54% )  (83.18%)
         128,415,594      stalled-cycles-frontend   #   69.38% frontend cycles 
idle     ( +-  0.80% )  (80.98%)
          84,990,433      stalled-cycles-backend    #   45.92% backend  cycles 
idle     ( +-  1.78% )  (65.38%)
         102,950,894      instructions              #    0.56  insns per cycle
                                                    #    1.25  stalled cycles 
per insn  ( +-  1.48% )  (86.90%)
Changed JVM with z,now  set :
         182,514,813      cycles                    #    2.394 GHz              
        ( +-  0.58% )  (80.14%)
         126,879,112      stalled-cycles-frontend   #   69.52% frontend cycles 
idle     ( +-  0.81% )  (81.24%)
          82,691,295      stalled-cycles-backend    #   45.31% backend  cycles 
idle     ( +-  1.72% )  (69.16%)
         103,958,399      instructions              #    0.57  insns per cycle
                                                    #    1.22  stalled cycles 
per insn  ( +-  1.21% )  (89.47%)

Bug/webrev :

https://bugs.openjdk.java.net/browse/JDK-8241996

http://cr.openjdk.java.net/~mbaesken/webrevs/8241996.0/


Best regards, Matthias

Reply via email to