|
|
Log in / Subscribe / Register

Security

Brief items

Hardening Linux against buffer overflows

Whenever kernel hacker Ingo Molnar disappears for a while, it is reasonable to expect that he will resurface with some interesting new development. In the past, he has materialized with the TUX in-kernel web server, the O(1) scheduler, and the new kernel threads implementation. His most recent offering, however, has to do with making Linux systems more resilient in the face of buffer overflow vulnerabilities.

The new "Exec Shield" patch (which applies to the 2.4.21 release candidate kernel) takes several steps to fight buffer overflows, including:

  • Engaging in some x86 segmentation magic to minimize the range of addresses where the processor can execute code. This approach is essentially a hack to work around the inconvenient fact that the x86 architecture lacks a page table flag for controlling execute permission. By playing with segments, this patch makes it impossible to execute code on the stack and in as much of the data area as possible. As a result, the execution of exploit code delivered via buffer overflows becomes far more difficult.

  • As much executable code as possible is moved into the lowest part of the virtual address space - below 16MB. Addresses in this range begin with a zero byte, making them hard to create with purely ASCII overflows. Many applications which deal with C strings cannot be overflowed with a string containing NULL bytes. Others, of course, will read any sort of data and will not be affected by this particular change. For applications for which this measure is effective, however (and that set includes most web-based applications), this shift into the "ASCII armor" area will block exploits which work by jumping into library code which might, say, execute a shell.

  • A subsequent release of the patch includes shared library and stack address randomization. These measures make mass exploits harder, since each target process is different.

This approach, note, is different from that used in the recent OpenBSD 3.3 release. OpenBSD does not (yet) provide executable stack protection on the x86 architecture; instead, it relies on detecting buffer overflows with a modified compiler that installs (and checks) "canaries" on the stack. The OpenBSD "W^X" execute permission control will be extended to the x86 architecture in 3.4.

So does this approach bring any real security? Non-executable stack patches have failed to get into the Linux kernel before, since Linus does not believe in them:

In short, anybody who thinks that the non-executable stack gives them any real security is very very much living in a dream world. It may catch a few attacks for old binaries that have security problems, but the basic problem is that the binaries allow you to overwrite their stacks.

The real solution, says Linus, is to fix the applications. That is undoubtedly true, but fixing all of the applications out there (and keeping them fixed) is not an easy task. In the meantime, raising the bar for potential attackers may well be the right thing to do. It would not be surprising to see this patch find its way into the kernels shipped by the major distributors, even if Linus does not accept it into the mainline.

Comments (5 posted)

OpenSSL pursuing FIPS 140-2 cryptographic certification

The Open Source Software Institute is leading an effort to secure National Institute of Standards and Technology's (NIST) FIPS 140-2 level 1 cryptographic certification for OpenSSL. Hewlett-Packard has provided funding to support the certification effort. In addition, Gary Gross, of HP, is serving as OSSI's program manager and technical lead for the FIPS 140-2 certification program. The press release is in PDF format. (Thanks to David A. Wheeler)

Comments (none posted)

New vulnerabilities

epic4: buffer overflows and arbitrary code execution

Package(s):epic4 CVE #(s):
Created:May 2, 2003 Updated:May 22, 2003
Description: Timo Sirainen discovered several problems in EPIC4, a popular client for Internet Relay Chat (IRC). A malicious server could craft special reply strings, triggering the client to write beyond buffer boundaries. This could lead to a denial of service if the client only crashes, but may also lead to executing of arbitrary code under the user id of the chatting user.
Alerts:
Slackware SSA:2003-141-01 epic4 2003-05-22
Debian DSA-298-1 epic4 2002-03-05

Comments (none posted)

fuzz: symlink vulnerability

Package(s):fuzz CVE #(s):
Created:May 7, 2003 Updated:May 7, 2003
Description: The fuzz software stress testing tool has a temporary file vulnerability which can be exploited by a local attacker.
Alerts:
Debian DSA-302-1 fuzz 2003-05-07

Comments (none posted)

leksbot: improper setuid-root execution

Package(s):leksbot CVE #(s):
Created:May 6, 2003 Updated:May 7, 2003
Description: Maurice Massar discovered that, due to a packaging error, the program /usr/bin/KATAXWR was inadvertently installed setuid root. This program was not designed to run setuid, and contained multiple vulnerabilities which could be exploited to gain root privileges.
Alerts:
Debian DSA-299-1 leksbot 2003-05-06

Comments (none posted)

mod_auth_any: remote exploit

Package(s):mod_auth_any CVE #(s):CAN-2003-0084
Created:May 2, 2003 Updated:May 7, 2003
Description: mod_auth_any is a web server module that allows the Apache httpd server to call arbitrary external programs to verify user passwords.

Vulnerabilities have been found in the way mod_auth_any escapes shell arguments when calling external programs. These vulnerabilities allow remote attackers to run arbitrary commands as the user under which the Web server is running.

Alerts:
Red Hat RHSA-2003:113-01 mod_auth_any 2002-03-05

Comments (none posted)

openssh: timing attack leads to information disclosure

Package(s):openssh CVE #(s):CAN-2003-0190
Created:May 2, 2003 Updated:November 30, 2004
Description: From the advisory: "During a pen-test we stumbled across a nasty bug in OpenSSH-portable with PAM support enabled (via the --with-pam configure script switch). This bug allows a remote attacker to identify valid users on vulnerable systems, through a simple timing attack. The vulnerability is easy to exploit and may have high severity, if combined with poor password policies and other security problems that allow local privilege escalation."
Alerts:
Ubuntu USN-34-1 openssh 2004-11-30
OpenPKG OpenPKG-SA-2003.035 openssh 2003-08-06
Red Hat RHSA-2003:222-01 openssh 2003-07-29
Gentoo 200305-02 shadow 2003-05-13
Gentoo 200305-01 openssh 2002-03-05

Comments (1 posted)

Resources

The top 75 security tools

Insecure.org has put together a list of the top 75 security tools as determined by a poll of nmap users. The list starts out with the obvious entries (nessus, ethereal, snort), but there's sure to be something new there for just about anybody.

Comments (none posted)

Linux Security Week

The May 5 issue of the Linux Security Week newsletter from LinuxSecurity.com is available.

Full Story (comments: none)

Events

HiverCon 2003 call for papers

HiverCon 2003 is happening November 6 and 7 in Dublin; the call for papers has gone out, with submissions due by the beginning of August.

Full Story (comments: none)

ToorCon 2003 call for papers

The call for papers for ToorCon 2003 (September 26 to 28, San Diego) has gone out; submissions are due by August 17.

Full Story (comments: none)

Page editor: Jonathan Corbet
Next page: Kernel development>>


Copyright © 2003, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds