2.2. Ansible을 사용하여 IDPS 규칙 자동화
IDPS를 자동화하려면 ids_rule 역할을 사용하여 Snort 규칙을 만들고 변경합니다. snort는 네트워크 트래픽을 분석하고 지정된 규칙 세트와 비교하는 규칙 기반 언어를 사용합니다.
다음 랩 환경에서는 Ansible 보안 자동화 통합의 모양을 보여줍니다. "Attacker"라는 시스템은 IDPS가 실행 중인 대상 시스템에서 잠재적인 공격 패턴을 시뮬레이션합니다.
실제 설정에는 다른 공급업체 및 기술이 포함되어 있습니다.
2.2.1. 새 IDPS 규칙 생성 링크 복사링크가 클립보드에 복사되었습니다!
ids_rule 역할을 사용하여 IDPS의 규칙 및 서명을 관리합니다. 예를 들어 방화벽에 대한 이전 공격과 일치하는 특정 패턴을 찾는 새 규칙을 설정할 수 있습니다.
현재 ids_rule 역할은 Snort IDPS만 지원합니다.
사전 요구 사항
-
Snort 서버를 변경하려면
root권한이 필요합니다.
프로세스
ansible-galaxy 명령을 사용하여
ids_rule역할을 설치합니다.ansible-galaxy install ansible_security.ids_rule
$ ansible-galaxy install ansible_security.ids_ruleCopy to Clipboard Copied! Toggle word wrap Toggle overflow add_snort_rule.yml이라는 새 플레이북 파일을 만듭니다. 다음 매개변수를 설정합니다.- name: Add Snort rule hosts: snort
- name: Add Snort rule hosts: snortCopy to Clipboard Copied! Toggle word wrap Toggle overflow become플래그를 추가하여 Ansible이 권한 에스컬레이션을 처리하도록 합니다.- name: Add Snort rule hosts: snort become: true
- name: Add Snort rule hosts: snort become: trueCopy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 변수를 추가하여 IDPS 공급자의 이름을 지정합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 작업 및 작업별 변수(예: 규칙, Snort 규칙 파일, 규칙 상태)를 플레이북에 추가합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 작업은 대상 시스템을 변경하는 구성 요소입니다. 이러한 작업을 정의하는 역할을 사용하므로
include_role은 필요한 유일한 항목입니다.ids_rules_file변수는local.rules파일에 대해 정의된 위치를 지정하는 반면ids_rule_state변수는 규칙이 아직 존재하지 않는 경우 규칙을 생성해야 함을 나타냅니다.다음 명령을 실행하여 플레이북을 실행합니다.
ansible-navigator run add_snort_rule.ym --mode stdout
$ ansible-navigator run add_snort_rule.ym --mode stdoutCopy to Clipboard Copied! Toggle word wrap Toggle overflow 플레이북을 실행하면 새로 생성된 규칙 외에도 모든 작업이 실행됩니다. 플레이북 출력은 PLAY, TASK, RUNNING HANDLER 및 PLAY RECAP을 확인합니다.
검증
IDPS 규칙이 성공적으로 생성되었는지 확인하려면 Snort 서버에 SSH로 연결하고 /etc/snort/rules/local.rules 파일의 내용을 확인합니다.