Amazon Inspectorでセキュリティのベストプラクティスを診断して不自然な設定変更を検知する

ルール「セキュリティのベストプラクティス」で確認できる項目

Amazon Inspectorで評価を行えるルールの中に、「セキュリティのベストプラクティス」があります。 この項目はCVEやCISの診断と違い、かなり項目の少ないものとなっています。

  • SSH 経由の root ログインを無効化する
  • SSH バージョン 2 のみをサポート
  • SSH 経由のパスワード認証を無効化する
  • パスワードの有効期限を設定する
  • パスワードの最小文字数を設定する
  • パスワードの複雑さを設定する
  • ASLR の有効化
  • DEP の有効化
  • システムディレクトリに対するアクセス権限の設定

2018/09/07現在ではこの項目のみの確認となっています。

これらの設定は一度行った場合には殆ど変更されることがありません。 そのため、この検知を行うことで誤操作でのセキュリティホールの発生や悪意ある設定変更を防ぐ事ができます。

セキュリティのベストプラクティスの評価テストを行う

実際に起動した直後のAmazon Linux2に対して評価を行ってみます。

評価の手順は、下記に記載してあるので、ルールを「Security Best Practices-1.0」にして実行。

初心者でも簡単にできるAmazon Inspectorによる脆弱性診断

実行結果は下のようになりました。

1件の問題点ですね。結果から詳細を確認します。

sshで直接ルートログインできないようにする設定が入っていないぞ、というエラーのようです。

こちらは/etc/ssh/sshd_configに記載することで解消することができます。

(実際には元々amazonlinux2では「Please login as the user “ec2-user” rather than the user “root”.」と出て操作できないようになっているんですけどね)

PermitRootLogin no

sshdを再起動して、sshでrootへログインしてみます。

iMac:~ develop$ ssh ins-test
root@xxx.xxx.xxx.xxx: Permission denied (publickey,gssapi-keyex,gssapi-with-mic).

明確に遮断されている事がわかります。

再度評価を行ってみると、

0件となり問題ないことが確認できました。

まとめ

ここまでで、セキュリティのベストプラクティスの項目の評価と対処までの流れを説明しました。

更新がほとんど無いチェック項目になるので、頻繁に確認する必要が無いかと思うかもしれませんが、問題が合った=誤操作や改ざんの可能性と考えて即時で対応が必要になります。

いつのまにか変えてしまった場合も考えて、クリティカルな設定な分、定期的に実行すると安心してサーバー運用が可能です。