空港とコックピットのセキュリティがSQLインジェクション攻撃で突破可能だったという指摘
アメリカ運輸保安庁(TSA)は、パイロットや客室乗務員がオフの時でも保安検査をパスできる「KCM(Known Crewmember:既知の乗組員)」と呼ばれるプログラムを設けています。同様に、コックピットへの立ち入り時にもKCMと似たような「CASS(Cockpit Access Security System:コックピットアクセスセキュリティシステム)」という仕組みがあり、認定パイロットであると確認されるとコックピット内の補助席を利用することができます。このKCMとCASSが、SQLインジェクション攻撃で突破可能だったと指摘されています。
Bypassing airport security via SQL injection
https://ian.sh/tsa
Bypassing airport security via SQL injection | Hacker News
https://news.ycombinator.com/item?id=41392128
指摘を行ったのは、フライト支援サービス・Seats.aeroの創業者で、仕事以外でセキュリティ調査を行っているというイアン・キャロル氏とバグハンターのサム・カリー氏です。
In April, @samwcyo and I discovered a way to bypass airport security via SQL injection in a database of crewmembers. Unfortunately, DHS ghosted us after we disclosed the issue, and the TSA attempted to cover up what we found.
Here is our writeup: https://t.co/g9orwwgoxt— Ian Carroll (@iangcarroll) August 29, 2024
KCMの仕組みはシンプルで、専用レーンでKCM用バーコードを提示するか、TSAの係員に航空会社と従業員番号を告げて雇用状況を確認してもらうかするというもの。認証が成功すれば、保安検査を受けることなく空港の制限区域内に入れます。
CASSは、パイロットが通勤や旅行でフライトを利用する際、一般座席が使えないときにコックピット内の補助席が利用できる仕組み。KCMと同様で、認証されるとゲートから乗員に、「補助席利用者がCASSで認証された」という通知が送られます。
いずれの認証でも重要になるのが、航空会社の雇用状況確認です。キャロル氏らは、航空会社ごとに従業員に関する情報を保存する方法が異なっているはずで、KCMとCASSがどのように機能しているかという点に疑問を抱きました。
キャロル氏らによると、航空宇宙企業・Collins Aerospaceの子会社であるARINCが、KCMのステータスを確認するためのウェブサイトや、異なる航空会社間の認証要求を転送するAPIなどの中心コンポーネントを運用しているとのこと。
大手航空会社であれば独自のシステムを構築可能ですが、中小の会社はそうもいかないはずということでキャロル氏らがベンダーを調べたところ、Air Transport Internationalなどの小規模航空会社にウェブベースのインターフェイスを売り込んでいる「FlyCASS.com」というサイトを発見しました。
キャロル氏らは、航空会社ごとのログインページしか公開されていなかったので、それ以上の情報は得られないものかと思ったそうですが、念のためにSQLインジェクション攻撃テストとしてユーザー名に一重引用符(')を入力してみたところ、MySQLエラーが出たそうです。
このエラーを突破口として、キャロル氏らはsqlmapを使用してSQLインジェクションの脆弱性を発見。Air Transport Internationalの管理者としてFlyCASSへのログインに成功したとのこと。
FlyCASSは参加している航空会社向けにKCMとCASSの両方を提供しており、管理者としてログインするとパイロットと客室乗務員のリストの管理が可能でした。さらに、ログインする以上のチェックや認証は存在しなかったため、新入社員を自由に追加可能になっていました。クエリ機能を使ってテストを行ったところ、キャロル氏らが追加したテストユーザーはKCMとCASSの両方の使用を承認されたそうです。
キャロル氏らはこの問題を2024年4月23日に国土安全保障省に通報。その後、FlyCASSはKCMとCASSから切り離され、問題の修正が行われたそうです。ただし、キャロル氏らは問題についてどう安全に公表するかを考えていたのですが、国土安全保障省はキャロル氏らとの連絡を打ち切り、TSAはキャロル氏らが問題を発見したことを否定しました。
TSAは「バーコード発行前に審査を行うようにした」と説明し、従業員IDを手動入力する旨の言及を削除していますが、キャロル氏らは、いまだに従業員IDの手動入力が可能であることを確認したとのことです。
この反応について、ソーシャルニュースサイトのHacker Newsでは「自分たちの失敗を正当に指摘するセキュリティ研究者を逮捕・投獄することは前代未聞ではありません」との指摘をはじめとして、「FBIが行くかと思った」など国土安全保障省やTSA側はまともな対応をしないと思ったという声が複数寄せられています。
08/30 23:00
GIGAZINE