🔎

【積水ハウス】セキュリティ設定に不備 個人情報漏えい #serverspec

2023/12/02に公開

https://www.itmedia.co.jp/news/articles/2311/29/news109.html

上記のような情報漏洩を防ぐための数少ないツールのうち、Chef InSpecは非常に強力なソリューションです。

Chef InSpec とは?

インフラストラクチャ、アプリケーション、クラウドリソースをテストおよび監査するためのフレームワークです。

主なテスト対象は、「設定」 です。

多くの情報漏洩インシデントの主な原因が、 不適切な設定 です。

システムの状態(各種徹底状況)を、Rubyで記述されるテストコードでテストします。
違反を検出し、報告書の形で結果を表示します。テストはカスタマイズ可能であり、テスト項目はユーザーが制御できるようになっています。

コンプライアンス、セキュリティ、ポリシー要件を迅速かつ簡単に記述するのに役立つ豊富なリソースが用意されています。

DevOps CI/CDパイプラインに組み込むことで、インフラのDevSecOpsを実現することができるツールです。

米国Progress社により開発、メンテナンスされています。

テスト実行方法

InSpecは、RSpecやServerspecライクのテストコードが使われます。
以下はその一例です。

Control 'example-1.0' do
  impact 0.9
  title 'ROOTログインの無効化'
  desc 'セキュリティリスク回避のためにRootによるログインが無効化されていることを確認します。'
  describe sshd_config do
    its('PermitRootLogin') {
      should_not cmp 'yes'
    }
  end
end

上記のテストコード例では、「ROOTログインが無効化されているか」がテストされます。
情報漏洩に繋がる危険性のある重要な設定を同じ方法ですべて自動監査する必要があります。

・実行コマンド:

inspec exec [プロファイル名]

・結果:

Profile: Chef InSpec Profile (example_profile)
Version: 0.1.0
Target:  local://

  ✔  example-1.0: Ensure root login is disabled via SSH
  ✔  SSHD Configuration PermitRootLogin should not cmp == "yes"

Profile Summary: 1 successful control, 0 control failures, 0 controls skipped
Test Summary: 1 successful, 0 failures, 0 skipped

上記例では、sshd_config リソースが使用されています。リソースを活用することで、視認性が良いテストを書くことができます。
1100を超える豊富なリソースが用意されています。AWS、Azure、AliCloud、およびGCPのクラウドャをテストするためのリソースも含まれており、必要なリソースがない場合は独自のカスタムリソースを作成できます。

テスト結果の出力とレポート

様々な出力フォーマットがあります。

・Web UI

image.png

JSON、HTML、またはCSVへの出力も可能です。


Chef InSpecでできることについてさらに詳しくは:

https://qiita.com/Chef_DevSecOps/items/1e968740b9dc9396eb33

https://www.chef-sec.com/stig_cis__benchmark_test/

Discussion