情報処理安全確保支援士の勉強 情報セキュリティにおける脆弱性
昨日の勉強記録
午前2の過去問10問くらい
教科書 52ページ
午後1の過去問1問
教科書で読んだ内容は以下の脆弱性について。
・脆弱性の概要
・ネットワーク構成における脆弱性
・TCP/IPプロトコルの脆弱性
・電子メールの脆弱性
・DNSの脆弱性
・HTTP及びWebアプリケーションの脆弱性
■脆弱性の概要
脆弱性を攻撃するツールとして、エクスプロイトコードがある。
ソフトウェアの脆弱性について自社のシステムの脆弱性を確認し対応するための支援サイトとして
JVN(Japan Vulnerability Notes)がある。
JNVでは、脆弱性を識別するための識別子として、CVEを採用している。
また、脆弱性の種類を識別するための共通基準としてCWEがある。
また、脆弱性の深刻さを評価する仕組みとしてCVSSがある。
CVSSでは脆弱性を評価するため、以下の3つの基準を用いる。
・基本評価基準
・現状評価基準
・環境評価基準
■ネットワーク構成における脆弱性
ネットワーク構成が持ち得る脆弱性は、機密性・完全性を脅かすものと、
可用性を脅かすものに分けられる。
●機密性・完全性を脅かす脆弱性
・社内などで、必要とするアクセス許可が明らかに違う場合でも同一セグメントに繋がっている
・社内LANと関連会社のLANが専用線でつながっており、アクセス制御されていない
・社内LANの各セグメント間でアクセス制限されていない
・十分なセキュリティ対策のされていない無線LANのアクセスポイント
・リピータハブが多用されているネットワーク
・ハブが会議室などの共用スペースなどに無防備な状態でおかれている。
●可用性を脅かす脆弱性
・十分な帯域を確保していないネットワークや十分な処理性能を有していないネットワーク機器
・回線やネットワーク機器の2重化や冗長化が行われていない
・回線やネットワーク機器の負荷分散がされていない
・インターネット接続口において帯域制限が行われていない
・リピーターハブが多用されており、スイッチハブやレイヤ2スイッチによるLANの論理的分割がされていない
●機密性・完全性を脅かす脆弱性への対策
・求められるセキュリティレベルに応じてセグメントを分割し、各セグメント間をFWやスイッチ・ルータを用いて制御する
・公開サーバーはDMZに設置し、DMZから内部セグメントへのアクセスを制限する
・求められるセキュリティレベルが高く、特定のメンバーしか使用しないネットワークは、他のネットワークと切り離す
・セキュリティレベルに大差のないLANセグメント間もルーターやスイッチによってアクセス制御する事で
マルウェアなどに感染した際の被害を抑える。
・インターネットへの接続口を集約し、セキュリティ対策を集中させる
・不要な無線LANのアクセスポイントを撤廃する
・無線LANを使用する場合は、WPA2・WPA3に準拠した製品を使用する
・リピーターハブをスイッチにリプレイスする。
・ハブは床下に配置するなどして不正接続を防止
・ハブの空きポートを物理的に塞ぐことで不正な接続を防止する
●可用性を脅かす脆弱性への対策
・ネットワーク帯域を十分に確保する。
・十分な処理性能をもつネットワーク機器を使用する
・重要なネットワーク・ネットワーク機器は2重化、冗長化し、ロードバランサで負荷分散を行う
・インターネット接続口においてルーターやスイッチによる帯域制限を行う
・プロトコルによって割り当てられる帯域の最大値を設定する
・スイッチを用いてVLANを構築し、ブロードキャストドメインを適切に分割する
■TCP/IPプロトコルの脆弱性
●TCP/IPの脆弱性
・仕様が公開されている
・発信元のIPアドレスが偽装可能
・パケットの暗号化が標準装備されていない
●IPアドレスの偽装に対する対策
・明らかにIPアドレスが偽装されているパケットをルーターやファイヤーウォールで遮断する
■電子メールの脆弱性
●SMTPの脆弱性
・メールの投稿や中継がすべて同じ仕組みで行われている
・メールの投稿にあたってユーザ認証をする仕組みが無い
・メールの暗号化が標準で装備されていないため、平文でネットワークを流れる
・MTAの実装・設定によってユーザのメールアカウント情報が漏えいする可能性がある
・MTAの種類・バージョンによってBOFに対して脆弱性がある
●SMTPの脆弱性への対策
・MTAの設定による発信元メールアドレスの制限
・SMTPAuth・POPBeforeSMTPによるユーザ認証の導入
・OP25Bによるメール投稿制限の導入
・IPアドレス、ディジタル署名による送信ドメイン認証の導入
SPF・Sender ID・DomainKeys・DKIM
・メールフィルタリング機構の導入
・MTAの不要なコマンドの無効化
・MTAのバージョンを最新化し、パッチを適用する
・AVソフトを導入し、中継するメールのウィルスを駆除する
●POP3の脆弱性
・認証情報が平文で流れる
・受信データが平文で流れる
●POP3の脆弱性の対策
・APOPにユーザ認証情報の秘匿化
・POP3overTLSによる認証情報及びメールの暗号化
・SSHのポートフォワーディング機能による認証情報及びメールの暗号化
●DNSの脆弱性
・ゾーン転送によって第3者に登録情報が不正利用される可能性がある
・DNSキャッシュポイズニングの脆弱性
・不正なリクエストによってサービス不能となる可能性がある
●DNSの脆弱性への対策
・DNSサーバープログラムのバージョンアップ
・DNSSECを使用する
・外部向けゾーン情報と内部向けゾーン情報の分離
・コンテンツサーバーとキャッシュサーバーの分離
・ゾーン転送の制限
・キャッシュサーバーを利用可能なホストを制限する
・キャッシュサーバーへの問い合わせ数を制限する
・DNSサーバープログラムのバージョン情報を隠蔽
■HTTP及びWebアプリケーションの脆弱性
・セッション管理の脆弱性
・HTTPプロトコルの使用による脆弱性
・Webサーバの実装や設備不備による脆弱性
・Webアプリケーションの仕様や実装による脆弱性
●セッション管理の脆弱性
・パケット盗聴によってセッション管理情報を盗まれる可能性がある
・セッションIDが推測・改ざんされ、他者に情報が漏えいする可能性がある
・Refererのログから他のWebサイト管理者にセッション管理情報が漏えいする可能性がある
・hiddenフィールドの改ざんにより、不正なじょりを実行されてしまう可能性がある
・XSSの脆弱性によりクッキーにセットされたセッション管理情報が盗まれ、悪用される可能性がある
・クッキーの属性設定の問題により、クッキーにセットされたセッション管理情報が盗まれ悪用される
・WebサーバでURLRewriteing機能が有効になっていると、
意図的なセッション管理情報をクエリストリングにセットし使用できる可能性がある。
・セッション管理のバグにより、本来は認証が必要とされるWebページに認証プロセス無しでアクセスされる。
●セッション管理の脆弱性への対策
・重要な情報を扱うWebページはHTTPSによって通信する
・重要なセッション管理情報はすべてWebサーバ側で管理し、
クエリストリング、クッキー、hiddenフィールドにはセッションの識別情報しか含めないようにする
・セッションIDにはじゅうぶんな長さを持った乱数やハッシュ値を用いる
・重要な情報を扱うWebページでは、POSTメソッドを用いてセッション管理情報を隠蔽する
・クッキーの有効期限は可能な限り短く、有効範囲は可能な限り狭く設定する
・HTTPSでアクセスするWebページでは、必ずクッキーをSecure属性ありに設定する
・HTTPとHTTPSでアクセスするWebページがあった場合、Secure属性ありと無し2つのクッキーを使い分けるようにする
・入力データに含まれるメタキャラクタのエスケープ処理を確実に行う
・WebサーバのURL Rewriting機能を無効にする
・認証を必要とするページが直接アクセスできないようにセッション管理を確実に行い、
そのようなページが検索エンジンに掛からないようにタグを用いて設定する
・ログイン後は新たなセッションIDを発行するようにする
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
●HTTPプロトコルの脆弱性
・通信データが平文で流れる
・ベーシック認証の脆弱性により、認証情報を盗まれる
・ベーシック認証ではWebサーバーで認証情報を管理する必要があるため、漏えいなどの危険性が高まる
●HTTPプロトコルの脆弱性への対策
・重要な情報を扱う場合はHTTPSを使用する
・HTTPのベーシック認証は極力使用せず、認証用入力フォームを用いる。HTTPダイジェスト認証を用いる
・認証を行う画面では必ずHTTPSを使用する
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
●Webサーバの実装や設定不備による脆弱性
・ディレクトリ設定に関する設定不備によりディレクトリトラバーサルを受ける
・エラーメッセージ詳細にすることで、機密情報が漏れてしまう
・HTTPヘッダからWebサーバプログラムやバージョンが知られてしまう
・Webサーバプログラムの種類・バージョンによってBOF攻撃を受ける可能性がある
・コマンドやメソッドの設定不備によって、コンテンツの改ざんや管理情報が漏えいする可能性がある
●Webサーバの実装や設定不備による脆弱性への対策
・Webサーバのプログラムを最新のバージョンにし、パッチを当てる
・不要なコマンドを無効にする
・ディレクトのアクセス権限を適切にする
・全てのディレクトリにデフォルトページを置く
・クライアントに詳細なエラーを送らないようにする
・IPSを用いてOSやWebサーバプログラムへの攻撃を遮断する
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
●Webアプリケーションの仕様や実装による脆弱性
・XSSの脆弱性により、クライアント環境で悪意のあるスクリプトが実行される可能性がある
・SQLインジェクションの脆弱性
・OSコマンドインジェクション
・HTTPヘッダインジェクション
・メールヘッダインジェクション
●Webアプリケーションの仕様や実装による脆弱性への対策
・WebアプリケーションからDBサーバへのリクエスト処理にはバインド機構を用いる
・ユーザの入力データをWebアプリで処理する場合は、エスケープ処理を行う
・DBサーバーの設定によりWebアプリケーションからDBに対するクエリを必要最小限の権限のみを持つアカウントで処理するようにする
・WebアプリケーションでOSコマンドの呼び出し可能な関数を極力使用しない
・Webアプリケーションファイヤーウォールを使用して、攻撃を遮断する