IT

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

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

サイバー攻撃手法

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

ゼロデイ脆弱性

CVE公表前に悪用される脆弱性の事です。
このゼロデイ脆弱性あるいは、更新プログラムが公開されていない脆弱性に対する攻撃のことをゼロデイ攻撃といいます。

バッファオーバーフロー攻撃

攻撃者が脆弱性を突いて不正なデータを送信し、バッファを超えるサイズのデータ送信によってソフトウェアの開発者が意図しない動きをさせる攻撃手法です。
下図のようにスタックベースで考えてみます。

スタックベースのバッファオーバフローによってmainへの戻りアドレスが不正プログラムへのアドレスに書き換えられてしまい、不正な命令コードが実行されてしまいます。
そのため、ソフトウェア開発時に入力チェック機能を設け、バッファオーバーフローを起こさせない機構にしなければなりません。

一方、ヒープベースの場合は、ライブラリによってはメモリを連続的ではなく、あえてランダムにとる場合もあり、バッファオーバーフローが発生しないこともあります。

C&C(Command & Control)サーバ

マルウェアに感染したコンピュータ群(ボットネット)を制御したり、命令を出したりするサーバの事です。
スパムメールなどの不特定多数への通信や踏み台として利用されることが多いです。

マルウェアの感染強化

通常、マルウェア検知はパターンマッチングなどの方法によって行われます。
しかし、クラッカーはそんな検知から免れるために以下のことをしています。

1.プログラム内容の変更
・・・プログラムファイルのハッシュ値を用いたパターンマッチングの場合、実行ファイルの攻撃コードを変更するとハッシュ値が変わるため、検知されなくなります。

2.プログラム名の変更
・・・プログラム名でパターンマッチングしている場合は、検知できなくなります。

補足で、本来ウィルスを検知しなければならないが、見逃してしまうことを「フォールトネガティブ」といい、ウィルスではないのに検知してしまうことを「フォールトポジティブ」といいます。

セッションIDの固定化攻撃(Session Fixation)

セッションハイジャック攻撃の一種で、悪意のある者が正規のWebサイトから取得したセッションIDを利用者のWebブラウザへ送り込み(メールやWebページにてセッションID付きのURLリンクを踏ませるなど)、利用者がそのセッションIDでログインして、セッションがログイン状態に変わった後、利用者になりすます方法です。

この脆弱性は、Webサイト側がログイン前後で同じセッションIDを使い続けるためであり、ログイン時には新たなセッションIDを発行する対策を行うべきです。

DNS水責め攻撃(ランダムサブドメイン攻撃)

権威DNSサーバを標的として、攻撃対象のドメインのサブドメイン名をランダムかつ大量に生成して問い合わせ、権威DNSサーバを過負荷にする攻撃のことです。

概要は下図ようになります。

1. 攻撃者は予め用意しておいたbotたちにオープンリゾルバへ問い合わせをするよう指示
2. botたちはオープンリゾルバへランダムかつ大量のexampleドメインのサブドメインに対する問い合わせを発行
3. オープンリゾルバはキャッシュにないため、権威DNSサーバへ再帰問い合わせ
4. 権威DNSサーバは大量の問い合わせによって過負荷となる
※オープンリゾルバとは、誰からでもDNS問い合わせを受けるDNSキャッシュサーバの事です。

セキュリティ対策

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

ファジング検査

開発時に静的解析ツールを利用したり、通常の利用方法では想定しないデータを入力してその応答から脆弱性を探す検査方法です。
具体的には、ソフトウェア製品における未知の脆弱性を検出する技術の一つで、検査対象のソフトウェアにファズとよばれる問題を引き起こす可能性のあるデータを大量に送り込み、その応答や挙動を監視することによって脆弱性を検出する手法です。主に、製品出荷前の脆弱性検査で活用されています。

リバースプロキシ

インターネットから自社Webサーバに対するアクセスを代理で受けるプロキシ機能です。
利点は、Webサーバが直接介さず、一つクッションを挟むため、Webサーバが隠蔽できる点と同じ複数のWebサーバに対し、リバースプロキシサーバが受けた要求を振り分けられるため、負荷分散ができる点があります。
なお、フォワードプロキシサーバとリバースプロキシサーバの違いは以下の通りです。

1.フォワードプロキシサーバ
・・・クライアントの代わりにWebサーバへ問い合わせをするサーバ(クライアントサイド)

2.リバースプロキシサーバ
・・・クライアントからの要求に対し、Webサーバの代わりに答えるサーバ(サーバサイド)

プロキシサーバは接続先のFQDNを受け取ると、まずhostsファイルを参照するため、DNSがない環境下ではhostsファイルにFQDNと対応するIPアドレスを記載します。
また通常、プロキシサーバはユーザのID及びパスワードを認証してから利用が出来ます。
ただし、Webブラウザからプロキシサーバへの通信を傍受されたり、キーロガーやWebブラウザのオートコンプリートからID及びパスワードを奪取され、認証に利用される可能でがあります。

プロキシARP

ARP要求パケットを受け取ったルータが代理でARP要求を行うことです。ARP要求はブロードキャストで送信されるため、通常は同一セグメント内しか届きません。そこでルータが代わりに異なるセグメントへのARP要求を中継し、該当セグメントへ届けます。そして返答が来たARP応答を同一セグメント内のルータが回答します。

DMZ(Demilitarized Zone)

日本語に訳すと、非武装地帯といいます。
インターネットなどの外部ネットワークと社内LANのような内部ネットワークの中間に位置する第3のネットワークのことです。
通常、社外ネットワークから社内ネットワークへの通信は遮断しますが、ホームページのような社外に公開したいWebサーバを立てるときは社内ネットワークに配置したら外部からはアクセスできません。
また、外部ネットワークに配置したら攻撃を受けやすくなります。
そこで、外部ネットワークよりかは安全だが、内部ネットワークまで通信の制限を行わないネットワークがDMZです。それぞれのネットワーク境界にFWを設置するのでアクセス制御を適切に行うことが可能です。

利用者認証

利用者認証には以下の方法が用いられます。

記憶認証 パスワードなど個人の記憶を利用する認証方法
所持認証 ICカードなど物理的なモノを利用する認証方法
生体認証 ここに説明文を入力してください。虹彩・指紋など人の体の一部を利用する認証方法

また、これらの認証方法を複数組み合わせた認証の事を多要素認証、複数要素認証といいます。

OCSP(Online Certificate Status Protocol)

X.509公開鍵証明書の失効状態を取得するための通信プロトコルです。元々CRLを手動でダウンロードし、チェックする方法だとダウンロードしたCRLが最新でない可能性があるため、デジタル証明書の有効性をリアルタイムに確認できる仕組みとして提供されました。

電子政府推奨暗号リスト

CRYPTTRECによって安全性及び実装性能が確認された暗号技術のうち、市場における利用実績が十分であるか、今後の普及が見込まれるか、現在脆弱性はないかなどを加味し、該当技術の利用を推奨するリストです。平成28年度時点では以下の暗号技術があります。

1.AES(Advanced Encryption Standard)
・・・米国の標準暗号方式に採用された共通鍵暗号方式で、128ビットのブロック暗号を行います。また、鍵長を128、192、256ビットの3つから選択することが出来、段数は鍵長によって10、12、14となっています。

2.Camellia
・・・NTTと三菱電機が共同で開発した共通鍵暗号方式で、128ビットのブロック暗号を行います。

3.ECDSA(Elliptic Curve Digital Signature Algorithm)
・・・公開鍵暗号方式を用いたデジタル署名のアルゴリズムで楕円曲線上の演算処理を行います。

4.RSA-OAEP(RSA-Optimal Asymmetric Encryption Padding)
・・・RSA公開鍵暗号において、選択暗号文攻撃に対する強い匿名性を持つ方式の一つです。

5.SHA-256(Secure Hash Algorithm 256bit)
・・・ハッシュ関数SHAの一つで、256ビットのハッシュ値を出力します。

6.SHA-512(Secure Hash Algorithm 512bit)
・・・ハッシュ関数SHAの一つで、512ビットのハッシュ値を出力します。

公開鍵暗号基盤(PKI;Public Key Infrastructure)

なりすましや改ざん、盗聴、否認のリスク回避に使用できる安全、または信頼性向上のための代表的な認証技術です。なおこれらのリスクは以下の通りとなります。

1.なりすまし
・・・サイトの関係者や運営者などを装うことです。あたかも関係者のように振る舞い、個人情報を聞き出したりします。

2.改ざん
・・・送信元と送信先以外の第三者に通信の内容を書き換えられてしまうことです。

3.盗聴
・・・送信元と送信先以外の第三者に通信の内容を見られてしまうことです。

4.否認
・・・自分が行った行為をやっていないと主張することです。

PKIは認証局(CA)や登録局、リポジトリから構成されています。
概要は下図を参考にしてください。

1. Webサーバが認証局(CA)に公開鍵を登録します。
2. 認証局がWebサーバを運営する会社の情報をもとに許可するかどうか判断し、許可ならば電子証明書を送付します。
3. WebブラウザがWebサーバへアクセス
4. WebサーバはWebブラウザへ電子証明書(Webサーバの公開鍵がついています)を送付します。
5. Webブラウザはこの電子証明書が正しいのかを認証局へ確認します。
6. 認証局の登録情報をもとに返答します。
7. 問題なければ、電子証明書とついてきた公開鍵で送信データを暗号化します
8. Webサーバは送信データを自身の秘密鍵で復号します。

注意したいのが、Webブラウザが送られてきた電子証明書が正しいかを認証局に確認しますが、そもそもWebブラウザに認証局のサーバ証明書がなければ、認証局自体が正しい組織であるかもわかりません。
そのため、送られてきた電子証明書が正しいか判断できません。
また、認証局自体が乗っ取られた場合、不正に電子証明書を発行されると不正なサーバへアクセスしてしまうリスクがあります。

TRM(Trusted Platform Module)

PCのマザーボードなどに搭載されるセキュリティチップのことで以下のような特徴があります。

・一緒に公開鍵暗号の鍵ペアを生成
・乱数の発生
・OSが生成した共通鍵を暗号化して保存
・耐タンパ性を有する

団体やフレームワーク

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

CVE識別子

CVE(Common Vulnerabilities and Expousures;共通脆弱性識別子)とは、個別製品中の脆弱性を対象とし、米国の非営利団体MITRE社が採番している識別子のことです。
CVE識別番号管理サイト(http://cve.mitre.org(英語)) で確認することができ、各項目の内容は以下の通りです。
・CVE-ID・・・脆弱性のID
・Description・・・概要
・References・・・参考
・Date Entry Created・・・CVE-IDが付与された日時
など。
日本国内ではJPCERT/CCが公表し、注意喚起をしています。

パーミッション属性

UNIX系におけるファイルの権限等の情報です。内容は下図の通りです。

HTTPのヘッダ

最後にHTTPのヘッダについていくつか紹介します。

1.X-Forwarded-For
・・・実際のアクセス送信元のIPアドレスを格納するために拡張されたヘッダです。
例えば、PC1→プロキシ1→プロキシ2と通信が行われた場合、プロキシ2にはアプリ層レベルでは送信元IPはプロキシ1しか分からず、ログで送信元IP出力できなくなります。そこで、X-Forwarded-ForにPC1の送信元IPを格納し、プロキシ2が送信元が判別できるようにします。

2.Max-Forwards
・・・HTTPリクエストを転送するプロキシなどの最大数を指定します。
値は、非負整数です。
3.Proxy-Authorization
・・・プロキシに対して認証情報を送信する際に利用されるヘッダです。
HTTPだと平文のまま送信されるため、使用する際は必ず、HTTPSにしなければなりません。
4.Referer
・・・リクエストしたURLのリンク元の情報を通知するために使用されます。
5.User-Agent
・・・ブラウザやOSの種類、そのバージョン番号などを識別するために使用されます。

参考書籍

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