X-Git-Url: https://ruderich.org/simon/gitweb/?p=blhc%2Fblhc.git;a=blobdiff_plain;f=README;h=b60004cc9a7c8f41fd17b25ce4fd710f90ff4ddc;hp=935aa1a45a80cfd17279a6833a1c88e34455b87c;hb=189d593d45a3cab37a1908c2ae6c0c0d0916d60d;hpb=b0ddb66b90fc843f0be02d100721eafeee105235 diff --git a/README b/README index 935aa1a..b60004c 100644 --- a/README +++ b/README @@ -13,8 +13,9 @@ all compiler commands use the correct hardening flags and thus all hardening features are correctly used. It's designed to check build logs generated by Debian's dpkg-buildpackage (or -tools using dpkg-buildpackage like pbuilder or the official buildd build logs) -to help maintainers detect missing hardening flags in their packages. +tools using dpkg-buildpackage like pbuilder or sbuild (which is used for the +official buildd build logs)) to help maintainers detect missing hardening +flags in their packages. At the moment it works only on Debian and derivatives but it should be easily extendable to other systems as well. Patches are welcome. @@ -33,6 +34,10 @@ DEPENDENCIES - Perl - Dpkg::Arch - Dpkg::Version + - Term::ANSIColor >= 2.01 + Bundled with perl. A recent version is only necessary for build logs with + ANSI colors which is rare, blhc works fine without if the build log + doesn't use colors. Not required for buildd mode. USAGE @@ -62,7 +67,7 @@ Consider the following compiler line: blhc generates the following warnings because all hardening flags are missing: - CFLAGS missing (-fstack-protector --param=ssp-buffer-size=4 -Wformat -Wformat-security -Werror=format-security): gcc -g -O2 -o test test.c + CFLAGS missing (-fstack-protector-strong -Wformat -Werror=format-security): gcc -g -O2 -o test test.c CPPFLAGS missing (-D_FORTIFY_SOURCE=2): gcc -g -O2 -o test test.c LDFLAGS missing (-Wl,-z,relro): gcc -g -O2 -o test test.c @@ -96,6 +101,15 @@ following line (output of dpkg-buildpackage): The available hardening flags are adapted to the architecture because some architectures don't support certain hardening options. +Some checks check the build dependencies for certain packages. The following +lines are used to get the build dependencies. The first two are used in buildd +build logs (the second was used in older logs), the third by pbuilder logs, +all are detected: + + Filtered Buildd-Depends: ... + Build-Depends: ... + Depends: ... + LIMITATIONS ----------- @@ -106,9 +120,13 @@ real compile process (output of dpkg-buildpackage): dpkg-buildpackage: ... If it's not present no compiler commands are detected. In case you don't use -dpkp-buildpackage but still want to check a build log adding it as first line +dpkg-buildpackage but still want to check a build log, adding it as first line should work fine. +To prevent false positives when checking debug builds, compiler lines +containing '-OO' or '-Og' are considered debug builds and are not checked for +'-O2', even though fortification doesn't work without '-O2'. + The following non-verbose builds can't be detected: gcc -o test @@ -156,7 +174,7 @@ LICENSE blhc is licensed under GPL version 3 or later. -Copyright (C) 2012 Simon Ruderich +Copyright (C) 2012-2020 Simon Ruderich This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -170,3 +188,5 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . + +// vim: ft=asciidoc