ハッキングの初期段階ではソフトウェアやバージョン情報の収集が行われます。そこでバージョン情報を表示させずにセキュリティを向上させる方法を説明します。こんな簡単な設定ですが、効果は絶大です。

課題 : バージョン情報が表示される

ハッカーはnmapでスキャンを行います。スキャン結果から nginx 1.18.0 が稼働していることがわかります。ソフトウェアとバージョン情報が分かれば、脆弱性情報を調査するのは簡単ですよね。

$ nmap -sV 52.68.59.139
Starting Nmap 7.80 ( https://nmap.org ) at 2023-03-27 07:37 UTC

PORT    STATE SERVICE  VERSION
22/tcp  open  ssh      OpenSSH 8.9p1 Ubuntu 3ubuntu0.1 (Ubuntu Linux; protocol 2.0)
80/tcp  open  http     nginx 1.18.0 (Ubuntu)
443/tcp open  ssl/http nginx 1.18.0 (Ubuntu)
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel

理想 : バージョン情報が表示されない

そこで nmapでスキャンをされても、下記のようにスキャン結果が nginx だけにすることができます。これにより、ハッカーは脆弱性を調査することが難しくなります。

$ nmap -sV 52.68.59.139
Starting Nmap 7.80 ( https://nmap.org ) at 2023-03-27 07:40 UTC

PORT    STATE SERVICE  VERSION
22/tcp  open  ssh      OpenSSH 8.9p1 Ubuntu 3ubuntu0.1 (Ubuntu Linux; protocol 2.0)
80/tcp  open  http     nginx
443/tcp open  ssl/http nginx
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel

設定

nginxの設定ファイルを編集します。

$ sudo vi nginx.conf

httpモジュール内に server_tokens off; を追記します。

http {
    server_tokens off;
}

設定ファイルを再読み込みします。

$ sudo systemctl reload nginx

このように設定は1行追加するだけなので数分でできます。

結果

上記の設定で nginxのバージョン情報が非表示になります。