11 ms·
Node.js running in the new Airbus A350 inflight servers
- jacquesm 11y agoSo, it runs nodejs. Any idea on what hardware it runs on, what kind of interface(s) it has to the aircraft, what kind of OS it runs?
- amelius 11y agoJust hit Ctrl C, and then type uname -a. Anyway, I'm surprised they opted for a single threaded, non preemptive system.
- erdeszt 11y agoIf it's completely isolated from the flight control systems then it doesn't really matter.
- RyJones 11y agoIf the Jeep hack taught me anything, it's that some engineers have a version of "completely isolated" in mind that is not congruent with mine. I have no more faith in Airbus engineering prowess when it comes to networking than Jeep.
- kintamanimatt 11y agoCars and planes are built to very, very different standards. The avionics are separated from all systems such as the entertainment by an air gap to prevent such failures from happening.
- jacquesm 11y ago> The avionics are separated from all systems such as the entertainment by an air gap to prevent such failures from happening. Well, they should be, but apparently they are not: http://www.telegraph.co.uk/news/worldnews/northamerica/usa/11611058/Cybersecurity-researcher-made-plane-climb-after-hacking-in-flight-entertainment-system.html http://www.telegraph.co.uk/news/worldnews/northamerica/usa/1... Whatever you could conclude from that article the bug bounty clause ruling those systems out would suggest they are indeed connected, as does the FBI statement (which appears to have taken a part of the conversation out of context but is in fact later on verified by the wired people as having some basis in fact, other than that the guy did not actually control the aircraft he should not have been able to get as far as he did). I agree with you those connections really should not exist but there seem to be at least some wires bridging the air-gap, maybe read only, maybe not depending on the kind of plane. Fortunately there appear to be enough safeguards in place to limit the damage that could be done and from what I understand these have held up. It also seems that the 'hacker' is a bit of a bragger but he got in a lot further than they initially gave him credit for, and in a way that is so simple that it makes you wonder what else they missed. The safeguards now seem to hinge on knowing what commands to issue and how to bypass authentication but that is stuff we see in an internet context on a daily basis so that seems to be - to me at least - very thin ice to skate on. An airgap would be better and simpler.
- kintamanimatt 11y agoThey generally are separated, however the 787-8 is apparently an exception, having been granted "special conditions" by the FAA in 2008. [1] The A350 has a similar design and I imagine they've also have similar special conditions, although I haven't done more than a cursory search. [1] http://cryptome.info/faa010208.htm http://cryptome.info/faa010208.htm
- jacquesm 11y agoThat's one interesting document. I find it hard to believe these are even negotiable, and given that the trend is towards more features and connectivity between systems that does not bode well for the future. You'd think that the FAA would hold their foot down on physical separation of those systems but that does not appear to be the case, you can connect the two as long as you then put in another layer protect the domains related to information and aircraft management. Enfin, they presumably know what they're doing, personally I'd prefer for such a bridge to simply not exist.
- tim333 11y agoThe allegations in the Telegraph article seem pretty dubious. It's based on one odd looking bloke saying he could do it. No other evidence. If it was real I presume some security guy would offer to take reports on a plane and demo it or similar but no. http://www.theguardian.com/technology/2015/may/19/hacker-chris-roberts-claim-seized-control-boeing-airliner-disputed-experts http://www.theguardian.com/technology/2015/may/19/hacker-chr...
- jacquesm 11y agoThey are. The guy is a poser, pure and simple. But that poser was able to access some systems by plugging in to a box under his chair that should have been tamper proof, he was able to get a lot further than he should have once he gained access to the socket underneath. And further digging revealed that there are in fact some (presumably one-way) connections between those systems and the more important bits of the aircraft. All in all, in spite of the dubious source and the questionable character of the guy that did this fairly surprising (to me). If he had not made these stupid claims it would not have made me feel any better about all this.
- joezydeco 11y agoA little bit of Googling mentions that the Panasonic EX systems are VIA embedded x86 boards (perhaps Atom-based?) running Linux.
- dorfsmay 11y agoVIA boards typically run either ARM processor or their own (VIA) x86 compatible processors: http://www.viatech.com/en/boards/ http://www.viatech.com/en/boards/ I run a couple of servers using VIA processors, they consume very little electricity, I run storage, web and mail servers on them. When Intel came out with the Atom, it used a little bit more electricity but was significantly more performant than the VIA. VIA has had new processors since but I don't know how they compare to the Intel low-power line.
- joezydeco 11y agoIs VIA what is left of the Cyrix/NatSemi MediaGX cores?
- jacquesm 11y agoYes, I think it is. The x86 version at least. They had a neat little board that I used to control a plasmacutter torch in 3 dimensions.
- joezydeco 11y agoI had a neat little project on that setup as well. It was way too early for its audience, which is kind of a shame.
- jacquesm 11y agohttp://pics.camarades.com/v/jacques/trips/jansvisit/dscn4017.jpg.html?g2_imageViewsIndex=1 http://pics.camarades.com/v/jacques/trips/jansvisit/dscn4017... Extremely ugly first day prototype of that plasma cutter controller, the VIA board sits in the hard drive enclosure on the right hand side, you can just about make it out. What did you build?
- vans 11y agoJS in airflights, ok that's official now, we are doomed.
- JUsr 11y agoCorrect me if I'm mistaken, but the avionics software would probably be written in C or Assembler. Neither of those have SloppyDevTypeCheckComfortBlankie either, do they?
- Kristine1975 11y agoI'm hoping for SPARK Ada or something similar: https://en.wikipedia.org/wiki/SPARK_(programming_language) https://en.wikipedia.org/wiki/SPARK_(programming_language)
- larry_pi 11y agoSloppy dev is a sloppy dev - whichever the language: http://www.safetyresearch.net/blog/articles/toyota-unintended-acceleration-and-big-bowl-%E2%80%9Cspaghetti%E2%80%9D-code http://www.safetyresearch.net/blog/articles/toyota-unintende...
- smt88 11y agoI cannot tell you how much I love SloppyDevTypeCheckComfortBlankie, how much time/money it has saved my company (converting all our JavaScript to TypeScript), and how funny it is that some people take pride in writing code that isn't typed.
- iamleppert 11y agoNode.js is running on an airplane! So frightening this is allowed! Definitely don't want to be risking my life on that plane!! Why couldn't they use Scala instead?
- kintamanimatt 11y agoI'm not sure if you're being sarcastic, but this is for the entertainment system, not avionics or other mission-critical systems.
- jacquesm 11y agoJudging by the kind of mayhem that ensues when the in-flight entertainment system breaks on an intercontinental flight you'd think some passengers would prefer it if an engine failed.
- djsumdog 11y agoYou'd hope. You'd really hope. Flight engineering is an intense, "We don't fuck around field." ... But every industry has it's "good idea at the time" and there's always a chance of these systems sharing a bus with something critical.
- kintamanimatt 11y agoThere's no chance these systems share a bus with something critical. Critical systems are separated by way of an air gap. There's no way they'd meet regulatory safety standards set by the FAA or EASA standards if they didn't.
- jacquesm 11y agoYou keep saying that but it has already been proven not to be the case. Wired article related to this: http://www.wired.com/2015/05/possible-passengers-hack-commercial-aircraft/ http://www.wired.com/2015/05/possible-passengers-hack-commer... States that there is a connection but it is supposedly one-way only. So no airgap. The article then goes on to note that a 777 uses a two-way bus but requires further authentication.
- fenollp 11y agoWhatever. It doesn't talk with anything essential so who cares.
- joosters 11y agoI wish that people who didn't care about a news article would learn to care even less about it, in fact they should care so little that they don't bother to write their pointless "who cares" comments at all.
- andy_ppp 11y agoI hope they got their system thoroughly pen tested... I bet you there are not two satellite aerials on the plane and you can bet that the important navigation systems are in some way connected to the network. Hopefully this just the aerial connected to two routers but it's probably a single router. I think I want to fly on this and start running nmap ;-) I suppose that would be considered hacking though.
- davb 11y agoInternet access via IFE (in-flight entertainment) systems and WiFi has been a thing for a good while now. There's no new attack vector or failure mode in that respect.
- ams6110 11y agoThere are almost certainly at least two aerials at least for the nav systems because almost every important system on an aircraft is redundant in the event one of them fails.
- have_faith 11y agoGET THIS MOTHER F%CKING JAVASCRIPT, OFF THIS MOTHER F%CKING PLANE
- joegreen 11y agoFast-forward 20 years, a plane crashes, they find and open the black box and in the flight logs they can see the cause clearly: "undefined is not a function".
- stevebygane 11y agoDid you read the article? It's about the inflight entertainment system, and has nothing to do with the flight recorders.
- deleted 11y ago[deleted]
- joegreen 11y agoThus the "Fast-forward 20 years" part :-)
- stevebygane 11y agoWhat makes you think anyone is planning to use NodeJS in avionics in 20 years? Where have you got that information, and how is it relevant to this discussion?
- 4ad 11y ago> Through the WiFi, passengers will have access to an in-flight portal which serves customers content without the need to purchase an internet connection. Isn't this just great! /sarcasm
- notacoward 11y agoShouldn't all software in a plane be written in a higher level language? Yeah, I rolled my eyes too. That was so bad I just had to share.
- anon6_ 11y agoIn my opinion using a language that doesn't compile into a binary with native type safety is a step backwards if it's integrated with any mission-critical system. Love node.js and happy to see it succeed. I'm not sure if I'm a big fan of seeing it used in places where it's not, because it gives the wrong impression. I wouldn't use node.js everywhere. I'd say python can wear more hats, but if it came down to something you can't update regularly and would cause big ramification if it'd fail. You're just making a gamble. If you have a JS bug which wasn't caught, which could have been caught via static analysis, you're going to either go into flight with broken entertainment or wait for a mechanic to update the system. So to reiterate. Happy for node.js, I don't think I agree with where you applied it. I hope that customers, the airline companies and node.js doesn't suffer unduly because the wrong tool was picked for the job.
- luisrudge 11y agotypescript?
- anon6_ 11y agogood call on typescript. I highly recommend it. for those who don't know, typescript gives you static typechecking and builds to JS. http://www.typescriptlang.org/ http://www.typescriptlang.org/ That said, node.js can be embraced by being used in places where it's strongest, like packaging web assets, front end builds, package managing js libraries, websocket stuff. While the company selling the stuff doesn't go into much detail on how node.js is used - when bugs happen - and they will, node enthusiasts are going to get a bad rep for thinking they can use JS everywhere. Not a good idea
- TazeTSchnitzel 11y agoTypeScript's safety is limited: its type annotations do not exist at runtime, so if it interacts with dynamic code, its type safety is violated.
- g8gggu89 11y agoScalajs looks so much better.
- Yhippa 11y agoWould this be the farthest from Earth JS has been run?
- kevinchen 11y agoISS has laptops. I've heard that they do everything by using Remote Desktop to a NASA box on the ground, but presumably there's some part of the client that uses a web view with some JS e.g. to show formatted text.
- TeMPOraL 11y agoIf the laptops run Windows between 95 and 7, then there's likely a lot of JScript and JavaScript running in things like Active Desktop, desktop widgets, possibly startup scripts and obviously inside IE. I'm not sure if all this stuff is still around in Win8+ though. Also, please don't give them any ideas. It's enough that every other JS webdev company uses rocket-related imagery on their site, we don't want them to design actual rockets. ;).
- tracker1 11y agoMost automation scripts these days tend to center around PowerShell. That said, JS is an option for integrated applications in Windows 8+, not to mention electron, nwjs, firefox/xulrunner, and the like.
- deleted 11y ago[deleted]
- jt2190 11y agoInteresting points: * in-flight entertainment system devs allowed to run open source * system is "online" via aircrafts satellite internet connection * devs pushed fixes mid-flight (Edit: The article headline is Aircraft customer experience on a new level)
- jcsnv 11y ago> devs pushed fixes mid-flight Scary, even if the entertainment system is not connected to the flight equipment.
- stpe 11y agoThe article says the issue, discussed with Yle (the content provider), was fixed mid-flight - it doesn't say anything about a fix being pushed. For all with know it might not even be the code, maybe it was a property in the JSON-data of a news article that was changed from left-aligned to right-aligned? Also - no matter if it is relevant or not in the case - being able to deploy and update fixes to a system in production without anyone noticing is a testament to good system design - and even a requirement in many cases.
- iSnow 11y ago>devs pushed fixes mid-flight They don't say they updated the flying server midflight, though: "An issue was spotted mid-flight, discussed over Slack with Yle (located in Helsinki) and fixed immediately. The fix was visible whilst airborne, 10 minutes later when the latest news were updated to the aircraft." It could well have been an issue in the infrastructure on the ground which led to garbled news. Then they pushed a fix on the ground and 10m later, the flying system got rid of the glitch. Purely to make it more dramatic, I would have been vague about that too if the fix was to the ground-based infrastructure.
- dang 11y ago> (Edit: The article headline is Aircraft customer experience on a new level) Yes, the submission title here is an example of how editorializing by picking a single detail usually ends up determining the entire discussion. We didn't change it, but probably should have.
- doublerebel 11y agoWhat struck me was most is the ability to iterate quickly on features and bugs. They didnt just bring Node to the plane, they also brought a more modern software dev mentality. Node's ease of use and ecosystem are a definite asset there. Most airlines are stuck with static, slow, and outdated in-flight systems. This will help them compete as consumers' devices have become embarrassingly better than the typical in-flight UX. Not to mention consumer devices are much heavier on bandwidth and power usage. In regards to the other unsubstantiated comments in this thread, I would assume as an airline they also brought modern security practices along with the rest of the deployment.
- deleted 11y ago[deleted]
- tasnimreza 11y agoWhat if somebody try to write 'flight control system' in node.js and 'settimeout' doesn't get fired on time !
- nyan4 11y agoNode.js seems to be popular only here. http://cbcg.net/blog/2012/02/03/if-youre-using-nodejs-youre-doing-life-wrong/ http://cbcg.net/blog/2012/02/03/if-youre-using-nodejs-youre-...
- untog 11y agoOn a larger note, using JavaScript on the server-side seems kind of ridiculous. If Linden Labs came out with a server-side framework in LindenScript, would you use that? How about if Apple came out with a framework based on AppleScript? Stopped reading right there. Well, actually, I read the next header "Callback spaghetti is about the last pattern with which you’d ever want to write anything" and realized that the author has absolutely no idea what they are talking about.
- vonklaus 11y agoThere are a lot of jokes here and I appreciate them. It isn't breaking news that js has some bad parts, but why are people who aren't joking concerned? * What makes nodejs running on an entertainment system dangerous? * Outside of bias, how strong of a case is there to use another language? * why shouldn't we use high level languages, even for avionics? Obviously not JS because numbers aren't transitive and it just isn't the usecase, but we don't need to optimize for 1kb of memory anymore. C family languages are the backbone of many things and that makes sense but do we need to keep using java and C-like languages or could we use python or something of similar nature where memory isn't manually allocated.
- kodr 11y agoI'd rather use a statically typed language, like C++11 to avoid surprises at runtime. I guess you could use TypeScript to circumvent this problem.
- pcwalton 11y agoYou'd rather use a language full of undefined behavior as opposed to one in which (practically) every behavior of a program is specified by ECMA-262? To "avoid surprises at runtime"?
- striking 11y agoSurprises based on undefined behavior are usually not surprises at runtime, because of superior tooling. Either way, C is best because it has both of those things (tooling, defined behavior). It is possible to write very nice C.
- pcwalton 11y ago> Surprises based on undefined behavior are usually not surprises at runtime, because of superior tooling. Yes, they are. Empirically ([1], just to name one example). > Either way, C is best because it has both of those things (tooling, defined behavior). C has tons of undefined behavior. [1]: https://lwn.net/Articles/342330/ https://lwn.net/Articles/342330/
- sandworm101 11y agoSetting the physical safety issues aside, I cannot escape the comical image of a plane-turned-rave after the cabin mood lighting gets hacked by the bored teenager who doesn't want to read news from the airline-approved news source. Pre-recorded safety announcements get replaced by S-Club-7 on a perpetual loop? Siren noise ever time the seatbelt sign turns on? Or how about altering the hosts file so that the official news source points to hustler,com? There is something to be said for some systems not being so heavily networked.
- swang 11y agothis makes the assumption that previous software was more robust at preventing this than running node.js as a backend.
- sandworm101 11y agoIt's not about the software, but the entire package. The soft/firmware can be total junk, but if it isn't networked to other systems then it isn't going to be hacked. Take the mood lighting. Once upon a time such LEDs would be tied to a controller with three knobs, three rehostats, to set the RGB values. Done. No networking, just knobs. Hacking would require digging holes into the wall. Anyone willing to do that would just turn the knobs. But now it's connected to a tablet app. The software on that networked tablet is always, always, going to be more of a risk than the software behind those not-networked RGB knobs. It's a physicality problem.
- wangii 11y agoJS is the new assembly, and React will be the next Visual Basic. I'm surprised nobody mentioned the Atwood's Law yet.
- tracker1 11y agoJS is a language like just about any other.. and, like VB the ubiquity of new developers starting out with it yeilds some pretty bad code. I've seen bad code in a great many languages.. and some of the worst JS code I've seen has tended come from language snobs who favor other languages, and bring in patterns that just aren't appropriate for the environment.
- dtjohnnymonkey 11y agoI worked on IFE systems at Panasonic for several years. The so-called "head-end" (server-side) services my team worked on were written in C++ or PHP. I saw a lot PHP going on there. The server limitations weren't as strict as you would think. The interfaces between the avionics which held actual flight data and the IFE were read-only IIRC, and otherwise fairly isolated.