Um Boeing 777 pode ser invadido?

30

Toda essa confusão sobre o voo 370 me fez pensar se seria possível invadir um avião e controlar o piloto automático ou outros sistemas de bordo de uma maneira que os pilotos não pudessem recuperar o controle.

Eu sei que algumas pesquisas básicas revelam alguns artigos como este. Se o avião não puder ser invadido, alguém com o conhecimento adequado pode cortar ou desativar a substituição do piloto?

Isenção de responsabilidade: Conheço a 0 sobre aviação, mas sou programador. Portanto, meu palpite seria que qualquer coisa que não tenha desconexão física estaria vulnerável a ser invadida sem poder substituí-la.

Isenção de responsabilidade adicional: Esta é uma pergunta sobre curiosidade / possibilidade, não um tutorial.

por teynon 15.03.2014 / 00:39

5 respostas

Atualmente, a resposta a esta pergunta está em princípio não para avião comercial, pelo menos não remotamente. Existem duas partes para isso:

Da perspectiva do sistema:

  • Os sistemas de aeronaves provavelmente poderiam ser "hackeados" - supondo que você pudesse, por exemplo, estragar o computador de vôo trocando os chips na barriga - mas não há como você realmente conseguir isso sem que os pilotos percebam que o percurso está longe da bússola por exemplo, para que eles descobrissem e desligassem. Muitos sistemas não estão conectados de uma maneira que lhes permita causar danos a outros. Os sistemas também são bastante dedicados - se ele deve pilotar o avião, é o que faz, se deve navegar, é o que faz.

  • Os sistemas em aeronaves geralmente têm uma conexão limitada, se houver, ao mundo exterior. Existem alguns sistemas com capacidade de conexão com o solo, e isso geralmente é limitado a simples mensagens de texto. A maioria dos componentes eletrônicos no 777 são da introdução do tipo no 1994. Acho que uma analogia decente está tentando invadir remotamente um telefone celular antigo.

E do ponto de vista prático:

  • As aeronaves geralmente são muito rígidas quando se trata de mudanças - elas geralmente são aprovadas em uma determinada configuração e, em seguida, permanecem, então há pouca necessidade de mudar as coisas e, portanto, não é possível. Isso se aplica ao piloto automático e aos controles de vôo - uma vez lá, ele permanece lá.

  • Como algumas pessoas apontaram, esses sistemas são proprietários e de código fechado, dificultando a programação deles se você for um estranho, mas em teoria isso pode ser possível.

O fato de nenhuma aeronave, mesmo a Airbus com uso intensivo de computador, ter sido realmente invadida de alguma forma, é impossível a noção de que toda a aeronave será tomada e voada para algum lugar.

Quanto à pergunta original ligação:

“The FAA has determined that the hacking technique described during a recent computer security conference does not pose a flight safety concern because it does not work on certified flight hardware,” he said.

“The described technique cannot engage or control the aircraft’s autopilot system using the FMS or prevent a pilot from overriding the autopilot,” said Dorr.

“Therefore, a hacker cannot obtain ‘full control of an aircraft,’ as the technology consultant has claimed,” said Dorr.

Em um acordo semelhante, acho que ouvi uma história sobre um Bombardier Dash 8 que causou um vírus de computador uma vez, mas acho que nunca foi além do sistema de navegação, a parte com mais processamento intensivo. Infelizmente, não consigo encontrar uma fonte para isso.

15.03.2014 / 00:54

Existem certos sistemas de comunicação que teoricamente poderiam ser invadidos. O CPDLC é usado para se comunicar digitalmente entre pilotos e controladores, portanto, se fosse hackeado, alguém poderia enviar instruções ao piloto que pareciam vir de um controlador e os pilotos não saberiam a diferença.

Os planos de voo também podem ser carregados no Sistema de Gerenciamento de Vôo em alguns casos e podem ser usados ​​para programar uma rota diferente.

Uma coisa a ter em mente, porém, é que os pilotos ainda estão intimamente envolvidos. Eles veem e aprovam todas as alterações. Pequenas mudanças podem passar despercebidas, mas se fossem instruídas a voar em uma direção completamente diferente ou para um destino diferente, provavelmente começariam a fazer perguntas. Se fossem enviados diretamente para uma montanha ou outro avião, provavelmente notariam ou outros sistemas de segurança entrariam para avisá-los.

Mesmo em um cenário de "pior caso" em que alguém foi capaz de reprogramar o piloto automático (não acredito que isso seja possível no momento), o piloto sempre pode simplesmente desligá-lo e voar manualmente.

Em suma, isso não é realmente algo para se preocupar.

15.03.2014 / 04:01

Tudo é possível. Por exemplo, a NSA poderia ter forçado um fabricante a incluir algum backdoor no sistema para uso.

15.03.2014 / 21:35

"Hack" tem uma variedade de definições, desde a leitura de dados privados de um sistema não crítico, a interrupção ou confusão do modo aviônico, o controle do avião e o bloqueio dos pilotos. Isso complica a discussão sobre a probabilidade de os aviões serem "hackeados".

Em geral, o consenso recente parece ser que, sob algumas definições de "hack", isso certamente é possível, mesmo sem conhecimento interno. Há alguma relatórios de hacks bem-sucedidos por aí, embora como os detalhes sejam confidenciais, é difícil dizer o que os pesquisadores realizaram ou o método de ataque deles. Tanto pesquisadores quanto fabricantes de aviões parecem concordar que, mesmo com conhecimento interno ou acesso prolongado ao avião, seria extremamente difícil, mas não impossível, assumir o controle de um avião por mais de alguns segundos.

As orientações políticas atuais da FAA podem ser encontradas em PS-AIR-21.16-02. Ouvi dizer que a FAA acabará reconhecendo o DO-326 como um meio de conformidade.

Vou fornecer algumas informações sobre medidas de segurança e integridade que são padrão no setor e dificultam a aviônica de hackers. Em particular, os aviônicos de hackers são um tipo de hackers de dispositivos embarcados críticos para a segurança, e não de servidores ou computadores pessoais. Os dispositivos embarcados críticos para a segurança têm uma superfície de ataque muito menor e muitos outros métodos de mitigação, conforme descrito abaixo.

Modelo de ameaça e diferenças em relação aos computadores

As ameaças que você enfrenta nos aviões são muito diferentes dos servidores e laptops. Os computadores pessoais estão propensos a vírus porque usam muitas técnicas perigosamente flexíveis. Eles executam código arbitrário. Eles possuem um software que se reconfigura. Eles recebem texto e até comandos de fontes não verificadas. A maioria delas não é verdadeira para aviônicos, por isso é difícil especificar um modelo de ameaça.

Especialmente para os sistemas mais críticos, como monitores e pilotos automáticos, os tipos de dados são rigorosos, as mensagens são agendadas, o tempo de processamento é limitado e as sequências raramente são usadas. Para realizar a maioria das tarefas, você precisaria quebrar esses protocolos. Isso é semelhante a outros tipos de programação incorporada, nos quais o software é tão inflexível que a superfície de ataque é pequena.

Algumas coisas que definitivamente ajudam os atacantes aqui incluem acesso físico ao processo de atualização de software, poder trabalhar com o avião por vários dias, conhecimento interno, equipamento simples de RF ou capacidade de seqüestrar comunicações via satélite para o avião. Se o atacante tiver alguns deles, a ameaça é muito mais séria.

Disponibilidade

É possível mexer com a disponibilidade de sistemas de aeronaves? Sim, se você pode manipular os sinais certos. Você pode, por exemplo, fazer o computador de controle de vôo achar que um sensor está com defeito. Você pode disparar muitos sensores com sinais de rádio poderosos o suficiente. Além disso, a maioria dos computadores de vôo usa processadores prontos para uso com muitos comportamentos estranhos e, especialmente, se uma exploração permite executar código de montagem arbitrário, você pode explorar alguns deles para deixar o sistema aviônico offline.

No entanto, a disponibilidade não é uma preocupação tão grande quanto a integridade dos aviônicos. A maioria das pessoas não fica acordada à noite se preocupando com o fato de o piloto ter que voar à mão por causa de um hacker. A maioria das pessoas está realmente preocupada com o fato de um hacker assumir o controle total do avião.

Particionamento

Diferentes funções, especialmente as de diferentes níveis de segurança, são reguladas por uma a outra. Historicamente, as aeronaves tinham hardware dedicado para cada componente, como um computador para o piloto automático, outro computador para o sistema de alerta, outro computador para o processamento de dados. Atualmente, grande parte desse software é executado em computadores LRU compartilhados (isso é chamado de arquitetura IMA). Mas, apesar do compartilhamento de hardware, os processos de software são estritamente isolados um do outro e supõe-se que nenhuma falha do processador, condições de erro, estouros, etc. possam ser transferidos de um processo para outro, especialmente um processo de nível superior. Sim, os sinais passam entre partições, mas todos os sinais que passam de um nível de segurança mais baixo para um nível mais alto são justificados individualmente para garantir que não causem problemas de segurança.

Para que uma exploração tenha efeito catastrófico, ela teria que contorná-la, quer pelo 1) trabalhando diretamente com o hardware e processos de nível A 2), encontrando uma suposição ruim sobre o impacto de um sinal de nível inferior.

Consulte DO-297 e DO-178C para obter mais informações sobre esse particionamento.

ensaio

Muitos hacks em computadores pessoais ocorrem devido a testes inadequados que permitem exceções e falhas no sistema. O software de nível A é testado de maneira muito mais abrangente do que a maioria dos aplicativos ou software de PC. Cada linha é testada quanto à cobertura de MC-DC (não exaustiva, mas todas as decisões devem ser exercidas como Verdadeira e Falsa). A cobertura estrutural também é avaliada para garantir que interações não intencionais não ocorram. Se ocorrerem falhas, o RTOS é projetado para cuidar dessas falhas de forma previsível e confiável.

Atualizações de software

Ok, digamos que você não encontre uma maneira de executar código arbitrário, você pode atrapalhar o processo de atualização de software? Isso inicialmente parece viável, especialmente devido à nova tendência de atualização do firmware aviônico nas redes. Existem várias questões aqui.

  • A maioria das aeronaves não está diretamente conectada à Internet para atualizações de aviônicos. Eles estão conectados a uma rede local que obtém o software mais recente da web. Portanto, você teria que ter acesso à rede local para atualizações e também obter acesso aos aviões usando essa rede. Essa camada extra fornece alguma atenuação.
  • A maioria das atualizações de software usa uma verificação de integridade de alta fidelidade, para a qual você precisaria de uma colisão de hash incrivelmente difícil. Alguns processos de atualização não têm verificações de alta fidelidade, mas se for esse o caso, eles devem qualificar às autoridades que seu processo de atualização é estável e à prova de erros. Portanto, sua única opção seria forjar o CRC também para a atualização e / ou encontrar uma exploração em um processo de carregamento qualificado.
  • As atualizações baseadas em rede também acompanham os números de versão e podem acompanhar as verificações de integridade do software. Portanto, você não pode forçar exatamente uma atualização da versão 13 para uma v. 13.1 hackeada sem que alguém perceba.
  • Atualmente ataques à cadeia de suprimentos estão se tornando cada vez mais frequentes. Embora eu tenha certeza de que um ataque à cadeia de suprimentos possa ser viável, regulamentos como a qualificação da ferramenta DO-330 e o controle de configuração do DO-178 protegem contra alterações inadvertidas durante a criação de software há anos. As versões testadas e revisadas do código estão sob controle cuidadoso e comparadas com as versões finais, os ambientes de criação de software são bloqueados e qualificados e as listas de bibliotecas incluídas são documentadas e aprovadas. Você precisaria encontrar um ponto cego nesses processos para atacar a cadeia de suprimentos de software.
  • As atualizações de software (não as atualizações de banco de dados de navegação) são realizadas com pouca frequência, talvez a cada três anos, mitigando bastante a oportunidade de hackear uma carga de software. Existem bloqueios para impedir a recarga do software quando não desejado. Essa infrequência também leva a um maior escrutínio de todo o processo.

Para obter mais análises das medidas de segurança para impedir o upload de software ou bancos de dados corrompidos, sugiro que você consulte os padrões para esse processo: DO-200A, capítulo 5 do pedido FAA 8110.49 e FAA AC 20-153.

Desconexão manual e automática

Normalmente, o piloto automático e outro software são gerenciados por outro sistema que possui intertravamentos e desengata a lógica. Eles possuem padrões de segurança e testes escritos para garantir que eles funcionem de maneira confiável, tornando difícil encontrar uma exploração aqui sem, por exemplo, já ser capaz de executar código arbitrário.

Mesmo que esse software de desativação não funcione, os pilotos têm disjuntores e podem desativar todo o sistema aviônico, depois pilotar o avião manualmente. Veja a resposta da BigHomie para uma discussão sobre como é possível invadir isso.

Em teoria, isso deve funcionar, mas em certas situações o avião pode ser colocado em uma situação insegura antes que o piloto possa recuperar o controle. Seria difícil recuperar um arremesso repentino na abordagem, mesmo se você puder desativar manualmente o piloto automático.

Nota: Não sou especialista em aviônicos ou segurança de dispositivos incorporados. Hackear tende a pensar fora da caixa, então, deixe-me saber se alguma coisa que assumo aqui é imprecisa ou se sinto falta de alguma coisa.

19.08.2016 / 20:02

Qualquer computador pode ser hackeado. Não estou dizendo que tenho o conhecimento necessário para fazê-lo, ou mesmo sei muito sobre aviões para lhe dizer como. No entanto, se alguém com o conhecimento necessário tiver tempo, motivação e acesso adequados a uma aeronave, isso definitivamente pode ser feito. Se você está perguntando se um avião pode ser retirado do meio do voo, sem nenhuma modificação prévia, não posso responder porque não sei o suficiente sobre o sistema.

Teoricamente discutindo como hackear um avião no meio do voo, com ou sem modificações anteriores, provavelmente me sinalizaria e colocaria em uma lista em algum lugar, então eu me recuso a entrar em detalhes sobre isso.

No entanto, é preciso pensar em quais protocolos sem fio são usados ​​para um avião se comunicar com o solo, quais subsistemas de computadores podem acessar esse link físico e se esses subsistemas podem controlar o avião ou acessar outros subsistemas que podem controlar o avião.

'Bloquear um piloto' provavelmente envolve desabilitar um comutador manual em algum lugar, difícil de ser feito via computador, mas isso pode ser feito com a amperagem suficiente que foi passada pelo comutador para explodi-lo ou se foi manipulado antes da mão (modificação prévia).

Se estamos falando como, este é um episódio de Numb3rs com um tema semelhante, no entanto, não estaria longe do que seria necessário na vida real.

15.03.2014 / 18:20