You’re driving down the road in your brand new Jeep Cherokee, when all of a sudden the radio rises to an overwhelming level, and your horn starts blaring due to what seems like an act of God. However, the truth is that miles away, hackers are controlling your vehicle! Creeped out? Watch this video. While this may seem innocent enough, imagine a worse case scenario where it is your breaks, or your actual acceleration that is being meddled with. Imagine that the passengers of the hacked car are killed. This terrible scenario raises a lot of questions about liability.

What accountability does Fiat Chrysler have for leaving the vehicles vulnerable? They did not themselves do the hacking, but they did leave the vehicles exposed. What if they had no idea that this external control was a possibility? Do we treat this scenario the same as the failure of a rear axle? There are no good answers to be given. The master minds behind the electronic systems of the jeep should have accounted for security. Even if they did not anticipate actually getting hacked, the possibility should have entered their minds. Therefore they do need to be accountable. While the situation is much different then say a failed axle, because more than one party is involved in the destruction (the hackers), there should still be a free recall so to speak, where the issue is resolved. Luckily at this time, our hackers and Fiat Chrysler were working together and they have solved the issue with a patch.

Imagine the guilt that you would feel had you been responsible for such a situation where the outcome was not as positive. Upon graduating from Berea, will I be ready to conquer the task of working on life-critical software and embedded systems? Honestly, I am not sure. I do not feel ready. To truly understand all of the issues, I feel as though one needs to be able to hack the system (or attempt to hack the system), and I have never done anything of the sort. The closest thing that I have done is trying to break code that I have written (Making functions fail, etc.). The classes that I feel would be the most beneficial for this situation would have to be Electricity & Electronics, for exposing me to “embedded systems” so to speak, and possibly Data Strucutes & Algorithms because it forced me to be accountable for my code. Working in teams throughout the courses would definitely help my ability to work on life-critical software because you can cover more ground when you are working with others. Berea prepares you well, but honestly how prepared should you be when you are creating something that could potentially be fatal to others.

Upon doing further research, there are several approaches that practitioners utilize to develop reliable embedded systems.

Identifying System Errors

Safety Standards

Hazard Analysis – Identifying all the of the dangers to human safety that a system causes, and identifying how likely it is that an accident will result from the hazard

Fault Tree Analysis– This is identifying the most critical threats of the system and then creating a tree of things that could cause them to happen

Testing/ Run-time Testing/ Robustness Testing – this one is important