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を実行します。(必要な場合のみ)
コレクターの作成
SCCのコレクター作成は、IBM Cloudポータル左上のハンバーガーメニューから
Security and Compliance
->Configure
->Collectors
にアクセスします。
create
を選択して名前を入力 -> Managed by
でIBM
を選択します。
Credentialsの追加
Security and Compliance
->Configure
->Credentials
にアクセスします。
次に、create
を選択して名前入力 -> Purpose
でBoth
としました。Next
をクリックします。
次に、Credential type
にはIBM Cloud
を選択、自身のAPIキーを入力します。
APIキー作成については、以下がとても分かりやすかったです。参照くださいm(__)m
IBM Cloud APIKEYの作成(取得)方法
Scopeの作成
Security and Compliance
->Configure
->Scopes
にアクセスします。
次に、create
を選択して名前入力しNext
をクリックします。
Environment
にIBM Cloud
、Credential
に先ほど作成した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 type
とProfile
を選択し、Create
をクリックします。
実行結果
Security and Compliance
->Assess
->Scan results
にアクセスすると結果が確認できます。
お客様管理コレクターを利用したスキャン手順
お客様管理コレクターを用いて、特定のリソースのみのスキャンを実行する例を記載します。
お客様管理のコレクターを使用した IBM Cloud リソースのモニター
Credentialsを登録
お客様管理コレクターを使用する場合は、コレクターにリソースへのread権限を与える必要があります。
今回はPEMファイルを用いて、一般ユーザーでのリソースの権限をコレクターに付与します。
ID/Password方式だけでなく、SSH秘密鍵を使ったアクセスもサポートされています。
今回はLinuxにアクセスする際の秘密鍵をPEMファイルに変換して登録しています。
まずName
とPurpose
を入力・選択します。
Credential type
をUsername-PEM
を選択、ユーザー名を入力し、Add PEMFile
からPEMファイルを選択します。
Scopeを作成
Environment
をOn-premises
とし、
Discovery method
にてImport resouces from File
を選択します。
Resource list
では後述のjsonファイルを選択します。
特定のリソースを指定する場合、jsonファイル内でIPアドレスを用いてリソース指定します。
{
"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
ファイルを編集します。
# User privilege specification
ユーザー名 ALL=(ALL) NOPASSWD: ALL
スキャンを実行
scope詳細画面のActions
より、On-demand scan
をクリックします。
scan type
とProfile
を選択し、Create
します。
スキャン結果が表示されない・「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のコンプライアンス準拠状況を確認する