プラットフォーム診断について学んでみた

こんにちは、GMO NIKKO インフラエヴァンジェリスト(メンバーに命名してもらいました!)のhakumaiです。
前回の記事「弊社初!SLOモニタリングを導入してみた話」を読んでいただいた方々、ありがとうございます。

こんにちは、GMOアドマーケティング インフラ開発部のhakumaiです。 前回の記事「AWSエンジニアから見たGCP(データ分析編)」を読んでいただいた方々、ありがとうございます。 最近、弊社のプロダクトにSLOモニタリングを導入し運用し始めたこともあり、今回はその導入までの道のりを個人的に思ったことも含めてお話いたします。きっかけSLI/SLO文化を導入しようと思ったきっかけは、「プロダクトをより成長させていきたい」という思いが自身としてもインフラチームとしてもあったからです。加えて、SLI/SLOの設計と運用の導...

今回は、GMOインターネットグループのグループセキュリティ対策室が主催したプラットフォーム診断勉強会に参加してきたので、学んだことや感じたことをお話しいたします。

プラットフォーム診断勉強会とは

今回のプラットフォーム診断については、対象のサーバやネットワーク機器に対して擬似的な攻撃を行い、脆弱性やセキュリティリスクの有無を確認するということを定義としています。
GMOインターネットグループでは、3S(System Security Support)というコミュニティを結成して情報セキュリティの情報共有と連携を強化し、GMOインターネットグループ各社の情報セキュリティ対策の向上を図っています。
3Sの運用を担当しているGMOインターネットグループ株式会社のグループセキュリティ対策室が、グループ各社のプラットフォーム診断の実施を取りまとめています。今回の勉強会では、各社でプラットフォーム診断の内製化に向けての支援を目的として、勉強会を開催いただきました。

勉強会の開催概要

日程はDay1からDay4の計4日間で行われました。
内容としては主に、診断対象のコンポーネントごとに診断ツールの使い方を学びつつ演習を行い、最終日には診断レポートの作成を行う座学+演習を含めたものになっていました。

参加しようと思ったきっかけ

普段は各プロダクトのインフラ運用のサポートやプロダクト横断のインフラ改善のための開発業務を中心に行っていて、プラットフォーム診断については診断レポートを確認し各プロダクトチームに検知結果の共有や修正の依頼を行っており、あくまで診断結果を受け取るだけの立場でした。ですがインフラエヴァンジェリストとして、診断手法やレポートの作成方法など診断を実施する側の知見も深めておきたいと思い参加を決めました。
また、弊社でプラットフォーム診断の内製化を進めるにあたって、適切なメンバーフォローができるようになっておきたいと思ったからです。

勉強会で学んだツール

座学では、主に以下のツールについて学びました。

 ホストスキャン系

ツール/コマンド名

概要/確認できる情報
nmap
  • ポートスキャンにて不要ポートの開放の有無が確認できる
  • OSフィンガープリンティング手法を用いたOSやMWのバージョンの推測
  • バナーグラビング手法を用いた実行中ソフトウェアのバージョン情報などの取得(開放ポートに対して実行)
  • NSEというスクリプト化されたスキャン手順を使用すると、暗号スイートやApacheサーバの情報収集などより詳細な情報が取得できる
netcat
  • バナーグラビング手法を用いた実行中ソフトウェアのバージョン情報などの取得(ポートを指定して実行)
ping
  • ターゲットネットワークへのパケット送信による稼働ホストの検知
hping3
  • TimeStampリクエストの応答確認
    • TimeStampリクエストへの応答は、サーバのタイムスタンプ情報を入手することによりリモート攻撃者が時間ベースの認証プロトコル攻撃の手助けになる場合があるー

HTTP関連情報取得系

ツール/コマンド名 概要
curl
  • HTTPレスポンスヘッダーに不要な情報が含まれていないか確認できる
  • TRACEメソッドが有効化されていないか確認できる
    • TRACEメソッドはクライアントが送信した内容をヘッダーも含めてそのまま返されるためCookieなどの情報を盗難される可能性がある
nikto
  • Webサーバ専用の脆弱性スキャナー
  • 主にWebサーバとアプリケーションの設定考慮漏れ(バージョン情報の表示、レスポンスヘッダーの余分な情報表示、ファイルやディレクトリのアクセス制御漏れなど)を確認することができる
dirb
  • ディレクトリリスティングの機能を利用した公開ファイルや隠しオブジェクトを辞書ファイルに基づき検索することができる
    • 公開の必要がないファイルやディレクトリを確認することができる

WordPressスキャナー

WordPressはプラグイン(特に非公式プラグイン)の脆弱性が圧倒的に多く存在し、かつファイル構成が複雑になっているため、WordPressに特化した以下ツールでのスキャンを行うことが推奨されています。

ツール/コマンド名 概要
wpscan
  • WordPress脆弱性データベースAPIを使用してWordPressの脆弱性データをリアルタイムで取得・スキャンすることができる

SSL/TLSスキャン系

ツール/コマンド名 概要
openssl
  • s_clientコマンドでサポートしているSSL/TLSバージョンやOCSP Staplingの設定状況など詳細情報の確認ができる
testssl
  • SSL/TLSの設定(サポートしているSSL/TLSバージョンや暗号スイートの確認、脆弱性の確認など)のテストができる
sslscan
  • testsslと同様にSSL/TLSの設定テストツールで、SSLの強度が確認できる

自動診断ツール

 実際の診断では自動診断ツールを使って診断を実施しますが、診断結果には誤検知や過検知が含まれている場合もあります。この診断結果の精査のために手動ツールでも診断を行うことが最適です。

ツール名 概要
Nessus
  • Tenable Network Security社が開発した包括的な脆弱性検知スキャナ
    • 使い方について詳しくは こちら

 

演習について

演習では、検証用に用意された環境に対して実際に上記の検証ツールを使ってそれぞれ情報を確認しました。
加えて最終日の演習では、Nessusを使って診断を行い診断結果を確認してレポートの作成を行いました。
検証ツールは初めて使うものばかりだったので、欲しい情報を取得するためにコマンドのオプションを設定したり結果を読み解くことに苦労しました。診断レポートの作成も初めての経験だったので、Nessusの診断結果について「どんなリスクがあってどのような対策が必要なのか」をわかりやすくまとめるには各脆弱性についての理解が必要だと感じました。

所感

この勉強会を通して、プラットフォーム診断の手法や結果の確認方法はもちろん、検出された脆弱性に対する緊急度の決め方についても学ぶことができました。また、実際の診断業務ではどのようなフローで診断を実施しレポート作成まで行っているのかについても聞くことができ、普段の業務では得られない知見も得ることができ興味深かったです。

おわりに

簡単ではありますが、今回はプラットフォーム診断勉強会で学んだことや感じたことを紹介しました。
普段の業務とは少し違った経験をすることができ、とても面白く感じました。
今後のプラットフォーム診断の結果を確認する時や内製化を検討していく上で、今回学んだことを活かしていければと思っております。