Shikata Ga Nai

Private? There is no such things.

第37回 ログやエラーメッセージから手がかりを見つける

Hello there, ('ω')ノ

なぜログやエラーが重要なのか?

  • システムが正しく動いている場合は目立たない部分
  • 逆に問題発生時、エラー内容がそのまま公開されていると内部構造やパスワード情報まで見えてしまう場合があります

これを「情報漏えい型脆弱性」と呼びます。


実際のチェック手順① 画面上のエラーメッセージを観察

  1. 存在しないURLや不正な入力を試す:

例: https://intra.example.co.jp/user?id=999999

  1. 表示されるエラー内容を確認:

✅ 観察ポイント:

  • システム名やバージョン情報が含まれていないか?
  • データベース関連のエラー(SQL文など)がそのまま表示されていないか?
  • 開発用コメントが残っていないか?

実際のチェック手順② 社内ログファイルを確認

社内システム管理者向けですが:

  • /var/log/nginx/access.log
  • /var/log/apache2/error.log
  • アプリケーションログ

こうしたファイル内に:

  • パスワードやトークン
  • SQL文やシステムパス
  • 不正アクセスの痕跡

が含まれていないか確認します。


実務チェック例

  • フォーム送信時にエラー → 画面上のメッセージ内容確認
  • 不正リクエスト時に返ってくるJSONレスポンス内のエラーメッセージ
  • ログイン失敗時のメッセージ(ユーザーが存在しないorパスワード違いが区別されていないか?)

よくある見落としポイント

  • テスト環境用メッセージが本番環境にも出ている
  • エラーメッセージが詳細すぎる
  • ログファイルが社内ネットワーク上で誰でも見える場所にある

チェックリストまとめ

  • [ ] 画面上にエラーメッセージが表示されたとき、内部情報が含まれていないか?
  • [ ] ログファイルに機密情報が記録されていないか?
  • [ ] エラー発生時のレスポンス内容をNetworkタブで確認したか?
  • [ ] テスト環境と本番環境のメッセージ内容を比較したか?

注意事項

  • ログファイル確認はシステム担当や開発担当と連携して行うこと
  • 本番環境のエラーメッセージ調査は慎重に、関係部署と相談しながら進めること

まとめ

  • ログやエラーメッセージは脆弱性発見の大きな手がかり
  • 画面上+ログファイル両方をチェックする習慣をつけること
  • 非エンジニアでもエラー文言や表示内容を見るだけで十分なチェックが可能

Best regards, (^^ゞ