Crashing an In-Flight Entertainment System 322
rabblerouzer writes "Hugh Thompson, who was interviewed by Slashdot on the dangers of e-voting, now has a cool blog entry on how he was able to bring down the gaming/movie console on an airplane. He calls it one of the most interesting examples of a software 'abuse case' he has ever seen." Fortunately the IFE system is totally disjoint from the avionics.
Yeah tell me about it .... (Score:5, Interesting)
Re:Err (Score:4, Interesting)
Interesting. I went to swissair111.org [swissair111.org] and read up on the incident. They are now reporting that "MICHAIL ITKIS, CEO OF INTERACTIVE FLIGHT TECHNOLOGY CHANGES NAME TO MIKE SNOW". So apparently we need an extra step in the old cliche:
You can tell it's Linux when it crashes. (Score:4, Interesting)
I don't know enough about Linux to understand what it said on my screen when it was trying (and failing) to boot back up again:
http://washedashore.com/misc/inflight_error.jpg [washedashore.com]
(This was April 23, 2005, on a flight from Bucuresti Romania to NYC.)
-Ben
Re:There is a NAME for the bug... (Score:5, Interesting)
Similar Crash (Score:3, Interesting)
Playing around (there really was nothing better to do) I found that quickly wiggling the bat around with 4 balls on the screen would crash the system. After about the 4th or 5th crash the system came back up but this time with all the games enabled! After that I was careful not to crash the system but still about 30 minutes from landing it crashed again and came back up with only the free games.
I wondered at the time how such an easily triggered failure could have been overlooked. Unlike the article my crash only affected my screen...but at least there was some beneficial affect!
Re:Err (Score:5, Interesting)
Can anyone intuit the airline? Because without an airline name, I call bullshit on this story. I would guess it had to be business class, and probably a foriegn carrier, if the story is to be believed.
Re:Err (Score:2, Interesting)
Re:As a side note... (Score:2, Interesting)
http://i12.tinypic.com/2j17rc4.jpg [tinypic.com]
The IFE had to be rebooted 3 or 4 times during a 5 hour flight, some people's screens never worked at all. Luckly I caught a snapshot of the offensive software's startup screen.
Re:Err (Score:3, Interesting)
There are quite a few IQ tests and they are usually structured so that the majority of people fall right around 100 with a max possible score of 200.
IIRC, over 80% of all people fall in the 10 point range around 100 (or maybe it was with 10 points of 100).
A 150+ on most tests is in the upper 2% of the population.
Mycroft
Re:There is a NAME for the bug... (Score:3, Interesting)
Re:Avionics programmers (Score:5, Interesting)
Anyway, the level of testing required was very, very high. I say that even though we were grads working on it, because it was not our choice what to test and what to leave, and they were done multiple times with different people, the the branches, lines run etc compared. It was the lowest level of the software tests and everything was in modules about 30 lines long that needed 100% coverage, every logical combination tested out etc. Plus the languages they used (ADA95, fortran(77?) and assembly) were cut down to remove anything too untestable. I think 'while' loops were out because, as opposed to 'for's, there is a chance of a infinite loop. That sort of stuff. Would be a nightmare to code in.
In not sure how other FCC's usually are, but interestingly this one had 4 CPU's with a fifth 'controlling' one or something and basically each calculation would be performed on all 4 then the results correlated and the majority answer taken. I guess to protect it from a freakish glitch or maybe some deliberate interferance? Not sure, but surely accurate.
Fly-By-Wire - It's not just the software that crashes.
Re:Err (Score:2, Interesting)
disjoint... (Score:2, Interesting)
I was at a presentation (about nine years ago, now) where someone from the aviation industry was showing us the future (or the future as he hoped) of aircraft systems - in particular a new bus that was being used for communication around the aircraft. And yes, the in-flight-entertainment used the same bus as the avionics. It was being actively presented as a positive feature. Sadly, I don't remember the details.
Re:Err (Score:5, Interesting)
Yes, the wiring insulation burned and brought down the plane. A friend's wife was on that plane, so I have an interest beyond the technical.
Another interesting event was the crash of an Airbus flight control system, resulting in an inflight rebooting message; the pilots flew on in manual.
Greed. SwissAir is no more.
Yes, but it was due to them overpaying their employees and not controlling other expenses as well - a problem many European state run airlines have. Look at Alitalia for example - they could lease planes with crews for less than it costs to fly their own. Europe's carriers are heading towards teh same consolidation and liquidation taht US ones have expereineced and only a handful will survive. I think BA Lufthansa and Air France will probably be the last standing.
Re:Avionics programmers (Score:5, Interesting)
Re:Go look up "fortune" or something (Score:5, Interesting)
You are committing the logical fallacy of "Argumentum ad Stultum": argument from stupidity.
Arguments that commit this fallacy have the form:
It would be stupid to do X
No one would ever do anything stupid
------------
Therefore no one would ever do X
The second premise is so obviously false it hardly needs mention.
So, simply because there is no reasonable scenario that would put the IFE system in a position of affecting the avionics does not mean there is no probable scenario in which this could occur. It requires good engineering, good management and yes, good luck, to ensure independence. Every engineer knows that we must try to eliminate luck from the process and must never, ever rely on it, but also that it will always be a factor.
One obvious way in which the IFE could affect the avionics is via coupled grounds. Grounding in aircraft is never simple, and maintaining fully independent power supplies has been a challenge for IFE and avionics engineers. IIRC the 777 was delayed for a while due to the need to do some redesign on the power systems to ensure independence was retained. In any system so complex there will always be an element of luck, despite the engineer's best efforts.
Re:Yeah tell me about it .... (Score:2, Interesting)
Answers to your questions (Score:2, Interesting)
For example, a coverage analysis tool would have a qualification test report that shows the system works for an if-statement, a for-loop, a while-loop, and so on. Similarly, the compiler is qualified by showing that it generates correct code for an if-statement, a for-loop, &c.
In practice, there is usually very little external test software that can be used effectively. Exceptions exist, but largely much of the avionics software components don't port to another system for testing very well. (As opposed to testing the *entire unit* by having some sort of simulator computer which generates synthesized inputs, which works very well.) (Fly-by-wire calculation engines being one of the exceptions.)
In the case of ASSERT's and other constructs which continuously check the code inside the unit, they are considered to be part of the avionics software and thus must undergo the same level of criticality testing as the rest of the code.
As an example from projects I have worked on, in a level-A project each separate ASSERT statement was tested for both cases (pass/fail) and verified to be working. In a level-C project the ASSERT macro was analyzed and shown to generate correct code, and then a handful of the simple-clause ASSERT's were rigorously tested, and from this all the rest of the simple ASSERT's were deemed OK. (and complex clause ASSERT's were rewritten to use simple clauses, and the one remaining complex ASSERT was tested rigorously).
Are you sure? (Score:1, Interesting)
I was an intern, back in college, and I wrote code to test the avionics hardware. The code was ugly, and it was in some form of VB (I'm repeating myself, I know).
Granted, I don't think I did anything wrong--if anything, knowing that it was for something important made me want to code as best I could, but I was still just some random college student who was chosen primarily for having BASIC on his resume (the wrong form of BASIC, but learning VB isn't exactly difficult, I think that even monkeys could be trained to use it and they may have written it to begin with).
Oh, and this was with respect to the actual avionics, not some IFE (they didn't have those back then). Yeah, that means reading & writing things like pitch, roll and yaw. I believe that the avionics even communicated over some form of Ethernet? Although it would, of course, be isolated from anything the passengers are supposed to have access to.
Re:Err (Score:1, Interesting)
http://www.caetano.eng.br/rigues/galerias/Seoul/sl ides/DSC03202.html [caetano.eng.br] - These are the back-seat screens. Touch sensitive, probably passive LCD (terrible viewing angle).
http://www.caetano.eng.br/rigues/galerias/Seoul/sl ides/DSC03206.html [caetano.eng.br] - This is the controller on the armrest. Note the directional and four action buttons on a SNES-like configuration (plus L & R on the back, not visible). And surely there is a fone (with a tiny LCD screen and keypad) on the back of the controller.