funsec mailing list archives
Re: Foul
From: Robert Graham <robert_david_graham () yahoo com>
Date: Mon, 9 Nov 2009 20:53:19 -0800 (PST)
From: Dan Kaminsky <dan () doxpara com> This is suspiciously like trying to design a car that can't be crashed by it's driver.
Or, it's like saying that software just shouldn't have bugs to begin with.
Software is going to have bugs. Even "analog" systems have bugs. Indeed, most of what you think of as non-computerized
"analog" systems are actually things like LADDER logic: disconnected from the network, but still digital after a
fashion.
Dangerous SCADA systems (like the power grid) are not lax in design. The typical design is:
Stage 1: the normal operation of the system, controlled through SCADA protocols, is designed to overcome the most
common types of faults.
Stage 2: a secondary system, usually composed of things like LADDER logic, is design to override and take control from
the SCADA systems, either to prevent things from getting out of hand, or simply shutting things down before they can
get out of hand.
Stage 3: Things have caught fire, the fire suppression systems tries to prevent things from exploding.
Stage 4: Thing went boom. Time to clean up.
In theory, you design each stage so that things can never get severe enough to get to the next stage. In practice,
sometimes things go boom. When they go boom, you have to go back and figure out why the normal controls couldn't
contain it, why the backup systems also failed, and why the fire suppression system didn't work. In nuclear power
plants, they have to document every tiny little failure. You can actually read them online -- it's a sober account of
how easy it is for the unexpected to happen.
The problem with the power grid is that it's unstable. If you simply told the computers to "shut off all the power",
systems will fail when bringing it back online. Cascade failures of multiple unexpected events are common. Thus, the
easiest way for a hacker to cause the maximum damage is just go to the master console and hit the big "off" switch.
Now, my evil plan would be to run an "OPC fuzzer" that would enumerate all the controllable elements and start setting
them to random values. I'm pretty sure I could make things go boom.
The hole in the SCADA thinking, BTW, is that they plan for "accidental" failure. They have a lot of experience with
accidents, and a lot of robust models for recovering from accidents. The reason there is a problem dealing with hackers
is that they have no experience dealing with "intentional" failures.
_______________________________________________
Fun and Misc security discussion for OT posts.
https://linuxbox.org/cgi-bin/mailman/listinfo/funsec
Note: funsec is a public and open mailing list.
Current thread:
- Re: What was that about hubris? Rich Kulawiec (Oct 01)
- <Possible follow-ups>
- Re: What was that about hubris? Rich Kulawiec (Oct 01)
- Re: What was that about hubris? chris (Oct 01)
- Re: What was that about hubris? Paul Vixie (Oct 01)
- Re: What was that about hubris? chris (Oct 01)
