Amazon InspectorではCISの評価を行うことができます。
今回はこちらのルールパッケージを使用して、セキュリティを評価、アナウンスされる対策を実施して、サーバーのセキュリティを強化します。
CISとは
Center for Internet Security (CIS) ベンチマーク
CIS セキュリティベンチマークプログラムは、組織がセキュリティを評価して強化できるよう明確に定義された、公平でコンセンサスベースの業界のベストプラクティスを提供します。
CISは米国の非営利団体で、こちらが出している指針に従い設定することでセキュアな環境のサーバーを作ることができます。
こちらから、評価内容を確認できます。
主に、設定としてセキュアな状態にしているかの確認が可能です。
CISの評価テストを行う
amazon linux 2は残念ながら、現在(2018/09/06時点)評価対象外のため、公式のCentOS7を対象に何も設定を変更せず評価を行いました。
CentOS7もユーザーガイドを見ると対象外に見えますが、2018年08月13日の更新で対象に加わっているようです。
Amazon Inspector は追加の Linux オペレーティングシステムに CIS ベンチマークをサポートします
初心者でも簡単にできるAmazon Inspectorによる脆弱性診断
こちらで評価実行までの手順を紹介していますので、これの手順の中のルールを
「CIS Operating System Security Configuration Benchmarks-1.0」に変更して実行しました。
評価テストから設定を反映してみる
実行した結果、93個の対策のアナウンスがでました。(この中9個がInformationalなので、実質84個)
CISでは設定レベルまでのアナウンスを行ってくれるので、デフォルトのままでもかなり検知します。
こちらのうちの一つに絞って対策していきましょう。
今回は検知したこちらの対策をおこなってみます。
Instance i-xxxxxxxxxxxxx is not compliant with rule 5.2.9 Ensure SSH PermitEmptyPasswords is disabled, 2.2.0 CIS CentOS Linux 7 Benchmark. Applicable profiles: Level 1 - Server, Level 2 - Workstation, Level 2 - Server, Level 1 - Workstation.
結果の項目から、rule 5.2.9に問題があったようです。こちらの項目を前述のサイトからDLしたベンチマークの詳細PDFより確認してみます。
grep "^PermitEmptyPasswords" /etc/ssh/sshd_config PermitEmptyPasswords no
上記コマンドを打ってもPermitEmptyPasswords noの結果が帰ってこなかったことからこちらが出ているようです。
PermitEmptyPasswordsはパス無しでのログインを許可するかどうかですね。
AWSではデフォルトではログイン時に鍵認証で行っているので、パスワード認証は最初必須になっていません。
ではパスワード認証を必須にしてみましょう。
結果の推奨事項でも、PDFのRemediationの項目にも
Edit the /etc/ssh/sshd_config file to set the parameter as follows: PermitEmptyPasswords no
とありますので、sshd_configを変更しましょう。
[root~]# vi /etc/ssh/sshd_config ~~~~~~~~~~~~~~~~~~末尾に追加~~~~~~~~~~~~~~~~~~~ PermitEmptyPasswords no [root~]# grep "^PermitEmptyPasswords" /etc/ssh/sshd_config PermitEmptyPasswords no
こちらで追加完了しましたので、再テストを行ってみます。
結果が1件減って対策ができた事がわかります。
しかし、こちらはあくまで設定がどうなっているかの確認をしているだけです。今回の
grep “^PermitEmptyPasswords” /etc/ssh/sshd_config
この結果がPermitEmptyPasswords noであれば対策できていると判断されます。
実際に設定が有効になっているかどうかは別問題で見ていないようですのでご注意を。
まとめ
今回の手順を繰り返す事で、CISの基準を満たしたセキュリティの高いサーバーを作る事ができました。
実際には1検査で0.3$(無料枠対象から外れた場合)にかかりますので、1検査でできるだけ対処を行ったほうがよいでしょう。
また、CVEと違い頻繁に更新される項目ではありませんが、こちらのテストを定期的に行うことで問題のある変更を加えられていないか確認することができます。
使用しているサーバーが安全かどうかを確認するためにも1度評価してみてはいかがでしょうか。