Kees Cook: gcc-4.5 and -D_FORTIFY_SOURCE=2 with “header” structures


 
Thread Tools Search this Thread
Special Forums Cybersecurity Security Advisories (RSS) Kees Cook: gcc-4.5 and -D_FORTIFY_SOURCE=2 with “header” structures
# 1  
Old 12-17-2010
Kees Cook: gcc-4.5 and -D_FORTIFY_SOURCE=2 with “header” structures

Recently gcc (4.5) improved its ability to see the size of various structures. As a result, the FORTIFY protections have suddenly gotten a bit stricter. In the past, you used to be able to do things like this:

read more



More...
Login or Register to Ask a Question

Previous Thread | Next Thread

8 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Find header in a text file and prepend it to all lines until another header is found

I've been struggling with this one for quite a while and cannot seem to find a solution for this find/replace scenario. Perhaps I'm getting rusty. I have a file that contains a number of metrics (exactly 3 fields per line) from a few appliances that are collected in parallel. To identify the... (3 Replies)
Discussion started by: verdepollo
3 Replies

2. Shell Programming and Scripting

Manipulate all rows except header, but header should be output as well

Hello There... I have a sample input file .. number:department:amount 125:Market:125.23 126:Hardware store:434.95 127:Video store:7.45 128:Book store:14.32 129:Gasolline:16.10 I will be doing some manipulations on all the records except the header, but the header should always be... (2 Replies)
Discussion started by: juzz4fun
2 Replies

3. UNIX for Dummies Questions & Answers

Merge all csv files in one folder considering only 1 header row and ignoring header of all others

Friends, I need help with the following in UNIX. Merge all csv files in one folder considering only 1 header row and ignoring header of all other files. FYI - All files are in same format and contains same headers. Thank you (4 Replies)
Discussion started by: Shiny_Roy
4 Replies

4. OS X (Apple)

[GCC] Missing header files

Good morning! I am creating a program that uses raw sockets in C and need to call the "netpacket/packet.h" header file. However when I compile with gcc i get I'm running os 10.5.8 with version gcc 4.0.1 and just update xcode last night which didn't seem to help. Any ideas will be greatly... (2 Replies)
Discussion started by: taiL
2 Replies

5. Programming

Header file compilation using gcc in Sparc Solaris

I am facing problem while migrating the c++ code from Linux to Solaris. In linux the code is absolutly compiled fine with GCC compiler but when i am using the same in Solaris it coomplains bash-3.1$ gcc LibSip.h gcc: Compilation of header file requested The same command is working fine in... (2 Replies)
Discussion started by: mrupesh74
2 Replies

6. Shell Programming and Scripting

Renaming all header to specific header pattern

Input #HAC0253 EFVHIJHIJEFVTHIJOPKOPKTEFVEFVEFVOPKHIJOPKOPKHIJTTEFVEFVTEFV #BASFS12 EFVEFVHIJEFVEFVTOPKEFVOPKTHIJTTHIJOPK #ACG5115 TEFVEFVOIJEFVHIJHIJOPKOPKHIJHIJTTEFVEFVOPKTTEFVEFVOPKHIJOPKOPKOPK #ECG5114 IJTOPKHIJEFVOEFVEFVOPKTTEFVEFVOPKHIJOPKOPKOPK . . Output (5 Replies)
Discussion started by: patrick87
5 Replies

7. Solaris

Installing gcc - recieve error message gcc : cannot execute

AIM- Install Oracle 11g on Solaris using VMWare Steps 1.Logged on as root 2.Created subfolders à /usr/local/bin & /usr/local/bin/gcc 3.Downloaded gcc & libiconv & unzipped them on my harddrive & burnt them on CD 4.Copied files from CD to /usr/local/bin/gcc 5.Terminal (root) à pkgadd -d... (8 Replies)
Discussion started by: Ackers
8 Replies

8. Linux

Reading the header of a tar file(posix header)

say i have these many file in a directory named exam. 1)/exam/newfolder/link.txt. 2)/exam/newfolder1/ and i create a tar say exam.tar well the problem is, when i read the tar file i dont find any metadata about the directories,as you cannot create a tar containig empty directories. on the... (2 Replies)
Discussion started by: Tanvirk
2 Replies
Login or Register to Ask a Question
HARDENING-CHECK(1)					User Contributed Perl Documentation					HARDENING-CHECK(1)

NAME
hardening-check - check binaries for security hardening features SYNOPSIS
hardening-check [options] [ELF ...] Examine a given set of ELF binaries and check for several security hardening features, failing if they are not all found. DESCRIPTION
This utility checks a given list of ELF binaries for several security hardening features that can be compiled into an executable. These features are: Position Independent Executable This indicates that the executable was built in such a way (PIE) that the "text" section of the program can be relocated in memory. To take full advantage of this feature, the executing kernel must support text Address Space Layout Randomization (ASLR). Stack Protected This indicates that there is evidence that the ELF was compiled with the gcc(1) option -fstack-protector (e.g. uses __stack_chk_fail). The program will be resistant to having its stack overflowed. When an executable was built without any character arrays being allocated on the stack, this check will lead to false alarms (since there is no use of __stack_chk_fail), even though it was compiled with the correct options. Fortify Source functions This indicates that the executable was compiled with -D_FORTIFY_SOURCE=2 and -O1 or higher. This causes certain unsafe glibc functions with their safer counterparts (e.g. strncpy instead of strcpy), or replaces calls that are verifiable at runtime with the runtime-check version (e.g. __memcpy_chk insteade of memcpy). When an executable was built such that the fortified versions of the glibc functions are not useful (e.g. use is verified as safe at compile time, or use cannot be verified at runtime), this check will lead to false alarms. In an effort to mitigate this, the check will pass if any fortified function is found, and will fail if only unfortified functions are found. Uncheckable conditions also pass (e.g. no functions that could be fortified are found, or not linked against glibc). Read-only relocations This indicates that the executable was build with -Wl,-z,relro to have ELF markings (RELRO) that ask the runtime linker to mark any regions of the relocation table as "read-only" if they were resolved before execution begins. This reduces the possible areas of memory in a program that can be used by an attacker that performs a successful memory corruption exploit. Immediate binding This indicates that the executable was built with -Wl,-z,now to have ELF markings (BIND_NOW) that ask the runtime linker to resolve all relocations before starting program execution. When combined with RELRO above, this further reduces the regions of memory available to memory corruption attacks. OPTIONS
--nopie, -p No not require that the checked binaries be built as PIE. --nostackprotector, -s No not require that the checked binaries be built with the stack protector. --nofortify, -f No not require that the checked binaries be built with Fority Source. --norelro, -r No not require that the checked binaries be built with RELRO. --nobindnow, -b No not require that the checked binaries be built with BIND_NOW. --quiet, -q Only report failures. --verbose Report verbosely on failures. --report-functions After the report, display all external functions needed by the ELF. --find-libc-functions Instead of the regular report, locate the libc for the first ELF on the command line and report all the known "fortified" functions exported by libc. --color Enable colorized status output. --lintian Switch reporting to lintian-check-parsable output. --debug Report some debugging during processing. --help, -h, -? Print a brief help message and exit. --man Print the manual page and exit. RETURN VALUE
When all checked binaries have all checkable hardening features detected, this program will finish with an exit code of 0. If any check fails, the exit code with be 1. Individual checks can be disabled via command line options. AUTHOR
Kees Cook <kees@debian.org> COPYRIGHT AND LICENSE
Copyright 2009-2012 Kees Cook <kees@debian.org>. 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 the Free Software Foundation; version 2 or later. SEE ALSO
gcc(1), hardening-wrapper(1) perl v5.14.2 2012-06-14 HARDENING-CHECK(1)