Slashdot Mirror


Justifying the Common Criteria Security Evaluation

lewko writes "Microsoft has just received a Common Criteria certification for Windows 2000 at Evaluation Assurance Level (EAL) 4. Security experts have been saying for years that the the security of the Windows family of products is hopelessly inadequate. Now there is a rigorous government certification confirming this. What does it all mean? This paper suggests that Microsoft spent millions of dollars producing documentation that shows that Windows 2000 meets an inadequate set of requirements, and that you can have reasonably strong confidence that this is the case. Microsoft bashing aside, the process in evaluating a security product is relevant to anyone considering the deployment of technology into their environment." The EROS operating systems he mentions looks interesting - of course, it also looked interesting three years ago.

20 of 168 comments (clear)

  1. Umm... by cperciva · · Score: 4, Informative

    The Common Criteria security standards deal with the design of operating systems, not the implementation. It has been certified that the security system used in Windows 2000 is "well designed"; but this says nothing about how many bugs there might be in the code.

  2. In case of shashdotting, full text, IANAKW, etc by Anonymous Coward · · Score: 3, Informative
    Understanding the Windows EAL4 Evaluation

    Jonathan S. Shapiro, Ph.D.
    Johns Hopkins University Information Security Institute

    By now, you may have heard that Microsoft has received a Common Criteria certification for Windows 2000 (with service pack 3) at Evaluation Assurance Level (EAL) 4. Since a bunch of people know that I work on operating system security and on security assurance, I've received lots of notes asking "What does this mean?" On this page I will try to answer the question. For the impatient the answer is:

    • Security experts have been saying for years that the the security of the Windows family of products is hopelessly inadequate. Now there is a rigorous government certification confirming this.

    Since that's a pretty strong statement, bear with me while I try to explain it in plain English.

    How a Security Purchase Should Work (In Abstract)

    At the risk of telling you something you already know, here is how a purchaser ought to proceed when buying a security product:

    1. Assess your needs. Determine what your requirements are.

    2. Decide which product you are most confident will meet those needs.

    3. Buy and deploy it.

    Each of these is potentially an involved process, and most customers don't have the expertise to do them effectively. Even if you did, Microsoft (or any other vendor) isn't likely to let you examine their code and design documents in order to evaluate their product.

    The purpose of the Common Criteria process is to develop standard packages of commonly found requirements (called Protection Profiles) and have a standard process of independent evaluation by which an expert evaluation team arrives at a level of confidence for some particular software product.

    As a customer, this makes your life simpler, because you can compare your needs against existing requirements constructed by experts and then see how well the software you are buying meets those requirements. Security requirements are fairly hard to write down correctly, but if the resulting document is annotated properly they aren't all that hard to understand.

    Obviously, if you don't know your needs (requirements) you don't stand much of a chance of getting them met. Likewise, if you don't know what requirements a software product was evaluated against, the evaluation result isn't terribly useful to you in practical terms.

    How Common Criteria Works

    From the customer perspective, a Common Criteria evaluation has two parts:

    1. A standardized requirements specification called a Protection Profile that says what the system is supposed to do. Sometimes there will be more than one of these -- usually a general baseline protection profile and then some others describing additional, specialized requirements.

    2. An evaluation rating. This is basically an investigation by well-trained experts to determine whether the system actually meets the requirements specified in the protection profile(s). The result of the evaluation is an "Evaluation Assurance Level" which can be between 1 and 7. This number expresses the degree of confidence that you can place in the system.

    In order to understand the result of an evaluation, you need to know both the evaluation result, which will be a level between EAL1 and EAL7, and the protection profile (the requirements that were tested). Given two systems evaluated against the same protection profile, a higher EAL rating is a better rating provided the requirements meet your needs.

    Knowing that a product has met an EAL4 evaluation -- or even an EAL7 evaluation -- tells you absolutely nothing useful. It means that you can have some amount of confidence that the product meets an unknown set of requirements. To give a contrived example, you might need a piece of software that always paints the screen black. I might build a piece of software that paints the screen red with very high reliability, and get it evaluated at EAL4. Obviously my software isn't going to solve your problem.

    The Windows 2000 Evaluation

    Microsoft sponsored an evaluation of Windows 2000 (with Service Pack 3 and one patch) against the Controlled Access Protection Profile (plus some enhancements) and obtained an EAL4 evaluation rating. This is most accurately written as "CAPP/EAL4".

    Problem 1: The Protection Profile

    The Controlled Access Protection Profile (CAPP) standard document can be found at the Common Criteria website.Here is a description of the CAPP requirements taken from the document itself (from page 9):

    • The CAPP provides for a level of protection which is appropriate for an assumed non-hostile and well-managed user community requiring protection against threats of inadvertent or casual attempts to breach the system security. The profile is not intended to be applicable to circumstances in which protection is required against determined attempts by hostile and well funded attackers to breach system security. The CAPP does not fully address the threats posed by malicious system development or administrative personnel.

    Translating that into colloquial English:

    • Don't hook this to the internet, don't run email, don't install software unless you can 100% trust the developer, and if anybody who works for you turns out to be out to get you you are toast.

    In fairness to Microsoft, CAPP is the most complete operating system protection profile that is presently standardized. This may be the best that Microsoft can do, but it is very important for you as a user to understand that These requirements are not good enough to make the system secure. It also needs to be acknowledged that commercial UNIX-based systems like Linux aren't any better (though they are more resistant to penetration).

    Note that the "Don't install software" part means that you probably shouldn't install a word processor. On several occasions Microsoft has unintentionally shipped CD's with viruses on them. A CD with a virus qualified as "malicious system development."

    Problem 2: The Evaluation Assurance Level

    Having described the requirements problem, I now need to describe the problem of the EAL4 evaluation assurance level that Windows 2000 received.

    As I mentioned before, EAL levels run from 1 to 7. EAL1 basically means that the vendor showed up for the meeting. EAL7 means that key parts of the system have been rigorously verified in a mathematical way. EAL4 means that the design documents were reviewed using non-challenging criteria. This is sort of like having an accounting audit where the auditor checks that all of your paperwork is there and your business practice standards are appropriate, but never actually checks that any of your numbers are correct. An EAL4 evaluation is not required to examine the software at all.

    An EAL4 rating means that you did a lot of paperwork related to the software process, but says absolutely nothing about the quality of the software itself. There are no quantifiable measurements made of the software, and essentially none of the code is inspected. Buying software with an EAL4 rating is kind of like buying a home without a home inspection, only more risky.

    The Bottom Line for Windows 2000

    In the case of the CAPP protection profile, there actually isn't much point to doing anything better than a low-confidence evaluation, because the requirements set itself is very weak. In effect, you would be saying "My results are inadequate, but the good news is that I've done a lot of work so that I can be really sure that the results are inadequate.

    In the case of CAPP, an EAL4 evaluation tells you everything you need to know. It tells you that Microsoft spent millions of dollars producing documentation that shows that Windows 2000 meets an inadequate set of requirements, and that you can have reasonably strong confidence that this is the case.

    Conclusion

    Security isn't something that a large group can do well. It is something achieved by small groups of experts. Adding more programmers and more features makes things worse rather than better. Microsoft has been adding features demanded by their customers for a very long time.

    It is possible to do much better. EROS, a research operating system that we are working on here in the Systems Research Laboratory at Johns Hopkins University, should eventually achieve an EAL7 evaluation rating, and is expected to provide total defense against viruses and malicious code. It won't be compatible, because the most important security problems in Windows and UNIX are design problems rather than implementation problems. In fact, none of the viable research efforts toward secure operating systems are compatible with existing systems.

    It remains to be seen whether EROS or one of the other attempts to build secure operating systems will prevail, but better solutions are coming.

    Jonathan Shapiro is an Assistant Professor in the Department of Computer Science of Johns Hopkins University. He has been working on operating system security and assurance since 1991. His past research has yielded both formally verified security properties and dramatically improved performance results in secure operating systems. His current research focuses on tying these results together into a complete, usable system, and on evaluating and testing the correctness and reliability of the resulting system.

    Dr. Shapiro is also member of JHUISI, the Hopkins Information Security Institute.

  3. Auditing Win2k Security by Inexile2002 · · Score: 4, Informative
    Recently I've been working as an IT auditor for an accounting firm, and I've found myself completely at loggerheads for finding a good Win2k audit program for security. (Here I mean program as in a sequence of checks that I follow, not compiled program.)

    The trouble I find is that I'm able to evaluate the level diligence the IT staff at any given company has taken, I'm able to audit the level of (attempted) compliance to any documented security policy and I'm even able to assess internal security configuration and controls.

    Ultimately though, I'm signing off on audit opinions that ALWAYS says
    "name of firm" has observed adequate Windows 2000 security..."
    and feeling a little sick about it. If we got sued, I could provide documentation proving that I diligently checked security and based on "accepted" business standards the security was implement at a reasonable level. Basically, I could cover my ass.

    Is there anyone out there that has an audit program for Win2k that they would feel comfortable using to tell the auditors that they can rely on the numbers? Just curious.

    Oh, BTW, the auditors could care less about Common Criteria and even though they're thick as pudding about IT, they're still smart enough o bring in outside people when they need to rely on any computer's numbers.
    1. Re:Auditing Win2k Security by Anonymous Coward · · Score: 1, Informative

      Have a look at the Win2k Gold Standard. Its a benchmark developed by a number of organisations incl the NSA, SANS and the centre for internet security. see http://www.cisecurity.org/bench_win2000.html

  4. Other discussions by Tyreth · · Score: 5, Informative
    This was written about on newsforge a few weeks ago. It was a link to the thoughts of Joe Wagner who wrote a rather agitating article about how Windows must be more secure than Linux, because Linux had not obtained this certification, and potentially could not possibly attain it.

    It was followed by a short lived, but lengthy discussion with regular readers of worldtechtribune (including the editor-in-chief apparently) and some other newsforge readers.

    You may or may not find some interesting thoughts, or just more (mis)information.

  5. Re:What's secure? by cscx · · Score: 4, Informative

    since it is embedded into the os

    IE is embedded into Explorer, NOT the OS (i.e. the kernel). You can easiliy run Windows with a different shell (why?).

  6. Re:one basic reason why windows security sucks by MrBlack · · Score: 3, Informative

    I'm not quite sure what to make of this comment


    It's MCSE, and I don't think MCSA was a typo.


    but there is a microsoft certification called MCSA (like MCSE but harder apparently...).

  7. Re:Well by Tyreth · · Score: 4, Informative
    It appears that Windows 2000 have mainstream support expired 31 March 2005, and finally extended support in 31 March 2007.

    This seems to me longer than the time for which Windows 98 was allocated, but not for server releases. I heard or read somewhere that the lifecycle had been extended, but I could be mistaken. Either way, this gives it another 2-4 years of usage. I'm not sure whether thats useful or not. Product Lifecycles

  8. Re:What's secure? by Stauf · · Score: 2, Informative

    Well how much of what is secure? It seems to me that MOST of the security bugs one associates with Microsoft are problems with two programs in particular--IIS and Outlook (Express version only).

    Or, y'know, the version of Outlook that was spreading all those nasty worms.... it probably had some holes too.

  9. There are real, secure, systems out there. by Animats · · Score: 5, Informative
    Check out the NSA-approved secure systems list. Operating systems have been built in the past that met reasonably stringent criteria, but few current mainstream systems are on that list.

    Vendors hated NSA's old rating process. The standards were tough, NSA did the evaluations themselves, and you only got two tries to pass. After the first evaluation, NSA told you what was wrong. If you failed on the second try, that was it - you flunked. Worst case, NSA listed your product as "Class D - This class is reserved for those systems that have been evaluated but that fail to meet the requirements for a higher evaluation class."

    Later, the process became much more "vendor friendly". Evaluations are performed by outside contractors, and vendors can submit their software over and over and over again until it passes. Microsoft used this process to push NT 4 through. It took years. The evaluation process is controlled by the vendor, and there are no public reports of failure.

    The "common criteria" are rather weak, down near the bottom of the old NSA criteria. And the evaluation process is almost totally under vendor control, although it does have to be performed by an outside contractor acceptable to the Government.

    There's better stuff out there. Currently, the most secure OS certified is the Wang XTS-300. This is certified to level B3 of the old Red Book criteria, which is about four notches above the level Windows 2000 just reached. Various FBI and DoD systems use Wang XTS-300, which is on Wang-built Pentium II and III systems. Wang is gone, but the product has been taken over by Getronics, which keeps a low profile.

    Read the data sheet for the XTS-300. It's UNIX-like, but very different inside.

    Coming soon, the XTS-400, which runs Linux apps.

    These secure systems enforce a "mandatory security" model. Data has a security level, an integrity level, and a list of compartments to which it belongs. Movement downward in security level or upward in integrity level is prohibited, as is movement out of a security compartment or into an integrity compartment. This is very restrictive, but it's the only approach known to have any chance of really working.

    1. Re:There are real, secure, systems out there. by karlm · · Score: 3, Informative
      Linux, *BSD, and the NT branch of Windows use rings. (The Windows 95 branch may have also used rings, I'm not familiar at all with Win 95 internals.) I'm not aware of any *NIX whose kernel doesn't run in ring 0. User apps run in ring 3. You can't make a function call (or other jump or branch) into a lower ring, but instead you need to use an interupt. Some instructions are also unavailable in certain rings.

      Without hardware enforcement of the abstraction barrier, your user space code could jump int the kernel at spots right after privledge checks, or could manipulate the MMU and get raw acess to every device and every memory location. This would make privledge escalation trivial.

      As long as you have 2 (properly designed) rings supported by hardware, you can emulate as many rings as you want, but you'll pay a performance hit.

      One important note is that all XBox code runs in ring 0 and in a single address space (unless a devloper goes WAAYYY out of thier way). This is for performance reasons, but if there's an exploitable buffer overflow in a game, it's mre than a "root" exploit, it's a kernel exploit. (Yes, both Linux and WinXP allow superusers to modify the running kernel, so the distinction is moot in these cases.) This wou;d allow for a software "mod chip".

      --
      Copyright Violation:"theft, piracy"::Anti-Trust Violation:"thermonuclear price terrorism"<-Overly dramatic language.
  10. Re:Millions of Dollars on documentation?! by ramzak2k · · Score: 2, Informative

    they quite obviously had to support everything that were documenting with proof, they probably factored that in.

    --

    Siggy Say, Siggy Do
  11. Compare with the Orange Book by Dynamoo · · Score: 3, Informative
    What are the qualifications/skills of the "independent" verifier? MCSE? Code monkey? Nick the Pig?

    The sort-of-precursor to the CC, the DOD-5200.28-STD (Orange Book) specified exactly who needed to be in the testing team. For "Division C" (Windows NT 4.0 is rated C2):

    10.1.1 Personnel
    The security testing team shall consist of at least two individuals with bachelor degrees in Computer Science or the equivalent. Team members shall be able to follow test plans prepared by the system developer and suggest additions, shall be familiar with the "flaw hypothesis" or equivalent security testing methodology, and shall have assembly level programming experience. Before testing begins, the team members shall have functional knowledge of, and shall have completed the system developer's internals course for, the system being evaluated.

    10.1.2 Testing
    The team shall have "hands-on" involvement in an independent run of the tests used by the system developer. The team shall independently design and implement at least five system-specific tests in an attempt to circumvent the security mechanisms of the system. The elapsed time devoted to testing shall be at least one month and need not exceed three months. There shall be no fewer than twenty hands-on hours spent carrying out system developer-defined tests and test team-defined tests.

    For higher security classifications, the qualifications of the testing team get higher. For Division A you need at least one individual with a bachelor's degree in Computer Science or the equivalent and at least two individuals with masters' degrees in Computer Science or equivalent.

    So, Safety Cap's point is well made - the method of testing and the personnel carrying it out is just as important as the technical criteria.

    --
    Never email donotemail@WeAreSpammers.com
  12. Why you should care by joeflies · · Score: 5, Informative
    Common Criteria, in layman's terms, is a group of security requirements that state a given security product has a given set of features. It is not an easy process to get Common Criteria certified (and it isn't cheap for the vendor).

    In essence, like the author stated, many people are substituting education about security issues with Common Criteria certification. However, if the customer doesn't know what they want, or if they don't understand what Common Criteria does and DOES NOT check, then the customer still has no idea what they are getting. And like the author, I sometimes wonder if Common Criteria certification short cuts the basic security background required to write an RFP and replaces it with a check box for an EAL.

    In particular, if you work on or sell a security product and want to sell to government or the European Union, it must be Common Criteria certified. What the certification proves, however, is up to the interpretation of the person implementing the product.

  13. Re:What's secure? by Ben+Hutchings · · Score: 3, Informative

    What's more concerning than the need to install the security patches is the large number of known and unpatched vulnerabilities, which are still exploitable on most up-to-date Windows desktops.

    I think you shouldn't need to reboot more than twice to install those patches, as the hotfixes can be combined using QCHAIN.EXE.

  14. Re:Security comes thru process not via a program by flonker · · Score: 3, Informative

    If you're looking for checklists, Microsoft has some available. But if you've been looking, you're probably aware of them. Nevertheless, I used them when securing my network.

  15. Re:Forgive my ignorance... by karlm · · Score: 4, Informative
    I had an internship at a startup that originally planned on getting CC certification for a product of thiers.

    The Common Criteria replace the old NIST "Orange Book" specifications.

    The CC is a certification standard set up by the NSA, NIST, and some European counterparts. It has an ISO number, too. It can be applied to any computer system (an OS, a browser, a PCI card) as long as you can clearly define the system boundary. The criteria keep alking about the target of evaluation (TOE) instead of calling it an OS, although most commonly you hear about CC being applied to OSes.

    When you submit something for CC evaluation, you submit a very specific system with very specific configurations. Anything outside this narrw set of configurations isn't certified. The CC primarily look at design and documentation, so things like buffer overflows don't enter in to the equation. At the highest level (EAL 7), you need all kinds of (mathematical) demonstrations and proofs of sound design (probably mostly involving graph theory). At the lower levels, they require less rigorous proofs and deonstartaions. Basically there are a bunch of feature lists in the criteria and you need to convince the certifier that you have the required features. Good admin/user documentation and configuration tools are a big part of the CC. If it's secure, but not well documented how to keep it secure, you can forget it.

    It's expensive to submit a system for certification, so even if the SELinux documentation and config tools were up to par, iit'd be unlikely anyone would pony up the cash to get it evaluated. In terms of software features, I think SELinux could cocievably be EAL 4 or quite possibly higher.

    --
    Copyright Violation:"theft, piracy"::Anti-Trust Violation:"thermonuclear price terrorism"<-Overly dramatic language.
  16. Re:What's secure? by Richard_at_work · · Score: 3, Informative

    As soon as you can find me a three-year old Linux distro STILL BEING SOLD AS NEW. Microsoft could easily have patched their master disc and manufactured new Win2k Server CDs at any time during these three years since the initial release but they have not done so. They are still making and selling software that they know is defective without even a token attempt at fixing the most glaring security holes in their product. In my book, this not only borders on criminal negligence, it's a fucking full-scale invasion over said border.

    Hrm, thats funny. I have win2kpro cds here that are naked, or have sp1 already integrated, or have sp1 and 2 integrated. I can choose which cd to use, and i usually go for the latest one. This also is the case with win2kserver, the ones we have here have sp1 integrated. So your wrong, buy Win2k (either version) and MS will have done what you are saying they havent, and upgraded the base OS installed.

  17. Re:What did Linux get? by Oggust · · Score: 2, Informative
    One example that immediately comes to mind is that "ps" listings can't show other users' processes. Many of the C2 requirements are kind of like that.

    I can't see how that would be required for C2 (CAPP in the CC). The old B2 (Structured Protection) was the first level that required covert channel analysis. Granted, that's a pretty obvious covert channel, and you might see it as a kind of quasi-legitimate IPC. In that case the B1 (LSPP) level would require it to follow it's normal rules of compartments and levels.

    /August.

    --
    "An object declared as type _Bool is large enough to store the values 0 and 1." -- 6.1.2.5, C99 standard.
  18. Re:EROS: The Extremely Reliable Operating System by Anonymous Coward · · Score: 1, Informative

    That sounds a bit like Palladium to me (only certified code runs).

    EROS has nothing to do with certified code. The idea of EROS is that you can be handed a program and run it without any fear that it will hurt you, because you will be able to restrict in what ways it interacts with the rest of the system in very specific ways. For example, some game you got as an attachment should be able to open up a window and write things to it, and that's about it. It should not be able to, say, read your mail folders, or open up network connections, and with EROS you can be pretty sure this is the case.