Slide 1

Slide 1 text

EC2とCloudWatchで始める SSHハニーポット運⽤ 笹川 尋翔

Slide 2

Slide 2 text

Amazon EC2(Elastic Compute Cloud) • インターネット経由でコンピューティングリソースを 利⽤できるサービス • 性能要件や利⽤⽤途ごとに様々なインスタンスを選択 • EBS(Elastic Block Store)と呼ばれるブロックストレージを組み 合わせて利⽤

Slide 3

Slide 3 text

Amazon CloudWatch • AWSのサービスなどのアプリケーションを モニタリングできるサービス • ログやメトリクスをCloudWatchのエンドポイントへ送信する ことでマネジメントコンソール上でデータを可視化

Slide 4

Slide 4 text

ハニーポット(honeypot) • 悪意のある攻撃を受けやすいようにハードウェアや ソフトウェアを設定 • 攻撃者を特定、あるいは攻撃⼿法を分析するシステム • 低対話型: OSやコマンドなどをエミュレート • ⾼対話型: 実際のOSやインスタンスを使⽤

Slide 5

Slide 5 text

アーキテクチャ • VPC(Virtual Private Cloud) • プライベートサブネット • インターネットGW • ルートテーブル • t3a.microインスタンス • Elastic IPアドレス

Slide 6

Slide 6 text

アーキテクチャ 1. VPCにインターネットGWをアタッチ 2. ルートテーブルにインターネットGWを登録 3. EC2インスタンスをプライベートサブネットに配置 4. EC2インスタンスにElastic IPをアタッチ

Slide 7

Slide 7 text

EC2インスタンスの設定 • 実⾏されたコマンドをrsyslogでログに記録するように設定 • /etc/ssh/sshd_config • PermitRootLoginをyesに変更 • PasswordAuthenticationをyesに変更 • sudo systemctl reload sshでssh.serviceをリロード

Slide 8

Slide 8 text

EC2インスタンスの設定 • CloudWatch Agentをインストール • EC2のログやメトリクスを取得するためのソフトウェア • CloudWatch Agentのjson形式の設定ファイルを対話的に⽣成

Slide 9

Slide 9 text

/opt/aws/amazon-cloudwatch-agent/bin/config.json

Slide 10

Slide 10 text

CloudWatchでログを表⽰ • auth.log • ログイン認証を試⾏した際の • タイムスタンプ • 送信元グローバルIPアドレス • ⼊⼒されたユーザ名 • ⼊⼒されたパスワード • 認証の可否(success, fail) • commands.log • コマンドが実⾏された際の • タイムスタンプ • コマンドを実⾏したユーザ名 • 実⾏されたコマンド

Slide 11

Slide 11 text

auth.log

Slide 12

Slide 12 text

commands.log

Slide 13

Slide 13 text

今後の課題 • ハニーポットを植えたのに攻撃が来る頻度が極端に少ない • nmapコマンドでpingを使ったポートスキャンができないから? • pingはICMPを使う • ICMPのインバウンド通信を許可していなかった • CloudWatchのグラフによるデータの可視化