RISKENというセキュリティモニタリングツールをローカルPCで動かしてみた
先日、 AWS Security Roadshow 2021 で紹介した、RISKENというツールをローカルPCで実際に動かしてみようと思います。
背景
私は社内でセキュリティのインシデント対応などを行っているのですが、昨今クラウドセキュリティのモニタリングが必須となってきた背景があり、それをいかに社内でスケールさせるか、作業を効率化するかという悩みを抱えていました。
また、社内では特定のCSP(AWSなど)だけを利用しているわけではなく、「自由と責任」という文化がありエンジニアの裁量で技術スタックを選択します。
- モニタリング対象はAWSであったり、GCPであったり、さまざまなプラットフォーム(マルチクラウド)
- クラウドだけじゃなくて、ソースコードやアプリケーションのスキャンなど色々な観点で情報収集
という要件があって、有償のサービスもいくつか検証したのですが、予算的に難しく、、、、最終的に自作し公開しました
2024/12/16追記
ある日、RISKENを利用してくれる方のフォローをしている際に以下の事に気付きました。
- Kubernetes環境が必要になる時点で気が重い
- 検証時点ではそこまで大規模なユースケースは想定しない
ということで、 docker compose
でより簡単に立ち上がる手順を追記しました🙏
また、以下の環境変数を指定することで、生成AI機能や自身のSlackAppと連携も可能になります。
環境変数 | 説明 |
---|---|
OPEN_AI_TOKEN |
OpenAIのAPIキーです。これが設定されると生成AI機能が有効化されます |
CHAT_GPT_MODEL |
基盤モデルはChatGPTを採用しています。ChatGPTで利用するモデルを変更する場合には値を設定してください。 |
SLACK_API_TOKEN |
Slack Appと連携する場合にはSlackのAPIトークンを指定します。(これを設定することで、通知先のチャンネル指定などが可能になります。ない場合はWEBHookURLのみ利用可能です。) |
その他のパラメータはドキュメントを参照ください。
フィードバック大変ありがとうございます。今後ともよろしくお願い致します!
インストール
手順はドキュメントの方にまとめられているので、そちらに沿っていきます。
準備
今回はMacでインストールしていきます。以下の必要なツールをPCにインストールします。
あと、自分の場合は k9s という便利なツールをよく使ってます。Kubernetesクラスタ内のPodの状態や、ログの確認なんかも簡単にできて便利です。
Kubernetesを有効化する
- DockerDesktopが起動したら、
Preferences
(⚙) を開きます -
Preferences
>Resourses
>ADVANCED
で必要なリソースが割あたっているか確認します- 推奨は CPU=4, MEM=8GB 以上です
-
Preferences
>Kubernetes
からEnable Kubernetes
にチェックをいれます -
Apply & Restart
をクリックします
デプロイする
- サンプルmanifestをcloneします
$ git clone https://github.com/ca-risken/k8s-sample.git
$ cd k8s-sample
- makeコマンドでlocal環境にデプロイします
$ make local-apply
- PodのStatusが
Runnig
になるのを待ちます(初回起動は少し時間がかかりますが、1分~2分待ってると立ち上がりました)
$ kubectl get pod -A
- k9sの場合は以下のコマンドでPodの一覧とステータスが確認できます
$ k9s
M1 MacでDBコンテナが立ち上がらない問題があるかも?
RISKENは一部のコンテナはマルチアーキテクチャに対応していないイメージがあります。
Dockerのドキュメントにあるように起動時に対応が必要な場合があるかもしれません。(手元に環境がなく試せていないのですが、、、)
ARM64 アーキテクチャー向けのイメージがすべて利用可能となっているわけではありません。 Intel イメージの実行には、エミュレーションのもとで--platform linux/amd64をつけて実行することが必要です。 特に mysql イメージは ARM64 向けには利用できません。 これに対する当面の対処としては mariadb イメージを利用してください。
動作確認
-
http://localhost/ にアクセスし画面が表示されれば成功です👏
- 最初にログインするとユーザ名の入力が求められます
環境削除
以下のコマンドでRISKEN環境を削除できます(RISKEN用に作成したKubernetesオブジェクトを全て削除します)
$ make local-delete
まとめ
- ローカルPC上でRISKENというツールを動かしてみました
- 次回は、RISKENを使ってWEBサイトやAWSやGCPをスキャンしてみた的なブログを書いてみようと思います
Discussion