C 社は,製造事業者向けの機械及び制御用コンピュータを製作・販売している従業員数 1,200 名の会社である。保守サービスの事業拡大を目的として,顧客の工場に設置された C 社製品の稼働状況を遠隔で監視するシステム(以下,工場遠隔監視システムという)を開発することになった。
工場遠隔監視システムは,機械に取り付けられているセンサの情報を制御用コンピュータ経由でリアルタイムにクラウドサービス上の監視サーバへ送信し,それを C 社保守員が遠隔で監視する。センサ情報には,異常や故障を知らせる“障害情報”及び部品交換時期の目安となる使用回数などの“統計情報”が含まれる。
携帯電話網を通じてインターネットにアクセスするために,C 社は自社が保有する組込み機器の開発技術を生かして Linux で動作する LTE(Long Term Evolution)対応ルータ(以下,LTE ルータという)を開発することにした。制御用コンピュータは,LTE ルータを使用することによって,機械から収集したセンサの情報をクラウドサービス上の監視サーバに送信できるようになる。監視サーバでは,通信プログラムが制御用コンピュータからセンサの情報を受信して,データベースに格納する。格納したデータは,保守員が使用する監視端末に表示される。また,顧客は Web ブラウザで監視サーバにアクセスし,稼働状況を確認できる。監視端末から LTE ルータの設定変更ができるように,LTE ルータでは SSH サービスを稼働させる。
〔試験環境の構築〕
開発担当の E 君は,工場遠隔監視システムの試験環境(以下,試験環境という)を構築した。試験環境の構成を図1に示す。
図1 試験環境の構成
インターネットを流れる通信は,Web ブラウザから監視サーバへの通信を除き,全て IPsec を使って暗号化する。IPsec では,通信モードに a モードを使用し,ルータ間の通信を全て暗号化する。鍵交換には,IKEv2 を使用し,認証方式には,事前共有鍵方式を選択する。片側のルータの IP アドレスが動的に変わる環境においては,IKEv1 の場合, b モードを使用する必要があるが,IKEv2 の場合は標準で対応している。
〔試験環境における情報セキュリティインシデントの発生〕
試験を開始してから 7 日後,E 君が監視端末から LTE ルータに SSH でログインしたところ,見覚えのない IP アドレスからログインされていることに気付いた。E 君は,不正アクセスを受けている可能性があることをプロジェクト責任者の W 主任に報告し,調査を開始した。
LTE ルータにおいて,netstat コマンドを実行したところ,表1に示すとおり,試験環境と無関係のグローバル IP アドレスとの接続が複数あること,及び c を送信元として SSH サービスにログインされていることが分かった。
表1 netstat コマンドの実行結果(抜粋)
更に調査したところ,攻撃者が SSH のポートフォワード機能を使って, d を宛先として SMTP で電子メールを転送していることが分かった。LTE ルータのログには,SSH サービスがパスワードの辞書攻撃を受けた痕跡が残っていた。
E 君は,IPsec を経由しなくても,インターネットから LTE ルータの SSH サービスにアクセスできる状態になっていることに気付いた。不正にログインされないための暫定対策として,①SSH のログイン認証をパスワード強度に依存しない方式に設定変更した。
〔セキュリティ対策の検討〕
情報セキュリティインシデントの発生を受けて,C 社は,LTE ルータのセキュリティ対策について,セキュリティ専門業者 N 社の S 氏に相談した。
次は,セキュリティ対策に関する E 君と S 氏との会話である。
E 君:SSH サービスについて暫定対策を行いましたが,工場遠隔監視システムのリリースに向けてどのような対策を行う必要がありますか。
S 氏:LTE ルータでは,監視端末を利用した場合にだけ,SSH サービスにアクセスできる仕様にすべきです。
E 君:そのようにします。具体的には,どのように実現すればよいでしょうか。
S 氏:TCP Wrapper を使って, e することで実現できます。
E 君:SSH サービスに関して,他に気を付ける点はありますか。
S 氏:市販の幾つかの組込み機器について,②SSH のホスト鍵が同一モデルで全て同じになっているという脆弱性が,セキュリティ機関から注意喚起されています。C 社でも,SSH のホスト鍵は,機器 1 台ごとに異なるものを使用するように設定してください。
E 君:出荷する前に,いろいろとセキュリティ設定を行う必要があるのですね。
S 氏:さらに,新たな脆弱性が発見された場合の対応として,LTE ルータのファームウェアを更新する仕組みを実装しておく必要があります。
E 君:インターネット又は外部記憶媒体経由で,ファームウェアの更新用イメージファイル(以下,イメージファイルという)を LTE ルータに読み込んで保存し,コマンドを使って更新するという機能を実装したいと考えています。どのようなことに注意が必要ですか。
S 氏:ファームウェアの更新機能において,イメージファイルが③改ざんされていないか検証できるようにする必要があります。
E 君:イメージファイルを暗号化しておく必要はありますか。
S 氏:イメージファイルの解析ツールを使うことで,パスワードなどの重要な情報がファームウェアにハードコードされているという脆弱性が見つかった事例が報告されており,解析されないように暗号化することも対策の一つです。④しかし,イメージファイルを暗号化しても,攻撃者が復号のための鍵を入手して,イメージファイルを復号するという可能性を排除できません。解析されても問題がないように設計することが重要です。
E 君:セキュリティに関する仕様を明確化し,基本仕様書に反映します。また,顧客に引き渡す前に,チェックリストを基にセキュリティに関する設定項目についてレビューするようにしたいと思います。
E 君は,LTE ルータのセキュリティ対策を実施し,W 主任の承認を得ることができた。E 君は,工場遠隔監視システムのリリースに向けて作業を開始した。
出題趣旨(IPA)
IoT(Internet of Things)への取組みが進み,モノとモノがつながることによるリスクの増大が予想されている。本問では,IoTへのセキュリティ対策を進める上で基本となる,組込み機器のセキュリティ対策に焦点を当て,組込み機器に発生しがちな情報セキュリティインシデントを踏まえ,インシデント対応やセキュリティ対策に必要となる知識,能力を問う。
IPsec の通信モードには,トランスポートモードとトンネルモードの二つがある(RFC 4301)。トランスポートモードは元の IP ヘッダを残してペイロードだけを保護し,主に端末どうしの通信に使う。トンネルモードは元の IP パケット全体をカプセル化して新しい IP ヘッダを付けるので,ルータ(セキュリティゲートウェイ)どうしの間で,その配下の端末の通信をまとめて保護できる。本文は“ルータ間の通信を全て暗号化する”としており,図1 でも VPN ルータどうしが IPsec を張るので,a はトンネル(エ)である。
b は IKEv1 のフェーズ1 のモードである。IKEv1(RFC 2409)にはメインモードとアグレッシブモードがあり,事前共有鍵方式のメインモードでは,相手の ID を受け取る前に鍵を選ぶ必要があるため,事前共有鍵を相手の IP アドレスで識別することになる。片側の IP アドレスが動的に変わると,この識別ができないので,ID を最初のメッセージで送るアグレッシブモード(ア)を使う。IKEv2(RFC 7296)にはこのモードの区別が無く,本文のとおり標準で対応している。
トランスポート(ウ)はルータ間で配下の通信をまとめて暗号化する用途には合わない。アドホック,パッシブ,ブロックは IPsec や IKE のモードの名前ではない。a と b の二つの“モード”を取り違えないこと。a は IPsec の通信モード,b は IKEv1 の鍵交換のモードである。
設問2(1)解答欄2つ
本文中の c, d に入れる IP アドレスを答えよ。
〔c〕解答例
x1.x2.x3.x4
〔d〕解答例
y1.y2.y3.y4
解説
本文の根拠
〔試験環境における情報セキュリティインシデントの発生〕
試験環境と無関係のグローバル IP アドレスとの接続が複数あること,及び c を送信元として SSH サービスにログインされていることが分かった。
本文の LTE ルータは Linux で動作し,SSH サービスでログインできる。試験環境でも辞書攻撃でログインされた。講評は,平文の状態の鍵を探すといった攻撃側の視点を踏まえて対策が立案できるようになることを期待している。だから S 氏は,暗号化に頼らず“解析されても問題がないように設計すること”が重要だと述べている。
V 社は,ディジタル機器の開発及びソフトウェアの受託開発を行う,従業員数 400 名の企業である。昨今,ソフトウェアの重大な脆弱性が相次いで報告されているので,V 社開発部の L 氏は,セキュリティ専門業者 S 社の情報セキュリティスペシャリストの K 氏から,ソフトウェア開発についてのアドバイスを受けることとした。
〔脆弱性及びその悪用〕
ソフトウェアの脆弱性の情報を組織間で一意に特定し共有できる仕組みが運用されている。例えば,脆弱性が報告されると, a 識別子が付番され,日本国内では JPCERT/CC などが公表し注意喚起している。ただし,公表前に悪用されるものもあり, b 脆弱性と呼ばれる。 b 脆弱性は,特定の組織を狙う攻撃,つまり c 型攻撃でしばしば悪用される。
K 氏によると,最近,ヒープベース BOF 脆弱性を悪用する攻撃の報告が増えてきているという。L 氏は,出荷前の V 社製品のソフトウェアについてヒープベース BOF 脆弱性がないか,K 氏のレビューを受けることにした。
図2のプログラム Y は,起動時に,第 1 引数は利用者 ID を,第 2 引数はパスワードを受け取る。このプログラム用にあらかじめ登録された“利用者 ID とパスワード”の組と引数で与えられた組を比較し,利用者認証する。“利用者 ID とパスワード”は,いずれも半角英数字,最小 6 文字最大 8 文字の文字列と仕様で定められている。
図2 ヒープベース BOF 脆弱性のあるプログラム Y
プログラム Y にはヒープベース BOF 脆弱性があり,②引数によっては,利用者認証を回避される可能性があると,L 氏は K 氏に指摘された。ただし,K 氏によると,③このプログラム Y は引数が同じでも,実行環境によっては利用者認証を回避されないとのことだった。L 氏は,V 社の開発した他のプログラムについても確認することとした。
〔V 社の脆弱性対策〕
BOF 脆弱性は,メモリを直接操作することが可能なプログラム言語 C や C++などで発生する。その対策として,例えば,Windows ではハードウェア DEP(Data Execution Prevention)のようなデータ実行防止機能を適用することで,一部の BOF 脆弱性を悪用する攻撃を抑制できる。しかし,④プログラム Y での利用者認証を回避する攻撃に対しては有効に機能しない。そこで,V 社では,C や C++の利用が避けられない場合を除き,BOF 脆弱性が起きにくい他のプログラム言語を利用することとした。一般的には,開発時に,静的解析ツールを利用したり,通常の利用では想定しないデータを入力し,その応答から脆弱性を探す d 検査を行うツールを利用したりして,脆弱性を洗い出すことも効果的である。また,V 社では,ソフトウェアのリリース後,脆弱性が発見された場合に備え,V 社製品の利用者に更新プログラムを提供するサイトを準備することとした。
ソフトウェアの脆弱性の情報を組織間で一意に特定し共有できる仕組みが運用されている。例えば,脆弱性が報告されると, a 識別子が付番され,
〔脆弱性及びその悪用〕
ただし,公表前に悪用されるものもあり, b 脆弱性と呼ばれる。 b 脆弱性は,特定の組織を狙う攻撃,つまり c 型攻撃でしばしば悪用される。
〔V 社の脆弱性対策〕
通常の利用では想定しないデータを入力し,その応答から脆弱性を探す d 検査を行うツールを利用したりして,
a は,脆弱性を組織間で一意に特定し共有するために付番される識別子なので,CVE(ア)である。CVE(Common Vulnerabilities and Exposures)は脆弱性ごとに“CVE-年-番号”の形の識別子を割り当てる仕組みで,MITRE が運営している。b は,公表前(修正プログラムの提供前)に悪用される脆弱性なので,ゼロデイ(イ)である。c は“特定の組織を狙う攻撃”なので,標的(ウ)型攻撃である。
d は,通常の利用では想定しないデータを大量に入力し,その応答(異常終了など)から脆弱性を探す検査なので,ファジング(エ)である。IPA も,ファジングを脆弱性の検出手法として紹介する手引きを公開している。
情報システム部(以下,情シ部という)は,情報システムの管理及び情報セキュリティインシデントの対応を行っている。サーバ管理業務は,情シ部のサーバ管理者が行う。情シ部にはサーバ管理者が複数人いる。サーバ管理者は各種設定などのサーバ管理業務を行う場合だけ,1 台の管理 PC に自分の管理者 ID でログオンし,OS の管理用のコマンドなどを使用する。OS の管理用のコマンドは,一般利用者でも起動可能なものもある。管理 PC はサーバ管理業務だけに用い,Web ブラウザによるインターネット接続及び電子メール(以下,メールという)の送受信はできないように設定されている。管理 PC での作業後には,開始日時,終了日時及び作業者名を記録する運用が徹底されている。
Q 社の従業員は,一人 1 台貸与された社員 PC を使用している。管理 PC 及び社員 PC には,全て,固定 IP アドレスが割り振られている。社員 PC からインターネットへの通信は,外部メールサーバ経由のメールの送受信と,プロキシ 1 経由の HTTP 及び HTTP over TLS での Web アクセスだけが利用できるようになっている。社員 PC の Web ブラウザは,インターネット接続時に,プロキシ 1 を経由するよう設定されている。社員 PC には OS の管理用のコマンドはインストールされていない。
PC のプログラム起動禁止設定は,PC 管理サーバによって,全て一括管理されている。プログラム起動禁止設定には,プログラム名が一致した場合にプログラムの起動を禁止にする方式と,プログラムの実行ファイルのハッシュ値が一致した場合に禁止する方式があり,両方の方式を組み合わせた設定もできる。Q 社は,複数の P2P プログラムのプログラム名を指定して起動を禁止している。
サーバ及び PC では,ログオン,ログオフ及び操作のログを,ネットワーク機器では通信ログをそれぞれ取得している。プロキシ 1 では,日時,接続先 URL,送信元 IP アドレス,ステータスコード,応答のサイズなどのログを取得している。
インターネット側から来た通信を受けて,内側の Web サーバへ中継するプロキシは,リバースプロキシ(エ)である。Web サーバの手前に置いて,負荷分散や Web サーバの保護に使う。
反対に,社員 PC などの内側の利用者からインターネットの Web サイトへの通信を中継するのがフォワードプロキシで,Q 社がプロキシ 1・2 で使っている機能はこちらに当たる。表1 の a は向きが逆の“インターネットから Web サーバへ”なので,フォワードプロキシ(イ)ではない。DMZ(ア)はネットワークの区画の名前で機能ではなく,プロキシ ARP(ウ)は他のホストに代わって ARP 要求に応答する機能で,Web の中継とは別物である。
記号で答える設問。中継の向き(内から外か,外から内か)で見分ける。
設問2(1)解答欄2つ
本文中の b, c に入れる次の(ⅰ)~(ⅲ)の適切な組合せを,それぞれ解答群の中から選び,記号で答えよ。 (ⅰ) OS の管理用のコマンド (ⅱ) 攻撃用プログラム (ⅲ) マルウェア Z 解答群 ア (ⅰ) イ (ⅰ),(ⅱ) ウ (ⅰ),(ⅱ),(ⅲ) エ (ⅰ),(ⅲ) オ (ⅱ) カ (ⅱ),(ⅲ) キ (ⅲ)
〔b〕解答例
イ
〔c〕解答例
オ
解説
本文の根拠
〔情報セキュリティインシデントの発生と対応〕
マルウェア Z は,文書ファイルのマクロとして実装されていた。
〔情報セキュリティインシデントの発生と対応〕
攻撃用プログラムは,OS の管理用のコマンドを U さんの社員 PC 上に複数ダウンロードして起動させ,サーバ情報を窃取した。
冒頭
サーバ管理者は各種設定などのサーバ管理業務を行う場合だけ,1 台の管理 PC に自分の管理者 ID でログオンし,OS の管理用のコマンドなどを使用する。
プログラム起動禁止設定は,プログラム名や実行ファイルのハッシュ値でプログラムの起動を止める仕組みである。マルウェア Z は文書ファイルのマクロとして実装されており,文書閲覧ソフトの中で動くので,プログラムとして起動を禁止する対象にならない。したがって b にも c にも(ⅲ)は入らない。
社員 PC には OS の管理用のコマンドがもともとインストールされておらず,業務で使わない。攻撃用プログラムは OS の管理用のコマンドをダウンロードして起動させたので,社員 PC では(ⅰ)と(ⅱ)の両方を禁止すればよく,b はイ。一方,管理 PC ではサーバ管理者が OS の管理用のコマンドを使ってサーバ管理業務を行うので,これを禁止すると業務ができなくなる。管理 PC で禁止できるのは攻撃用プログラム(ⅱ)だけで,c はオである。
記号で答える設問。“攻撃に使われたものは全部禁止”と考えると,管理 PC で OS の管理用のコマンドまで止めてしまう。それぞれの PC で業務に必要かどうかを確かめる。
プロキシ 2 はプロキシ 1 と同じ項目(送信元 IP アドレスなど)をログに取るが,その送信元 IP アドレスはどの通信でもプロキシ 1 の IP アドレスになる。そのため,プロキシ 2 のログだけでは,どの社員 PC からの通信だったかが分からない。講評も,ログから送信元 PC を特定できない理由について,他者に誤解なく伝わるように必要な情報を正確に記述してほしかったとしている。
字数は 30 字以内で,解答例は 27 字。“送信元 IP アドレス”が“プロキシ 1 の IP アドレス”になる,と何が何になるのかを具体的に書く。“プロキシ 1 を経由するから”だけでは,ログのどの項目が問題なのかが伝わらない。
PC からインターネットの Web サイトへの接続時に利用者 ID とパスワードによる利用者認証を行い,認証結果をログに記録する。
プロキシ認証は,利用者 ID とパスワードで利用者を認証してからインターネットへの接続を許す仕組みで,人が操作しない通信(マルウェアの C&C 通信など)を止める効果が期待される。しかし,マルウェアは感染した PC 上で動いているので,その PC の Web ブラウザがプロキシサーバへ送る通信を盗聴して認証情報(利用者 ID とパスワード)を取得できる。取得した認証情報を自分の通信に付けてプロキシサーバに送信すれば,認証は成功する。