SQLインジェクションで航空セキュリティシステムをハッキング!あなたのフライトは安全?

Share

Security NEWS TOPに戻る
バックナンバー TOPに戻る

近年、航空機のセキュリティはますます厳しくなってきています。しかし、私たちが安心して空の旅を楽しんでいる裏側で、実は深刻なセキュリティ問題が潜んでいることをご存知でしょうか?この度、イアン・キャロルサム・カリーは、空港のセキュリティシステムに存在する重大な脆弱性を発見しました。この脆弱性を悪用すると、誰でも簡単に航空会社の乗組員になりすまし、セキュリティチェックなしで機内に乗り込むことが可能になります。さらには、コックピットへの不正侵入もできてしまうのです。

KCMシステムとは?

KCM(Known Crewmember)システムは、航空会社の乗務員がスムーズに空港のセキュリティチェックを通過できるようにするためのシステムです。乗務員は、特別なバーコードやIDを提示することで、通常のセキュリティ検査を免除されることができます。

脆弱性の発見

イアン・キャロルとサム・カリーが注目したのは、KCMシステムを運営しているベンダーの一つであるFlyCASSという会社でした。FlyCASSのシステムには、SQLインジェクションという脆弱性が存在しており、この脆弱性を利用することで、誰でもシステムに不正にアクセスし、乗組員の情報を自由に書き換えたり、新しい乗組員を追加したりすることが可能になっていました。

問題の深刻さ

この脆弱性がもたらす影響は計り知れません。

  • セキュリティの崩壊: 航空機のセキュリティの根幹を揺るがすものであり、テロなどの悪質な行為に悪用される可能性も否定できません。
  • 乗客の安全への脅威: 不正に機内に乗り込んだ人物が、機内で暴れたり、機体を操作したりする可能性も考えられます。
  • 航空業界への信頼の失墜: このような重大なセキュリティ問題が発覚した場合、航空業界全体の信頼を失墜させ、人々の航空機に対する不安感を煽る可能性があります。

開示とその後

イアン・キャロルとサム・カリーは、この問題の深刻性を認識し、速やかに関係各機関に報告しました。しかし、残念ながら、問題の修正には時間がかかり、また、関係各機関からの対応も遅々として進まなかったという現状があります。

対策

この問題を解決するためには、以下の対策が急務です。

  • 脆弱性の迅速な修正: FlyCASSをはじめとする関連企業は、脆弱性を早急に修正し、システムの安全性を確保する必要があります。
  • セキュリティ意識の向上: 航空業界全体で、セキュリティに対する意識をより一層高め、定期的なセキュリティ監査を実施する必要があります。
  • 法整備の強化: 航空機のセキュリティに関する法整備を強化し、このような事態が再び起こらないようにする必要があります。

まとめ

今回の発見は、航空業界のセキュリティシステムを信頼しきってはいけないことを示すものであり、私たちに大きな警鐘を鳴らしています。私たちは、この問題をきっかけに、より安全な航空業界の実現に向けて、社会全体で取り組んでいく必要があるでしょう。

サイバーインシデント緊急対応

サイバーセキュリティ緊急対応電話受付ボタン
SQAT緊急対応バナー

ウェビナー開催のお知らせ

  • 2024年9月11日(水)14:00~14:30
    CVSSとSSVCで実践する次世代脆弱性管理:サイバー攻撃対策セミナー2024
  • 2024年9月18日(水)13:00~14:00
    【好評アンコール配信】
    ランサムウェアの脅威を知る-脅威に備えるためのランサムウェア対策-
  • 2024年9月25日(水)13:00~14:00
    【好評アンコール配信】
    ランサムウェア対策の要~ペネトレーションテストの効果、脆弱性診断との違いを解説~
  • 2024年10月2日(水)13:00~14:00
    【好評アンコール配信】
    サイバー攻撃に備えるために定期的な脆弱性診断の実施を!
     - ツール診断と手動診断の比較 –
  • 2024年10月9日(水)13:00~14:00
    【好評アンコール配信】
    システム開発のセキュリティ強化の鍵とは?
     -ソースコード診断で手戻りリスクとサイバー攻撃を未然に防ぐ-
  • 最新情報はこちら


    Security NEWS TOPに戻る
    バックナンバー TOPに戻る

    資料ダウンロードボタン
    年二回発行されるセキュリティトレンドの詳細レポート。BBSecで行われた診断の統計データも掲載。
    お問い合わせボタン
    サービスに関する疑問や質問はこちらからお気軽にお問合せください。

    Security Serviceへのリンクバナー画像
    BBsecコーポレートサイトへのリンクバナー画像
    セキュリティ緊急対応のバナー画像

    SQLインジェクションの脆弱性
    -Webアプリケーションの脆弱性入門 2-

    Share

    Security NEWS TOPに戻る
    バックナンバー TOPに戻る

    SQLインジェクション攻撃は多くの企業やシステムにとって大きな課題となっています。本記事では、SQLインジェクションの基本的な仕組みから、その主な原因とリスクについて解説します。また、企業での対策方法についても紹介します。SQLインジェクションの脆弱性のリスクを認識し、その対策方法を学びましょう。

    前回までの内容

    クロスサイトスクリプティング(XSS)とは、動的にHTMLを生成するWebアプリケーションで、ユーザの操作を介して不正なスクリプトを実行させる(できる)事象を指します。このクロスサイトスクリプティングの脆弱性を悪用した攻撃手法をクロスサイトスクリプティング攻撃と呼び、これは、ユーザのブラウザ上で不正なスクリプトを実行させ、個人情報等を漏えいさせるという仕組みです。XSSには「反射型」「蓄積型」「DOMベース」の3種類があり、それぞれ異なる方法で攻撃が行われます。XSSの主な原因は、出力の検証や処理が不十分であることです。攻撃者は、例えば、コメント欄や検索ボックスなどユーザからの入力を受け付ける部分にスクリプトを挿入することで、他のユーザのCookie情報等を搾取することが可能となります。対策としては、スクリプト言語における特別な意味を持つ文字や記号を置き換える「エスケープ処理」の実施や、Webアプリケーションファイアウォール(WAF)の活用等があります。また、セキュリティ診断を定期的に行い、リスクを可視化して適切なセキュリティ対策を実施することが重要です。

    前回記事「クロスサイトスクリプティング(XSS)の脆弱性 -Webアプリケーションの脆弱性入門 1-」より

    SQLインジェクションとは

    SQLインジェクションは、Webアプリケーションの脆弱性の一つであり、多くの企業や中小企業がこの攻撃の影響を受ける可能性があります。具体的には、攻撃者が不正なSQL文を挿入することで、データベースを不正に操作することを指します。例えば、攻撃者は不正な文字列や記号を入力値として使用し、データベースの内容を改竄したり、顧客の情報を不正に取得したりすることができます。

    SQLインジェクション攻撃の基本的な仕組み

    SQLインジェクション攻撃は、不正な文字列や特殊文字を入力値として使用し、データベースの処理や検索を操作する脅威の一つで、悪意のある第三者が、通常の入力欄に異常な構文や文字を注入することで、情報の取得や変更が可能です。

    SQLインジェクションの脆弱性が発生する主な原因とリスク

    SQLインジェクションの脆弱性(南京錠のアイコンマーク)イメージ

    SQLインジェクションは、WebアプリケーションでのSQL文の組み立て方法に問題がある場合に、攻撃者が挿入した不正なSQL文を誤った命令文として認識してしまうことで発生します。SQLインジェクション攻撃により、インシデントが発生した場合、企業の顧客情報や決済履歴などの機密情報が第三者に漏えいする恐れがあります。その結果、企業のセキュリティ対策姿勢が疑われ、インシデントによる直接的な被害だけでは済まない、信用の失墜やブランドイメージの低下といった大きな痛手を受ける恐れがあります。

    SQLインジェクション攻撃の事例

    2022年に報告されたSQLインジェクションによる情報漏えい事例を紹介します。

    国内オンラインショッピングサイトではSQLインジェクションによる攻撃を受け、サービス登録ユーザの氏名、生年月日、メールアドレス、住所などの詳細な個人情報等、275万件以上の情報が漏えいしました*1。その結果、被害の対象となった顧客へのお詫び状の送付、専用のお問い合わせ窓口の設置、個人情報保護委員会や警察への報告、再発防止策の検討を含めたセキュリティ強化、事故に関する継続的な調査対応等に追われました。

    データベースの不正操作を許せば、事業活動に必要なデータをすべて消去されるといった最悪の事態も発生しうるため、SQLインジェクションの脆弱性を放置することは非常に危険です。

    効果的なSQLインジェクション対策とその実践方法

    SQLインジェクションの対策

    重要な情報が集まるデータベースは、守るべき優先度がきわめて高く、SQLインジェクション対策としてさまざまな取り組みが行われています。

    基本的な対策

    • プレースホルダを使用したSQL文の構成:プレースホルダは、SQL文における変数の位置を示すために使用され、実際の値は後から安全にバインドされます。特に、バインド処理を実装するライブラリの実装状況によってSQL構文が変化する「動的プレースホルダ」ではなく、SQLの準備段階からSQL構文が変化しない「静的プレースホルダ」の方が、より有効性の高い対策を実現できます。
    • 特殊文字に対するエスケープ処理:運用上の制約等によりプレースホルダを使用したバインド処理が使用できない場合は、特殊文字に対するエスケープ処理を実施することで対策が可能です。なお、エスケープ処理では対策漏れが生じる可能性もあるため、可能な限りプレースホルダを使用することが推奨されます。

    保険的な対策

    • SQLエラー情報の非表示化:エラーメッセージの内容にエラーを起こしたSQL文の情報、使用データベース、テーブル名、カラム名等が含まれる場合、攻撃者に対してSQLインジェクション攻撃を実行するための有益な情報を与えることになります。そのため、エラー情報はクライアントへ出力せずログファイル等で管理することが推奨されます。
    • アカウントへの適切な権限付与:アプリケーションがデータベースにアクセスする際には、命令文の実行に必要な必要最小限の権限を付与します。これにより、万が一SQLインジェクションが発生しても、被害を最小限に抑えることができます。

    SQL文の組み立ては、データベースのセキュリティを維持する上で非常に重要です。セキュアなプラクティスを適用することで、データベースへの攻撃を防ぎつつ、アプリケーションのデータ操作を効率的かつ安全に行うことができます。

    SQLインジェクションのテスト方法

    SQLインジェクションの脆弱性(マルとバツのアイコンマーク)イメージ

    システムにSQLインジェクションの脆弱性があるかどうかを調べる方法としては、入力フィールドに本来許可してはいけない文字列を設定した場合にWebアプリケーションがどう反応するか、といったことを観察し、SQLインジェクションの脆弱性の有無を診断するというやり方があります。この文字列を「診断文字列」と呼ぶことがあります。

    企業のセキュリティ担当者をはじめ、SQLインジェクションの脆弱性に対する問題を理解し、社内で情報を共有し、適切な対策とることで、自組織がSQLインジェクション攻撃を受ける前に被害を未然に防ぐことが可能になるでしょう。

    開発やリリース時点では脆弱性が存在しなかったとしても、Webサイトの機能追加や新しい攻撃手法の発見等によって、脆弱性は日々新たに生み出されていきます。こうした実情に対して有効なのは、Webアプリケーションの定期的なセキュリティ診断です。SQLインジェクションによるリスクを考えると、Webサイト運営者はぜひとも実施すべき対策といえるでしょう。

    まとめ

    SQLインジェクション攻撃は多くの企業やシステムのセキュリティ上の課題として存在しています。SQLインジェクションは、Webアプリケーションの脆弱性を突いて、不正なSQL文を挿入しデータベースを操作する技術です。主にSQL文の組み立て方法に問題があることで、情報の漏えいやデータの改ざんが可能となります。実際に、国内企業でも情報漏えい事例が発生しており、その影響は甚大です。対策として、プレースホルダの使用、エスケープ処理などが推奨されています。またSQLインジェクションの脆弱性を検出する方法として、定期的にセキュリティ診断を実施し、適切な対策を実施することで、Webアプリケーションのセキュリティを向上できます。

    Security NEWS TOPに戻る
    バックナンバー TOPに戻る


    資料ダウンロードボタン
    年二回発行されるセキュリティトレンドの詳細レポート。BBSecで行われた診断の統計データも掲載。
    お問い合わせボタン
    サービスに関する疑問や質問はこちらからお気軽にお問合せください。

    Security Serviceへのリンクバナー画像
    BBsecコーポレートサイトへのリンクバナー画像
    セキュリティ緊急対応のバナー画像
    セキュリティトピックス動画申し込みページリンクへのバナー画像