3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

IBM Cloud: SCC (Security and Compliance Center)を試してみる

Last updated at Posted at 2022-06-22

SCC とは

SCC (Security and Compliance Center)とは、不適切なリソース構成の防止や監査エビデンスの収集を支援するサービスです。

IBM Cloud® Security and Compliance Center を使用すれば、リソースの構成から監査エビデンスの収集に至るまで、組織内のコンプライアンス文化を促進することができます。 致命的なミスを防ぐための自動化の機能が備わっているため、完全な制御を保持しながらワークロードを構築および拡張できます。そのため、チームは責任と自信を持ってコーディングすることができます。 しかも、業務時間とコストの削減にもなります。

参考:Security and Compliance Center入門

Security and Compliance Center の状況管理コンポーネントを使用すれば、お客様環境に存在するリソースをスケジュールに従ってスキャンできます。また、スキャン結果の詳細なエビデンス・レポートはpdfまたはxlsx形式でダウンロード可能なため、内部の利害関係者や外部の監査員に提出することができます。

本記事では、SCCの複数の機能の中でも「Posture Management機能」を試してみます。そのためには、スキャンを実行する「コレクター」を作成する必要があります。

2023年7月より、お客様管理のコレクターは廃止されています。
IBM Cloud管理コレクターの利用に限定されるため、インスタンス作成後に即スキャンを実行することが可能です。
https://cloud.ibm.com/docs/security-compliance?topic=security-compliance-getting-started

コレクターとは

コンプライアンスのモニターを開始するには、スキャンを実行可能なコレクターを準備する必要があります。コレクターにはIBM管理コレクター、あるいはお客様管理コレクターを選択できます。

本記事では、それぞれのコレクターを用いたスキャン方法を説明します。

IBM管理コレクターを利用したスキャン手順

IBMコレクターでは、IBMアカウントのスキャンを行いたいと思います。
IBM管理のコレクターでのスキャンは、以下の手順で行います。

  • コレクターの作成
    • IBM管理のコレクターを作成します。
  • Credentialsの作成
    • コレクターにアカウントへのアクセス権限を付与します。
  • Scopeの作成
    • スキャンのターゲットとスケジュールを決定します。
  • (On demand Scanの実行)
    • スケジュールされたスキャンとは別で、On demand Scanを実行します。(必要な場合のみ)

参考:IBM 管理のコレクターを使用したリソースのモニター

コレクターの作成

SCCのコレクター作成は、IBM Cloudポータル左上のハンバーガーメニューから
Security and Compliance->Configure->Collectorsにアクセスします。

createを選択して名前を入力 -> Managed byIBMを選択します。

Credentialsの追加

Security and Compliance->Configure->Credentialsにアクセスします。
次に、createを選択して名前入力 -> PurposeBothとしました。Nextをクリックします。

次に、Credential typeにはIBM Cloudを選択、自身のAPIキーを入力します。
APIキー作成については、以下がとても分かりやすかったです。参照くださいm(__)m
IBM Cloud APIKEYの作成(取得)方法

Scopeの作成

Security and Compliance->Configure->Scopesにアクセスします。
次に、createを選択して名前入力しNextをクリックします。

EnvironmentIBM CloudCredentialに先ほど作成したcredentialを選択します。

先ほど作成したコレクターにチェックを入れます。

以下を入力/選択します。

  • Scan name
  • Scan type
  • Profile
  • Schedule

プロファイルには、今回IBM Cloud Best Practices Controls 1.0を使用しています。またスケジュールでは、自動的にスキャンを実行してくれる頻度と期間を指定します。

設定を確認し、createをクリックします。

On demand Scanの実行

On demand Scanは、スケジュールされたスキャンとは異なり、単発で実行するスキャンです。

Security and Compliance->Configure->Scopesにアクセスし、先ほど作成したスコープをクリックします。

スコープ詳細画面の右上にあるActionsをクリックし、On-demand scanをクリックします。

scan typeProfileを選択し、Createをクリックします。

実行結果

Security and Compliance->Assess->Scan resultsにアクセスすると結果が確認できます。
image.png

お客様管理コレクターを利用したスキャン手順

お客様管理コレクターを用いて、特定のリソースのみのスキャンを実行する例を記載します。
お客様管理のコレクターを使用した IBM Cloud リソースのモニター

Credentialsを登録

お客様管理コレクターを使用する場合は、コレクターにリソースへのread権限を与える必要があります。
今回はPEMファイルを用いて、一般ユーザーでのリソースの権限をコレクターに付与します。
ID/Password方式だけでなく、SSH秘密鍵を使ったアクセスもサポートされています。
今回はLinuxにアクセスする際の秘密鍵をPEMファイルに変換して登録しています。
まずNamePurposeを入力・選択します。

Credential typeUsername-PEMを選択、ユーザー名を入力し、Add PEMFileからPEMファイルを選択します。

Scopeを作成

Scope名を入力します。

EnvironmentOn-premisesとし、
Discovery methodにてImport resouces from Fileを選択します。
Resource listでは後述のjsonファイルを選択します。

特定のリソースを指定する場合、jsonファイル内でIPアドレスを用いてリソース指定します。

dls-ubuntu.json
{
  "data": [
    {
      "resource": "subnet",
      "resource_type": "switch",
      "facts": "",
      "fact_status": {
        "message": "",
        "status": ""
      },
      "resource_category": "network_resource",
      "children": [
        {
          "resource": "linux",
          "resource_type": "os",
          "facts": "",
          "fact_status": {
            "message": "",
            "status": ""
          },
          "resource_category": "host",
          "scope_id": "",
          "discovery_status": {
            "message": "",
            "status": "PASS"
          },
          "resource_attributes": {},
          "properties": {
            "public_ip": "",
            "OS": [
              "Linux"
            ],
            "category": [
              "Host"
            ],
            "env_type": "ONPREM",
            "private_ip": "10.1.0.8",                # 今回はこの行のみ変更
            "ports": {}
          },
          "object": "vm"
        }
      ],
      "scope_id": "10.0.0.0/24",
      "discovery_status": {
        "message": "",
        "status": "PASS"
      },
      "resource_attributes": {},
      "properties": "",
      "object": "subnet"
    }
  ]
}

ScopeにCredentialsを登録

scopeの詳細画面から、addより先ほど作成したcredentialsを追加します。

Credentialsを選択し、対象リソースを指定します。
リソースの指定方法は以下の方法があります。
IP=ipaddr (i.e. IP=10.1.0.8)
IP=ipaddr1,ipaddr2,...,ipaddrN (i.e. IP=10.1.0.8,10.1.0.9)
IP=ipaddr1-endingAddress (i.e. IP=10.1.0.8-10)

仮想サーバーの設定

パスワードなしのsudoコマンドを実行できるようにします。
/etc/sudoersファイルを編集します。

/etc/sudoers
# User privilege specification
ユーザー名 ALL=(ALL) NOPASSWD: ALL

スキャンを実行

scope詳細画面のActionsより、On-demand scanをクリックします。
image.png

scan typeProfileを選択し、Createします。
image.png

スキャン結果が表示されない・「Looks like a scan hasn't been run yet」が表示される場合

スキャンを実施したにもかかわらず、Assess->scan resultに結果が表示されない、あるいはscope詳細画面のevent historyに「Looks like a scan hasn't been run yet」というメッセージが表示された場合の対処を記載します。

まずscope詳細画面のevent historyより、対象のscan履歴を開きます。
次に、赤枠Validationをクリックします。

失敗したプロファイルを再び指定しCreateをクリックします。

リロードすると、結果が表示されました。

参考サイト

こちらを参考にさせていただきました。ありがとうございます。
IBM Cloud Security and Compliance Center(SCC)を触ってみた
IBM Cloud Security and Compliance Center(SCC): Linuxのコンプライアンス準拠状況を確認する

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?