On Tuesday 06 March 2012 08:27 PM, Simon Ruderich wrote: > The LDFLAGS hardening flags are not applied everywhere, some > files don't use hardening flags. > > An updated 0009-hardened-build-flags.patch is attached which > enables it for all files by setting LDFLAGS in ./Makefile.inc > which is included by all Makefiles. $(shell ..) is used instead > of `..` because it's already used in other Makefiles.
hello Simon, That patch didn't apply clean. I have redone it and here's the patch and the result. rrs@champaran:/tmp/Debian-Build/Result/temp$ find -type f \( -executable -o -name \*.so\* \) -exec hardening-check {} + ./lib/libmultipath.so.0: Position Independent Executable: no, regular shared library (ignored) Stack protected: yes Fortify Source functions: yes (some protected functions found) Read-only relocations: yes Immediate binding: no not found! ./lib/multipath/libprioweightedpath.so: Position Independent Executable: no, regular shared library (ignored) Stack protected: yes Fortify Source functions: yes Read-only relocations: yes Immediate binding: no not found! ./lib/multipath/libcheckcciss_tur.so: Position Independent Executable: no, regular shared library (ignored) Stack protected: yes Fortify Source functions: yes (some protected functions found) Read-only relocations: yes Immediate binding: no not found! ./lib/multipath/libprioconst.so: Position Independent Executable: no, regular shared library (ignored) Stack protected: no, not found! Fortify Source functions: unknown, no protectable libc functions used Read-only relocations: yes Immediate binding: no not found! ./lib/multipath/libcheckemc_clariion.so: Position Independent Executable: no, regular shared library (ignored) Stack protected: yes Fortify Source functions: yes (some protected functions found) Read-only relocations: yes Immediate binding: no not found! ./lib/multipath/libprioemc.so: Position Independent Executable: no, regular shared library (ignored) Stack protected: yes Fortify Source functions: unknown, no protectable libc functions used Read-only relocations: yes Immediate binding: no not found! ./lib/multipath/libpriohds.so: Position Independent Executable: no, regular shared library (ignored) Stack protected: yes Fortify Source functions: yes Read-only relocations: yes Immediate binding: no not found! ./lib/multipath/libpriordac.so: Position Independent Executable: no, regular shared library (ignored) Stack protected: yes Fortify Source functions: unknown, no protectable libc functions used Read-only relocations: yes Immediate binding: no not found! ./lib/multipath/libprioontap.so: Position Independent Executable: no, regular shared library (ignored) Stack protected: yes Fortify Source functions: yes Read-only relocations: yes Immediate binding: no not found! ./lib/multipath/libcheckdirectio.so: Position Independent Executable: no, regular shared library (ignored) Stack protected: yes Fortify Source functions: no, only unprotected functions found! Read-only relocations: yes Immediate binding: no not found! ./lib/multipath/libpriohp_sw.so: Position Independent Executable: no, regular shared library (ignored) Stack protected: yes Fortify Source functions: unknown, no protectable libc functions used Read-only relocations: yes Immediate binding: no not found! ./lib/multipath/libprioiet.so: Position Independent Executable: no, regular shared library (ignored) Stack protected: yes Fortify Source functions: yes (some protected functions found) Read-only relocations: yes Immediate binding: no not found! ./lib/multipath/libpriodatacore.so: Position Independent Executable: no, regular shared library (ignored) Stack protected: yes Fortify Source functions: yes Read-only relocations: yes Immediate binding: no not found! ./lib/multipath/libcheckreadsector0.so: Position Independent Executable: no, regular shared library (ignored) Stack protected: yes Fortify Source functions: no, only unprotected functions found! Read-only relocations: yes Immediate binding: no not found! ./lib/multipath/libchecktur.so: Position Independent Executable: no, regular shared library (ignored) Stack protected: yes Fortify Source functions: no, only unprotected functions found! Read-only relocations: yes Immediate binding: no not found! ./lib/multipath/libprioalua.so: Position Independent Executable: no, regular shared library (ignored) Stack protected: yes Fortify Source functions: no, only unprotected functions found! Read-only relocations: yes Immediate binding: no not found! ./lib/multipath/libcheckhp_sw.so: Position Independent Executable: no, regular shared library (ignored) Stack protected: yes Fortify Source functions: no, only unprotected functions found! Read-only relocations: yes Immediate binding: no not found! ./lib/multipath/libcheckrdac.so: Position Independent Executable: no, regular shared library (ignored) Stack protected: yes Fortify Source functions: no, only unprotected functions found! Read-only relocations: yes Immediate binding: no not found! ./lib/multipath/libpriorandom.so: Position Independent Executable: no, regular shared library (ignored) Stack protected: no, not found! Fortify Source functions: unknown, no protectable libc functions used Read-only relocations: yes Immediate binding: no not found! readelf: Error: Unable to read in 0x2020 bytes of section headers readelf: Error: Not an ELF file - it has the wrong magic bytes at the start readelf: Error: Unable to read in 0x2020 bytes of section headers readelf: Error: Not an ELF file - it has the wrong magic bytes at the start ./sbin/multipath: Position Independent Executable: no, normal executable! Stack protected: yes Fortify Source functions: yes (some protected functions found) Read-only relocations: yes Immediate binding: no not found! ./sbin/multipathd: Position Independent Executable: no, normal executable! Stack protected: yes Fortify Source functions: yes (some protected functions found) Read-only relocations: yes Immediate binding: no not found! Please let me know if it satisfies the hardening build flags requirements. Ritesh -- Ritesh Raj Sarraf RESEARCHUT - http://www.researchut.com "Necessity is the mother of invention."
>From d46bb8ffa676445da9d3179a691cb8a9c9038ad3 Mon Sep 17 00:00:00 2001 From: Ritesh Raj Sarraf <r...@debian.org> Date: Mon, 12 Mar 2012 12:42:29 +0530 Subject: [PATCH] Fix hardening build flags --- debian/patches/0009-hardened-build-flags.patch | 25 ++++++++++++----------- 1 files changed, 13 insertions(+), 12 deletions(-) diff --git a/debian/patches/0009-hardened-build-flags.patch b/debian/patches/0009-hardened-build-flags.patch index 10e4dc1..f61190e 100644 --- a/debian/patches/0009-hardened-build-flags.patch +++ b/debian/patches/0009-hardened-build-flags.patch @@ -1,37 +1,38 @@ Multipath Hardening Patch Index: multipath-tools/kpartx/Makefile =================================================================== ---- multipath-tools.orig/kpartx/Makefile 2012-02-10 17:43:42.222462296 +0530 -+++ multipath-tools/kpartx/Makefile 2012-03-05 23:24:52.391915132 +0530 +--- multipath-tools.orig/kpartx/Makefile 2012-03-12 12:28:56.914148797 +0530 ++++ multipath-tools/kpartx/Makefile 2012-03-12 12:39:06.505171593 +0530 @@ -12,7 +12,7 @@ CFLAGS += -DLIBDM_API_COOKIE endif -LDFLAGS = -ldevmapper -+LDFLAGS = `dpkg-buildflags --get LDFLAGS` -ldevmapper ++LDFLAGS += $(shell dpkg-buildflags --get LDFLAGS) -ldevmapper OBJS = bsd.o dos.o kpartx.o solaris.o unixware.o dasd.o sun.o \ gpt.o mac.o crc32.o lopart.o xstrncpy.o devmapper.o EXEC = kpartx Index: multipath-tools/Makefile.inc =================================================================== ---- multipath-tools.orig/Makefile.inc 2012-02-10 17:43:42.222462296 +0530 -+++ multipath-tools/Makefile.inc 2012-03-05 23:25:58.160241232 +0530 -@@ -36,8 +36,9 @@ +--- multipath-tools.orig/Makefile.inc 2012-03-12 12:28:56.914148797 +0530 ++++ multipath-tools/Makefile.inc 2012-03-12 12:38:23.568958684 +0530 +@@ -36,8 +36,10 @@ GZIP = /bin/gzip -9 -c INSTALL_PROGRAM = install -OPTFLAGS = -pipe -g -Wall -Wunused -Wstrict-prototypes -CFLAGS = $(OPTFLAGS) -fPIC -DLIB_STRING=\"${LIB}\" +OPTFLAGS = -pipe -Wall -Wunused -Wstrict-prototypes -+CFLAGS = `dpkg-buildflags --get CFLAGS` `dpkg-buildflags --get CPPFLAGS` $(OPTFLAGS) -fPIC -DLIB_STRING=\"${LIB}\" ++CFLAGS = $(shell dpkg-buildflags --get CFLAGS) $(shell dpkg-buildflags --get CPPFLAGS) $(OPTFLAGS) -fPIC -DLIB_STRING=\"${LIB}\" ++LDFLAGS = $(shell dpkg-buildflags --get LDFLAGS) + SHARED_FLAGS = -shared %.o: %.c Index: multipath-tools/multipathd/Makefile =================================================================== ---- multipath-tools.orig/multipathd/Makefile 2012-03-05 23:21:21.886871295 +0530 -+++ multipath-tools/multipathd/Makefile 2012-03-05 23:27:26.168677659 +0530 +--- multipath-tools.orig/multipathd/Makefile 2012-03-12 12:29:27.954302713 +0530 ++++ multipath-tools/multipathd/Makefile 2012-03-12 12:29:28.466305251 +0530 @@ -6,7 +6,7 @@ # basic flags setting # @@ -43,14 +44,14 @@ Index: multipath-tools/multipathd/Makefile # Index: multipath-tools/multipath/Makefile =================================================================== ---- multipath-tools.orig/multipath/Makefile 2012-02-10 17:43:42.230462346 +0530 -+++ multipath-tools/multipath/Makefile 2012-03-05 23:26:48.148489144 +0530 +--- multipath-tools.orig/multipath/Makefile 2012-03-12 12:28:56.914148797 +0530 ++++ multipath-tools/multipath/Makefile 2012-03-12 12:40:48.061675186 +0530 @@ -7,7 +7,7 @@ OBJS = main.o CFLAGS += -I$(multipathdir) -LDFLAGS += -lpthread -ldevmapper -ldl -L$(multipathdir) -lmultipath -+LDFLAGS += `dpkg-buildflags --get LDFLAGS` -lpthread -ldevmapper -ldl -lmultipath -L$(multipathdir) ++LDFLAGS += $(shell dpkg-buildflags --get LDFLAGS) -lpthread -ldevmapper -ldl -lmultipath -L$(multipathdir) EXEC = multipath -- 1.7.9.1