Mono Culture - was Re: Bell Labs or Microsoft security?

Joseph T. Klein jtk at titania.net
Wed Jan 29 13:35:03 UTC 2003


On Wednesday, January 29, 2003, at 02:32  AM, Sean Donelan wrote:

>
> On Tue, 28 Jan 2003, Steven M. Bellovin wrote:
>> They do have a lousy track record.  I'm convinced, though, that
>> they're sincere about wanting to improve, and they're really trying
>> very hard.  In fact, I hope that some other vendors follow their
>> lead.

Lest we forget, Microsoft did not originally design Windows for the
Internet, nor for a lot of what it does today.

>
> Of course we need to be honest with ourselves and recognize this has
> been going on for a long time before Microsoft was even a glimmer in
> Bill Gates eye.
>
> Multics security. Bell Labs answer: Unix. Who needs all that "extra"
> security junk in Multics.  We don't need to protect /etc/passwd because
> we use DES crypt and users always choose strong passwords.  We'll make
> the passwd file world readable so we can translate uid's to usernames.
> Multi-level security? Naw, its simplier just to make everything 
> Superuser.
>
> FORTRAN/COBOL array bounds checking.  Bell Labs answer: C. Who wants
> the computer to check array lengths or pointers.  Programmers know what
> they are doing, and don't need to be "constrained" by the programming
> language. Everyone knows programmers are better at arithmatic than
> computers.  A programmer would never make an off-by-one error. The
> standard C run-time library.  gets(char *buffer), strcpy(char *dest, 
> char
> *src), what were they thinking?

Unix and C where also not designed for the Internet.

More ramble ... but a point will emerge ...


>
>
>>  My big worry isn't the micro-issues like buffer overflows
>> -- it's the meta-issue of an overall too-complex architecture.  I
>> don't think they have a handle on that yet.
>


The Internet magnifies relatively harmless conveniences into
major problems. Network access and "crack" made the world readable
/etc/password into a major security hole. "C" is a vast improvement
over assembly and evolved into the language of choice for developers
over other languages. So we have a few buffer overflows now and then.

The formative Internet did a lot to spread C source code. Unix was
the primary platform for the Internet before ISPs spread the network
to small businesses and home computers. Some of us remember down
loading C code from ftp sites in the era before the web page
when you could count off the major source code archives on your
fingers.

> The strange thing about complexity is its much harder to design a 
> "simple"
> system than a Rube Goldberg contraption.

The complexity of Windows ... indeed all our modern OSes has evolved
as they adapt themselves to network environments, complex graphics,
multi media applications, complex user interfaces. Microsoft has tended
to absorb applications into the core OS and, perhaps more than any
other, softened the line between kernel and application to a point
where security suffers. Unix systems have the same problem when root
privileges are given to given to code  ... often because it is less
complex to give a process privilege than to craft a secure sandbox.

I was just starting to use the Internet when the Morris worm chewed
its way through the net. The Morris worm was the first taste of what
a harmless back door and lapses in security could do on the Internet.
It has been almost 15 years since that incident and look at how far
we have come. Common code and lack of review contributed to that one.

Internet worms and viruses have a far greater impact when we all use
the same code, the same operating system, the same stack. If you
plant one genetic strain of corn you risk famine come the blight.

Having BSD*, Linux, OS X, and Microsoft in the mix helps prevent
mono culture blights. Having Juniper, Cisco, and others in the
core is good for our networks.

Competition, variety and some level of complexity do act as safeguards
against the the catastrophic failures exhibited by "mono culture" 
systems.

IMHO competition and diversity are necessary for healthy systems,
corporation, economies and societies. Any complex set of
structures that becomes dominated by a single technology, OS,
ideology or genotype becomes the ideal growth media for disease.

This is why, IMHO, mono-anythings are bad, no matter how benign
or well designed.
--
Joseph T. Klein

The benefits of Democracy, Republic, and IETF is that we do
not speak with a single voice.




More information about the NANOG mailing list