情報処理のWeb教科書―IPA情報処理試験対策のお供に!
トップ 情報処理の知識体系 テクノロジ系 技術要素 セキュリティ セキュリティ技術評価 セキュリティ評価基準 脆弱性検査
脆弱性検査とは、その単語のとおりで、OSやアプリケーション、ネットワークを含めたサイト全体の脆弱性を検査することをいいます。ペネトレーションテストの方法やツールなど脆弱性検査について見ていきます。
この記事の目次です。
脆弱性検査とは、その単語のとおりで、OSやアプリケーション、ネットワークを含めたサイト全体の脆弱性を検査することをいいます。
プログラムのバグを見つけるのと同様に脆弱性もテストを行って見つけます。 脆弱性検出関連のテストの種類には大きく、設計書やソースコードを基にしたホワイトボックス検査と実際に疑似的な侵入や攻撃手法などを用いて行うブラックボックス検査があります。 通常は脆弱性検査という場合はブラックボックス検査のことをいうことが多いです。
ブラックボックス検査には、「セキュリティホール検査」、「セキュリティスキャン」、「セキュリティ診断」、「脆弱性診断」、「ペネトレーションテスト」、「侵入検査」、「侵入テスト」などの呼称があります。
ペネトレーションテストは、公開Webサーバや組織のネットワークの脆弱性を探索し、 サーバに実際に侵入できるかどうかを確認します。
ペネトレーションテストとは、侵入テストとも呼ばれる脆弱性検査です。 1つあるいは複数の脆弱性を組み合わせていかにシステムへ深く侵入できるかを確認するテストのことをいいます。 網羅性のあるテストではないため、未検出の脆弱性が残る可能性があります。
コンピュータネットワーク関連の脆弱性の検出方法やスキャナーなどのツールなど ペネトレーションテストに関連した手法には以下のようなものがあります。
脆弱性を見つける際に使用する攻撃用のコードをエクスプロイトあるいはエクスプロイトコードと呼びます。
エクスプロイトコードは、攻撃コードとも呼ばれ、脆弱性を悪用するソフトウェアのコードのことでですが、 使い方によっては脆弱性の検証に役立つこともあります。
脆弱性情報の多くはネット上に転がっているといわれています。 違法行為を働かず正規の方法で、情報収集できる場合ががあります。
Index ofページ、意図せず公開されているExcelファイル、ログイン情報、社内に対する匿名の投稿、エラー出力されたページなど、(アクセスはしませんが)検索エンジンを利用している際に見かけることがあります。
想像力と検索エンジンの機能を駆使すれば、違法行為を働かなくても正規の方法で大方のヒントが収集できるのではと思います。
Google検索など検索エンジンを使用して脆弱性情報を収集する手法をGoogleハッキングとか検索エンジンハッキングというようです。 脆弱性検出用の検索例もたくさん紹介されています。
例)https://www.exploit-db.com/google-hacking-database/
以下は検索エンジンの検索オプションコマンドの例です。
漏えいしたアカウント、パスワードを利用していないか、Yahooのキャッシュ、魚拓などにシステムの情報が漏えいしてしまっている場合があります。 ネットのニュースや話題などに目を向けるとたくさんこの類の情報が入ってきます。
過去の流出リストに入っているかどうかわかる検索サイト。
URL)https://haveibeenpwned.com/
過去の流出リストに入っているかどうかわかる検索サイト。
URL)https://leakedsource.ru/
NISTやIPAなどの機関で、セキュリティの専門家により、脆弱性データベースが更新されています。 脆弱性データベースを参照すれば、簡単に新しい脆弱性を把握することができます。
NISTが管理している脆弱性情報データベースのことです。報告されたソフトウェアの脆弱性が検索できます。
参考)https://nvd.nist.gov/vuln/search
NVDの日本番。JPCERT/CC、IPAが共同で運営する日本国内のソフトウェアの脆弱性情報を取り扱うデータベースのことです。 こちらも報告されたソフトウェアの脆弱性が検索できます。
参考)http://jvndb.jvn.jp/index.html
URLを入力する、IPアドレスを入力するだけで簡単に実行できるツールがたくさんあります。 試しに使ってみて思ったのは、たくさんの対象があるときは網羅的に実行できていい半面、検出結果の見ているといつも同じ感じで検出範囲は狭いのではと思います。
ネットワーク、プラットフォーム関連のツールの例です。
Nessusは、ポートスキャンや擬似的なアクセスなどのテストを行って、対象サーバーの脆弱性を調査するツールです。 オープンソースしたが、バージョン3.0以降はプロプライエタリソフトウェアとして開発され、企業の一般利用には有償のライセンス契約が必要です。 対象サーバーの使用ソフトウェアの既知の脆弱性、設定ミスや脆弱なパスワードなどの調査が行えます。
OpenVASは、昔オープンソースとして開発されていたNessusから派生したネットワーク診断ツールです。 ポートスキャンや擬似的なアクセスなどのテストを行って、対象サーバーの脆弱性を調査するツールです。 ツールが提供されるだけでなく、脆弱性データベースは日々更新されています。 ライセンスはGNU GPLで、OpenVASは、Open Vulnerability Assessment Systemの略です。
以下はローカルPC内のVM上にインストールしたCentOS7へのインストール例です。
minimalでインストールします。
base、developmentをインストールします。
yum -y groupinstall base yum -y groupinstall development
yum -y update
SELinuxをオフにしてアップデートをかけておきます。
sed -i 's/=enforcing/=disabled/' /etc/selinux/config
firewall-cmd --zone=public --add-port=443/tcp --permanent firewall-cmd --reload
reboot
wget -q -O - https://updates.atomicorp.com/installers/atomic | sh
yum -y install greenbone-vulnerability-manager
sed -i '/^#.*unixsocket/s/^# //' /etc/redis.conf systemctl enable redis && systemctl restart redis
openvas-setup
https://<サーバのIP>にブラウザでアクセスすると管理画面が表示されます。
Task WizardからIPまたはホスト名だけ入力して実行する「Immediate scan」が簡単です。
/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/
ポートスキャンツールです。
URL)https://nmap.org/man/jp/
SSL関連の診断ツールです。サーバー側とクライアント側のブラウザの設定もテストできます。
URL)https://www.ssllabs.com/ssltest/index.html
Webアプリケーション関連のツールの例です。
Webアプリケーション脆弱性診断ツールです。
Webアプリケーション脆弱性診断ツールです。
WordPress専用のスキャンツールです。本体、プラグインの公開されている脆弱性やPHP、Webサーバの設定確認、ログインなどの設定のチェックが行えます。
以下はローカルPC内のVM上にインストールした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をインストールします。
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をインストールします。
cd /root/wpscan gem install bundler && bundle install gem install wpscan
データベースのアップデートは以下で行えます。
wpscan --update
標準スキャン+ユーザID抽出する場合は以下で行えます。
wpscan --url 【WordPressのURL】--enumerate u
https://wpscan.org/
https://github.com/wpscanteam
Web関連の通信をプロキシし、確認、変更してテストが行えるツールです。
URL)https://www.telerik.com/fiddler
Metasploitは、攻撃コードの作成、実行を行うためのフレームワークソフトウエアです。 昔は、完全にオープンソースなプロジェクトでしたが、現在はRapid7社が管理しています。 無料版と有料版があります。
metasploitといった場合、開発元やコミュニティーを指すことがありますが、ここでは、Metasploit Frameworkのことして、Metasploitといって説明しています。
Kali Linuxを入れてみるとオープンソースのものでも上記以外に様々なツールが利用できます。
なかなか試すのは難しいこともありますが、例えば、WEB公開領域に一次的において消し忘れた危ないファイルなど、 ツールを掛けるよりも実施に目で見ると気づいてドキッとすることが多いのではと思います。
エクスプロイトも以下のように公開されています。
参考)https://www.exploit-db.com/browse/
以下では脆弱性検査に関連したIPA情報処理試験の過去問とその解説をまとめています。
情報セキュリティとは何か、情報セキュリティのテキストコンテンツをテーマに知識をまとめています。またIPAの情報処理試験の情報セキュリティ関連の問題も解説しています。
情報処理試験対策用のサイトオリジナル教科書をテーマにテクノロジ系の知識をまとめています。
Copyright (C) 2010-2023 情報処理のWeb教科書. All Rights Reserved. Loarding…