SQL injectionはアプリケーションのセキュリティ上の不備を意図的に利用し、アプリケーションが想定しないSQL文を実行させることにより、データベースシステムを不正に操作する攻撃方法です。
不正に操作できるようになった後の目的は様々です。
今回、驚きの脆弱性が確認されています。
- FlyCASS
脆弱性のあったソフトウェアの名称です。
一部の航空会社が使用しているもので、Known Crewmember (KCM) プログラムとCockpit Access Security System (CASS) を管理するために使用するサードパーティのWebベースサービスです。
KCMは、パイロットと客室乗務員がセキュリティスクリーニングを省略できるようにする運輸保安局 (TSA) の取り組みであり、CASSは、許可されたパイロットが旅行中にコックピットのジャンプシートを使用できるようにするものです。 - ジャンプシート
ジャンプシートは、航空機の場合は、離着陸時に客室乗務員が利用する補助シートのことを示します。
客室には非常口の近くにあって緊急時に客室乗務員が素早く業務にあたることができるようにしますし、コックピットにもあって操縦していない乗組員が利用することができるようになっています。
また、通常想定された乗組員だけでなく、パイロット訓練生、別の空港へ移動する非番の乗務員(デッドヘッド)、政府関係者(連邦航空局職員など)、航空会社のスタッフなどが利用することもあるものとなっています。 - FlyCASSのログインページの脆弱性
FlyCASSにSQL injectionがあることがわかりました。
FlyCASSはいくつもの航空会社で利用されています。
FlyCASSの利用に際し、その機構の内容そのものはFlyCASSで提供されているのですが、それを利用するためのログインページはそれぞれの利用組織で用意する形式になっています。
この個別に用意されたログインページにSQL injectionがありました。
結果として、存在する有効なユーザ名とパスワードの組み合わせを必要とすることなく、システムにログインすることができてしまう内容となっていました。 - FlyCASSへのアカウントの追加登録
FlyCASSには利用者の登録機能があります。
この利用者登録のための権限確認が実装されていませんでした。
このため、SQL injectionでシステムにアクセスしている攻撃者は、自由に利用者を追加登録できる状態になりました。
無制限ではありませんでしたが、未登録の従業員IDを使用することで自由に登録できます。 - FlyCASSへのアカウント情報の閲覧や編集
FlyCASSには利用者のアカウント情報表示機能と編集機能があります。
システムの利用者はこの機能を使用して登録済みのアカウントの情報を見ることができます。
名前も写真も見ることができます。
そして変更もできます。
SQL injectionで飛行機にタダ乗りできる状態でした、というお話でした。
脆弱性そのものも問題といえますが、アカウントの追加変更や情報の閲覧や変更が制限されていないというのは大きな問題です。
脆弱性だけでなく、機能の仕様上の妥当性の再検討も重要ということですね。
ちなみに、このお話のソフトウェアの周辺では、改善が進んでいるようです。
関連する組織からはすでに安全化が完了した旨の案内が実施されています。
果たして必要十分な対策が完了したのでしょうか。
このお話に限ったことではないと感じました。
Bypassing airport security via SQL injection
https://ian.sh/tsa
この記事をシェア |
---|