コンテンツにスキップ

Mini Hardeningやるべきこと・反省

やるべきこと

  • バージョン確認
  • 不要なサービスの停止(webmin)
  • 不要なユーザの削除
  • パスワード変更
  • スプレッドシートにアクセス情報をまとめ
  • WordPressの改ざん
  • テーマECCの改ざん
  • バックアップの作成
    • バックアップを最初にとる パスワードを変える
  • DBのダンプ
  • DocumentRootのバックアップ
  • /phpmyadmin を塞ぐ
  • サービスの監視,ファイルの改ざん検出
  • 不要なサービスの停止 不要なプロセスの停止 ポートからプロセスの停止
  • 不要なユーザの削除 パスワード変更はサービスに影響がないか
  • webminを閉じる時もアクセスがあるか確認する→チェック
  • SSHを公開鍵認証にしてしまう
  • 各サービスが正常に利用できるか監視

実際の脆弱性の例

  • NginxのDocumentRootの改ざん
  • キーロガー
  • アプリのSQLインジェクション
  • ImageMagickのRemoteExec
  • tomcatの/managerデフォルト管理マネージャが公開
  • tomcatがrootで稼働
  • memcachedが外部公開
  • Drupalの脆弱性
  • backup.shの罠 →cronで実行されるスクリプトの権限
  • DNSサーバのログをとったほうがいい →C2との通信でDNSを利用
  • アプリケーションサーバがRCExec
  • 新卒採用(node.js)サイトがcentosユーザで実行された

インターネットへの直接アクセスがない場合...

  • アップデートをSOCKSプロキシでつないでアップデート
  • パッチをもってきて適用 WordPressの攻撃

対応の例

  • バックアップ →データベース →ドキュメントルート →設定ファイル
  • プロセスの確認 →稼働しているポート →実行ユーザ →バージョン →管理GUI
  • ポートの確認 →LISTENになっているポート一覧 →外部公開が不要なポートの閉鎖 →ポートを利用しているプロセスの確認
  • プロセスの確認 →ユーザの認証方式 →脆弱なパスワードがないか →アクセス制御 →脆弱性のあるバージョンでないか
  • Linuxユーザの確認 →ユーザ一覧の作成 →不要なユーザの削除 →パスワードの設定 →SSHの認証方式の変更 →デフォルトシェルの変更 →sudoersユーザの確認(パスワードなしsudoの禁止)
  • ログの確認 →アクセスログ →エラーログ
  • ファイルの監視 →変更日時から改ざんを検出
  • サービスの監視 →死活監視 →改ざん検出(公開領域)
  • アプリの脆弱性 →SQLi →OSコマンドインジェクション
  • マルウェアやアドウェア →マイニング →キーロガー →C2との通信
  • オフラインでのアップデート →パッチの適用 →SOCKSプロキシの利用

優勝したチーム

役割分担

  • 1.インシデントコマンダー
  • 報告書の作成、関係各所とのやり取り
  • 2.オペレータ
  • 最前線でオペレーションを行う
  • 3.マネージャ
  • オペレータコマンダーの連携を行う

反省

  • サービス監視はスクリプトを用意しておく
  • 改ざん検出もスクリプトを用意しておく
  • チェックリストを事前に作って役割分担をする