Forgot your password?
typodupeerror
Government Linux Business Security United States

Keeping Up With DoD Security Requirements In Linux? 211

Posted by timothy
from the behind-the-phony-curve dept.
ers81239 writes "I've recently become a Linux administrator within the Department of Defense. I am surprised to find out that the DoD actually publishes extensive guidance on minimum software versions. I guess that isn't so surprising, but the version numbers are. Kernel 2.6.30, ntp 4.2.4p7-RC2, OpenSSL 9.8k and the openssh to match, etc. The surprising part is that these are very fresh versions which are not included in many distributions. We use SUSE Enterprise quite a bit, but even openSUSE factory (their word for unstable) doesn't have these packages. Tarballing on this many systems is a nightmare and even then some things just don't seem to work. I don't have time to track down every possible lib/etc/opt/local/share path that different packages try to use by default. I think that this really highlights the trade-offs of stability and security. I have called Novell to ask about it. When vulnerabilities are found in software, they backport the patches into whatever version of the software they are currently supporting. The problem here is that doesn't give me a guarantee that the backport fixes the problem for which this upgrade is required (My requirements say to install version x or higher). There is also the question of how quickly they are providing the backports. I'm hoping that there are 100s of DoD Linux administrators reading this who can bombard me with solutions. How do you balance security with stability?"
This discussion has been archived. No new comments can be posted.

Keeping Up With DoD Security Requirements In Linux?

Comments Filter:
  • by Jaysyn (203771) <jaysyn+slashdot&gmail,com> on Wednesday July 22, 2009 @04:36PM (#28787237) Homepage Journal

    The few DOD installations that my company has wired had two completely separate, very secure, physical networks. Big air gap between the secure PCs & the internet.

  • by tprox (621523) on Wednesday July 22, 2009 @04:37PM (#28787241)
    Apply for a waiver on those requirements :)
  • Rolling Distrobution (Score:2, Informative)

    by iVasto (829426) on Wednesday July 22, 2009 @04:39PM (#28787277) Homepage
    If you need to stay cutting edge, why not use a rolling distrobution such as Arch or Gentoo? You could also set up your own repository where you build the Suse packages once and then push them out to all systems.
  • Wrong (Score:1, Informative)

    by Anonymous Coward on Wednesday July 22, 2009 @04:44PM (#28787351)

    DOD does not mandate software versions for the most part. The notion that DOD requires kernel 2.6.30 right now is completely wrong.

    They mandate patching specific vulnerabilities, but that doesn't require upgrading to the latest software version. RHEL is a great example of a distribution that patches vulnerabilities without updating to the latest major versions of specific software, and RHEL is widely used by the government and military.

  • I take exceptions! (Score:4, Informative)

    by SoupIsGood Food (1179) on Wednesday July 22, 2009 @04:48PM (#28787451)

    Get ready for paperwork! You will need to apply for exceptions for everything that's out of compliance... I've worked in similar institutions, tho not the DoD, but most places run this the same way. The list of software in compliance is usually generated by the infosec team, and it's more of a wish-list than a demand... but to pass your audit, you will need to have permission to run out-of-spec software, and document why it's out of spec (vendor doesn't support that ver) and what you're using instead (the ver. the vendor supports). This is generally so the pen-test, NIDS and Intrusion Response people know what they're dealing with.

    Have a chat with your info security shop - they'll walk you through it, and they're secretly envious of unix admins. They yearn for your aura of splendor and awe.

  • Re:Grindstone (Score:4, Informative)

    by jd (1658) <imipak AT yahoo DOT com> on Wednesday July 22, 2009 @04:48PM (#28787455) Homepage Journal

    The most logical thing, surely, is to have a script that grabs the latest source, build suitable binary RPMs and a binary DEB, and then move these files to the correct directory for a repository manager.

    (For RPMs, you could simply use the distro-supplied SPEC file and have the script replace values as needed. This only breaks when files are added/deleted, which usually doesn't happen.)

    Alternatively, standardize on Slackware and banish the distro-specific issues to history. The drawbacks are less support and fewer fixes, but since the DoD can't track or test all variants, it's reasonable to assume they only track issues for the vanilla version. Distro-modded versions could have flaws added ad well as flaws removed, and in the DoD, it's better to have an absence of known threats.

  • Re:Switch distros? (Score:3, Informative)

    by $RANDOMLUSER (804576) on Wednesday July 22, 2009 @04:49PM (#28787479)
    Running a local Gentoo rsync server would be my first choice. You update one box, everybody else updates from there.
  • by drspliff (652992) <harry.roberts@NOSPAM.midnight-labs.org> on Wednesday July 22, 2009 @04:50PM (#28787489)

    Back when I was managing SuSE systems we had our own local mirror of the main updates repository, and another repository of custom packages rolled in-house. The documentation ( http://en.opensuse.org/Creating_YaST_Installation_Sources [opensuse.org] ) covers this pretty well.

    Either way there's no excuse to be compiling packages on each server and managing the usual /usr/local & /opt mess, not to mention with autoyast iirc you can configure it to update packages at specific times of the day unless there's a reboot necessary (and even to reboot automagically for new kernels)

  • by YrWrstNtmr (564987) on Wednesday July 22, 2009 @04:51PM (#28787511)
    Jesus christ on a crutch. If I see this stupidly retarded statement one more time...
    If you've been here on /.more than about 3 seconds, you would have come across a little tidbit of information alluding to the different networks within the US DoD, and their various levels of security. Not everything that lives on a hard drive in the DoD is sooper sekrit and needs to be cut off from the outside world.

    Some of these networks are truly open. Some are only acecssible from a .mil domain. Some are not connected to the internet at all, and split with an air gap. And some even more restrictive than that.

    Your oh so insightful remark is also a cheap way to hamper operations.
    We need a -1 Dumbass.
  • Re:I am surprised (Score:3, Informative)

    by piojo (995934) on Wednesday July 22, 2009 @05:01PM (#28787679)

    Why would they possibly need the latest kernel version?

    Wasn't there a kernel root exploit publicized (and patched) a few days ago?

  • by Bryan_Casto (68979) on Wednesday July 22, 2009 @05:06PM (#28787757)

    There are many, many ways to deal with this, but fortunately while DoD says "update to this specific version," what they really mean is "close this specific vulnerability." Get used to hearing about IAVMs and VMS (Vulnerability Management System).

    Taking the case of OpenSSL specifically, it's not uncommon for there to be patches released for vulnerabilities affecting a previous version. If you're using a vendor like Redhat (and in the mind of DoD, Redhat/SuSE = Linux, and nothing else) what you'll end up with is a version of OpenSSL that appears vulnerable, but in fact has a backported patch applied to the vulnerable distribution. Once you've applied the updated RPM, you can say in good conscience that you've mitigated the vulnerability, and you can close the finding.

    Where it gets stickier is where you have code that depends on a specific version of a library that might be vulnerable. In that case, you need to dig in and understand the specific uses and how you might be able to mitigate the vulnerability by turning off a publicly listening service or applying some strict file controls, or maybe you don't exercise the vulnerable function in the library and can justify it that way.

    Ultimately, you have to be able to convince your DAA (Designated Approving Authority) to accept the risk. If you can't immediately close the issue, you have the option of doing a POAM (Plan of Action and Mitigations) that will outline how you're going to mitigate the issue until you can close it.

    There are a ton resources, but specifically I'd start here:

    http://iase.disa.mil

    You also might find this interesting as a way to secure Redhat machines:

    http://people.redhat.com/jnemmers/STIG/

    Feel free to contact me if you have more specific questions as well.

  • Re:Switch distros? (Score:3, Informative)

    by Lord Ender (156273) on Wednesday July 22, 2009 @05:06PM (#28787769) Homepage

    Why on earth would you need to update all the time? If it were me, I would install gentoo once, then only update those packages on the DoD's list.

  • by SpaFF (18764) on Wednesday July 22, 2009 @05:12PM (#28787869) Homepage

    I am a Linux administrator at a DoD site. I have never seen anything that says that you must run kernel 2.6.30 or anything like that. Can you please provide a link to where you read this? (links to CAC-authenticated websites are ok)

    DoD I-8500.2 requires you to run an OS that is EAL certified at a certain level depending on your classification. The only Linux distributions I know of that have EAL certification are SLES (9 and 10) and RHEL (4 and 5). I keep hearing about people that run things like Fedora, CentOS, and Ubuntu on DoD networks, but I have no idea how they get away with that.

    As far as software versions go, what versions you must be at are dictated by IAV-A, IAV-B, and IAV-T notices. The IAV-A may say that there is a vulnerability that affects kernel versions = 2.6.30 and that you must go to 2.6.30 to be compliant, but as long as your vendor's kernel version addresses the CVEs that the IAV-A references then you are covered.

  • by Obyron (615547) on Wednesday July 22, 2009 @05:16PM (#28787931)

    An air gap means the network isn't connected to the public internet, or to unsecured networks. The "air gap" is the open air between the secure computers and the insecure computers. At present most networking gear has a hard time routing packets through open air, but I hear they're ginning up a new RFC to address that.

  • by bcong (1125705) on Wednesday July 22, 2009 @05:19PM (#28787977)
    He's not kidding. The waiver is called a Plan of Action and Milestone (POA&M) if he's going by the DoD/DISA IA vulnerabilities and their vulnerability management system. This is the only way they can actually set maintenance schedules. A lot of the admins submit these 'waivers' with a plan of action which includes quarterly or monthly patch days, otherwise they'd have to run patches every other day, possibly breaking their applications and services. It's a lot easier to bulk patch and test the app/service once a month or quarter than every day. The frequency of DoD IA notices is so high that this is the only manageable solution.
  • Re:Switch distros? (Score:3, Informative)

    by dpilot (134227) on Wednesday July 22, 2009 @05:24PM (#28788071) Homepage Journal

    One addendum to the Gentoo thing...

    If you're running a "real shop", in other words many boxes that you want to keep in sync, dedicate one or a few as "binhost servers". Compile there, and the rest of the machines just fetch binaries.

    Only problem is that it defuses the usual "waiting to compile" Gentoo jokes.

  • I feel your pain... (Score:2, Informative)

    by The Mighty Bill (210350) on Wednesday July 22, 2009 @05:47PM (#28788423) Homepage

    As a former DoD Linux admin (one of the first for that organization), the best way I've found to keep everything in sync is to build updates yourself (essentially, you're doing the vendors work for them). I know of the guidelines you speak of and the regular advisories and it was quite a task to implement something reasonable. In the end though, the only way I could both satisfy both the security concerns and maintain the rpm database integrity was to build updated versions of the vulnerable software myself and install them.

    `rpmbuild` is definitely your friend. Build a template spec, then as you need to update versions, you just modify a few details and away you go.

    I worked primarily with Red Hat at the time (though I am working with SuSE now) and had the same problems you've described. They (the vendors) typically do not update quickly enough and if you ask them for direct support, you usually get the run around. The "minimum" version issue is particular painful, as it will show up, even if the vendor backports (I'm assuming you're catching these when running the "unix" scan util).

    So long as the updated rpm "provides" everything the old version did, you should have no dependency issues. Good luck.

  • by digsbo (1292334) on Wednesday July 22, 2009 @06:41PM (#28789055)

    Yes, except I would recommend using the same Linux distributions already in place, but adding your own package server to their repository list (or better yet, create a local mirror, modifying only the packages you need).

    For example, if you were running an RPM based distribution, create a YUM server, add it to the existing machine's /etc/yum.conf, and set up a nice little makefile system to easily build new RPMs from the .tar.gz packages; that way you only do the build once.

    RPM makes it easy to create packages out of .tar.gz files, I would guess other distribution formats would as well (i.e. you can run alien on RPMs to get .deb files).

  • DISA Auditors (Score:3, Informative)

    by KiboMaster (129566) on Wednesday July 22, 2009 @07:23PM (#28789493) Homepage
    I do IA work for the DoD. I primarily do Certification and Accreditation for the Department of Navy. The DoD 8500.2 controls require your operating systems to be Common Criteria certified. The EAL level is going to depend on your classification. There are several Linux distributions that have gone through the certification process [commoncriteriaportal.org]. For specific versions of specific software (Linux Kernel, OpenSSL etc.) you're probably referring to the IAVA (IAV-A, IAV-B IAV-T) notices. These are specific known vulnerabilities that usually come from CVE [mitre.org] or some other repository. They change as often as I change my underwear (insert joke about average slashdotter here). It would be impossible to keep a system up to date without significantly breaking functionality.

    The thing I keep seeing is lazy DISA auditors that see the STIG's [disa.mil] as black and white. Most of the testers I've run into aren't technical people. They run the automated SRR scripts [disa.mil] and ding you for having your kernel version out of spec. If I were to sit them down and ask why a particular control was an open finding they'd tell me "Because the STIG said so" without digging deeper as to why.

    The most recent test I was on, the testing team hit the sys admins for an out of date Kernel on a VMWare ESX box. VMWare uses a highly customized version of RHEL. Installing the most recent Kernel would turn the box into a paperweight. The best advice I can give you is to first check with the tester to find out exactly what the vulnerability is and what their recommended fix action is. Depending on your tester you may be wasting your time. I've see far too many tester leave comments like "Not up to STIG compliance". Check with your vendor to see if they have issued a patch to address that vulnerability. Once you have that information you can place your comments into a POA&M and go back to your DAA and explain why a given open finding isn't really a finding and/or won't be fixed. You can also look into mitigation factors to see if you can reduce the severity. Many controls will state "If you're doing X, Y and Z this finding may be reduced from a CAT I to a CAT II".

    Good luck with your C&A and be glad you're not on the documentation side of things :^)

  • by DragonHawk (21256) on Thursday July 23, 2009 @12:23AM (#28791487) Homepage Journal

    "You're getting me curious! What are those networks like?"

    Things start getting really secure when you go classified. (There's plenty that's sensitive or deserving of security that ain't classified.)

    Right away, classified generally means no connections to public networks/communications. (It's in theory possible, with sufficiently sophisticated security software, but practically never done.) Air gap. The only way to transfer data off the secure "island" is via hand-carried media (sneakernet). For most systems, any media mounted on the system is automatically classified to the highest level of the information on the system, so you can't get data *off* easily, either.

    Things are classified CONFIDENTIAL, SECRET, or TOP SECRET (in order of increasing sensitivity). To work with something classified, you have to have a personal security clearance at least as good as the classified stuff. Getting a clearance requires filling out a giant form with your life history, including where you've lived, where you've worked, where you went to school, who knew you at all those places, etc. A background investigation follows. The higher the clearance, the more through the investigation.

    A lot of classified systems are stand-alone, meaning a single computer with no network. Often, the hard drive will be in a removable carrier. When the system isn't in use, the hard drive is stored in a government-approved safe. Or it's a laptop, and the whole computer is kept in a safe.

    Beyond classification levels, some things are put into SAPs ("Special Access Programs", AKA "Compartments"). You need formal, individual approval for each SAP. More paperwork.

    A non-uncommon scenario might be: A computer, locked in a safe, locked in a room, inside a secure facility, protected by multiple levels of alarm systems, surveillance cameras, and armed guards.

    Then things get *really* tough.

    You have TPI, or Two Person Integrity. This means that any time the material is in use, you have to have two people there. They watch each other.

    Beyond that, you have TPC, or Two Person Control. The material is guarded at all times (even when not in use) by two people. The people don't know who will be working with in advance of their shift/assignment. The equipment won't operate without both people acting together.

    None of the above is special knowledge; you can find it all on Wikipedia. I imagine there is stuff DoD *isn't* telling us about, too.

  • Re:Grindstone (Score:3, Informative)

    by turbidostato (878842) on Thursday July 23, 2009 @12:35AM (#28791559)

    "The most logical thing, surely, is to have a script that grabs the latest source, build suitable binary RPMs and a binary DEB, and then move these files to the correct directory for a repository manager."

    Which, more or less, is exactly what it's done at the distribution level... and then you find that it takes about two years to stabilize the compatibility problems that arises with such a practice.

    Then you look elsewhere and find that's what Debian does (to name an example) and that's why it takes Debian about two years to produce a new Stable release (I mention Debian, but Red Hat is more or less about the same, as it is SUSE or Slackware or anyone else). And then you recognize that you are just reinventing the wheel -for the worse, and that you are much better backporting security fixes just like Debian does or else recognizing that by your original procedure (grabbing latests sources, compiling them and pushing them to your computers) you are no better than using Debian Unstable (which it's obviously not so great for a production environment) and that even then, redoing their work is again just reinventing the wheel for the worse.

  • by Tsunayoshi (789351) <.tsunayoshi. .at. .gmail.com.> on Thursday July 23, 2009 @08:45AM (#28794051) Journal

    Because only the major vendors have been approved for use within the DOD?

    Been there done that for 9+ years...it all really depends on how much common sense your IT security group has and how tech savvy they are. My favorite place was where the head IT security guy was an avid computer geek, so when the new vulnerability lists came out, as long as we could provide a memo for the record explaining how we mitigated the vulnerability (backporting the fix, upgrading to the next version, removing the software, etc.), he signed off on it.

    Contrast that to another DOD job where no one wanted to put their signature on anything, so no one would sign a waiver for anything that had a vulnerability. This included running NIS/NIS+/or LDAP on the unix network. So as a result, we had over 200 servers supporting about 100 different projects, each with their own passwd/shadow/group files. Yet the same people allowed a Windows Active Directory domain to be ran on the network (and no, we weren't allowed to use AD as an LDAP server for the unix systems, because the unix ldap client had a vulnerability.)

    If you've ever had to work with the DISA STIGs, you'll know how much of a piece of crap most of their scripts are w/r/t checking that you've performed the required lockdowns per the guides. One example for Solaris 10, one of the checks was to see if a certain service was running (I forget which at the moment). It performed the check by grep'ing for the service in inetd.conf, and seeing if it was commented out. Well, for Solaris 10, management of that service was moved to the SMF facility, so the line didn't exist in inetd.conf. The script wasn't updated for Solaris 10, and since the script wasn't written to handle the case where the line didn't exist, it would give a false positive hit and say you were running the vulnerability. We had to spend 30 minutes explaining this to very non-techy auditor, and finally after still not getting it he basically threw his hands in the air and said "fuck it, I believe you" and let us pass on that ONE lockdown. Multiply that by a couple dozen. Makes for a long week during your annual inspections.

ASHes to ASHes, DOS to DOS.

Working...