[liberationtech] Chromebooks for Risky Situations?
Andreas Bader
noergelpizza at hotmail.de
Mon Feb 11 08:54:19 PST 2013
On 02/11/2013 04:15 PM, Rich Kulawiec wrote:
> On Mon, Feb 11, 2013 at 12:54:27AM +0700, Uncle Zzzen wrote:
>> Obviously systems are too complex for most people to really figure out
>> what's exactly running on their computer, and modern systems (from smart
>> phones to unity) make it harder and harder for users (even "power users")
>> to peek under the hood.
> Agreed. Further, complexity == insecurity.
>
> The way that you build secure systems isn't by adding code: it's by taking
> as much away as you possibly can, by stripping them down to the absolute
> minimum required to accomplish the required computing tasks.
>
> Why? Because we don't know how to write secure code. Therefore, to a
> first approximation, the less code is in play, the better chance we have.
>
> (That's an unhappy statement, but I really do think the last 10, 20, 30
> years bear it out. Even when we think we've written secure code...we
> probably haven't. Timely example:
>
> Lucky Thirteen: Breaking the TLS and DTLS Record Protocols
> http://www.isg.rhul.ac.uk/tls/
>
> In that case, the code is insecure because the spec is insecure. Oops.)
>
> So if I were trying to design a secure operating system and application
> environment for liberationtech, I would do several things that are,
> depending on how you look at them, either a radical departure or a
> return to a time when simplicity was recognized as a virtue.
>
> 1. Abandon the idea that a full-blown general-purpose operating system
> is required. It's not. Start with something that's fairly lean and which
> has a focus on security (e.g., OpenBSD) and start figuring out what can be
> stripped out of it (based on target devices and application environment).
> This includes not just the kernel, but *everything*: if there isn't
> a need for the C compiler in the target environment, then it shouldn't
> be there. Neither should /usr/include. Or the applicable man pages.
> Ruthlessly strip out every file, every line of code that isn't needed.
>
> 2. Abandon all-singing all-dancing applications. They're enormous.
> They use massive code bases which in turn use massive libraries. And to
> borrow from the quoted passage above, they make it harder to peek under
> the hood. So: no GUI. Don't tell me it can't be done -- I've done
> it. Anyone who can use Thunderbird can use mutt, for example. And given
> the enormous reduction in attack surface as well as required system
> resources, this effort should go as far as possible.
>
> 3. Abandon the idea of application installation, updates, etc. These
> mechanisms present an attack surface. So don't have them, period.
> Make the entire distribution, OS and applications, one monolithic
> self-contained entity. No app downloads. No updates. No choices.
> (Of course this is additional motivation to make it as small as possible.)
> You want a new version? Then you get a new version, in its entirety.
>
> 4. Onboard bidirectional default-deny firewall. Make the user explicitly
> authorize any/all traffic in either direction. Scream like hell when
> something is trying to get in, and just as loudly when something is
> trying to get out.
>
> 5. Design to run off read-only media. Thus (as an adjunct to 3) the
> way that you "upgrade" is to replace that media. Design to use
> external media for storage so that nothing is ever present on the
> system itself.
>
> What I have in mind is something small enough to fit the entire
> distribution on a 64M USB stick/memory card or smaller.
>
> Yes, this approach presents some problems of its own. I know. I could
> spend the next hundred lines enumerating just the obvious ones. But it
> also solves (or at least makes credible attempts at solving) a different
> set of problems that I think are more important. And I think it has a
> fighting chance of reducing the code base and thus the attack surfaces
> to a tractable size. Maybe. Possibly. On a good day.
Don't you think that e.g. DSL (Damn Small Linux) has less code than Android?
I mean you can't simplify that by saying "This System is the most
secure" if you mean "this system is the smallest.".
I think you have to achieve a good compromise between security and
simplicity.
Andreas
More information about the liberationtech
mailing list