Archive for the Software Category

Security Fix – Apple issues security updates for Mac OS X.

How can this be?  My father recently went to the Apple Store outside Chattanooga TN, and they told him, “Apple doesn’t need any anti-virus, or other security software.  It’s just secure.”

Apple’s Advertising program makes it out to be impervious to the threats that all of the other computers might also have

Even Brian Krebs (While I like and respect him), stated in his blog a few weeks back that to be secure on the internet, you should do your online transactions on a Mac.

Well… something seems to be amiss.

Let’s be clear here:

All Operating systems:

  • Are flawed
  • Will be attacked
  • Need some sort of Anti-Virus
  • Need a client based Firewall
  • Need constant care and attention

The major issue with most operating systems is the User.  Most users, of any operating system, fiddle with the configuration.  This is similar to saying that “All drivers of a car, modify their car”.  This is somewhat true.  Let’s explore this for a minute:

Types of modifications drivers do to their cars:

  • Seat Covers
  • Floor Mats
  • Rims / hub caps
  • Exterior and Interior Trim
  • Stereo System/GPS
  • Tires
  • Engine Modifications/Upgrades
  • Suspension Modifications/Upgrades

Except for the last three items, most of these things, in moderation, are harmless to the driving safety of the vehicle.  However, if you don’t know what you’re doing, and you make some or all of the last three changes, you’re going to fall into one of the following categories:

  • Outside your ability to drive the vehicle
  • Creating an unsafe engine
  • Creating an unstable vehicle to drive

Now, taking this analogy back to computers, if you make modifications on your computer system, like installing software un-proven software, or installing many of the gazillion web toys to play games online (for example, flash-based games), you’re inviting your system to be taken over.  When you add any of the other high risk behaviors that we’ve been asking people not to do for the past 12+ years on the internet, (e.g. surfing porn, downloading music and movies, file sharing, opening un-requested emails, not having a firewall, not having Anti-Virus & Anti-Spyware tools, etc…) you have a recipe for disaster.

I think that it is high time that we hold the software manufacturers accountable.  (Including Apple)  Software manufacturers have to OWN the risk, and share the risk with the general public.  After all, if you purchased an automobile that was prone to blowing up while you used it normally, wouldn’t it be recalled?  Couldn’t you sue the manufacturer?  It’s high time that companies get with the program, and start making software that is SECURE BY DEFAULT, instead of bolting on thousands of “patches”, “fixes”, and even stating, “We rely on third party companies to provide that functionality”.

Apple is the biggest failure in Truth in Advertising, and since there are so many Apple Fan Bois, (sic), it doesn’t seem to be happening.  Sorry, I’m not falling for the smoke screen.  Sadly, many of you are.

How about you “Man Up”, and ask your wonderful Apple manufacturer to be truthful?

That’s my 2¢, YMMV.

-

dc0de.

  • Share/Bookmark

While working this past week, I encountered a problem that I first solved in 1997, while working in Norcross for a small start up firm. The problem that we were having was related to a client/server connection going through a Firewall, being shut down after 5 minutes of no activity. I was amazed that a Firewall would shut down an idle connection in 5 minutes, but that’s what was happening. To make matters worse, the Firewall (Cyberguard), was hard coded to shut down idle tcp sessions after 5 minutes, and you couldn’t modify it in any way.

Well, we replaced that firewall, with a different product, but later that same year, we encountered the problem when we encountered the CheckPoint default session timeout of 60 minutes. We considered modifying the setting to 2 or more hours, but realized the risks of doing so. Leaving tcp connections open for long periods of time invites potential session hijacking risks. Since we were a security conscious company, we decided to look for alternate solutions. We went back to the RFC’s and really dug into TCP/IP settings and TCP Tuning.

We looked at how the tcp stack is implemented in Windows and found several documents on how to modify the systems we were running. In fact, I used the technet article so often, I have it memorized.  It’s Q120642.    We made several registry modifications and I even used this knowledge to write a document for CheckPoint FireWall-1 on how to tune the TCP stack on a Windows host that runs FireWall-1.

Several of the settings were modified to allow a high connection load,others we made on the servers on different segments on the firewalls.

To improve Connection Load we modified these two settings:

ForwardBufferMemory – default was for enough for fifty 1480-byte packets, rounded to a multiple of 256  (ONLY 50!!!)  We increased this to 5000 (Note, if you change this, you have to change NumForwardPackets as well)

NumForwardPackets – default here was enough for fifty packet headers.  We increased this to 5000 as well.  (Note, if you change this, also change ForwardBufferMemory)

(For windows servers running Internet facing sites, where connections may be greater and you need to transmit more date, you may also want to modify the above listed parameters)

We modified much more and here isn’t the forum, however, Microsoft has actually written a very nice document on how to tune your 2008 servers for many different scenarios.  You can find it here: http://www.microsoft.com/whdc/system/sysperf/Perf_tun_srv.mspx (read it… it’s actually well written!)

Now for you Linux guys, I know… you want to know how to tune your stacks too! Well, all I can say is learn your distro.  Use Google.  Or better yet, let me do that for you…Click Here for Linux TCP Tuning Tips

BUT I DIGRESS….

This is really about trying to get people to OPEN their minds and think outside the box.  No, wait… No it’s not.  It’s about getting people to open their minds and listen to reason.  Here are some interesting facts about tcp_keep_alives.

  • RFC 1122 states “A “keep-alive” mechanism periodically probes the other end of a connection when the connection is otherwise idle, even when there is no data to be sent. The TCP specification does not include a keep-alive mechanism because it could: (1) cause perfectly good connections to break during transient Internet failures; (2) consume unnecessary bandwidth (“if no one is using the connection, who cares if it is still good?”); and (3) cost money for an Internet path that charges for packets.”
  • it goes on to state, “To confirm that an idle connection is still active, these implementations send a probe segment designed to elicit a response from the peer TCP. Such a segment generally contains SEG.SEQ = SND.NXT-1 and may or may not contain one garbage octet of data. Note that on a quiet connection SND.NXT = RCV.NXT, so that this SEG.SEQ will be outside the window. Therefore, the probe causes the receiver to return an acknowledgment segment, confirming that the connection is still live. If the peer has dropped the connection due to a network partition or a crash, it will respond with a RST instead of an acknowledgment segment.”
  • This RFC was written in 1989!!!

I was asked what the “down side” of enabling keep alives were today, and there really is ONLY one.  BANDWIDTH.  In 1989, bandwidth was expensive.  Note in the section above, it mentions why the specification for TCP doesn’t REQUIRE a keep alive mechanism… to cause a good connection to fail during transient Internet Failures.  Wow… that doesn’t really happen in $20mil data centers…. does it? And it could cost more because you’re putting a packet on the wire, and it may cost more $$ in charges for packets… Do you really pay more for two packets totaling less than 256 bytes every n minutes?  On your internal 10Gig network? (I don’t think so)…

So, the downside is ≤ 256 bytes every n minutes, or, some intermediary security device will time out your “TIME_WAIT” connections every 30 or 60 minutes. (depending on your security products)

Product/Default Timeout
Juniper SRX / 30 minutes
CheckPoint FW-1/60 minutes
Cisco PIX-ASA/60 minutes
TCP Default / 120 minutes

So, if you’re a platform operations person, and you’re presented with this problem, should you:

A) Tell everyone to modify every protocol on every security device in the network to keep Applications that don’t support Application Level Keep-Alives connected?

B) Enable tcp keep alives on the server hosts that are running these broken applications?

BIG HINT, the answer is B!

Epilogue:

TCP settings are not specific to one product, one operating system or one device.  The TCP/IP stack is mostly deployed as a standard by “most” vendors, and your settings and capabilities most likely are going to vary.  If you are looking for the specifics of the Operating System, hardware, vendor or other product, PLEASE GOOGLE IT, or contact your vendor directly.  If they don’t know the TCP/IP tuning parameters, stop buying their equipment, they’re too stupid to deserve your money.  As always, this is my 2¢, YMMV.  All rights reserved for those products that I’ve mentioned by name.

To confirm that an idle connection is still active, these implementations send a probe segment designed to elicit a response from the peer TCP. Such a segment generally contains SEG.SEQ = SND.NXT-1 and may or may not contain one garbage octet of data. Note that on a quiet connection SND.NXT = RCV.NXT, so that this SEG.SEQ will be outside the window. Therefore, the probe causes the receiver to return an acknowledgment segment, confirming that the connection is still live. If the peer has dropped the connection due to a network partition or a crash, it will respond with a RST instead of an acknowledgment segment.

  • Share/Bookmark
This entry is part 1 of 1 in the series Useful Tools

Here’s a cool tool I found, by accident.  It may be old to some of you, but I find it to be very useful.  It allows me to make bootable USB sticks, very easily. Sourceforge Project Page Wikipedia Entry UNetbootin is an amazing tool, well written and multi-platform.  I have used this tool to create several USB Bootable flash drives, and really enjoy it’s ease of use.  There are several options for well known distributions, that will create a bootable USB flash disk, and download the latest iso image to build your flash distro. **You can also install your own distribution of choice, as seen in the screen shot below:

http://unetbootin.sourceforge.net/#introduction

Options in the current version, are: Arch Linux, BackTrack, CentOS, CloneZilla, Damn Small Linux, Debian, Dream Linux, Elive, FaunOS, Fedora, FreeBSD, FreeDOS, FrugalWare, Gentoo, Gujin, Kubuntu, Linux Mint, Mandriva, NetBSD, NTPasswd, openSUSE, Ophcrack, Parted Magic, PCLinuxOS, Puppy Linux, Slax, SliTaz, Smart Boot Manager, Super Grub Disk, Ubuntu, Xubuntu, and Zenwalk.

If you don’t see your distro of choice, you can simply download the iso image, and select it from your hard drive.  I used it to install SumoLinux from iso onto a 32GB usb stick recently, and it worked flawlessly.   As I am writing this, I’m also installing SliTaz onto a 1MB USB stick, and including the download of the ISO, from start to finish, took only a few steps.

  1. Insert the target usb stick
  2. Launch UNetbootin
  3. Select the drive from the dropdown, (My only USB inserted was F:\, and was preselected)
  4. Select the distribution from the dropdown list
  5. Press “OK”

The Slitaz distro was 26Mb, so it took a minute or two to download, and then the build process begins:

UNetbootin - SliTaz download

Once downloaded, the process only takes about 60 seconds:

UNetbootin - SliTaz installed

I am very happy to have found it, and wish to thank Geza Kovacs (tuxcantfly) [The Author of UNetbootin], and all those who helped.  This is a great tool!

  • Share/Bookmark
This entry is part 1 of 1 in the series dc404

This month’s dc404 meeting was awesome.  We had ~40 people there and discussed many of the tools that we all use for our computers, and I found quite a few that I think I’m going to have to add to my personal list.

I decided in the first 10 minutes of the meeting that I would put together the list of what was presented, in order for us to have a record of them, and perhaps to even add more comments, and additional tools from some people who weren’t comfortable sharing in a large group.

My thanks to everyone who contributed, I’m always amazed at our groups dynamic, and appreciate everyone’s contributions.

I have uploaded the spreadsheet that I took my notes in here, and also an HTML page here, that you can simply bookmark and refer to…

If you’d like to add more tools, or leave a comment, please do.  (If you want an account to blog here, please simply request one).

dc0de.

  • Share/Bookmark

© 2008-2010 dc0de\'s notes... & dc0de.com All Rights Reserved -- Copyright notice by Blog Copyright