Shikata Ga Nai

Private? There is no such things.

攻撃者視点”を理解する②

Hello there, ('ω')ノ

🖥 セクション2:サーバ

サーバは 企業システムの“心臓部” です。
攻撃者は必ず、まずサーバの“外から見える部分”に注目します。

このセクションでは、
非エンジニアの担当者でも「どこを見れば安全か」が理解できる
ように、丁寧に構造化して解説します。


🧭 2-1. 公開ポート・動作中サービスの棚卸し

■ そもそも「ポート」「サービス」って何?

サーバは複数の“窓口”を持っています。
その窓口が ポート(Port) と呼ばれます。

例:

  • 80番:Web(HTTP)
  • 443番:Web(HTTPS)
  • 22番:管理用(SSH)
  • 3306番:データベース(MySQL)
  • 25番:メール(SMTP)

そして

ポートの奥で動いているものが「サービス」や「アプリ」

と呼ばれます。


■ なぜここが攻撃者の最初の注目点なのか?

攻撃者は、まず次のように考えます。

「このサーバは今、どんな窓口(ポート)を開けている?」
「そこにはどんなサービスが動いている?」

もし…

  • 不要なポートが開きっぱなし
  • 古いサービスが動き続けている

…といった状態なら、そこが攻撃の入口になります。


■ ありがちな危険パターン

  • 開発時に開けていたポートを閉じ忘れる
  • 古いアプリが動いたまま放置されている
  • SSH が “全世界からアクセス可能”
  • 外部に公開してはいけない DB が開いている

■ 防御側がまずやるべきこと

専門的な操作は不要。
一覧化して、必要なものと不要なものを分けるだけで十分強化できます。

チェックポイント

  • どのポートが外部に公開されている?
  • そのポートのサービスは本当に必要?
  • 外部公開は最小限になっている?
  • 管理系ポートは安全に守られている?

🔍 2-2. バージョン情報/バナー情報の漏洩

■ 「バナー情報」とは?

サーバが外部に対して返す“自己紹介メッセージ”です。

例(見られたくないパターン)

Server: Apache/2.4.29 (Ubuntu)
X-Powered-By: PHP/7.2.24

攻撃者はこれを見て、次のように考えます。

  • バージョンは古いか?
  • 既知の脆弱性(攻撃手法)があるか?
  • 管理者が更新を怠っているか?

つまり、

バナー=攻撃者へのヒント

になります。


■ なぜ危険なのか?

例えると…
「家の玄関にメーカー名・モデル・製造年が書いてある」
ようなもの。

攻撃者はそれを見て
“この鍵には古い弱点があるぞ”
と判断できます。


■ 実際によくある失敗例

  • Apache / nginx のバージョンが丸出し
  • PHP / Node.js / Ruby などの実行環境が漏れている
  • メールサーバ(SMTP)のバナーに OS 情報が含まれている
  • SSH が OS の詳細を返している

■ 防御側がすべきこと

非エンジニアでも確認可能な対策:

✔ 外部公開部分のヘッダを“目視で確認する”

例:

curl -I [https://自社Webサイト](https://自社Webサイト)

(技術者が代理で確認する形でもOK)

✔ Server や X-Powered-By を非表示にする

これは開発者・運用担当が設定を変更できます。


👀 2-3. ログの重要性と“覗かれている兆候”

■ ログとは?

サーバが残している「行動記録」です。

例: - 認証ログ(ログインの成功/失敗) - Webアクセスログ - システムログ - ファイアウォールログ


■ なぜログが重要なのか?

セキュリティ事件の 70% は
「事前にログに異常が出ていたが、誰も見ていなかった」
という報告があります。

攻撃者は、侵入前に
- 異常なアクセス
- 不正なログイン試行
- 明らかに異常なペースの通信

といった動きを必ず残します。


■ ログに出る“覗かれている兆候”

🔥 よくある兆候例

  • 深夜の時間帯に大量のログイン失敗が続く
  • 海外IPからのアクセスが急増
  • 存在しないURLに大量アクセスされている
  • 管理画面URLに繰り返しアクセスしている
  • サーバの負荷が謎に上がる(DoS前兆)

これらは“早期の異常検知”につながります。


■ 防御側が行うべきこと

非エンジニアでも取り組めるレベルで重要なアクション:

✔ ログの保存期間を確保(最低90日)

✔ ログを集約し、1か所で見られるようにする

✔ 怪しいログの例をチームで共有

✔ 週1回でも「異常がないか」確認する仕組みをつくる


🧩 2-4. サーバの“最初の可視化チェックリスト”

✔ 公開ポート一覧を作る

  • 必要か?
  • 外部公開して良いか?
  • 管理系ポートは安全か?

✔ 動作中サービスを棚卸し

  • 使っていないサービスは停止する
  • 古いバージョンのまま放置しない

✔ バージョン情報・バナーの確認

  • Apache/nginx の Server 表示は消す
  • アプリケーションの情報を漏らさない

✔ ログ確認

  • 異常アクセス
  • ログイン失敗連打
  • 海外IPの増加
  • 深夜の不自然な挙動

🎯 結論:

サーバのセキュリティは“まず棚卸しだけ”でも大幅に強化できる

実務では、
サーバの侵害は「高度な攻撃」よりも
“設定漏れ・放置されたサービス”が原因
で起こることが圧倒的に多いです。

だからこそ…

✔ “今何が動いているか”を知るだけで大きな対策になる

✔ バナーを隠すだけで攻撃者の調査を妨害できる

✔ ログを見れば「攻撃準備の段階」を発見できる

Best regards, (^^ゞ