open.itworld.com
  Search  
Security Home Page Security Webcasts Security White Papers Security Newsletters Security News Open Topics Careers ITworld Voices ITwhirled The Security site of ITworld.com
A Slap Upside the Head
LINUX SECURITY --- 09/24/2002

Brian Hatch

Windows users are accustomed to worms, viruses, and Trojans. It's much more rare for Unix-like operating systems to become targets. Perhaps it's because we're more likely to secure our systems; perhaps it's because Open Source software 'is not designed to enable virus replication' [1]; or maybe it's because there are so many Windows machines out there, it's a much more appealing target. 

On this topic

When a worm that attacks Unix-like systems comes round though, it's noteworthy. While there was an Apache worm [2] about two months ago, it didn't seem to catch on at all. Now a new worm -- dubbed linux.slapper.worm -- has started targeting SSL-enabled Apache servers and has had noticeable impact: 30,000 hosts have been compromised as of September 17th. [3]

By now [4], news about the worm has been all over the place, so I won't rehash it in detail. Suffice it to say that a buffer overflow in OpenSSL [5] can be abused on Apache servers that support SSL (Apache + mod_ssl or Apache-SSL) to gain access as the apache user. Patches (OpenSSL 0.9.6e and later) have been out for a while. The bug is in the SSL negotiation, which happens before the actual HTTP data (GET/POST/etc) is sent, which means you won't have any indication in your logs that the attack is occurring.

If the buffer overflow succeeds, the worm uploads a file '/tmp/.bugtraq.c', compiles it, and runs the resulting executable /tmp/.bugtraq. This program starts listening for connections on UDP port 2002, joining a Peer-To-Peer network of cracked machines. This P2P network can be used to create Distributed Denial of Service attacks (IPv4 and IPv6 TCP floods, DNS floods and more) and allow the cracker to run any arbitrary commands on your machine. (A useful example would be to upgrade the P2P code to include new functionality.) Though he does not get root access directly, it's possible to get in and poke around more to see if he can elevate his privileges.

Whew. Now that we've gotten the background out of the way, here's the worst thing about the situation: it's completely preventable. If you follow paranoid procedures when setting up your machine, you would have stopped this worm at several points and either avoid becoming infected at all, or at least keep yourself from becoming part of the P2P network. Let's take a look at generic security practices that could keep this worm in check:

ServerTokens
Many worms check the Daemon's banner before attempting an exploit in order to choose the best attack available. If you set the Apache 'ServerTokens' configuration variable to 'ProductOnly' then it will only broadcast 'Apache' and not the version and installed modules. (For more info about this configuration setting, see [6].)

SSLv2 Support
Most, if not all, Web browsers support SSLv3 now. This particular vulnerability is in the SSLv2 code. If you'd turned off SSLv2, you'd be safe even with buggy OpenSSL libraries.

Upgrades
You need to keep abreast of the security-related patches for your system. Your distro may even have tools to automate this, such as up2date on a Red Hat machine or 'apt-get update && apt-get upgrade' in cron on a Debian machine. Upgrading buggy software means you're not running buggy software. Hard to exploit something that isn't broken....

Minimal Software Installations
The worm requires gcc to compile the .bugtraq.c file. If you didn't install gcc, then the worm will fail before even if it managed to break into your web server. Just as you'd turn off a daemon you aren't using, why keep software installed that you don't need? It only gives an attacker another tool that can make the cracking easier.

Restrictive File Permissions
If you need to have gcc on your machine, put it in a special group that can only be used by developers:

# groupadd devel
# chgrp devel `which gcc` # chmod 750 `which gcc`

If you restrict the groups allowed to run your software, then meta users like 'apache' and 'www-data' won't be able to use them.

Restrictive Mount Permissions
This worm uploads a file to /tmp, compiles it, and runs it. If you mount /tmp with the 'noexec' flag (and 'nosuid' would be good too) then even if the worm got this far, it wouldn't be able to run the executable.

Paranoid Kernel Networking ACLs
If you've created rules that permit just the network traffic you expect, then the P2P packets on UDP port 2002 would be blocked. You should create rules that detail both inbound (to prevent folks from contacting you) and outbound (to prevent cracker processes on your machine from connecting out) connections. You may only need outbound UDP 53 to your DNS server, for example, and all other UDP packets could be blocked. This would prevent you from being part of the cracked P2P network, even if the exploit had gotten this far.

So if you took these steps, which are not specific to this worm, you would have been protected from this worm at multiple stages. Proactive security would have saved the day.

NOTES

[1] The original quote, "Other e-mail programs are not designed to enable virus replication" was listed in the Melissa Virus warning from Microsoft, as if Outlook had this enviable feature and no one else did. This section was later silently removed from the Web page. http://www.microsoft.com/mac/products/office/2001/virus_alert.asp [2] September 17th was, incidentally, my fiancee's birthday. Feel free to send her an email at 'birthdaywishes@zerbert.org'. [3] The Apache Chunked vulnerability, discovered by GOBBLES. *BSD exploit code was distributed, a Linux exploit was hinted at, but never publicly proven. [4] Due to a mix-up in the ITworld posting system, the wrong message went out last week, so my spectacularly boring worm write-up wasn't sent out on time. Don't worry, you didn't miss anything. [5] http://online.securityfocus.com/bid/5363 [6] http://www.hackinglinuxexposed.com/articles/20020312.html

________________________________________________________________________

AUTHOR'S NOTE

In an effort to keep the Linux Security information flowing, check out my new weekly column: 'Linux Security: Tips, Tricks, and Hackery'. It will offer weekly tidbits of security knowledge to help you keep your Linux (or other Unix) system secure. You can sign up now by going to the following URL: http://lists.onsight.com/

Or send an email with the word 'Subscribe' in the subject to: Linux_Security-request@lists.onsight.com

Please note that you will *not* be automatically subscribed to the new list.

I look forward to having you on the new list!

Brian Hatch (bri@hackinglinuxexposed.com)

 

Brian Hatch is Chief Hacker at Onsight, Inc., and author of Hacking Linux Exposed and Building Linux VPNs. He believes there's only one piece of software that he considers essential for every machine, and that's vi. Everything else is negotiable. Brian can be reached at brian@hackinglinuxexposed.com.



Advertisements
Sponsored links
Top 5 Reasons to Combine App Performance and Security
KODAK i1400 Series Scanners stand up to the challenge
Bring harmony to your mix of UNIX-Linux-Windows computing environments
Locate Hidden Software on business PCs with this free tool
 Home   Newsletters  LINUX SECURITY
www.itworld.com    open.itworld.com     security.itworld.com     smallbusiness.itworld.com
storage.itworld.com     utilitycomputing.itworld.com     wireless.itworld.com

 
Contact Us   About Us   Privacy Policy    Terms of Service   Reprints  

CIO   Computerworld   CSO   GamePro   Games.net   IDG Connect   IDG World Expo   Infoworld   ITworld   JavaWorld   LinuxWorld  MacUser   Macworld   Network World   PC World   Playlist  

Copyright © Computerworld, Inc. All rights reserved

Reproduction in whole or in part in any form or medium without express written permission of Computerworld Inc. is prohibited. Computerworld and Computerworld.com and the respective logos are trademarks of International Data Group Inc.