Secure Coding mailing list archives

Education and security -- another perspective (was "ACM Queue - Content")


From: "Wall, Kevin" <Kevin.Wall () qwest com>
Date: Fri, 02 Jul 2004 14:10:35 +0100

Kenneth R. van Wyk wrote...

FYI, there's an ACM Queue issue out that focuses on security -- see 
http://acmqueue.com/modules.php?name=Content&pa=list_pages_issues&issue_id=14

Two articles there that should be of interest to SC-L readers include
Marcus Ranum's "Security: The root of the problem -- Why is it we can't
seem to produce secure, high quality code?"  ...<snip>...

I've been thinking alot about some of the statements that Marcus Ranum
made in his most recent article in the _ACM Queue_ (Vol 2, No 4)...
even before Ken invited us all to comment on it.

I mostly agree with Ranum's conclusions, although perhaps for
different reasons.

Ranum states:
        "It's clear to me that we're:
         + Trying to teach programmers how to write more secure code
         + Failing miserably at the task"

He goes on to say that "it [educational approach] flat out hasn't
worked".

In general, I don't think this is an issue that is unique to _secure_
programming (coding, design, etc.). I think over the past 40 years or
so, as a discipline, we've failed rather miserably at teaching
programming, period. For the past 25 years, I've worked closely with
both highly educated Ph.D. computer scientists and with those whose
formal CS education consisted of at most a course or two in something
like C or Pascal. In many of these cases, the less educated are
beating out those who have had more formal education. (In fact,
I'd say this has been true in at least as many as 50% of the cases.)

What makes the difference? Well, it goes beyond mere aptitude and
general intelligence. I think in part at least, it goes with having
a passion for what you do. To some, doing design and coding and
other creative aspects is an artistic expression, a noble cause
and they would do it even if there weren't paid for its--witness
the open source movement which is largely funded by volunteer
labor. Others see it as a "job" or a "career path", but not much
more. In my 25 year observation, those with this PASSION almost
always "get it", and those without it are usually left behind
after the first few years into the profession.

I think that the same can be said for "secure coding / design".
Not only do those people have a passion for coding / design, but
the ones who seem to "get it" are the ones who have a passion for
security as well.

Okay, so probably no surprise here, right? Do what you enjoy and
you'll excel at it more often than ones who do it out of other
motives (no matter how noble--such as making an affordable living to
provide for your family).

So I agree with Ranum in a sense--that educational approaches to
security have overall failed, but I think it is not because the
educational process / system per se has failed us (not that I'm
arguing that it couldn't be improved), but because we haven't been
able to ignite the passion for security in others. (And frankly,
I'm not even to what degree that's possible. I'll leave that to
another discussion.)

In the past two years, I've had the fortune to teach a computer
security course that I had the major part in organizing / developing.
I have learned two things about the students during that time:
        1) All the students do well when it comes to rote
           memorization. (E.g., questions such as "What cipher mode
           doesn't require an Initialization Vector?", etc.)
        2) Only the students that seem to "get it" seem to do well
           on the questions requiring thought (i.e., ones requiring
           reasoning "outside the box").

Surprisingly (at least at first), I have often been discovered that
those who other faculty members often consider the brightest students
are ones who do the worst on the "questions requiring thought".

But in general, by the end of the 12 week period, I usually can tell
who is going to take and try to apply what they learned and those
who just chalk up the course as another 3 credit hours.

I see what I think is a related phenomena in the commercial world
as well. I've worked with a lot of developers who have worked on
security-related software (e.g., firewalls, crypto, secure proxies,
authentication and access control systems, etc.). One would EXPECT
that the groups that work on these projects would as a whole do
better at developing secure programs than the IT industry as a whole.
But overall, I don't think that their batting average is all that
much higher than the industry at large. We often hear excuses for
this ("security software is more complex", etc.), but I'm not buying
it. If anything, it's this observation more than anything else that
makes me think that formal education is not THE answer (although,
I do think it is part of the answer).

On a related note to security and education, I was wondering if anyone
knows of any experimental data that shows that those with formal
education in security develop more secure programs than those
who have never had such formal training?  If no such experimental
data exists, why not? Can no one think of some formal, repeatable
simple experiments that one could do over several years to see
if formal security education has a significant effect on developing
secure programs? Surely there must be something that educators
could do to formally test this. (Similarly with experiments measuring
security of open source vs proprietary source.) Science does make
very much forward progress until then can propose hypothesis and then
test those hypothesis with some real experimental data. IMO, that's
one of the big failings of computer science...very little experimental
data to back up our often unfounded hypothesis...thus we find
ourselves bouncing from one fad to another because as a profession
have no grounding.

Anyway, I've rambled far too long.
-kevin
---
Kevin W. Wall           Qwest Information Technology, Inc.
[EMAIL PROTECTED]       Phone: 614.215.4788
"The reason you have people breaking into your software all 
over the place is because your software sucks..."
 -- Former whitehouse cybersecurity advisor, Richard Clarke,
    at eWeek Security Summit






Current thread: