Have they built sufficient firewalls and antivirus to prevent this and how does the system keep those upto date? How do they maintain the ongoing integrity of the software?
Excellent questions. The challenge of adequate testing of such complex software systems is keeping the experts in that topic very busy at present. We are now developing software systems that are so complex that a full verification becomes almost impossible. When the system is a mobile phone that is one thing. When it is a self driving car or an automated system in an aeroplane its another matter entirely (e.g. 737-Max).