Slashdot Mirror


HP-LX 1.0 Secure Linux

kengreenebaum writes: "Webtechniques has a short but interesting article on HP's approach to a secure but expensive LINUX distro. Basically they started with RedHat 7.1 and added compartments; an extension to the age-old chroot jail concept where the processes representing major services run. Kernel extensions allow HP (or the administrator) to specify which compartments can access which kernel resources including individual files, network stacks, and each other. HP has Technical Product Brief as well as other material online. Interesting to compare HP's approach to that of the NSA's Secure Linux projects. These concepts sound like a solid way to prevent buffer overflow type security holes in individual services from compromising the entire machine. At $3000 HP-LX is too expensive for many to experiment with but the NSA's code seems to be more readily available. Anybody have experience with these distributions or with similar approaches to Linux security?"

68 of 182 comments (clear)

  1. NSA SELinux by joshamania · · Score: 4, Interesting

    I'd just like to comment upon the NSA's Security-Enhanced Linux project.

    It is certainly more accessible, and I've prompted my company to look into it. Considering the current political environment, I believe this is a good way for small consulting companies to distinguish themselves.

    "Why, yes, Mr. Customer, we are very familiar with computer security and specialize in using products developed by the National Security Agency. If it's good enough for the NSA, don't you think it is good enough for your business?

    1. Re:NSA SELinux by Malcontent · · Score: 2

      How many people need to read them? Just one or two and it's good enough for me. I am sure that by now people who are kernel hacker have at least looked at it since nobody was screaming about it I presume every thing is hunky dory.

      --

      War is necrophilia.

  2. What about GPL, GNU, etc? by headkase · · Score: 2, Insightful

    Doesn't HP have to release their source code to comply with the GPL?

    --
    Shh.
    1. Re:What about GPL, GNU, etc? by pmcneill · · Score: 5, Insightful

      Yes and no. They have to release the source to the people to whom the product is distributed. However, they don't have to make it publically available. The catch is that the people who receive the source can also redistribute it at will. As someone else pointed out, the source is available here.

      I expect, however, that HP has some proprietary stuff that's included in non-GPLd binaries.

    2. Re:What about GPL, GNU, etc? by Mike+McCune · · Score: 2, Insightful

      The kernel modifications are released under GPL but the administration tools are traditional closed source, which complies with the GPL. Anyone is free to write their own administration tools if the wish. Many large companies would prefer the support of HP rather than "rolling their own".

      --

      In a world that is Free and Open, who needs Windows and Gates?

  3. NSA Linux distribution by Anonymous Coward · · Score: 5, Funny

    I installed their distribution and it works fine, except for the GUI login which says "Welcome to wiretap029114.nsa.gov". How do I change it back to "localhost.localdomain"?

  4. Get your source code... by TrumpetPower! · · Score: 5, Informative

    ...here.

    b&

    --
    All but God can prove this sentence true.
  5. kerberos anyone? by Zule_Boy · · Score: 2

    In the article they mentioned programs use authentication based on ssh private keys. This is all fine and dandy, but what about doing this for $0 rather then $3000 and just kerberizing your own apps. Then you can have total control over more than just some of the admin functions, plus you start off with a nice base for more infrastructure later.

  6. There are major problems with compartmentalization by va_willy · · Score: 5, Interesting
    Having worked on a similar project in the past, I can tell you that UNIX kernels are not as amenable to compartmentalization as HP would have you believe. Consider the following potential holes:
    • Buffer overflows and improper argument checking plague every modern UNIX kernel. Think about the recent sysctl() input validation hole in Linux. Or the recent /proc bugs in FreeBSD. Or the LDT handling bugs in NetBSD, Solaris, and many others.
    • Most kernels were not designed with least privilege in mind. For instance, the mount() syscall allows ordinary users to mount and umount filesystems. Access checks are performed (to make sure it is mounted nosuid, and such) but there are undoubtedly holes waiting to be discovered.
    • Until only recently, Linux had several bugs allowing users to commandeer each others' shared memory segments. This could be used to corrupt memory used by init(1) and several other critical programs, causing a major security breach.
    • Because the X server needs low level hardware access, most OS kernels allow access to iopl(2) and ioperm(2). This means that attackers can talk directly with the hardware, bypassing the OS security. The alternative, of course, is to ban the use of graphical interfaces on that system; but usually that is unacceptable.
    Although these issues can all be addressed, the problem of proper kernel security is at best a "whack a mole" situation in which a new hole will arise shortly after an existing hole is patched. Thus, the HP-LX software probably isn't worth the CD it is pressed onto.

    vw

  7. Low confidence in anything from HP by Anonymous Coward · · Score: 4, Informative
    As a very happy former HP employee (voluntarily former), I have a very low level of confidence in HP being able to do anything productive in the Linux community. Just a couple of years ago I was explaining what Linux and GNU software was to senior people in what was then their Unix Development Lab. This was when I started having some real misgivings about the company.


    Over the next couple of years I saw high level managment with no comprehension of the Unix/Linux/GNU world whatsoever do some very strange things. The HP environment is rife with strange little tribes that lie and steal from one another with no real reason. Their Linux community is no different.


    And as far as HP contributing to the open source world - don't count on it. They will happily steal code, re-write it, and release it binary-only if they think they can get away with it. I've seen them do it. The whole damn company has a prima-donna attitude and will do pretty much whatever they think they can get away with.


    And as far as HP and security go - take a look at their own damn HP-UX OS for a security model and ask yourself why they think they can release a unique and decent secure linux product if they can't even release their own OS with any semblence of security?

    1. Re:Low confidence in anything from HP by Bruce+Perens · · Score: 5, Insightful
      I agree that the HPUX folks do sometimes seem to lose sight of the fact that there is an outside world that, for the most part, doesn't run HPUX. But fortunately I work on Linux. HP has contributed a lot to free software: the IA-64 port of the Linux kernel is led by David Mosberger of HP and is all GPL, of course. HP spends about 1/2 Million per year just on salaries, benefits, and overhead for 4 of the key Samba developers. And a number of HP projects like Cooltown have come under the GPL. And of course they pay for all of my political efforts on behalf of free software - working on software patent issues, speaking, writing, etc.

      Bruce

    2. Re:Low confidence in anything from HP by bfree · · Score: 2

      Last Christmas Eve (thanks /./search.pl) an Ask Slashdot of mine was posted which asked what we wanted to ask IBM for, seeing as though they were "offering" AIX as a plate. Not too many people came up with actual solid items we should have been looking to leverage, perhaps you have just come up with one and perhaps you are even the person to get the job rolling.

      --

      Never underestimate the dark side of the Source

  8. HP was committed to Debian... by leandrod · · Score: 4, Interesting

    ...whatever happened to that commitment? I mean, were there any technical or (and) historical reasons for choosing Red Hat, or is that yet another instance of choice by misinformation or herd instinct?

    --
    Leandro Guimarães Faria Corcete DUTRA
    DA, DBA, SysAdmin, Data Modeller
    GNU Project, Debian GNU/Lin
    1. Re:HP was committed to Debian... by leandrod · · Score: 2

      > Perhaps they realized that RedHat is the _standard_ in enterprise Linux for a reason?

      Perhaps. But my question is exactly, which would be such a reason?

      --
      Leandro Guimarães Faria Corcete DUTRA
      DA, DBA, SysAdmin, Data Modeller
      GNU Project, Debian GNU/Lin
    2. Re:HP was committed to Debian... by Bruce+Perens · · Score: 3, Informative
      HP does internal development on Debian and has contributed two Debian ports: PA-RISC and IA-64, both have been accepted for the upcoming Debian release. The secure Linux system will appear on more distributions than just Red Hat.

      Thanks

      Bruce

    3. Re:HP was committed to Debian... by leandrod · · Score: 2

      Thanks for the timely information, Bruce... but it still doesn't answer my question.

      Does HP commitment to Debian does not translate into Debian being used as a development, reference and first release platform? Or this has happened for some technical reason? Or for historical ones, like the effort being started before HP's Debian commitment?

      --
      Leandro Guimarães Faria Corcete DUTRA
      DA, DBA, SysAdmin, Data Modeller
      GNU Project, Debian GNU/Lin
    4. Re:HP was committed to Debian... by leandrod · · Score: 2

      BTW, Red Hat may be the most popular distribution of GNU/Linux in US enterprises, but (1) it is not a standard, (2) being popular means nothing technicallly, (3) HP is an US company, but it has global reach, and (4) HP has also the technical, government, educational and domestic markets to cater to.

      --
      Leandro Guimarães Faria Corcete DUTRA
      DA, DBA, SysAdmin, Data Modeller
      GNU Project, Debian GNU/Lin
    5. Re:HP was committed to Debian... by Bruce+Perens · · Score: 2
      Debian is the internal development platform. Released products are targeted to all LSB-compliant systems. This one is a little unusual, because it's a full Linux distribution. The target customer for this product wanted it on RH first - we asked.

      This product is just begging for someone to take the GPL component and run with it. It could be on Debian tomorrow, without the $3000 fee. Consider that a challenge.

      Bruce

    6. Re:HP was committed to Debian... by Skapare · · Score: 2
      Released products are targeted to all LSB-compliant systems.

      Doesn't that mean a lot of different distributions? Or is the development focus really aimed at various components in the kernel and on the outside that can be "dropped in" onto most distributions (e.g. the LSB-compliant ones)? I'm sure the target customer, being one who is swayed by the RH popularity, wasn't capable of just dropping in the individual components onto a RH (despite the "ease" of RPM) box, hence a whole distribution is needed. While as a geek, a whole distribition isn't of interest to be, I can certainly see how it gives PHBs that warm and cuddly feeling.

      Maybe you can clarify. I've read LSB and it certainly comes across to me as vague in this area, and I've heard conflicting interpretations that say yes and say no. Does LSB require the multiple runlevel separated directories of symlinks pointing to the init.d directory? As a security-conscious sysadmin, I do not want packages to touch my system initialization whatsoever (and some have). So I moved things around (and eliminated the symlinks altogether). The old directories are still there as a sort of "honeypot" but changes to them have no effect. Of course, for more security, I'm moving to doing more of the installs from source instead of packages.

      BTW, it is chapter 13, in section VII (LSB's weird two parallel section numbering scheme that isn't really hierarchical is certainly confusing), that by itself makes me want to avoid LSB. Why can't they accept other packaging systems? Why do they have to mandate the bloated and goofy one?

      --
      now we need to go OSS in diesel cars
  9. Re:Eh? How can they get away with selling that? by J'raxis · · Score: 2

    Youre right, but whoever buys it is then free to do whatever he wishes with it, including give it away, sell it for less (or for more), or print it out and use it for napkins. So whats the point of HP selling it when all they have to do is make one sale, then the buyer could turn around and give it away to thousands of people? They cannot stop this from happening, because the code must be GPLed, and the GPL allows that.

  10. As I have said before... by farrellj · · Score: 3, Interesting

    HP is dumping HP-UX, and will be moving people to Linux...no one ever listens...

    ttyl
    Farrell

    --
    CAN-CON 2019 - Ottawa's only book oriented Science Fiction Convention! October 18-20, Sheraton Hotel, Ottawa, Canada h
    1. Re:As I have said before... by omega9 · · Score: 4, Troll

      Either post links, facts, or other references, or don't expect anyone to listen to you.

      And I especially don't care for users who think they've got clout just because they have a low UID. Remember, if you win a race in the special olympics you may have first place, but you're still retarded.

      --
      I'm against picketing, but I don't know how to show it.
  11. NSA selinux by jlkinsel · · Score: 2, Interesting

    I've been developing some firewall products and distributed IDS nodes based around NSA's secure linux kernel and tools. Takes some time to get used to, but the marketability plus just starting with a base that's been *really* hardened is a pretty nice combo on an already good thing. John

  12. More than just kernel modifications! by inburito · · Score: 4, Informative

    Typical slashdot ranting about gpl violations and how this is nothing new etc.. I wonder if anyone even read the article.

    This is much more than just a few kernel modifications but rather a full distribution that comes on 4 cd's. Instead of just having some hacks that improve security the whole distribution is build from ground up with security in mind.

    For example: You can't access shell unless you're on a console or use ssh. You can't access the configuration tools unless you are in posession of administrators private ssh key. Also, the installer forces you to set the system up with security in mind instead of installing everything and the kitchen sink..

    Best part of this is that it comes with support from a highly reputable vendor. Sure it has it's price tag but imagine the amount of work required to make a full distribution that's security conscious and backing it up with hp's name!

    And yes, you can download the source code that goes into kernel..

  13. I'm not sure it helps enough by markj02 · · Score: 3, Interesting
    Purely as an engineering tradeoff, I'm not sure that this helps very much. While this may slow down a determined attacker, this kind of approach tends to fall like a series of domnios: the first one gets compromised giving the attacker a few more capabilities, then the next one, etc. The Linux kernel was simply not designed with ensuring this kind of isolation.

    As a practical matter, it may help a lot because it makes the machine different from other Linux machines. It may be not too hard conceptually to work out how to break through this kind of security, it will likely protect systems from common exploits of common bugs.

    However, in the long term, the only solution I see to security problems is to build on foundations that have support for guarding against common bugs and analyzing security-related program properties. That means, among other things, using languages with built-in default checks for buffer overruns and using languages with type systems that can be used to verify that data doesn't get where it isn't supposed to get (Perl's notion of "tainted" is a simple runtime example; similar static type checking is also possible in some cases). Decades of UNIX, Windows, and Linux software development and bug tracking have shown that without such support, even skilled programmers simply cannot write software containing very serious security problems in actual releases. In different words, the Linux and Windows kernels and daemons will have to be rewritten in something other than C or C++. Sorry.

    1. Re:I'm not sure it helps enough by markj02 · · Score: 2
      What can be done in any high level language that cannot also be done in C or C++? Answer: nothing.

      Why do we need safety belts and airbags? Can't people just drive carefully?

      Kernel and daemon developers commonly use C and C++ because they are time tested tools that produce efficient and maintainable code for those applications.

      Yes, indeed, we know exactly what kind of code real programmers produce in C and C++: systems full of security holes and buffer overruns. The fact that these bugs keep occurring even though programmers know better is exactly what demonstrates that C/C++ are not up to the task.

    2. Re:I'm not sure it helps enough by markj02 · · Score: 2
      Despite all the people that attack C and C , there really isn't any substitute for their performance.

      There are many systems programming languages that are as fast as C/C++ and have similar memory footprints. Examples are Ada, Modula, and various Pascal derivatives. These languages allow you to do everything you can do in C/C++, they simply are safe by default.

    3. Re:I'm not sure it helps enough by Alan+Cox · · Score: 2

      The trade offs you have to make in basic compartmentalisation are hard to get right. There are so many different ways to break a "jail" on any system where the security is at the main OS level.

      Instinctively I've never trusted jail based solutions Linux or otherwise. If you want to compartmentalise build a small reasonably verifyable core and run Linux unpriviledged on it - its one of the uses for real microkernels (not Mach but something thats actually -micro-).

    4. Re:I'm not sure it helps enough by markj02 · · Score: 2
      Other systems programming languages (e.g., Ada or Modula) allow you to access any memory location as any type and to convert between arbitrary types, just like C. The difference is that when you do so, you have to say so explicitly. In C, something like "p[i]" might be a completely safe and portable high-level array subscripting operation, or it might be an unportable and dangerous way of accessing a memory-mapped I/O location. The fact that you can't tell is a very serious and fundamental flaw of the language.

      C++ is a little better than C in that it at least lets you define a reasonably safe framework, but the Linux kernel developers have been strenuously opposed even to C++.

      Prior to the rise of UNIX and Windows, most kernels were written in other languages, so it's not hard to do.

    5. Re:I'm not sure it helps enough by markj02 · · Score: 2

      Cyclone probably is too slow and too complex, and it seems to have a non-trivial runtime. Ada might be an OK choice, but it is also a very big language. Traditional language choices that have worked fine for writing kernels include various Pascal and Modula variants.

    6. Re:I'm not sure it helps enough by GypC · · Score: 2

      Lisp dammit!

      What this world needs is a free Lisp OS (with the low-level stuff written in Modula or something if necesssary.)

      Too bad all the free Lisp OS projects deteriorate into arguments about implementation details...

  14. Missed Point: HP all about business by EchoMirage · · Score: 3, Insightful

    There's a missed point in discussing whether or not HP-LX is practical or whether or not it's worth $3000. HP's target market is and always has been big businesses. What they've done in providing a secure, robust Linux implementation is to take away IT manager's number one fear about Linux: that's it's somehow "insecure."

    Practically speaking, it's safe to assume that nobody is going to run out and nuke HP-UX 11 off their servers in favor of this - HP-UX is still very far ahead of Linux (and some of its competition) in several important areas. However, for IT managers interested in considering a partial migration to Linux, this gives them a stable and secure path on which to begin to venture down, and undoubtedly one that's also covered by their existing support contracts with HP.

  15. Re:Eh? How can they get away with selling that? by Graymalkin · · Score: 4, Funny

    Charging 3000$ for the CD set means that 99% of the jackasses who would use the GPL in order to buy something and then turn around and release it for free can't afford it while the 1% that can have to pay a pretty penny to be jackasses. I can pretty much assure you some jackass Linux zealot with no understanding on the GPL is sitting in his bedroom right now trying to figure out how he can raise 3k so he can be a folk hero by releasing the code an evil company is keeping secret. At the very least HP is giving some idiot something to do.

    --
    I'm a loner Dottie, a Rebel.
  16. $3000 if you're the Kernel fearing type by KidSock · · Score: 2

    At $3000 HP-LX is too expensive for many to experiment with...

    That is only if you're afraid to do a little kernel hacking. Unless it's a binary only module (I doubt it, the're not hiding info about hardware) kernel patches should be available for Free. And really, $3000 beans isn't a whole lot for what sounds like a dreamy setup for internet boxen serving holy DNS and FTP. This is how internet services really should be ran by default. Unlike IIS that runs as user profile SYSTEM so that it can do impersonation (sorry for the M$ dig, but it's a really good example of how not to run internet services).

    1. Re:$3000 if you're the Kernel fearing type by KidSock · · Score: 2

      Wrong! IIS does not run as system!

      We'll it depends. This article explains it all but at one point the author says:

      Where does the ASP .NET worker process run, anyway? Well, as of this writing, it runs as SYSTEM. Yikes!

      The article is from Nov 2001. This is WRT web services with authentication options on.

  17. Re:There are major problems with compartmentalizat by Minupla · · Score: 2

    The alternative, of course, is to ban the use of graphical interfaces on that system; but usually that is unacceptable.
    On a server? I never install X, too many performance and security trade offs.

    --
    On the whole, I find that I prefer Slashdot posts to twitter ones because I don't get limited to 140 chars before
  18. HP's kernel component is GPL-ed. by Bruce+Perens · · Score: 4, Informative
    The kernel component of HP's secure Linux is GPL-ed. Get it here.
    The user-mode component is not GPL, but given the kernel API, it's pretty easy to make up the user part.

    Bruce

  19. Re:Eh? How can they get away with selling that? by inburito · · Score: 4, Insightful

    Uh.. How about you go download the GPLed code from hp's site right now instead of speculating about what people could do.

    However.. You are not going to get the closed source administration tools without which the kernel mod's are almost worthless. You also don't get a fully set up distribution with all the configuration and will have to duplicate all the effort that went into creating it.

    If you want to be reasonably sure that your version is secure you'd have to perform extensive testing on it and have a lot of really smart people take a look at it. This is actually the easiest part as it follows normal linux development method. Still, whose ass is on the line if things are not as secure as they should be?

    And you can bet your ass that anything that doesn't need to be GPLed is not and it comes with a very strict HP license that specifically forbids any disassembly, resale, etc.. Support contracts probably also include a clause that you have to have purchased the official hp distribution..

  20. NSA's distribution by jd · · Score: 4, Informative
    I've been using this since their earlier versions. It's extremely powerful, in that it provides for a heirarchical access control mechanism, rather than a mere on/off switch. (Unlike a certain other manufacturer, who shall not be named). The same account can have multiple login types, allowing a user to place fine-grain controls on what a given application they run can do under that account.


    The fact that SELinux (NSA's system) now uses the LSM framework means that it can be extended easily. You can either extend the SELinux modules or add further LSM modules of your own.


    It should be extremely trivial to provide a complete, and more flexible, clone of the entire HP security framework inside LSM, as all you're really doing is providing a set of capabilities to each thread, with pre-set defaults.


    In fact, you'd probably want to exploit SELinux' existing framework for this, so that you could create pre-set defaults on a per-user/per-login-type/per-thread basis.


    All in all, HP's setup doesn't sound novel enough to be worth 3K, but does sound intriguing enough to copy. Which, really, is something the LSM guys seem to already be doing. They've ported a decent portion of the OpenWall framework, which does a lot of this kind of stuff already.

    --
    It's a small world and it smells funny; I'd buy another if it wasn't for the money; Take back what I paid (SoM)
  21. Security concerns with HP-LX by JonathanF · · Score: 2, Interesting

    I've heard at least one or two people here worry about HP's security in HP-LX (and HP-UX) and I have to say this: anyone who depends on their OS as the primary basis of security - at least in this day and age - is not properly looking at security in the first place.

    If you are (or were) a network admin, would you host an Internet server without a firewall just because you used one OS and not another? I don't think so. Total security involves additional layers on top of the OS - firewalls, requiring passwords for many or all access points, and so on - as well as an admin that keeps up to date on security holes and works to plug them.

    That's not to excuse OS developers who leave their products ripe for abuse, but so long as reasonable steps are taken as part of the OS I wouldn't be slandering its maker - that is, unless they're promising something they know they can't deliver.

  22. Looks like "Secure Linux for Retards" by dwbryson · · Score: 4, Insightful
    Ok, I feel that putting some peices of security in an OS kernel is a good idea. It allows you to have a lot of control over what goes on on a system, however it's not always the best idea for certain things. This distro it seems is that + *basic* system security...
    HP-LX includes pretty much every security tool for Unix imaginable, and defaults are set up with security in mind right out of the box. For example, HP-LX allows command shell access only via the system console or SSH (encrypted) connections. HP forces you to use OpenSSH by including a procedure for creating and installing the keys during the OS installation.
    This is a no brainer for anybody who is semi secruity concious. And
    HP-LX's installer won't install unneeded services. This is probably one of the best things you could do on your existing server; remove everything that you don't absolutely need.
    Comon people, every semi decent sysadmin knows this. Maybe I'm expecting too much from people (the number of people that complain to me about not being able to use telnet is disgusting) The added chroot jail stuff is neat, and no doubt helpful, but this distro really looks like it is not worth 3k. Any competent Linux admin could set this up with a couple days work. That doesn't mean his manager will approve... they would buy the MP distro because it would make them feel warm and fuzzy inside, even if their admin could design a better distro. When the article first off proclaims things like:
    Pros: Currently the most secure commercially available Linux system.
    I can generally discount most of what it has to say. Security is a process not a product.
    --
    - "Never let a computer tell me shit." - DelTron Zero
    1. Re:Looks like "Secure Linux for Retards" by SuiteSisterMary · · Score: 2
      Comon people, every semi decent sysadmin knows this. Maybe I'm expecting too much from people (the number of people that complain to me about not being able to use telnet is disgusting)
      Yep. But Joe, who installs 'that line-yucks thing' on his cable modem, live to the Internet, probably doesn't. Windows 2000, Linux, it's all the same; the lowest common denominator is going to be the user.
      --
      Vintage computer games and RPG books available. Email me if you're interested.
    2. Re:Looks like "Secure Linux for Retards" by ZxCv · · Score: 2

      But that retardo kind of user isn't who HP is targetting with their $3k OS. They're targetting companies who want to spend less time setting up and securing their systems. Most of the features of this software could be replicated by an intelligent admin, but doing that takes much more time and effort. Any company running servers has to spend employee time to make sure those servers are setup properly and stay secure. I can see the logic in thinking that if you start with a smarter, more secure product that you will spend less employee time setting up and securing it.

      --

      Perl - $Just @when->$you ${thought} s/yn/tax/ &couldn\'t %get $worse;
    3. Re:Looks like "Secure Linux for Retards" by SuiteSisterMary · · Score: 2

      True. It makes perfect business sense; the 'CTO' will see 'secure out of the box!' and ignore the 'unless you plug it in' line and plunk down their money. And lets face it, appearences count. How many times have you heard, said about budgets, 'spend it or lose it?' Or can you imagine the consternation on your sixty year old VP's face when you tell him, bald faced, that you didn't pay one red cent for your 'highly secure UNIX environment.'

      --
      Vintage computer games and RPG books available. Email me if you're interested.
  23. Re:There are major problems with compartmentalizat by SuiteSisterMary · · Score: 3, Insightful

    Not installing X doesn't cause the kernal to take note, and alter how it treats the system calls in question.

    --
    Vintage computer games and RPG books available. Email me if you're interested.
  24. Re:There are major problems with compartmentalizat by Oggust · · Score: 2, Insightful
    Well, kernel bugs will still get you, no doubt about that. You can compartmentalize the kernel itself, at least to some point, but that's kind of a separate problem.

    Kernel bugs aren't the big problem though. Look thru bugtraq and see what the kernel/user-app ratio of security problems is.

    Now look at how many of the kernel level bugs that are remotely exploitable. (Ummm, I mean exploitable from remote, not that they're unlikely.) Not to say that local problems aren't problems too, but they're a lot easier to manage.

    You're right about the bug whack a mole, but this time you'll be playing on a table with most of the moleholes plugged.

    The X thing is a bit of a red herring. The problem is that it has hardware access (disregarding fbdev and stuff like that), and hence (from a security POV) could almost just as well be part of the kernel. Solutions:

    • Don't run it. And don't allow other processes the priviliges it would/could have had. (This is easy with any MAC and even DAC system, X is always a bit of a special case.) The Selinux system is very fine grained and you can grant a subject a capability or not depending on its' type.
    • Compartmentalize X itself. To some extent this is getting worked at, but not (mostly at least) for that reason.
    (X apps are a little different from other apps, since they have other IO options (Atoms, cut+paste buffer etc.) Look up CMW (Compartmented Mode Workstation) if you want to get into that.)

    But even if you can't do a thing about X, this is still worthwhile. Think about someting like xntpd. It's root because it needs to open a low port and because it needs to be able to update the system time. But there's no reason that it needs to be able to, say, mount filesystems, read protected files, or load kernel modules. with traditional unix security we can't do that, but with this stuff we can. The attutude that "because it only fixes 99% of the problem, it's not worthwhile" has been a problem long enough.

    /August, once a sysadmin on a B1 system.

    --
    "An object declared as type _Bool is large enough to store the values 0 and 1." -- 6.1.2.5, C99 standard.
  25. The Confused Deputy by Peaker · · Score: 2

    The Confused Deputy will stay confused, no matter how sophisiticated the ACL's are.

    The only real approach to security is a pure capability system, and ofcourse the combination of pure capbility systems with safe languages.

  26. Re:There are major problems with compartmentalizat by Peaker · · Score: 4, Informative

    The alternative, of course, is to ban the use of graphical interfaces on that system; but usually that is unacceptable.

    The real way of doing this is putting the hardware drivers into the kernel (frame buffer devices).
    No user process is supposed to access hardware directly, and if that meant we have no graphics, it would also mean no keyboard, text, or sound.

    Although these issues can all be addressed, the problem of proper kernel security is at best a "whack a mole" situation in which a new hole will arise shortly after an existing hole is patched. Thus, the HP-LX software probably isn't worth the CD it is pressed onto.

    That may be true, but it is only because of the nature of UNIX kernels. Kernels built with the principle of least privelege in mind (such as EROS) are definitely worth the fix, as it is quite unlikely to present new holes (and such a design is quite unlikely to have many holes in the first place)

  27. RSBAC & *plug* by 21mhz · · Score: 2, Interesting

    RSBAC is Secure Linux Done Proper (or almost there).
    Castle from ALT Linux Team is a Linux distribution that uses RSBAC and chroot jails. Also, recently, the tcb scheme has been adopted for secure access to system passwords without need for setuid root.

    --
    My exception safety is -fno-exceptions.
  28. The Prize Tag Is A Good Thing[tm] by KjetilK · · Score: 2
    Yeah, it is a pretty stiff prize $3000, but actually for Linux adoption in the market place, I think it is a Good Thing[tm]:

    You know how PHBs think: If it's free, then you can't make money off of it. If HP is able to sell this at $3000 a piece, maybe they will get their eyes opened for the possibility that there is money in Free Software.

    --
    Employee of Inrupt, Project Release Manager and Community Manager for Solid
  29. Name collision with HP LX Palmtop series by denmon · · Score: 2, Interesting

    HP-LX is an unfortunate shorthand name for this product, since "HP-LX" is a widely used to refer to HP's excellent (but discontinued) line of DOS based palmtops - HP 95LX, HP100LX, and HP200LX. It appears from the technical brief PDF that the official name is "HP Secure OS for Linux". Perhaps some other name could be used to avoid confusion, like "HP-SLX" (secure Linux).

    For more information on the LX palmtops, see the FAQ at http://www.hplx.net/faq.faq.html. Attached below is a short excerpt from the FAQ that provides some background.

    ---

    Q. What is the HP100LX?
    Depending on your point of view, it's either an IBM PC-XT stuffed into a very tiny case with some Personal Information Management (PIM) software and Lotus 1-2-3 built into ROM, or it's a high-end electronic organizer that also runs MS-DOS software.

    Q. What is the HP200LX?
    It's the successor to the 100LX. It's essentially a 100LX with cosmetic changes and the addition of Pocket Quicken, LapLink Remote, and some feature enhancements for the PIM applications in the ROM.

    Q. What is the HP Omnigo 700LX?
    It's basically a somewhat faster 200LX with a docking cradle for a Nokia GSM cellular phone, some LEDs on the front, and some extra built-in communications software. It is only available in Europe and Asia/Pacific, where the GSM standard is, well, standardized. This product has been discontinued by HP and is no longer sold. If you can get a used one, it's possible to use it in the US if you live in an area where GSM coverage is offered (i.e. California, Nevada, etc.) if you get a compatible phone. The Nokia 2190 fits the OmniGo 700LX's cradle and works in the US, for example.

    Q. Why would I want an outdated DOS palmtop when I could get a modern Windows CE machine?
    The 200LX may be a few years old, but it is a far better computing device than any Windows CE machine. A few of its strengths:
    - Battery life (up to 2 months on a single pair of batteries)

    - DOS compatibility (can run millions of programs written for desktop computers)

    - High-resolution screen (fully CGA compatible, 640x200 [33% wider than most WinCE units])

    - Better keyboard (separate numeric keypad; nice solid feel with good tactile feedback)

    - Better PIM apps (built-in apps are unsurpassed for quality and ease of use)

    - Pocket Quicken built in (keep track of your finances without spending any extra money for the financial software)

    - Better expansion support (see flash cards and other memory expansions as a drive, not just a folder)

    Q. Why would I want an outdated DOS palmtop when I can get a sleek PalmPilot or Palm III?
    The PalmPilot series is made for a completely different purpose than the 200LX. The 200LX is essentially a full-blown computer that fits in your pocket, and doubles as an organizer. The PalmPilot series are meant to be organizers and to help connect with desktop computers. Both platforms have their strengths and weaknesses, but for real computing in the palm of your hand, the 200LX is the only choice.
    ---

  30. Secure Linuxes by ibex42 · · Score: 2, Informative
    At the Linux Showcase in November I attended HP's presentation on Secure Linux and if you sweet talked the HP guys they would unlock the secret cabinet and give you a copy of Secure Linux. I also did a term paper on SE Linux last semester.

    The two OSs are fairly similar in what they hope to accomplish -- isolate the risky software and users from the rest of the system so if something bad happens it doesn't take everything down. From the sound of the HP presentation, this is all HP Secure Linux does. You create compartments and then specify what the compartment can do. You can do the same thing with the NSA's SE Linux and much much more. I was really impressed with the flexibility offered by SE Linux. You can setup your system with about any security policy you like. The biggest problem is the great complexity. You need to do a good deal of research before even thinking about modifying the sample security rules that come with SE Linux. There are thousands of rules in the included security policy. This is where HP Secure Linux probably has an advantage--it's a bit simpler to user. Though I haven't had a chance to try it out yet.

    You don't really need to pay $3000 for it either. The kernel patches are GPLed and part of the kernel security interface used by SE Linux also (NSA and HP have cooperated here). You are really paying for the tools, but those are just programs that make certain sys calls. It shouldn't be a problem to write your own open source versions. Though there might be a nice gui that would take more work to create.

    If you are interested in secure linuxes also take a look at Immunix and EnGarde. Both also have kernel level security controls, but not to the level of NSA Linux. Immunix has a comparment system like HP Secure Linux called SubDomain. EnGarde uses the Linux Intrusion Detection Project.

    A paper doing a detailed comparison of the four would be welcome!

  31. Immunix by Crispin+Cowan · · Score: 2, Informative
    Immunix is our security-hardened Linux system. Immunix offers a security confinement mechanism called SubDomain which is similar to SELinux and HP's Virtual Vault technology, which is what is incorporated into their HP-LX product. SubDomain is "in between" SELinux and HP-LX, in the following ways:
    • Complexity and Flexibility: The more complex a product is, the more flexible it can be. SubDomain is less complex to manage than SELinux, but offers more flexibility than HP-LX.
    • Price: SELinux is free, Immunix Systems are $90 each, and HP-LX is $3000 each.
    Immunix also features other security protections:
    • StackGuard: resists most buffer overflow attacks.
    • FormatGuard: resists most printf format bug attacks.
    Crispin
    ----
    Crispin Cowan, Ph.D.
    Chief Scientist, WireX Communications, Inc.
    Immunix: Security Hardened Linux Distribution
    Available for purchase
  32. What the price tag really means. by lkaos · · Score: 2, Insightful

    What's most important about the price tag, is that HP is backing a secure version of Linux. It's not really 3K for some fancy GUI tools, but 3K for the tools and for HPs guarentee that this is actually going to work.

    It's not really that expensive. In fact, I'll probably recommend it to the company I work for. If your company is security conscious, and you don't want to have to maintain something, then this seems like a great option.

    This is probably one of the first really good business plans I've seen with Linux. The greatest part is that HP didn't try to mess around and not release the kernel stuff. So, they've helped out the community by adding a cool concept (I always hated that Linux does have jails) and they also are delivering a good, reasonably price, product.

    I am of course assuming that this software works :)

    If you do the math though for a server running Windows NT plus an email server, web server, and remote admin package that would be as robust as what Linux has, then it's a no brainer which one is cheaper.

    Especially since alot of software is based on the number of users (especially email suites). So you kind of end up getting screwed when you hire more people.

    --
    int func(int a);
    func((b += 3, b));
  33. Re:General GPL Question by autopr0n · · Score: 2

    Well, in your situation, Party A wrote the software, they can do whatever they want with it. In other words, party A has to be the one to put the GPL on their own code. If they do, then they are obviously pro-freedom. If they don't, then the Code isn't GPL'd. In other words, everyone has distribution rights for GPL'd code.

    If party A just modified someone else's code, a-la the linux kernel, then gave out the software with a special contract not allowing distribution, then they would be violating the GPL. Which would mean that by distributing the code that they modified they would be breaking copyright law, and Linus or anyone who contributed to the Kernal could "DMCA" their ass, so to speak.

    --
    autopr0n is like, down and stuff.
  34. Why yet another CWM/B1 effort? by Roxy · · Score: 2, Interesting

    In my opinion (as a practicing Head of Information Security and a former Security Architect for a number of kernels) what Linux really needs are capabilities (which we have, we just need to start using them by default) and a functioning audit subsystem. A functioning audit subsystem does not compromise only the kernel part, but also the audit compression/reduction facilities (normally done in user space) and the tools to define what events to audit and tools to search and securely store audit trails.

    Audit trails that can be (semi-) trusted is what most of us security people demand, and which Linux doesn't deliver (don't tell me about syslog, as it is designed for IT administrators, not security administrators).

    These seems to be present in the HP-LX (can't access HP's website right now, but I assume it is based on the old SecureWare code HP purchased a while back and been using the last couple of years). Unfortunately, what Bruce (Perens) says about that it would be easy to reconstruct the user space parts of the auditing subsystem I disagree with, as this is the majority of the code and also the most complex part.

    With Best Regards

    Roland B.

    --
    -- Roland Buresund MBA, MCMI, CISSP
  35. GC experience from GCC 3.0 by markj02 · · Score: 2
    BTW, while using a safe language does not require using garbage collection, garbage collection has many benefits. Here is the experience with GCC 3.0 (from http://www.codesourcery.com/publications.html):
    The memory management scheme used by the com- piler itself was radically altered for the GCC 3.0 release. Memory allocated by the compiler is now garbage collected; previous releases used a complex system of memory pools. This change greatly re- duced the number of memory-allocation bugs in the compiler, and simpli ed the implementation of new features. Use of garbage collection, and other associated im- provements associated with memory management, have dramatically reduced the memory footprint of the compiler in some cases. There have been im- provements as great as 60% (from approximate 300 MB to approximately 100MB) when compiling some C++ programs. vantage of these features.
    C-style manual storage management is not only error prone, unsafe, and cumbersome, it often is also inefficient.
  36. Surprised nobody's mentioned TrustedBSD Project by Anonymous Coward · · Score: 2, Informative
    More info here.

    Much of the work is to be rolled into a future FreeBSD distro. And that's released under the BSD license -- than which you can't get much less restrictive.

  37. Remember the 432 by Bruce+Perens · · Score: 2
    We need better hardware architecture, too. Remember the iAPX 432? Every function was a protected island. Too bad the thing was designed to run Ada and the technology of the time made it too slow and expensive. We could do it well today.

    Bruce

  38. How to build secure applications by Animats · · Score: 2
    You really have to have applications designed to use a secure system like this. Programs need to be divided into multiple, intercommunicating components, with narrow interfaces and different privileges for different components. Security-related, trusted code should be small and do as little as possible, so that it can be thoroughly checked and seldom modified. Big code should be untrusted and run in minimal-privilege boxes. This is the basic architecture of secure systems that actually work.

    For example, a mail handler should be composed of several components in separate security compartments:

    • The mail database, which can talk to its own files, can accept interprocess connections from other local mail components (and can verify their identity), and can't talk to the network. The database contains mail from multiple users, so it's trusted in that sense, but is more of an object than a subject; it isn't allowed to initiate anything.
    • The external connection authenticators, which receive initial POP and SMTP requests, process them until they authenticate, and then fork off a separate process for each connection. These are trusted processes, and they perform only security-related functions. That's key. Note that this is roughly how UNIX "login" works.
    • The per-connection communication processes. Each of these can only talk on the network connection it inherits, and the connection to the database it inherits. The database can check the credentials of the process, which are set by the authenticator and cannot be changed by the per-process connection. These processes do most of the work. They are untrusted; that is, they have no security responsibilies and cannot corrupt the rest of the system. The stuff that is always breaking in Sendmail goes here.
    • (other components as needed)

    That's what NSA Secure Linux is intended to support. DoD secure systems have been built like this for at least two decades.

    Again, and I cannot overemphasize this, the key is that the trusted components must be small. All other architectural considerations, including performance, must yield to this if you want security.

  39. The mythical idiot-proof distro/OS by Deus+Ex+Machina · · Score: 2, Interesting

    Call me on this if I am wrong here, but is the major factor in spending $3000 on this gem of software is chroot jails (or a reasonable facimile)? The article was rather brief, but from the look of it, aside from that feature - which the article even admits is not new - we have one other feature, that it is "secure by default". Well, does it keep you from installing Telnet ever? What about the Berkeley R-tools? The SSH root admin thing looks clever at first, but how many places have you worked at where the same root password was used across multiple boxen - even those of different OSs? Now, how much do you want to bet that the password over the SSH key is going to be the same, or similar, to the password for root itself in most installations? How is this any different than simply having a second login prompt for root?

    Look, I'm sure someone else has said this already a million times here, and I know Bruce Schneier makes it his mantra, but I'll repeat it for those of us who came late: Most of security has nothing to do with software, and everything to do with poor procedure. All the chroot jails in the world cannot restrain the sheer magnitude of people's apathy toward secure practice and process.

    And yes, sometimes even the best security is broken. Let's face it, if you want your data secure, you are already outnumbered millions to one. Yet, this is a default condition - the majority of security vulnerabilites are relative to the actions of script kiddies, who use network flooding and other lame attacks to force people off the net and crash systems. Adding another security layer will make it harder to brute-force your way in, certainly, but what's the point of sealing the door with concrete if lazy administration practice leaves the windows wide open?

    And, how does this differ from OpenBSD? I'm not a BSD zealot, but way too much of this sounds like the exact practice taken toward OpenBSD development. Does this software deserve extra creds because it costs more? Are people more likely to take security seriously if they spend $3000 on an operating system than if they get it for free? How much of this code is audited? All the default packages? Did they audit anything, or did they just implement chroot jails and assume they have found a "workaround" for a malignent problem in UNIX security?

    I'm not saying that this is a bad idea. I'm sure this distro will provide for a more secure environment by default, for those of us who don't have the time to audit our production boxes. But I just don't see reason to presume that this distro is any more secure than a properly configured SELinux or OpenBSD box. And please, if you think I'm wrong, enlighten me, because I'm no expert. I just think that building a better mouse trap is pointless when the trap operators don't know how to operate it.

    --
    Know ye not that ye are Gods???
  40. Hardening is VERY expensive by gelfling · · Score: 2

    Because of all the labor and brain work involved. This a VERY good thing for shops and ISPs that standardize on HP to do.

  41. Re:Another couple to look at by Jetifi · · Score: 2

    In the SE Linux built against 2.2, PSIDS were stored at the inode level, which meant that a security resolution below the filesystem level was only possible using ext2.

    The latest versions use the Linux Security Module (lsm), like LIDS, that hooks in at the VFS layer. so far, ext2 and ReiserFS have been confirmed to work. The only requirement the fs is persistent inode labelling(?-my terminology is off-?), but (IIRC) ext3 and xfs have also been tested.

    Check the mailing list for details.

  42. some clarification by joubertb · · Score: 2, Informative

    First some clarification.

    HP-LX has no VirtualVault code. There is nothing in HP-LX code that is derived from VV.

    A trusted/secure OS should not be your ONLY security mechanism. It is just a part of the overall architecture.

    So, what were the goals of this product:

    VirtualVault covered the ultra security needs. But at a cost. You needed to intergrate your applications on a VV. You had to teach your sysadmins about VirtualVault. Many smaller shops could not justify the cost of these. So an alternative was created by HP.

    Some form os security is better than no security at all. So, what HP wanted to do is lower the complexity of the security mechanism and raise the ease of use. This would allow people to get applications up and running quick on their machine and not have to retrain their systems on a new os.

    So, the product had to be:
    1. Help protect services on the network boundry. So, this is not designed as a multi-user system. It is designed to protect any type of service that is made available on a public network.
    2. Easy to use. Without this, it would be an interesting product, but acceptence by the non-security folks would be hard.
    3. Security should not be intrusive. So, as little code change as possible. By this I mean, try not to make changes to user space programs. The admin should be familiar with the environment that he is running in. Only 2 programs are changed, init and xinetd.
    4. Sometimes security had to be relaxed in order to keep it easy to use.

    These were the four high level drivers for this product.

    From a feature set, there are three major components:

    1. Containment. Protecting agains ALL buffer overflow attacks is difficult. So, lets contain the damage. Compartments helps us issolate the application from other applications/subsystems on the system.

    2. An audit subsystem to be able to watch what is going on on the system. Collection audit does not help if you can't do anything with it. So, it had to be flexible. It is in it's early stages.

    3. Lockdown. This mean, locking down most of the permissions on the system. Use tripwire to monitor what is going on on the system. Turn off most of the service that are needed. Generally, do whatever you would do to lockdown a system that is put on a public network.

    This should give a little insight into the motivation for the product. This should help shed some light why some decisions where made. The goal of this product to to find a right balance between "ease of use and security". You can be the most secure product, but if it is difficut to use, it will be cast aside. HP-LX is an attempt to achive this balance. More work is needed, but it is the first step...

  43. Safe languages by Peaker · · Score: 2

    Safe languages are languages incapable of expressing things like buffer overruns or overrunning other memory, or invalid array indexing. This means they cannot express corruption of memory and are not volenurable to the vast majority of problems in most things today. Those languages, including Python, Smalltalk, Lisp, Perl, and others are incapable of crashing the machine (although sometimes C modules written for these do crash the machine), yet are Turing Complete and capable of solving any problem C, C++, or other unsafe language is capable of solving.

    1. Re:Safe languages by Peaker · · Score: 2

      Buffer overruns do not occur because programmers do not know how to do bounds checking.

      I suppose you meant that programmers do not bound-check properly. Obviously this is the cause of the failures. However, safe languages solve this problem by guaranteeing this can't happen.

      We see a lot of buffer overruns occur however, because the only languages truly suitable for most problem domains are the languages that allow these things to happen.

      Tell me, how are the unsafe languages such as C or C++ more suitable for daemon coding than Python, Lisp, Scheme, etc?
      Python, along with Twisted Matrix, for example, allows for easy, safe, and very fast network daemons. Medusa is an example of a very fast Python webserver, written in much less code than equivalent C\C++, and executing at least as fast.
      If Python allows performance, ease of development, reliability and guarantee of security (from such volunerabilities), how is it less suitable than C or C++ for the development of network daemons?

      Completeness has nothing to do with that by the way. Reliability, memory usage, speed and portability issues have.

      Reliability, and portability issues are both voting against C and C++.
      As for speed, safe languages prove to be at least fast enough for I/O-bound applications. Some safe languages (Common Lisp, OCaml) even prove to compile to much more efficient code than C\C++ in many cases.

      Besides, if programmers can't get something simple like array indexing right, then how are they going to get the much, much, much more complicated domain-specific safety issues right?

      That's bull. All programmers make mistakes. What you are talking about here is the ability to make 0 mistakes as far as array indexing, pointer management, and other low-level issues are concerned. Firstly, there are always potential mistakes in any part of a program. Secondly, pointer management (killing dangling pointers correctly, managing complex pointing graphs, etc) is not trivial at all.
      Therefore, a language that makes you a guarantee of safety in those regards, and handles all those low-level issues automatically and correctly, is a huge benefit.

      And how are you going to prove that your favorite Common LISP implementation actually does not violate any of the requirements? Look at how "safe" a language like Javascript is. Or Visual Basic.

      You're not going to prove it, but debugging a single, finite code base (A compiler) is a hell of a lot easier than debugging and correcting infinite amounts of code written all the time. To claim it is as hard to maintain correctness of the compiler as it is of EVERY program out there is absurd.

      As for Visual Basic and Javascript, my experience is that they are safe in those regards. They are obviously (at least Visual Basic) not examples of stable well-tested platforms, as many of the Lisp, Python, and other compilers/VM's are (especially when considering the reputation of the creators).

      You see where I am coming from, when your C code malfunctions, that is not a flaw with C -- it's a flaw in your code.

      Assuming the goals of your language are to ease development and provide the best platform for developing software, a language that does not provide a guarantee of safety is far inferior to one that does, in terms of fulfilling those goals.

    2. Re:Safe languages by Peaker · · Score: 2
      Your bias against safe languages is almost too appearant.

      Your claims sum up to:

      Popularity is a measure of quality:
      Should I really have to discredit this one? What has NetBSD or FreeBSD done to make Windows less popular? Nothing. Are they better than Windows for many many useful purposes? Most people think so.
      Python webservers, and Python code is often used in server-side, but maybe you haven't done your homework.
      Major sites like Google, NASA, Yahoo, FourEleven, Nortel... use it in the core of their products.
      There is a huge list of Lisp users, not to mention Java server-side code.
      C and C++'s popularity is dying down, and now that Microsoft Marketing will be pushing C# down everyone's throats, it'll probably remain only in the *nix domain, and as hardware improves, eventually die down.

      Safe languages are slow:
      Much research and comparison of different languages, such as Lisp and C++ seem to contradict this. Many show that most Common Lisp code using a good compiler will in fact execute faster than most C++ code.
      Already C compilers try to analyze the low-level code, making out high-level details of it in order to optimize it. Higher-level languages are in fact becoming more optimizable than C as compilers are getting more advanced.

      C is more portable:
      This is sort of a paradox as Python, Java, etc have C implementations, and require only high-level access, allowing portable implementations anywhere.
      Java VM can run both Java and Python code. Java VM's are implemented on more platforms than proper POSIX-compliant C compilers, last I checked.

      C is conceptually less portable. High-level languages will easily/natively make use of the new technologies like VLIW, whereas C compilers will have a VERY hard time using that technology in such low-level code.

      Programming is hard - therefore lack of safety (note: safety, not security) is acceptable:
      Note that not all, but most security problems result from this lack of safety. Unlike your claim, this safety really exists in languages like Python and Lisp.
      When was the last time pure Python or Lisp (without C modules) crashed? I've writtens dozens to hundreds of thousands of Python lines, and never experienced crashes in pure Python code. Some C extension modules crashed, as C code often tends to.

      The guarantee of safety is not worth the performance hit:

      Maybe running a pure Python-code webserver on a 586 100 with 16 megs of RAM is a bad idea.
      However, Common Lisp, OCaml, Python code to 'glue' optimized C modules, etc executes fast enough even on the older hardware, and the memory requirements are generally not that bad. Usually something like a factor of 2 or 3, with some constant size addition to C code.
      Today's hardware makes the language of your choice irrelevant, as the differences become more and more unnoticable.
      This almost-unnoticable 'hit' on performance is definitely worth the guarantee of safety, that eliminates almost all security problems.

      Outlook security holes were not solved by safe languages:
      True, but VBS *is* safe (not secure, SAFE). This means it does not crash.
      Most security problems are already eliminated. As for complete access to the machine, that's a security problem that has nothing to do with the use of safe languages.

  44. Re:The Confused Deputy -- Red Herring example. by Peaker · · Score: 2
    There is no reason for a compiler to have to have
    any ability to write to the accounting files.
    If that is considered a design requirement,
    then the design was wrong.


    But the compiler IS outputting accounting information here.
    Its easy to claim that any design requiring a certain feature *nix cannot provide is wrong, but it sounds quite an absurd claim to me. You're trying to adjust the world to your OS, rather than write an OS that fits your needs.

    In terms of debug/frequency stats, create a
    directory, make the compiler setuid or gid
    to be able to write there, and put the stats
    and ONLY the stats in that directory (
    you do the set(ug)id, at the very end,
    just to write the stats file as the last
    hurrah.) Or even just leave it public write,
    if someone wants to futz with your stats
    they really have time on their hands.


    Problems:

    How is your solution preventing the original problem of a malicious user naming a billing filename as an output file?

    As long as the compiler 'changes hats' (Setuid/gid), the privelege-checking is quite complex and will probably result in VERY complex ACL's to achieve the goal.

    These stats are used for billing information, and people would thus be VERY willing to mess with them.

    All these security settings require root to set up, meaning that only a system administrator is capable of setting up any system involving security checks.

    Alternative approach:

    The mechanism used to identify (name) objects is that of unforgable, OS-implemented keys called "capabilities". These capabilities are much like *nix file descriptors, but they are never open()'d or close()'d. Having the capability is a necessary and sufficient condition to access the named object, the object does not care who access it.
    The above example, is very simply solved by capabilities:
    In order to name the billing file to the compiler, the user must have a capability to that billing file. In that case, the user is fully authorized to access this file. Obviously, the user does not have a capability to this file, only the compiler does, and since there is no way to forge a capability (just like file descriptors), the user cannot name the file he must not access, and may not confuse the deputy.

    Advantages:

    Users (code) can only express requests by access to a capability, meaning that code is only capable of expressing authorized requests. This means that there is no ACL test failure that may give false access to this user, as the mere ability to express a request is an indication of authority to do it.

    The only security test required at runtime is that the capability is valid, which is equivalent to the validity test of a file descriptor, nearing 0 time.

    Capability systems are in fact simpler systems, and many security properties of such can be mathematically proven, as demonstrated by Shapiro, in his proof of part of his EROS system.

    Capabilities have per-process granulity, rather than per-user granulity, and very fine-grained control of which objects every process has access to, thus the principle of least privelege is implemented.

    No need for a 'super user' that bypasses ACL's, because that would destroy the principle of least privelege. Every user can create objects and spawn capabilities to use those objects, and distribute them through every channel he has a capability to.
    This means any process with some minimal set of capabilities can set up a security system, not requiring any super user to bother, and killing the vast majority of threats involving a superuser.