2.2. Ansible を使用した IDPS ルールの自動化

IDPS を自動化するには、ids_rule ロールを使用して Snort ルールを作成および変更します。Snort はルールベースの言語を使用しており、ネットワークトラフィックを分析して指定のルールセットと比較します。

以下のラボ環境では、Ansible セキュリティー自動化の統合に関するデモを紹介します。Attacker と呼ばれるマシンは、IDPS が実行されているターゲットマシン上で、攻撃パターンを想定してシミュレートします。

実際の設定では、他のベンダーやテクノロジーが含まれている点に注意してください。

Sample Ansible security automation integration

2.2.1. 新しい IDPS ルールの作成

関連情報

ids_rule ロールを使用して IDPS のルールおよび署名を管理します。たとえば、新しいルールを設定して、ファイアウォールで以前の攻撃に合わせた特定のパターンを検索できます。

注記

現在、ids_rule ロールは Snort IDPS のみをサポートしています。

前提条件

  • Snort サーバーに変更を加えるには、root 権限が必要です。

手順

  1. ansible-galaxy コマンドを使用して ids_rule ロールをインストールします。

    $ ansible-galaxy install ansible_security.ids_rule
  2. add_snort_rule.yml という名前の新しい Playbook ファイルを作成します。以下のパラメーターを設定します。

    - name: Add Snort rule
      hosts: snort
  3. become フラグを追加して、Ansible が権限昇格を処理するようにします。

    - name: Add Snort rule
      hosts: snort
      become: true
  4. 以下の変数を追加して IDPS プロバイダーの名前を指定します。

    - name: Add Snort rule
      hosts: snort
      become: true
    
      vars:
        ids_provider: snort
  5. Playbook に、以下のタスクおよびタスク固有の変数 (例: ルール、ルール、Snort ルールファイル、およびルールがない状態) を追加します。

    - name: Add Snort rule
      hosts: snort
      become: true
    
      vars:
        ids_provider: snort
    
      tasks:
        -  name: Add snort password attack rule
           include_role:
             name: "ansible_security.ids_rule"
           vars:
             ids_rule: 'alert tcp any any -> any any (msg:"Attempted /etc/passwd Attack"; uricontent:"/etc/passwd"; classtype:attempted-user; sid:99000004; priority:1; rev:1;)'
             ids_rules_file: '/etc/snort/rules/local.rules'
             ids_rule_state: present

    タスクは、ターゲットマシンに変更を加えるコンポーネントです。このようなタスクを定義するロールを使用しているため、必要となるエントリーは include_role のみです。

    ids_rules_file 変数は local.rules ファイルに定義された場所を指定し、ids_rule_state 変数は、ルールが存在しない場合には作成する必要があることを示しています。

  6. 以下のコマンドを実行して Playbook を実行します。

    $ ansible-navigator run add_snort_rule.ym --mode stdout

    Playbook を実行すると、新規作成したルールに加えて、すべてのタスクが実行します。Playbook の出力では、PLAY、TASK、RUNNING HANDLER、PLAY RECAP を確認します。

検証

IDPS ルールが正常に作成されたことを確認するには、Snort サーバーに対して SSH を実行し、/etc/snort/rules/local.rules ファイルの内容を表示します。