IT

情報処理安全確保支援士試験に役立つキーワード(その2)

これ覚えておけば、情報処理安全確保支援士試験もバッチリ!の第2弾です。

サイバー攻撃手法

サイバー攻撃手法について試験にでるキーワードについて解説します。

Man-In-The-Browser攻撃

マルウェアが端末内において、WebブラウザとWebサーバ間の通信に介入する攻撃の事です。下図を参考に説明いたします。

例えば、ある端末内にマルウェアが仕込まれていたとします。
その端末からWeb上で送金処理をする場合、Webブラウザからは1万円送金する処理を行います。その際、マルウェアがMITB攻撃によって処理内容を1万円→5万円に変更し、Webブラウザ上では1万円送金としたものの、Webサーバでは5万円送金する処理が行われてしまいます。

そこで、Webブラウザ上で入力した情報と、Webサーバが受信した情報との間に差異がないことを検証する、トランザクション署名が有効な対策となります。

OSコマンドインジェクション

HTTPレスポンスヘッダの出力処理の脆弱性を突いて、レスポンス内容に任意のヘッダーフィールドを追加したり、任意のボディを作成したり、複数のレスポンスを作り出したりすることです。
具体的には、レスポンスボディに任意のスクリプトを追加し、実行させます。
例えば、「http://example.com?location=xxxxx」にアクセスするとき、「location」パラメーターに設定されている”xxxxx”を、レスポンスヘッダの「Locationヘッダ」に設定して、レスポンスするとします。この時、”xxxxx”に改行コードが2つ設定されていると、それ以降は「レスポンスボディ」として扱われます。
すなわち、「http://example.com?location=%0d%0d 」とあった場合、スクリプトが「レスポンスボディ」に設定されてしまいます。
※%0d・・・改行コード。

対策としては、以下があります。

・リクエストボディの値を、レスポンスヘッダの値へ設定しない
・設定するとしたら、改行コードをエスケープ処理する

クロスサイトリクエストフォージェリ(CSRF)

利用者がある掲示板などのサイトへログイン状態にあることを悪用して、クラッカーがその掲示板へ利用者の名前で任意の書き込みを行ったり、退会を行ったりする方法です。

下図を例に説明します。

前提として、端末はFaceBookにログインした状態とします。
1.クラッカーはFaceBookに悪意のあるURLを掲示板に掲載し、ユーザにクリックさせます
2.そのURLをクリックすると退会処理のスクリプトが実行されます。
3.スクリプトが実行された結果、URLをクリックしたユーザはFaceBookを退会してしまいます。

この攻撃が成立するポイントは、「ログインしていること」です。
この攻撃では、ユーザのパスワードは分かりませんが、サイトにログインしているからこそ、サインインを伴わずに出来てしまうのです。

そのため、対策としては、サイトを利用したらログアウトすることが一番確実です。
その他の対策としては、サイト側でHiddenタグを使って正当なサーバからの応答であるかを確認します。

退会処理を例に説明します。
1.サイトへ退会処理のHTTPリクエストを送信します。
2.サイトは正当な要求かを判断するために、tokenを生成します。
3.サイトは生成したtokenをhiddenフィールドに埋め込み、HTTPレスポンスを送信します。
4.クライアントは、退会処理に必要な情報と先ほどのtokenをフィールドに埋め込み、HTTPリクエストを送信します。
5.サイトはtokenが正しいか比較します。
6.tokenが正しければ、退会処理を完了させます。

もし、CSRFによって退会処理が実行された場合、2の生成されたtokenをHiddenに埋め込まなければ、5のtakenの比較でエラーとなります。

セッションハイジャック

悪意のある第三者がログイン中の利用者のセッションIDを不正に取得し、その利用者になりすましてセッションを乗っ取ることをいいます。
例えば、銀行のシステムにログイン中の利用者がセッションIDを奪取されると悪意のある第三者がログインパスワードを知らなくても不正に口座からお金が送金される可能性があります。

HTTP GET Flood(F5攻撃)

特定のWebサーバに対して大量のHTTPリクエストパケットを送り付け、Webサーバのシステムをダウンさせる攻撃です。
F5キーを大量端末数で短期間に何万回も押すことでも実現できるため、別名F5攻撃とも呼ばれています。

Webサーバの前にキャッシュサーバを置くなどしてWebサーバに直接被害が出ないようにします。

TCP SYN Flood攻撃

TCPで用いられるスリーハンドシェイクにおいて、クライアントがサーバへSYNパケットを送信し、その後のサーバからのSYN+ACKパケットに対してACK応答をしないことによってサーバ側のコネクションの準備で維持しているCPUやメモリなどを消費させるDDos攻撃です。

対策として以下があります。

・一定時間過ぎた不成立なコネクションは強制的に破棄する
・サーバがSYNパケットを受け取ったタイミングではCPUやメモリを消費せず、必要な情報のみ記憶してクライアントから正常なACKが返ってきたときのみセッションのためのCPUやメモリを割り当てる(SYN cookie)

Connection Flood攻撃

実際にTCP通信においていくつもコネクションを確立させ、CPUやメモリを消費させる攻撃です。
TCP SYN Floodよりも確実にリソースを消費させることが可能です。
対策は、特定ノードや特定グループからのコネクション数を制限することです。

リバースブルートフォース攻撃

まず、ブルートフォース攻撃とは、同じ利用者IDに対してパスワードを総当たりで試す手法の事です。
リバースブルートフォース攻撃は、よく用いられるパスワードに対して、利用者IDを変更しながらログインを試行する手法の事です。
その他にも、他のWebサイトで利用している利用者IDとパスワードの組を使用する、リスト型攻撃もあります。
これらは、認証失敗によるログイン制限などは非現実的となっています。

SYNスキャン(TCPスキャン)

ポートスキャンまたは、TCPスキャンに含まれる、スキャン方法の一種類であり、対象の情報機器にSYNを送り、応答内容によってポートが閉じているかを判断するための攻撃前の調査です。

なお、TCPとUDPによってスキャンに対する応答内容が以下のように異なります。

RST/ACKは、宛先ホストからポートが閉じているため、強制的にコネクションを切断する応答です。

セキュリティ対策

ここでは情報処理安全確保支援士試験に出そうなセキュリティ対策について書きます。

リスク対応

リスクに対する考え方についての概念です。以下の詳細な対応方法があります。

リスク回避 リスク対応を検討した結果、コストの割に利益が得られないなどで業務自体そのものを廃止したり、情報資産を破棄するなどの対応方法です。
リスク低減 適切なセキュリティ管理策を実施し、リスクの発生確率を低減する方法です。
リスク共有 保険会社などにリスクを転嫁する方法です。
リスク保有 リスクの発生を受容する方法です。

トランザクション署名

MITB攻撃の対策としてネットバンキングなどにおいて、送金などの処理情報(トランザクション)の内容(送金先の口座番号や金額など)をデジタル署名により暗号化し、トランザクションの内容が改ざんされていないかをサーバー側で確認できる仕組みのことです。

例えば、予め利用者に配布したテンキー付きのハードウェアトークンを使った仕組みを説明します。
1.利用者がトークンに振込先や金額を入力
2.利用者は送金先や金額に加、トークン内に表示された署名値をWebブラウザから入力
3.Webサーバでは、利用者ごとのトークンの情報をもとに、送金先や金額から署名値を計算して、ブラウザから受信した署名値と照合

マルウェアは情報を改ざんできても、正しい署名値を再計算することはできないため、MITB攻撃の対策となっています。
なお、マルウェアは「Webブラウザが正規のWebサーバと接続した後のセッションに介入」し、また「平文の通信区間に介入」します。

OAuth2.0

複数のWebサービス間において、許可情報を伝達するためのオープンな仕様で、パスワードのような認証情報を交換せずに、リソースへの限定的なアクセス権限を委譲できるようにした仕組みです。
例えば、FaceBookとTwitterが連携する際にFaceBookのパスワードのような認証情報を共有せずにTwitterのリソースへアクセスするというものです。

下図で説明します。

1. 利用者はFaceBookに対して、Twitterのリソースを使用するサービス要求をします
2. FaceBookはTwitterのリソースへの限定的なアクセスであることから、利用者のブラウザからTwitterのリソースに対する認可要求をリダイレクトさせます
3. Twitterは、要求されたリソースへの限定的なアクセスを許可するかどうかを利用者へ求め、利用者は許可します
4. Twitterは、アクセストークンを取得するために認可コードを発行して、利用者のブラウザからFaceBookへリダイレクトさせます
5. FaceBookはTwitterへ認可コードを送信して、アクセストークンを要求します
6. Twitterha、リソースの限定的なアクセスを許可するアクセストークンを発行して、FaceBookへ応答します。
7. FaceBookはアクセストークンをTwitterに送信して、リソースへの限定的なアクセスを要求します。

IEEE802.X

ユーザごとに異なるWEPキーを配布し、またRADIUSサーバを採用してアクセスポイントと認証情報を分離したセキュリティを高めた認証方法です。
IEEE802.Xではクライアントである「サプリカント」、クライアントがアクセスするスイッチまたはアクセスポイントである「オーセンティケータ」と認証サーバの3つで構成されています。
使用するプロトコルはEAPが用いられ、状況に応じて以下のバリエーションがあります。

IEEE802.Xの認証の流れは以下のようになります。

1. サプリカントはEAPOLを用いてオーセンティケータへ通信開始を要求
2. オーセンティケータはサプリカントへ通信で利用する認証方式を要求
3. サプリカントはオーセンティケータへ利用する認証方法を提案(この例ではEAP-MD5)
4. オーセンティケータはRADIUSサーバへ提案された認証方法は可能かを問い合わせ
5. RADIUSサーバはそれについて回答し、チャレンジレスポンスを送信
6. サプリカントはチャレンジレスポンスからレスポンスを送信
7. オーセンティケータはRADIUSサーバへ真正性を確認
8. RADIUSサーバは回答
9. オーセンティケータはサプリカントの通信を許可

団体やフレームワーク

ここでは、情報処理安全確保支援士試験にでる団体やフレームワークについて書きます。

FIPS PUB

米国商務省の承認を受け、NISTが交付した情報セキュリティ関連の文書のことです。
例えば、暗号モジュールのセキュリティ要件について規格を定めた、FIPS PUB 140-2があります。

クラウドコンピューティングの定義

NISTにおけるクラウドコンピューティングに定義は以下のとおりです。

1.IaaS(Infrastructure as a Service)
・・・演算機能、ストレージ、ネットワークその他の基礎コンピューティングリソースを配置することであり、そこでユーザはOSやアプリケーションを含む任意のソフトウェアを実装し走らせることができます。例えば、AWSやさくらクラウドなど。。。

2.PaaS(Platform as a Service)
・・・クラウドのインフラ上にユーザが開発したまたは購入したアプリケーションを実装することであり、そのアプリケーションはプロパイダがサポートするプログラミング言語やツールを用いて生み出されたものです。PaaSはミドルウェアも含めてプログラム開発の動作環境、実行環境まで提供しています。例えば、AWS(Amazon Web Service)、Microsoft Azure、Google App Engine(Google Cloud Platform)など。。。

3.SaaS(Software as a Service)
・・インターネット経由でサービスとして提供・利用するソフトウェア形態のことです。例えば、Google Apps やSalesforceがあります。

ちなみにそれぞれのクラウドコンピューティングの形態ごとでの可能なコントロールは以下の通りです。

ユーザやロールに対する権限付与

GRANT ALL PRIVILEGES ON A TO B WITH GRANT OPTION
・ALL PRIVILEGES ON A TO B
→A表に対してSELECT権限、UPDATE権限、INSERT権限、DELETE権限の全ての権限をBに与える
・WITH GRANT OPTION
→他のユーザに対して同じ権限の付与を認める

参考書籍

過去問を必ず解いて力をつけましょう。