ネットワークのセキュリティを確保するには、定期的な脆弱性スキャンの実施が不可欠です。これは、ネットワークのソフトウェアコードやアーキテクチャに存在する弱点、欠落、不備をネットワーク全体にわたって調べる作業です。
しかし、ネットワークのセキュリティ確保は一度きりの作業ではありません。以前は安全だった要素も、やがて古くなるためです。適切なツールを使えば作業が簡素化され、ネットワークのセキュリティ確保に向けて行動を起こしやすくなります。
ネットワークスキャンソフトウェアのNmapを使えば、既知のさまざまな脆弱性や問題をスキャンできます。Nmapには、ネットワークセキュリティの専門家向けに整備された豊富なスクリプトライブラリが用意されています。
Nmapの機能と、ネットワークの脆弱性をスキャンする方法について、詳しく見ていきましょう。
Nmapで脆弱性をスキャンする3つの手順
Nmapは専用のネットワークスキャンツールではありませんが、利用可能なホストとポートの詳細な一覧や、接続されたデバイスのOSを含む、ローカルネットワーク全体のビジュアルマップを作成できます。また、アクティブネットワークスキャンも実行できます。
Nmapを使ってネットワークの脆弱性スキャンを実施する基本的な手順は次のとおりです。
1. インストール
Linuxデバイスを使用している場合、Nmapはあらかじめインストールされている可能性があります。インストールされていない場合は、公式Gitリポジトリから直接インストールできます。
WindowsまたはmacOSデバイスの場合は、Nmapの実行ファイルをダウンロードし、公式Nmapウェブサイトから入手します。実行ファイルを起動し、インストール手順に従ってください。
2. スクリプトのインストール
Nmapには、ネットワーク上でさまざまなスキャンや操作を実行するための堅牢なスクリプトライブラリがあります。セキュリティ脆弱性のスキャンでは、セキュリティ上の欠陥や脆弱性を効果的に検出できるvulscan、Nmap-vulners、vulnが最も一般的に使われています。
まず、次のようにNmapのスクリプトディレクトリに移動します。
cd /usr/share/nmap/scripts/次に、「git clone」コマンドにスキャンスクリプトのGitHub URLを続けて入力し、目的のライブラリをインポートします。以下は、Nmap-vulnersスクリプトをインストールする例です。
git clone https://github.com/vulnersCom/nmap-vulners.git次に、以下のコマンドでソフトウェアをビルド、設定、インストールします。
./configuremakemake install3. ネットワークスキャンの実行
Nmapと関連するスクリプトをインストールした後に、基本的なネットワーク脆弱性スキャンを実行するのは非常に簡単です。
Nmap-vulnersを使ってネットワークスキャンを実行するには、次のように入力します。
nmap -script nmap-vulners/ -sV [target IP address or host] -p[port numbers]「-sV」パラメーターを追加することは、スキャンでネットワーク全体にアクセスするために不可欠です。また、ポートを指定して脆弱性スキャンを行う場合は、「-p」パラメーターの後にポート番号を入力できます。
また、vulnスクリプトはほとんどのNmapビルドにあらかじめインストールされており、次のようなコマンドで直接有効化できる点にも注意してください。
nmap -script vuln [target IP address or host]詳しくは、脆弱性スキャンを効果的に行う6つの手順
Nmapの機能
Nmapは、パケットアナライザーを介してコンテナネットワークに接続されたサービス上のホストを検出できるネットワークスキャナーです。ハッカーがネットワークコンポーネントへの不正アクセスに利用することもありますが、最も主な用途は倫理的ハッキングです。
Nmapは、ネットワークシステム内の脆弱性や欠陥を特定し、悪意のある人物に悪用される前に修正するため、ペネトレーションテストで頻繁に使用されています。
「Nmapはネットワークセキュリティに役立つツールだと感じています」と語ったのはThomas Griffin氏です。OptinMonsterの共同創業者兼社長で、ソフトウェアアーキテクトの専門家でもある同氏は、Forbes Technology Councilからお気に入りのネットワークトラブルシューティングツールについて尋ねられ、こう答えました。
Griffin氏はさらに、「この無料のオープンソースソフトウェアを使えば、ITチームはセキュリティの脆弱性を発見し、プロセス情報を抽出し、開いているポートを確認するなど、さまざまな作業を簡単に行えます」と付け加えました。
Nmapの主な特徴と機能をいくつか紹介します。
稼働中のホストの検出
Nmapのスキャンでは、対象ネットワークで稼働しているホストに関する情報を収集できます。これにより、ネットワークに接続されているデバイスの台数と種類をその時点で把握できるほか、使用中のポートやIPアドレスなど、ホストに関する情報も確認できます。
ポートスキャン
ネットワーク偵察の手法として、Nmapのポートスキャン機能を使うと、ネットワーク上で開いているポートを特定できます。既知のポートから、システム上で動作しているデバイスやアプリケーションを特定し、それらがネットワークトラフィックにどう反応するかを確認できます。
Pingスイープ
Pingスイープは、ネットワークを構成するIPアドレスとホストの範囲を把握するためのネットワークスキャン手法です。NmapでPingスイープを実行すると、その時点でネットワーク上に存在するアクティブなデバイスと接続中のデバイスの数や位置を特定できます。
バージョン検出
バージョン検出、またはバージョンスキャンは、ネットワークのホストや接続されたデバイスで現在使用されているアプリケーションとそのバージョンを特定するプロセスです。Nmapのprobesファイルにあるプローブを使い、接続されたすべてのデバイスとホストにバージョン情報を要求できます。
OS検出
TCP/IPスタックフィンガープリンティングとも呼ばれるOS検出は、接続されたマシンのOSまたは固有のフィンガープリントを検出するためのパラメーター群です。Pingを送信したマシンから受け取った応答を詳細に調べるため、Nmapの最も優れた機能の1つといえます。
回避とスプーフィング
回避とスプーフィングは、Nmapで実行できるペネトレーションテストの手法です。これらを使うと、ホストを正当で信頼できる通信相手のように動作させ、信頼を得たうえでネットワーク内の正規のデバイスやホストからデータパケットを受け取れるようになります。
Nmapの出力
Nmapの[Output]タブには、ネットワークスキャンのプロセスと履歴が表示されます。スキャン中は、スキャン対象のポートのマップと、ポートから収集した情報が出力されます。スキャン結果はさまざまな形式でエクスポートでき、中断または失敗したスキャンを再開するためにも使用できます。
カスタムNmapスクリプトの使用
Nmap Scripting Engine(NSE)は、Nmapで最も便利な機能です。ネットワークの脆弱性スキャンに対するアプローチが固定された、あらかじめプログラムされたコマンドの集まりを使う代わりに、Nmapではユーザーが独自のスクリプトやコマンドを記述し、Luaプログラミング言語を使って、無限に多様な機能やコマンドにソフトウェアを利用できます。
ネットワーク脆弱性スキャンでは、基本的なネットワークスキャンの実行以外にも、次のように使いたいコマンドがいくつかあります。
ポートスキャンの実行
スキャンコマンドは、対象に含めるポートの種類(UDPポートかTCPポートか)や、そのポートがアクティブに接続されているかどうかによって異なります。
基本的なポートスキャンコマンドをいくつか紹介します。
nmap -sU UDP scannmap -sS TCP SYN scanホストスキャンの実行
Nmapのホストスキャンはより簡単で、対象ホストに関する豊富な情報を返します。
次のコマンドで基本的なホストスキャンを実行できます。
nmap -sp [target IP address or range]OSスキャンの実行
Nmapは、ポートやホストから受け取った応答を、2,500種類を超える認識済みOSのデータベースと照合できます。
次のコマンドで基本的なOSスキャンを実行できます。
nmap -O [target IP address]出力
完了したスキャンの結果をエクスポートする場合でも、失敗したスキャンを再実行する場合でも、Nmapでファイルを出力する方法を知っておくことは重要です。
幸い、Nmapでファイルを出力するのは非常に簡単です。.xmlファイルとして出力するには、次のコマンドを入力します。
nmap -oX output.xml.txtファイルとして出力するには、次のコマンドを入力します。
nmap -oN output.txtまとめ:Nmapによる脆弱性スキャン
Nmapは、ネットワークの脆弱性スキャンに使われる主要なツールの1つです。サイバーセキュリティの専門家がペネトレーションテストに利用する一方、ハッカーがネットワークの弱点を悪意を持って悪用するために使うこともあります。使いやすく、オンラインでは活発なコミュニティがスキャンの技術や手法を共有しています。
さらに、非常に柔軟なネットワークセキュリティツールでもあります。NSEを使ってスクリプトを自由に作成できるため、より柔軟なネットワーク脆弱性スキャンを実現できます。
2023年の脆弱性スキャンソフトウェアとツールのトップ10