5
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Oracle Cloud InfrastructureAdvent Calendar 2024

Day 12

2024年のセキュリティインシデントと私たちがやれる事を考えてみた -- その2 --

Last updated at Posted at 2024-12-10

Oracle Cloud Infrastructure Advent Calendar 2024 8日目の続き

  1. この記事では、OCI Object Storageへコマンド実行履歴を保管し、そのTextデータとOCI 生成AIエージェントを繋げてみるところまでを行います

1. OCI Object Storageへデータ連携

  • 8日目の記事「4.fluentで受け取る」では、stdoutへ出力/ファイルへ保存するだけでした
  • 要件に応じて、AWSやAzureに備わる各種機能を活用する事ももちろん可能ですが、OCI Object Storageへ保存させます
  • fluentからOCI Object Storageへの連携にはflunet-plugin-s3 を使います

1.1 Credential 準備

  • OCI Object Storageへデータ連携を行うにあたり必要となります
    • データ連携=「外部保管」です
  • OCIコンソールで「アイデンティティ」→「ユーザー」→「ユーザーの詳細」
     左の「リソース」メニューの「顧客秘密キー」を選択します
  • 「秘密キーの生成」をクリックし、任意の名称を付けて秘密キーを作成します
  • 生成された「秘密キー」と「アクセスキー」をテキストファイルにメモしておく事を忘れないでください

1.2 OCI Object Storage準備

  • Bukectを事前に作成しておいてください
  • この名称は後述の "s3_bucket" パラメータで指定します

1.3 fluentでOCI Object Storageへ繋げる

  • 既存のDocker Imageが既にs3プラグイン入りでBuildされている事が必須です
  • 1.1 の「秘密キー」と「アクセスキー」を下記の通り張り付ける
    <source>
      @type syslog
      port 5140
      bind 0.0.0.0
      tag terminal
      <parse>
        message_format rfc3164
        with_priority false
      </parse>
     </source>
    <match terminal.local6.*>
      @type stdout
    </match>
    
    • after
      • 内部で @type copy を使う事でfluentがデータを複製して様々なアクションを実現可能にします。fluent素晴らし!
    <source>
      @type syslog
      port 5140
      bind 0.0.0.0
      tag terminal
      <parse>
        message_format rfc3164
        with_priority false
      </parse>
    </source>
    <match terminal.local6.*>
      @type copy
      <store>
        @type stdout
      </store>
      <store>
        @type s3
        aws_key_id ”「アクセスキー」”
        aws_sec_key ”「秘密キー」”
        s3_bucket aiagent
        s3_region ap-tokyo-1
        s3_endpoint https://<コンパートメント>.compat.objectstorage.<リージョン>.oraclecloud.com
        check_apikey_on_start false
        ssl_verify_peer false
        force_path_style true
        <buffer>
          @type file
          #path /var/log/td-agent/buffer/oci.buffer
          path /fluentd/log
          chunk_limit_size 1m
          queue_limit_length 256
          store_as txt  # default: gzip (gzip,izo,json,txt)
          flush_at_shutdown true
          flush_interval 1s
          retry_wait 30s
          retry_max_times 9
        </buffer>
      </store>
     </match>
    
    • docker再起動
    [opc@ol8 fluentd]$ docker-compose restart
    [+] Restarting 1/1
    ? Container fluentd-fluentd-1  Started
    [opc@ol8 fluentd]$ docker logs -f fluentd-fluentd-1
    
    2024-12-09 07:10:15 +0000 [info]: #0 starting fluentd worker pid=16 ppid=7 worker=0
    2024-12-09 07:10:16 +0000 [warn]: #0 restoring buffer file: path = 
    /fluentd/log/buffer.q628cff0b64392bee6aaa9023c205f261.log
    2024-12-09 07:10:16 +0000 [warn]: #0 restoring buffer file: path = 
    /fluentd/log/buffer.q628d0834ebace3d5e15774265eeb8d13.log
    2024-12-09 07:10:16 +0000 [warn]: #0 restoring buffer file: path = 
    /fluentd/log/buffer.q628d09b1cc79c60c3a5b2ef3c4bcaba3.log
    2024-12-09 07:10:16 +0000 [info]: #0 listening syslog socket on 0.0.0.0:5140 with udp
    2024-12-09 07:10:16 +0000 [info]: #0 fluentd worker is now running worker=0
    

1.3 Object Storage確認

  • OCIコンソールでも確認可能ですが、aws cliでも確認が可能なので試してみます

1.3.1 aws cli install

[opc@ol8-arm64 ~]$ /usr/local/bin/aws configure
AWS Access Key ID [****************2412]: 「アクセスキー」
AWS Secret Access Key [****************9eg=]: 「秘密キー」
Default region name [None]:
Default output format [None]:

1.3.2 aws cli で oci object storageを覗く

[opc@ol8-arm64 ~]$ aws s3 --region ap-tokyo-1 --endpoint-url https://<コンパートメント>.compat.objectstorage.<リージョン名>.oraclecloud.com ls s3://<bucket名>
2024-12-09 07:10:17        300 20241209_0.gz
2024-12-09 07:10:18        198 20241209_1.gz
2024-12-09 07:10:19        650 20241209_2.gz
2024-12-09 07:17:54       6926 20241209_2.txt

2. OCI 生成AIエージェントを繋げてみる

  • コマンド実行履歴の外部保管を行う事に加え、OCI生成AIエージェントの「ナレッジベース」として使えるか試してみます
  • こちらの記事を参考にしました

2.1 生成Aiエージェント用Textデータの準備

  • 諸般の事情により、ap-tokyo-1 では生成AIエージェントが使えない為、Chicagoリージョンに同名のBucketとファイルをアップロードしてください

2.2 生成AIエージェントの作成

  • OCIコンソールで「生成AIエージェント」>「エージェント」>「エージェントの作成」で作成します
    スクリーンショット 2024-12-09 162437.png
  • Object Storageへ保存されたデータ連携ファイルを「データソース」として指定します
    スクリーンショット 2024-12-09 162344.png

2.3 生成AIエージェント・チャット

まとめ

  • セキュリティ対策として、任意のOSユーザのコマンド実行履歴をリアルタイムに補足、証跡を外部保管したものをOCI 生成AIエージェントを使って活用するアイデアを実現しました
  • これにより、OCI生成AIエージェントからチャット形式でコマンド実行履歴を確認する事が可能になります
  • 結果として、ログチェックの様な専門的なスキルが不要となり、確認するオペレーションコストも下げられる事が期待できます

以上

5
0
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
5
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?