筆者:齋藤 隆
とんでもない機動力を精緻に制御して、大空を自在に駆る戦闘機。数100名単位で旅客を乗せることができる巨躯を少人数で制御した上、長時間の移動に快適性まで提供できる旅客機。この「制御」に大いに貢献しているのが、コンピュータです。
そう、いわば航空機は「空飛ぶコンピュータ」。そこで気になるのが、そのセキュリティです。今回は旅客機に焦点を当て、過去のちょっとした騒動から掘り下げてみましょう。
サンタマルタ氏、旅客機の脆弱性を発見?!
事の発端は2018年。サンタマルタという人物が、サイバーセキュリティ専門家の会議で「旅客機の衛星通信装置を遠隔でアクセスする方法を発見した」と報告しました。航空業界は「そんなことはない。指摘された点は既に何年も前に対応済み」と反論しました。
サンタマルタ氏は、シアトルのIOActiveというサイバーセキュリティ会社に所属する研究者(ホワイトハッカー)です。IOActiveという会社は、1998年に設立されたシアトルのコンピュータセキュリティ会社で、サイバーセキュリティ業界誌から表彰されたこともあります。素人目には、サンタマルタ氏もIOActive社も信頼できそうに思います。
さて、その翌年。サンタマルタ氏は「さらにすごい発見をした」と報告しています。同氏の主張では「インターネットを検索していたところ、旅客機の中枢となるコンピュータシステム(Crew Information System/Management System)のプログラムの一部に遭遇し、この情報をもとにして旅客機にサイバー攻撃を仕掛ける方法(攻撃パス)を発見した」というのです。
サンタマルタ氏はこの脆弱性を発見した後、直ちにボーイング社や業界のサイバーセキュリティ団体(A-ISAC)に報告しました。ボーイング社は数ヶ月かけて実験室と実機で検証を行った結果、報告された攻撃パスでは旅客機に被害を加えることはできないことを確認し、業界の関係者、航空局(FAA)、国土安全保障省(DHS)に報告しました。サンタマルタ氏自身も「本物の旅客機が手元にないので、果たしてこの攻撃パスが有効かどうかはわからない」と言っており、実際にはサイバー攻撃は発生しませんでした。この件は、結果としては「ヒヤリハット」(大事には至らなかったが、もう少しであわや…、というような事象)だったようです。
侵入するとしたら、どこから?(攻撃パス=Attack Path)
さて、悪者が旅客機をハッキングするという視点で見た時、攻撃パスとしては、
- 座席についている画面(Inflight Entertainment System)の横にあるUSBポートから侵入
- 空港などに航空機が到着するとWi-Fiによるデータのアップデートをしますが、ここを通して侵入
- 空地デジタル通信を経由する時に侵入
- 整備士に扮装して整備端末から侵入
などが考えられます。
侵入されたら即アウト?(ドメイン構造=Domain Architecture)
このような方法で侵入してくる悪者に対して、旅客機はどのような方法で防御しているのでしょうか。旅客機の中は電子的に見ると、
- PIESD: 乗客がアクセスする領域(Passenger Information and Entertainment Systems Domain, PIESD)
- AISD: 航空会社が航空機と情報を共有する領域(Airline Information Services Domain, AISD)
- ACD: 航空機の操縦に関わる閉じた領域(Aircraft Control Domain, ACD)
に大きく分けられます。これらの領域はお互いに隔離されるか、あるいはセキュリティが甘い方(PIESDドメイン)から厳しい方(ACDドメイン)にデータが流れないようになっています。
例えば乗客がアクセスできるPIESDドメイン(通常乗客はここで映画を見たり、音楽を聴いたり、インターネットに繋いだりしています)では、航空機の高度や速度が画面で見えても、その数字を書き換えてACDドメインにある航空機の制御機能に影響を与えることはできないように設計されています。
従って、万が一客室関係から侵入されたとしても、映画のようにいきなり墜落することはなさそうです。
航空機のセキュリティ対策は設計の段階から!(DO-326 セット)
航空機を設計する段階では、機体の形、構造、エンジンなどからはじまり、操縦系統、油圧系統、電気系統、各種センサー、航法機能、通信機能、空調、客室サービスなど機体の用途に応じたさまざまな機能を決めて、それを具体的なハードウェアやソフトウェアに落とし込んでいきます。
ソフトウェアの構造を決めるのと並行して、それぞれのソフトウェア(大型機には約1000個のソフトウェア(LSAP)が搭載されていると言われています)のセキュリティリスク評価を行い、機能の重要さに見合ったセキュリティが確保できるように、必要なセキュリティ対策を講じていきます。そしてソフトウェアが書き上がったら検証と妥当性確認を行います。
大胆に要約しましたが、これらの考え方や手法などは、航空業界が作成したいくつかの規格から構成される規格群(専門家の間では“DO-326セット”と呼ばれています)にきちんと記述されています。代表的な規格をコラム最後尾の「参考」に挙げておきます(全て足すと、1281頁になります!)。米国の航空法の中で機器の設計に関する条項(FAR Part 25の第1309項 “Equipment, Systems, and Installations”に規定されている30行ほどの抽象的な要件定義)には、現時点ではサイバーセキュリティの要素が含まれていません。DO-326セットは、この部分を補足するために業界が独自に決めたガイドラインです。今では米国航空局も、これらのガイドラインを航空機の耐空性認証を行う際の一つの拠り所(Acceptable Means of Compliance)として用いています。
具体的な「セキュリティ対策」(14 Principles)
サイバーセキュリティに関する航空業界の規格(DO-326セットのうちの一つ“RTCA DO-356A”)では、セキュリティ対策を14の仕組み(Principles)に分類しています。そのうちの主なものは
- 全体的なソフトウェア構造に対しては、何層にもわたる防御策(Defense-in-Depth)、航空機にインストールするソフトウェアが何者かによって改ざんされていないことを確認すること、開発時に使っていた機能が「バックドア」として悪用されないようにすること。
- システムレベルでは、システムの外とのインターフェースをできる限り減らすこと、他のシステムとリソースを共有する場合は充分なリスク配慮をすること。
- そして、システムを構成する個々の部品に関しては、適切なエラーハンドリング、最小権限の原則の適用、中間者攻撃(Man-in-the-Middle Attack)を防ぐためのアクセス管理を行うこと。
などです。
リスク評価に基づいたメリハリの効いた対策
航空機のソフトウェアは与えられた機能を安全に遂行するだけでなく、航空機を設計する時から、ソフトウェアの機能の重要性に応じて何層ものサイバーセキュリティ対策を組み込んでいきます。
航空機を安全に飛ばすためには、速度、高度、機体の姿勢、外的環境などをセンサーから受け取り、瞬時に昇降舵、エルロン、方向舵、エンジン出力などを制御していかなければなりません。そのためには、充分なコンピュータの計算能力が必要です。完璧なセキュリティ対策をとっても、そのためにコンピュータの能力が不足してしまい、安全な飛行が疎かになってしまうようであれば本末転倒です。というわけで、全てのソフトウェアにありとあらゆる対策を講じるのではなく、リスク評価の結果に応じた「良い塩梅」の対策を講じる必要があるのです。
航空機に搭載されるソフトウェアにサイバーセキュリティで引用されるCIA(秘匿性、完全性、可用性)で優先順位をつけるとすると、重要な順番から可用性、完全性、秘匿性となります。これらの上にくるのが、航空機の飛行安全性です。
ソフトウェアはシンプルが一番
前述のRTCA DO-356Aに定義されている14個の仕組みのうちの一つに「ソフトウェアのセキュリティ構造は、できるだけシンプルにすべし」という項目があります。構造が複雑になると、その分、他のソフトウェアとの関連も複雑になり、起こりうる相互作用を完璧に理解することがより難しくなるから、というのがその理由です。しかし逆に、ソフトウェアを迷路のように設計してハッカーが道に迷うようにしておいた方が良いのではないかと思いませんか?
RTCA DO-356Aはこの疑問に答えていますので、すこし長くなりますが引用します(筆者訳)。
ソフトウェアの構造が複雑であるほど、潜在的な攻撃者がその構造を理解することが困難になり、成功裏に攻撃を仕掛けるのが難しくなるのではないか(従ってより安心ではないか)と考える人がいるかもしれません。残念ながら、このように設計されたアーキテクチャは、予期しない相互作用を引き起こすことがよくあります。(ソフトウェアを作った側でも)これらの相互作用は(構造が複雑で)完全には理解できないため、攻撃から適切に保護することはできません。
したがって、ソフトウェアの構造は可能な限りシンプルになるように設計する必要があります。これにより、モデル化とテストが容易になり、脆弱性を特定しハッキングを受ける可能性を減らすことができるのです。
それでは表題に戻って…航空機はハッキングできるのでしょうか?
参考文献を筆者の独断と偏見でまとめたものが以上になります。集約すると、「設計時に作り込まれた堅固なソフトウェア構造と多くのセキュリティ対策のおかげで、航空機をハッキングするのは非常に困難であろう」というのが筆者の感想です。
しかし、油断は禁物です。航空機は30年以上使われるものです。この間にサイバーの世界は飛躍的に進歩しますので、それに見合った対策をこれからも遅滞なく取り入れていく必要があります。
サンタマルタ氏 後日談
2018年/2019年のサンタマルタ氏による「ヒヤリハット」をきっかけに、ボーイング社はサイバーセキュリティ研究者と共同で、サイバー攻撃に対抗するための戦略を考える方針を打ち出しました。
ボーイング社はさらに、サンタマルタ氏のようなサイバーセキュリティの研究者が航空機のソフトウェアに脆弱性がある可能性を発見した場合、直接ボーイング社に報告してもらい、業界が一つになってサイバーセキュリティの向上を目指していく方針を発表しました。さらにサイバーセキュリティの世界では広く取り入れられている「Wargaming」(戦争ゲーム)という手法を取り入れ、「レッドチーム」がサイバー攻撃を仕掛け、パイロットを含む「ブルーチーム」がそれを守るという模擬演習を行い、積極的に脆弱性を見つけ防御策を施すという仕組みも導入しています。
模擬演習で、悪者役の「レッドチーム」は航空機の弱みを探します。悪意のあるデータを送るためにはどうすれば良いのか?無線通信経由か、地上でデータ更新や整備のために接続されるネットワーク経由か?もし成功裏に不正なデータを侵入させることができれば、パイロットに事実とは異なる位置、高度、速度などを表示することができるかもしれません。
このような侵入を防御するシステムや仕組みを考えるのが、正義の味方「ブルーチーム」です。万が一このような侵入ができたと仮定した場合、侵入されたことを認識できるのか、パイロットはどのように対応するのか、ということも併せて検証します。
おわりに
航空業界全体や、業界をけん引するトップ企業のたゆまぬ努力により、今日もどうにか飛行安全は守られているようです。しかし、技術は(ハッキング技術も!)日進月歩。
元航空業界にいた者として、月並みながら大切かなぁと感じることを述べ、結びとさせていただきます。
サイバー事象の共有と活用:飛行安全の世界でよく言われる「ヒヤリハット」事象が、航空セキュリティの世界でも多発してくると思います。これらを業界で共有し、他山の石として、自分自身、自分の航空会社、自分の航空機製造会社、自分の整備会社、自国の規制当局などにあてはめ、適切なセキュリティ管理策を素早く実施していく必要があると思います。
航空サイバーセキュリティ人材の育成:「空飛ぶネットワーク」となった航空機の安全を守るためには、サイバーセキュリティの専門知識と経験が不可欠です。
2019年には、ICAOが「航空サイバーセキュリティ戦略」を公表しました。その中で「民間航空部門が、航空とサイバーセキュリティの両方の資格と知識を持つ要員を増やすために具体的な措置を講じることは非常に重要です。」と述べています。
大型旅客機だけでなく、近年進歩が著しいドローンや空飛ぶ自動車などの「民生航空機」も含め、安全安心な乗り物を実現するために、航空業界でサイバーセキュリティが果たす重要性は急速に高まっていきます。それを支える人材の育成も喫緊の重要な課題となっていきます。
詳しく正確に理解を深めていくためには、以下の「参考」に挙げた規格等にも触れていただくことをお勧めします。
参考
航空機のサイバーセキュリティに関する業界規格の主なものは以下の通りです。
(…これらのほとんどが、残念ながら有償です。)
文書番号 | タイトル | 発行団体 | 頁数 |
DO-326A | Airworthiness Security Process Specification | RTCA | 88 |
DO-356A | Airworthiness Security Methods and Considerations | RTCA | 370 |
DO-355A | Information Security Guidance for Continued Airworthiness | RTCA | 80 |
DO-391 | Aeronautical Information System Security (AISS) Framework | RTCA | 145 |
DO-178C | Software Considerations in Airborne Systems and Equipment Certification | RTCA | 152 |
ARP4761 | Guidelines and Methods for Conducting the Safety Assessment Process on Civil Airborne System and Equipment | SAE International | 331 |
ARP4754A | Guidelines For Development of Civil Aircraft and Systems | SAE International | 115 |
このコラムを書くにあたって参考にした記事は以下の通りです。