Alibaba Cloud Security Center #3 外部からの攻撃を確認する

このブログをホストするWebサーバへのインターネットからの攻撃をSecurity Center はどのように認識しアラートをあげてくれるかを紹介します。

1. ダッシュボードで攻撃を確認する

Security Center のダッシュボードにアクセスします。

Attacks を確認すると”193”という数値があります。 この数値が攻撃を受けた回数をあらわします。

拡大したものが以下。簡単なチャートで推移を視覚的に確認することが出来ます。

数値をクリックしドリルダウンしていきます。 

“Attack Awareness” 画面では攻撃の種類や送信元や宛先毎のTop5リストなどより詳細な情報を確認できます。

2. Attack Awareness 画面の解説

Attack Awareness 画面のチャートをそれぞれ解説してみます。

2.1. Attack Type Distribution

Attack Type ということで攻撃種別をパイチャートで可視化しています。

今回はすべての攻撃が”SSH Brute Force”だったことがわかります。 SSHでroot アカウントなどに辞書ベースでログインを試行する攻撃です。

2.2. Top 5 Attack Sources / Top 5 Attacked Assets

Top 5 Attack Sources では攻撃元のトップ5がわかります。 

Top 5 Attacked Assets では攻撃先、今回だとAlibaba Cloud 上のこのブログのWebサーバ、がリストされます。 複数のシステムを運用している場合はここに列挙されることになります。

2.3. 攻撃ログのリスト

画面の下の方のリストからすべての攻撃を確認することが可能です。

フィルター機能も利用出来ます。 SSH以外のRDP や SQL Server 、MySQL、FTPを対象にしたBrute Force 攻撃やSQL インジェクション攻撃からTrojanまで幅広い攻撃に対応していることが確認出来ます。 

試しに攻撃してログに残そうかと思いましたが事前申請なども必要なのでとりあえずはやめておきます。

2.4. 表示するログの期間の指定

上で紹介したチャートやリストは期間を指定することが可能です。 Todayや7日間、30日間はワンクリックで指定可能です。 

Custom から特定の期間を秒単位まで明示的に範囲を指定することも可能です。

3. SSH Brute Force への対処

次に受けている攻撃についての対処を考えます。

3.1. サーバのログを確認

/var/log/authlog から実際のログを抜粋。 こんな感じのログが1日の193件も残ります。 

送信元 94.155.194.45 からID ubuntu でSSHログインを試みています。 結果として”Failed password for invalid user ubuntu”として失敗しています。

Apr 8 18:07:16 bigriver3 sshd[10984]: Invalid user ubuntu from 94.155.194.45 port 33444
Apr 8 18:07:16 bigriver3 sshd[10984]: pam_unix(sshd:auth): check pass; user unknown
Apr 8 18:07:16 bigriver3 sshd[10984]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=94.155.194.45
Apr 8 18:07:18 bigriver3 sshd[10984]: Failed password for invalid user ubuntu from 94.155.194.45 port 33444 ssh2
Apr 8 18:07:18 bigriver3 sshd[10984]: Received disconnect from 94.155.194.45 port 33444:11: Bye Bye [preauth]
Apr 8 18:07:18 bigriver3 sshd[10984]: Disconnected from invalid user ubuntu 94.155.194.45 port 33444 [preauth]

3.2. 直近のログイン履歴の確認

“last”コマンドなどで直近のログイン履歴を確認することが可能です。

しかし、本当にクラックされている場合はここら辺のコマンドは攻撃者により置き換えられます(置き換えない攻撃者もいますが)。 例えば不正なログインの情報を表示しない”last”コマンド、不正なファイルを表示しない”ls”コマンドに置き換えられてしまいます。 こうなると一見しただけではクラッキングされたことに気づけなかったりします。

ここら辺の対策としてはファイルやディレクトリのハッシュを残して定期的に比較し、ファイルの置き換えをチェックします。 TripwireやAIDEなどのツールを使います。

3.3. 対策

今回は特に対策はしません。 Brute Force ではログイン出来ないようSSH鍵認証で対応済みだからです。 まあSSH鍵認証を使っていてもOSやSSH自体に脆弱性があればそこから攻撃される可能性はあるので油断は出来ませんが。

なお以下のような対策を併用すべきではあります。

  1. Alibaba Cloud のSecuriy Group でアクセス元を制限する
  2. OS のFirewalld やtcpdwrapper でアクセス元を制限する
  3. SSHのサービスを停止する。 使うときだけAlibaba Cloud Console から起動する

おすすめは①です。 普段はAlibaba Cloud のSecurity Group でインターネットからのSSH接続を拒否します。 SSHでログインしたいときだけ拒否を許可に変えます。 そのとき、送信元を特定出来るなら特定するとなおセキュリティリスクを最小化出来ます。

今回は、Brute Force 以外の攻撃も見てみたいので少しの間このままにしておきます。

4. まとめ

この手のセキュリティ対策のシステムは手軽さ、直感的なわかりやすさが非常に大事だと考えています。 見たり、確認することが面倒になるようなシステムは結局使われずセキュリティ対策が続かないためです。 

その点このSecurity Center は使い始めるまでが簡単です。 ダッシュボードもマニュアルなしで利用出来るわかりやすさです。 今回は紹介していませんが通知機能(メールやSMS、Dingtalkもある)もあるのでダッシュボードを確認する手間を省くことも可能です。

今回はここまでとします。