https://fedorahosted.org/aqueduct/wiki/RhelStigProcess
-- Michael
> --
> You received this message because you are subscribed to the "Military Open
> Source Software" Google Group.
> To post to this group, send email to mil...@googlegroups.com
> To unsubscribe from this group, send email to
> mil-oss+u...@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/mil-oss?hl=en
>
> www.mil-oss.org
>
I've got such a collection - for our site and network. I've found three
large categories of settings set by my manifest:
(1) Settings that are unique to our network.
(2) Settings that anyone would probably need to set, fully and exactly
specified by the STIG.
(3) Settings that work for us, and comply with the STIG, but someone
else may want to set differently.
Examples:
(1) The host name of the HTTP proxy server.
(2) Disallowing root login via SSH: put "PermitRootLogin no" in the sshd
config file.
(3) Removing all FTP server software packages.
It was easy enough to make separate Puppet classes for the first
category. The second category is where the good sharing really is. But
for the settings in the third category, solutions will differ, because
requirements will differ. (We don't need FTP, but you may at your site.)
After making a whole manifest, I think that the third category is larger
than the second.
I also think it's important that the "collection of puppet manifests" is
informative, not normative: made by the community, not the people who
put out the regulations. Some people are going to have to say, That
preserves the property that there are many means to compliance. If
there's an official puppet manifest, it becomes a new regulation.
--
Kit,Good question, unfortunately its a very long winded answer. I will try and give you the Readers Digest version and hopefully it will make sense.DISA recently changed their requirements for RHEL 5 systems. This is largely in part due to the recent changes from DISA 'home grown' tools such as Gold Disk / Unix SRR to SCAP. The old requirements for systems were based on the now outdated Unix/Linux Checklist, which is what Aqueduct has Puppet content for. The latest version used for RHEL systems is the RHEL 5 STIG, which can be found here:For the new requirements I wrote the remediation content in Bash, not in puppet for a few reasons.1. Puppet is vendor supported by Puppet Labs, but its a pay for license. Some commands / systems I work for/with don't have the funding to go buy a license. Because of the USMC / NAVY requirement that all software be supported from a vendor, using Puppet wasn't the easiest answer.
2. Between myself and others in the industry, the community came to the conclusion that Bash was the preferred 'way' of using remediation content (for now at least)
3. Not that many people are up to speed on Puppet scripting, so using bash encourages more contributions from the community.
Thanks.Comments inline below:Puppet Labs provides an "Enterprise" version…which is pay-for licensed but not required to use Puppet. Puppet itself is OSS software.On Aug 13, 2012, at 9:24 AM, Vincent Passaro <vincent...@gmail.com> wrote:Kit,Good question, unfortunately its a very long winded answer. I will try and give you the Readers Digest version and hopefully it will make sense.DISA recently changed their requirements for RHEL 5 systems. This is largely in part due to the recent changes from DISA 'home grown' tools such as Gold Disk / Unix SRR to SCAP. The old requirements for systems were based on the now outdated Unix/Linux Checklist, which is what Aqueduct has Puppet content for. The latest version used for RHEL systems is the RHEL 5 STIG, which can be found here:For the new requirements I wrote the remediation content in Bash, not in puppet for a few reasons.1. Puppet is vendor supported by Puppet Labs, but its a pay for license. Some commands / systems I work for/with don't have the funding to go buy a license. Because of the USMC / NAVY requirement that all software be supported from a vendor, using Puppet wasn't the easiest answer.
The problem quickly becomes how can you abstract away from the OS. What if we want to provide, what I think you're calling "content" for more than one OS (including multiple versions and variants, e.g. 32-bit versus 64-bit).2. Between myself and others in the industry, the community came to the conclusion that Bash was the preferred 'way' of using remediation content (for now at least)
It feels like this conversation is happening in a lot of places without the required level of understanding of Configuration Management. There's more to it than just running checklists, or scripts that run through checklists.
I agree that there's probably more familiarity with Bash but highly disagree that that leads to a greater potential from a community.3. Not that many people are up to speed on Puppet scripting, so using bash encourages more contributions from the community.
The Puppet community, outside of the DoD/Fed space is quite vibrant. Just search for puppet and your favorite server.
I think the thing that is most concerning to me about this statement, is that it presupposes that the way we are doing it today (and are comfortable with) is the right way without looking at what is happening in other industries/enterprises.
Bash is just a shell language. It's purpose isn't to manage 10s of 1000s of nodes and the configuration thereof.
Comments below (start with VP)On Mon, Aug 13, 2012 at 9:49 AM, Kit Plummer <kitpl...@gmail.com> wrote:
Thanks.Comments inline below:Puppet Labs provides an "Enterprise" version…which is pay-for licensed but not required to use Puppet. Puppet itself is OSS software.On Aug 13, 2012, at 9:24 AM, Vincent Passaro <vincent...@gmail.com> wrote:Kit,Good question, unfortunately its a very long winded answer. I will try and give you the Readers Digest version and hopefully it will make sense.DISA recently changed their requirements for RHEL 5 systems. This is largely in part due to the recent changes from DISA 'home grown' tools such as Gold Disk / Unix SRR to SCAP. The old requirements for systems were based on the now outdated Unix/Linux Checklist, which is what Aqueduct has Puppet content for. The latest version used for RHEL systems is the RHEL 5 STIG, which can be found here:For the new requirements I wrote the remediation content in Bash, not in puppet for a few reasons.1. Puppet is vendor supported by Puppet Labs, but its a pay for license. Some commands / systems I work for/with don't have the funding to go buy a license. Because of the USMC / NAVY requirement that all software be supported from a vendor, using Puppet wasn't the easiest answer.VP - Fully aware that puppet is licensed to meet requirements for SECNAVINST-5230.15.The problem quickly becomes how can you abstract away from the OS. What if we want to provide, what I think you're calling "content" for more than one OS (including multiple versions and variants, e.g. 32-bit versus 64-bit).2. Between myself and others in the industry, the community came to the conclusion that Bash was the preferred 'way' of using remediation content (for now at least)VP - Aqueduct is focused on RHEL, we haven't gone down the path of trying to address other operating systems.
It feels like this conversation is happening in a lot of places without the required level of understanding of Configuration Management. There's more to it than just running checklists, or scripts that run through checklists.VP - The conversation is happening allover. Everyone is trying to solve the same problem and not everyone will ever have the same solution.
I agree that there's probably more familiarity with Bash but highly disagree that that leads to a greater potential from a community.3. Not that many people are up to speed on Puppet scripting, so using bash encourages more contributions from the community.VP - I don't disagree that Puppet has a lot of potential. But Open Source is ran by the community, so what they want is what they create.
The Puppet community, outside of the DoD/Fed space is quite vibrant. Just search for puppet and your favorite server.VP - Everyone else in the world can be vibrant, but that doesn't help the DoD community if they aren't up to speed on it yet.
I think the thing that is most concerning to me about this statement, is that it presupposes that the way we are doing it today (and are comfortable with) is the right way without looking at what is happening in other industries/enterprises.VP - I understand that's how its viewed, but right now there really aren't many projects out there like Aqueduct that are specifically tailored to remediation content, so it kind of is the 'new' way forward (open community development).Bash is just a shell language. It's purpose isn't to manage 10s of 1000s of nodes and the configuration thereof.VP - Sure, but bash does reside on every system bet it 10 or 1000. There are ways to making bash work. Is it the best option? Maybe it is for some people? Maybe not for others? In the end all of this is driven by the community. If the community isn't ready for a technology it won't be adopted. Does this mean Aqueduct won't have any puppet content? Nope. We're always looking to see what is going to work best.
Lastly, this problem has to be looked at not just from a configuration management perspective but also from an Auditor perspective. From what I have seen in the community is that most people are taking the Aqueduct content and wrapping it into their own internal process. Everyone tackles the problem differently. Some people do all their remediation at time of provisioning via Kickstart and call it a day. Others load the content into cron and allow it to continually maintain compliance based on the systems 'profile' of findings.
Great dialog…thanks. More below:Right, and I'm sure there will be efforts to support other systems, which may or may not be Puppet. But, I'm kinda pointing out that this may not be the right direction. Working out from the OS, gives us OS-specific solutions. I'm just saying that there is/are a tool(s) out there that inverts it, providing the potential to abstract away from the OS but also maintaining the ability to home OS-specific requirements at the same time.On Aug 13, 2012, at 10:21 AM, Vincent Passaro <vincent...@gmail.com> wrote:Comments below (start with VP)On Mon, Aug 13, 2012 at 9:49 AM, Kit Plummer <kitpl...@gmail.com> wrote:
Thanks.Comments inline below:Puppet Labs provides an "Enterprise" version…which is pay-for licensed but not required to use Puppet. Puppet itself is OSS software.On Aug 13, 2012, at 9:24 AM, Vincent Passaro <vincent...@gmail.com> wrote:Kit,Good question, unfortunately its a very long winded answer. I will try and give you the Readers Digest version and hopefully it will make sense.DISA recently changed their requirements for RHEL 5 systems. This is largely in part due to the recent changes from DISA 'home grown' tools such as Gold Disk / Unix SRR to SCAP. The old requirements for systems were based on the now outdated Unix/Linux Checklist, which is what Aqueduct has Puppet content for. The latest version used for RHEL systems is the RHEL 5 STIG, which can be found here:For the new requirements I wrote the remediation content in Bash, not in puppet for a few reasons.1. Puppet is vendor supported by Puppet Labs, but its a pay for license. Some commands / systems I work for/with don't have the funding to go buy a license. Because of the USMC / NAVY requirement that all software be supported from a vendor, using Puppet wasn't the easiest answer.VP - Fully aware that puppet is licensed to meet requirements for SECNAVINST-5230.15.The problem quickly becomes how can you abstract away from the OS. What if we want to provide, what I think you're calling "content" for more than one OS (including multiple versions and variants, e.g. 32-bit versus 64-bit).2. Between myself and others in the industry, the community came to the conclusion that Bash was the preferred 'way' of using remediation content (for now at least)VP - Aqueduct is focused on RHEL, we haven't gone down the path of trying to address other operating systems.
This is true in and out of DoD. There isn't a single best solution…but, I'm positive it isn't a self, or community-maintained collection of shell scripts. If it were we wouldn't have the need for all of these new tools, or even the Configuration Management discussion (or the ideals behind continuous delivery).It feels like this conversation is happening in a lot of places without the required level of understanding of Configuration Management. There's more to it than just running checklists, or scripts that run through checklists.VP - The conversation is happening allover. Everyone is trying to solve the same problem and not everyone will ever have the same solution.
VP - Noted. Would you be interested in contributing puppet code for compliance remediation then? Since that is the direction you think it should go?
[Hmmn. That's a bit of the "inmates running the asylum" isn't it? Almost all of the successful OSS projects have parents, or some kind of governance to control them from the top down. I doesn't necessarily matter to this discussion other than we should agree that requirements just don't get accepted and implemented on whims.]I agree that there's probably more familiarity with Bash but highly disagree that that leads to a greater potential from a community.3. Not that many people are up to speed on Puppet scripting, so using bash encourages more contributions from the community.VP - I don't disagree that Puppet has a lot of potential. But Open Source is ran by the community, so what they want is what they create.The point I was trying to make was that while you could recreate all of the capability behind Puppet/Chef/SALT with Bash…nobody will, because all three of those are already OSS.Again, it doesn't have to be that direction. Why can't DoD try to emulate what successful enterprises do? Don't think for a second that AMEX or Kaiser Permanente don't have the same kinds of requirements that we do WRT to CM, governance and auditing. If the DoD wants to be a part of the OSS communities, then we have to go to them and be a part - and stop expecting them to care, or come to us.The Puppet community, outside of the DoD/Fed space is quite vibrant. Just search for puppet and your favorite server.VP - Everyone else in the world can be vibrant, but that doesn't help the DoD community if they aren't up to speed on it yet.
This is a dangerous hole, here be dragons. I'd say generally, and admitting that I'm definitely part of it, that our community is rather blind to what technologies are out there, or what's happening in the enterprise. Never mind that our pace of adoption is rather slow because of the way we operate (contractually, risk, etc.).I think the thing that is most concerning to me about this statement, is that it presupposes that the way we are doing it today (and are comfortable with) is the right way without looking at what is happening in other industries/enterprises.VP - I understand that's how its viewed, but right now there really aren't many projects out there like Aqueduct that are specifically tailored to remediation content, so it kind of is the 'new' way forward (open community development).Bash is just a shell language. It's purpose isn't to manage 10s of 1000s of nodes and the configuration thereof.VP - Sure, but bash does reside on every system bet it 10 or 1000. There are ways to making bash work. Is it the best option? Maybe it is for some people? Maybe not for others? In the end all of this is driven by the community. If the community isn't ready for a technology it won't be adopted. Does this mean Aqueduct won't have any puppet content? Nope. We're always looking to see what is going to work best.I get the 'its on every system' argument. But, I don't buy it. Sure, there are ways to make it work…but, why? Why not use an OSS tool that is trying to solve the higher-level problem (logging and auditing being one example)?
Any tool is going to take an investment. Are you saying the DoD isn't ready for Configuration Management? Or, that we're not capable? Is it a tool problem, or a people problem? Or, perhaps there are just more important problems.
Fishing: What if there was a supported Puppet-based STIG suite that could be run against Ubuntu as well as RHEL? Would it be worth it then?
And how does all of that get logged, reported, or made available to an auditor? What is the delta between the baseline and the final system configuration (full load out)? Where do the manifests/states/changes get stored? How does that scale in terms of Bash scripts?Lastly, this problem has to be looked at not just from a configuration management perspective but also from an Auditor perspective. From what I have seen in the community is that most people are taking the Aqueduct content and wrapping it into their own internal process. Everyone tackles the problem differently. Some people do all their remediation at time of provisioning via Kickstart and call it a day. Others load the content into cron and allow it to continually maintain compliance based on the systems 'profile' of findings.
FWIW, I'm not really trying to argue against the script mentality. I'm just having a hard time seeing how we get away from OS/distro-specific thinking and solutions.
On Mon, Aug 13, 2012 at 5:25 PM, John Scott III <jms...@gmail.com> wrote:LK -> That's why I tried to be vague and said "an entity", because
> point of clarification:
>> LK -> What the DoD means by "supported" is that there is an entity
>> standing behind the software that can be held accountable to keep it
>> updated and secured from a vulnerability standpoint. So yes, bash is
>> supported, just as is apache, but don't expect to call the vendor
>> looking for help writing your web page.
>
> this is not true, DoD CIO memo means there is a support plan in place that does not necessarily mean a vendor. Which for some OSS projects that don't have a company that provides support has been a sometimes stumbling block to adoption of open source software
there are caveats in place for the project utilizing the OSS to have
processes in place for updating it and maintaining it themselves or
having some other 3rd party provide that. And I agree, this is a huge
road block for OSS and one that I have personally fought against in
the past, with unreliable results... hence my desire to avoid putting
the users of Aqueduct in that situation if we don't have to.
[Hmmn. That's a bit of the "inmates running the asylum" isn't it? Almost all of the successful OSS projects have parents, or some kind of governance to control them from the top down. I doesn't necessarily matter to this discussion other than we should agree that requirements just don't get accepted and implemented on whims.]I agree that there's probably more familiarity with Bash but highly disagree that that leads to a greater potential from a community.3. Not that many people are up to speed on Puppet scripting, so using bash encourages more contributions from the community.VP - I don't disagree that Puppet has a lot of potential. But Open Source is ran by the community, so what they want is what they create.The point I was trying to make was that while you could recreate all of the capability behind Puppet/Chef/SALT with Bash…nobody will, because all three of those are already OSS.Again, it doesn't have to be that direction. Why can't DoD try to emulate what successful enterprises do? Don't think for a second that AMEX or Kaiser Permanente don't have the same kinds of requirements that we do WRT to CM, governance and auditing. If the DoD wants to be a part of the OSS communities, then we have to go to them and be a part - and stop expecting them to care, or come to us.The Puppet community, outside of the DoD/Fed space is quite vibrant. Just search for puppet and your favorite server.VP - Everyone else in the world can be vibrant, but that doesn't help the DoD community if they aren't up to speed on it yet.VP - Reverse that logic. Why doesn't Amex and Kaiser adopt what the military uses? The military requires ruggedized systems that can withstand high temperatures, dust, nuclear explosions, etc, etc. Its because they don't have the same requirements..or more importantly the same mandates. Technology is adapted to the organizations requirements, not the other way around. MRG Messaging, Oracle, and SELinux would not exist if it hadn't been for the government because they had unique requirements that no one could fulfill.
This is a dangerous hole, here be dragons. I'd say generally, and admitting that I'm definitely part of it, that our community is rather blind to what technologies are out there, or what's happening in the enterprise. Never mind that our pace of adoption is rather slow because of the way we operate (contractually, risk, etc.).I think the thing that is most concerning to me about this statement, is that it presupposes that the way we are doing it today (and are comfortable with) is the right way without looking at what is happening in other industries/enterprises.VP - I understand that's how its viewed, but right now there really aren't many projects out there like Aqueduct that are specifically tailored to remediation content, so it kind of is the 'new' way forward (open community development).Bash is just a shell language. It's purpose isn't to manage 10s of 1000s of nodes and the configuration thereof.VP - Sure, but bash does reside on every system bet it 10 or 1000. There are ways to making bash work. Is it the best option? Maybe it is for some people? Maybe not for others? In the end all of this is driven by the community. If the community isn't ready for a technology it won't be adopted. Does this mean Aqueduct won't have any puppet content? Nope. We're always looking to see what is going to work best.I get the 'its on every system' argument. But, I don't buy it. Sure, there are ways to make it work…but, why? Why not use an OSS tool that is trying to solve the higher-level problem (logging and auditing being one example)?VP - You don't buy bash being on every system? Sure there are ways to make puppet work, but why? Are you saying that it CAN'T be done in bash...or just that it shouldn't? I can wrap puppet modules around bash scripts...does that count?
Any tool is going to take an investment. Are you saying the DoD isn't ready for Configuration Management? Or, that we're not capable? Is it a tool problem, or a people problem? Or, perhaps there are just more important problems.VP - ACK, Tools do take an investment. In my eyes, the process needs to be sorted out before we can try and build solutions around broke problems. (See comment about scap-security-guide)Fishing: What if there was a supported Puppet-based STIG suite that could be run against Ubuntu as well as RHEL? Would it be worth it then?VP - Ubuntu? No, would be pretty worthless for 90 percent of the DoD since most of the systems have support requirements / EAL certifications that are needed.
And how does all of that get logged, reported, or made available to an auditor? What is the delta between the baseline and the final system configuration (full load out)? Where do the manifests/states/changes get stored? How does that scale in terms of Bash scripts?Lastly, this problem has to be looked at not just from a configuration management perspective but also from an Auditor perspective. From what I have seen in the community is that most people are taking the Aqueduct content and wrapping it into their own internal process. Everyone tackles the problem differently. Some people do all their remediation at time of provisioning via Kickstart and call it a day. Others load the content into cron and allow it to continually maintain compliance based on the systems 'profile' of findings.VP - Scan of systems from compliance are done under the specific tools directed by the governing organization. Not some new software that you found along the way. I'm guessing you haven't done much system engineering for compliance / auditing? It can be a little confusing if you haven't. I can talk to it more if you like.
FWIW, I'm not really trying to argue against the script mentality. I'm just having a hard time seeing how we get away from OS/distro-specific thinking and solutions.VP- Well, we can't get away from it. The guidance that is written on how a system needs to be configured is tailored specifically to the OS. Since every OS is different in its own way, everything has to be tailored to that OS.
Obviously. ;) And, I will definitely take you up on that. I do get that the complexity of compliance makes this much harder than it should be. I also understand how the the scans are done. But I'm a firm believer in "the level of thinking that created the problem won't solve it". So, I'm partly playing dumb and rocking the boat for the sake of it. Hopefully nobody is offended.And how does all of that get logged, reported, or made available to an auditor? What is the delta between the baseline and the final system configuration (full load out)? Where do the manifests/states/changes get stored? How does that scale in terms of Bash scripts?Lastly, this problem has to be looked at not just from a configuration management perspective but also from an Auditor perspective. From what I have seen in the community is that most people are taking the Aqueduct content and wrapping it into their own internal process. Everyone tackles the problem differently. Some people do all their remediation at time of provisioning via Kickstart and call it a day. Others load the content into cron and allow it to continually maintain compliance based on the systems 'profile' of findings.VP - Scan of systems from compliance are done under the specific tools directed by the governing organization. Not some new software that you found along the way. I'm guessing you haven't done much system engineering for compliance / auditing? It can be a little confusing if you haven't. I can talk to it more if you like.
Understood. And, perhaps my thinking is straying too far from the STIG/compliance process - and too far towards CM and continuous delivery.FWIW, I'm not really trying to argue against the script mentality. I'm just having a hard time seeing how we get away from OS/distro-specific thinking and solutions.VP- Well, we can't get away from it. The guidance that is written on how a system needs to be configured is tailored specifically to the OS. Since every OS is different in its own way, everything has to be tailored to that OS.
--