ポートスキャン対策不足によってセキュリティリスク『トランスポート層の話⑩』
外から見える開放ポートは、攻撃者にとって「入口」です。対策が甘いと、nmap等で生存ホスト・空きポート・サービスのバージョンまで読まれ、既知脆弱性やブルートフォースの準備作業を手伝うことになります。実害は「侵入」だけではありません。スキャンの多発で回線・機器の負荷が跳ね、監視の誤検知なども増えます。
よくある穴
デフォルト許可(「とりあえずany→any」)の境界ACL
DMZ/社内で同じポート設計(横展開が楽)
古い管理用ポート(Telnet/FTP/SMBv1)を放置
クラウドの多段フィルタ(SG/NACL/OS内FW)で一段だけ閉め忘れ
ログは取れているが閾値・通知が未設定
スキャンの代表例(ざっくり)
TCP SYNスキャン:最も一般的。SYN/ACKやRSTの戻りで開閉判定。
UDPスキャン:無応答=開いている可能性。DNS/NTP/SNMPが狙われやすい。
バージョン探査:バナー取得でソフト名・版数まで露出。
分散・低速:しきい値回避のため少量・長時間で散らす手口。
図:露出面が広いと“踏み台チェーン”が組まれる
[Internet] --(scan)--> [FW] --> [DMZ:Web] --> [DB/Internal]
| ^ ^
| | └─ 内部もスキャン対象に(横移動)
Scanner群 境界での露出が多いほど足がかりが増える
まずやる初動(今ある資産で)
現状の露出を把握
外側から:nmap -sS -sV <自組織の外向けIP>(許諾範囲で)
内側から:セグメントごとに同様に棚卸し(許可された検証環境で実施)。
ログを“数値化”
FW/IDSの拒否ヒット数/分、拒否先頭3ポートをダッシュボード化(NetFlow/IPFIXでも可)。
不要ポートの即封鎖
管理系は**踏み台経由(VPN/ゼロトラスト)**に集約。インターネット直晒しは撤去。
最小構成の防御(具体例)
境界FW/ルータ(Cisco IOS例)
ip access-list extended OUTSIDE-IN
permit tcp any host <PublicIP> eq 443
permit udp any host <PublicIP> eq 53
deny ip any any log ! 露出をログに残す
!
interface G0/0
ip access-group OUTSIDE-IN in
ip verify unicast source reachable-via rx ! uRPFで送信元偽装を抑止
Linuxホスト(最小限)
# 既定拒否+必要だけ許可
ufw default deny incoming
ufw allow 443/tcp
ufw limit 22/tcp # SSHはレート制限
# 失敗多発の送信元を自動遮断
apt -y install fail2ban
レート/探査対策の考え方
SYNレート制御/SYN cookie を有効化(半開攻撃と誤検知を低減)
WAF/Reverse Proxy でバナー隠し・誤り応答の均一化(指紋を減らす)
管理面は到達元を固定(VPN/踏み台+IP許可リスト)
運用で効くポイント
“許可リスト方式”が基本(deny all → 必要だけ明示許可)
監視はポート別の拒否回数とトップ送信元を毎日チェック
変化検知:前日比で開放ポートが増えたら即アラート
脆弱なUDP(NTP/SSD P/DNS/OpenSNMP)は閉鎖 or 認証化、反射増幅の踏み台にならない設定に
ありがちな落とし穴
ICMP全遮断でPMTUDが壊れ、可用性を自分で下げる
WAF/IDSだけに依存しポート最小化をサボる
クラウドのSG/NACL/OS内FWの整合ミス(どれか一段が開いている)
まとめ
ポートスキャン対策は露出を最小にし、観測して即反応が基本です。
最小ポート公開×到達元の固定×レート/ログ運用を“標準”にしておけば、前段の足がかりを大きく削れます。棚卸し→封鎖→監視の三点を継続しましょう。
