情報処理のWeb教科書―IPA情報処理試験対策のお供に!

脆弱性検査―ペネトレーションテストの方法やツールなど。

トップ 情報処理の知識体系 テクノロジ系 技術要素 セキュリティ セキュリティ技術評価 セキュリティ評価基準 脆弱性検査

脆弱性検査とは、その単語のとおりで、OSやアプリケーション、ネットワークを含めたサイト全体の脆弱性を検査することをいいます。ペネトレーションテストの方法やツールなど脆弱性検査について見ていきます。

▲記事トップへ

目次

この記事の目次です。

1. 脆弱性検査とは

2. ペネトレーションテスト

脆弱性検査に関連したIPA情報処理試験の過去問題

もっと知識を広げるための参考

更新履歴

1. 脆弱性検査とは

脆弱性検査とは、その単語のとおりで、OSやアプリケーション、ネットワークを含めたサイト全体の脆弱性を検査することをいいます。

プログラムのバグを見つけるのと同様に脆弱性もテストを行って見つけます。 脆弱性検出関連のテストの種類には大きく、設計書やソースコードを基にしたホワイトボックス検査と実際に疑似的な侵入や攻撃手法などを用いて行うブラックボックス検査があります。 通常は脆弱性検査という場合はブラックボックス検査のことをいうことが多いです。

ブラックボックス検査には、「セキュリティホール検査」、「セキュリティスキャン」、「セキュリティ診断」、「脆弱性診断」、「ペネトレーションテスト」、「侵入検査」、「侵入テスト」などの呼称があります。

2. ペネトレーションテスト

ペネトレーションテストは、公開Webサーバや組織のネットワークの脆弱性を探索し、 サーバに実際に侵入できるかどうかを確認します。

ペネトレーションテストとは

ペネトレーションテストとは、侵入テストとも呼ばれる脆弱性検査です。 1つあるいは複数の脆弱性を組み合わせていかにシステムへ深く侵入できるかを確認するテストのことをいいます。 網羅性のあるテストではないため、未検出の脆弱性が残る可能性があります。

ペネトレーションテストに関連した手法

コンピュータネットワーク関連の脆弱性の検出方法やスキャナーなどのツールなど ペネトレーションテストに関連した手法には以下のようなものがあります。

エクスプロイトコード

脆弱性を見つける際に使用する攻撃用のコードをエクスプロイトあるいはエクスプロイトコードと呼びます。

エクスプロイトコードは、攻撃コードとも呼ばれ、脆弱性を悪用するソフトウェアのコードのことでですが、 使い方によっては脆弱性の検証に役立つこともあります。

検索エンジンハッキング

脆弱性情報の多くはネット上に転がっているといわれています。 違法行為を働かず正規の方法で、情報収集できる場合ががあります。

検索エンジンの利用

Index ofページ、意図せず公開されているExcelファイル、ログイン情報、社内に対する匿名の投稿、エラー出力されたページなど、(アクセスはしませんが)検索エンジンを利用している際に見かけることがあります。

検索エンジンハッキングに使用する検索オプションの例

想像力と検索エンジンの機能を駆使すれば、違法行為を働かなくても正規の方法で大方のヒントが収集できるのではと思います。

Google検索など検索エンジンを使用して脆弱性情報を収集する手法をGoogleハッキングとか検索エンジンハッキングというようです。 脆弱性検出用の検索例もたくさん紹介されています。

例)https://www.exploit-db.com/google-hacking-database/

検索エンジンのコマンド

以下は検索エンジンの検索オプションコマンドの例です。

情報収集サイト情報

漏えいしたアカウント、パスワードを利用していないか、Yahooのキャッシュ、魚拓などにシステムの情報が漏えいしてしまっている場合があります。 ネットのニュースや話題などに目を向けるとたくさんこの類の情報が入ってきます。

脆弱性DB

NISTやIPAなどの機関で、セキュリティの専門家により、脆弱性データベースが更新されています。 脆弱性データベースを参照すれば、簡単に新しい脆弱性を把握することができます。

たとえば、NVD。NVDとは?

NISTが管理している脆弱性情報データベースのことです。報告されたソフトウェアの脆弱性が検索できます。

参考)https://nvd.nist.gov/vuln/search

その他、JVN

NVDの日本番。JPCERT/CC、IPAが共同で運営する日本国内のソフトウェアの脆弱性情報を取り扱うデータベースのことです。 こちらも報告されたソフトウェアの脆弱性が検索できます。

参考)http://jvndb.jvn.jp/index.html

脆弱性スキャナーや補助ツール

URLを入力する、IPアドレスを入力するだけで簡単に実行できるツールがたくさんあります。 試しに使ってみて思ったのは、たくさんの対象があるときは網羅的に実行できていい半面、検出結果の見ているといつも同じ感じで検出範囲は狭いのではと思います。

ネットワーク、プラットフォーム関連

ネットワーク、プラットフォーム関連のツールの例です。

Nessus

Nessusは、ポートスキャンや擬似的なアクセスなどのテストを行って、対象サーバーの脆弱性を調査するツールです。 オープンソースしたが、バージョン3.0以降はプロプライエタリソフトウェアとして開発され、企業の一般利用には有償のライセンス契約が必要です。 対象サーバーの使用ソフトウェアの既知の脆弱性、設定ミスや脆弱なパスワードなどの調査が行えます。

OpenVAS

OpenVASは、昔オープンソースとして開発されていたNessusから派生したネットワーク診断ツールです。 ポートスキャンや擬似的なアクセスなどのテストを行って、対象サーバーの脆弱性を調査するツールです。 ツールが提供されるだけでなく、脆弱性データベースは日々更新されています。 ライセンスはGNU GPLで、OpenVASは、Open Vulnerability Assessment Systemの略です。

以下はローカルPC内のVM上にインストールしたCentOS7へのインストール例です。

CentOS7のインストール

minimalでインストールします。

利用パッケージのインストール

base、developmentをインストールします。

yum -y groupinstall base
yum -y groupinstall development
CentOSアップデート
yum -y update
SELinuxオフ

SELinuxをオフにしてアップデートをかけておきます。

sed -i 's/=enforcing/=disabled/' /etc/selinux/config
Portの開放
firewall-cmd --zone=public --add-port=443/tcp --permanent
firewall-cmd --reload
CentOS再起動
reboot
Atomic Corpのリポジトリ追加
wget -q -O - https://updates.atomicorp.com/installers/atomic | sh
OpenVAS (GVM)のインストール
yum -y install greenbone-vulnerability-manager
Redisの設定
sed -i '/^#.*unixsocket/s/^# //' /etc/redis.conf
systemctl enable redis && systemctl restart redis
OpenVASの設定
openvas-setup
Web画面の表示

https://<サーバのIP>にブラウザでアクセスすると管理画面が表示されます。

OpenVASのログイン画面のイメージ
OpenVASのログイン画面のイメージ
簡単な使い方

Task WizardからIPまたはホスト名だけ入力して実行する「Immediate scan」が簡単です。

OpenVASのImmediate scanのイメージ
OpenVASのImmediate scanのイメージ
OpenVASのアップデート
/usr/sbin/greenbone-nvt-sync
/usr/sbin/greenbone-scapdata-sync
/usr/sbin/greenbone-certdata-sync
参考

http://www.openvas.org/
https://www.linuxincluded.com/installing-openvas-on-centos-7/

Nmap

ポートスキャンツールです。

URL)https://nmap.org/man/jp/

Qualys

SSL関連の診断ツールです。サーバー側とクライアント側のブラウザの設定もテストできます。

URL)https://www.ssllabs.com/ssltest/index.html

Webアプリケーション関連のツール

Webアプリケーション関連のツールの例です。

burp suite

Webアプリケーション脆弱性診断ツールです。

OWASP Zed Attack Proxy (ZAP)

Webアプリケーション脆弱性診断ツールです。

WPScan

WordPress専用のスキャンツールです。本体、プラグインの公開されている脆弱性やPHP、Webサーバの設定確認、ログインなどの設定のチェックが行えます。

以下はローカルPC内のVM上にインストールしたCentOS7へのインストール例です。

CentOS7のインストール

minimalでインストールします。

前提パッケージインストール

前提パッケージとアップデートを行います。

su -
yum -y groupinstall base
yum -y groupinstall development
yum -y update
yum -y install openssl-devel readline-devel libxml2 libxml2-devel libxslt libxslt-devel libcurl-devel patch bzip2
yum remove ruby
Rubyのインストール

Rubyをインストールします。

cd /root
git clone https://github.com/wpscanteam/wpscan.git
git clone https://github.com/sstephenson/rbenv.git /root/.rbenv
echo 'export PATH=$HOME/.rbenv/bin:$PATH' >> /root/.bash_profile
echo 'eval "$(rbenv init -)"' >> /root/.bash_profile
source /root/.bash_profile
git clone git://github.com/sstephenson/ruby-build.git /root/.rbenv/plugins/ruby-build
cd /root/.rbenv/plugins/ruby-build
./install.sh
cat /root/wpscan/.ruby-version
rbenv install <確認したルビーバージョン例:2.6.2>
rbenv rehash
rbenv global <確認したルビーバージョン例:2.6.2>
rbenv local <確認したルビーバージョン例:2.6.2>
WPScanインストール

WPScanをインストールします。

cd /root/wpscan
gem install bundler && bundle install
gem install wpscan
WPScanの使い方

データベースのアップデートは以下で行えます。

wpscan --update

標準スキャン+ユーザID抽出する場合は以下で行えます。

wpscan --url 【WordPressのURL】--enumerate u
参考

https://wpscan.org/
https://github.com/wpscanteam

fiddler

Web関連の通信をプロキシし、確認、変更してテストが行えるツールです。

URL)https://www.telerik.com/fiddler

metasploit

Metasploitは、攻撃コードの作成、実行を行うためのフレームワークソフトウエアです。 昔は、完全にオープンソースなプロジェクトでしたが、現在はRapid7社が管理しています。 無料版と有料版があります。

metasploitといった場合、開発元やコミュニティーを指すことがありますが、ここでは、Metasploit Frameworkのことして、Metasploitといって説明しています。

Kali Linux

Kali Linuxを入れてみるとオープンソースのものでも上記以外に様々なツールが利用できます。

情報収集や検出観点

なかなか試すのは難しいこともありますが、例えば、WEB公開領域に一次的において消し忘れた危ないファイルなど、 ツールを掛けるよりも実施に目で見ると気づいてドキッとすることが多いのではと思います。

エクスプロイトも以下のように公開されています。

参考)https://www.exploit-db.com/browse/

脆弱性検査に関連したIPA情報処理試験の過去問題

以下では脆弱性検査に関連したIPA情報処理試験の過去問とその解説をまとめています。

もっと知識を広げるための参考

更新履歴

戻る

スポンサーリンク

情報処理の知識体系

各試験の問題と解説

ランダム出題・採点アプリ

プログラミング

スポンサーリンク