보안 자동화 구현
Ansible을 사용하여 보안 이벤트 식별 및 관리
초록
Red Hat 문서에 관한 피드백 제공 링크 복사링크가 클립보드에 복사되었습니다!
이 문서를 개선하기 위한 제안이 있거나 오류를 찾을 수 있는 경우 https://access.redhat.com 에서 기술 지원에 문의하여 요청을 열 수 있습니다.
1장. Ansible 보안 자동화를 통한 방화벽 정책 관리 링크 복사링크가 클립보드에 복사되었습니다!
보안 운영자는 Ansible 보안 자동화를 사용하여 여러 방화벽 정책을 관리할 수 있습니다. 소스 IP 주소를 차단하거나 대상 IP 주소에 액세스하는 것을 차단하는 방화벽 규칙을 만들고 삭제합니다.
1.1. 방화벽 정책 관리 정보 링크 복사링크가 클립보드에 복사되었습니다!
조직의 네트워크 방화벽은 공격에 대한 첫 번째 방어선과 안전한 환경을 유지하기위한 중요한 구성 요소입니다. 보안 운영자는 보안 네트워크를 구성하고 관리하여 방화벽이 조직의 방화벽 정책에 정의된 인바운드 및 아웃바운드 네트워크 트래픽만 허용하도록 합니다. 방화벽 정책은 유해한 들어오고 나가는 트래픽으로부터 네트워크를 보호하는 보안 규칙으로 구성됩니다.
다양한 제품 및 벤더에서 여러 방화벽 규칙을 관리하는 것은 보안 팀에 시간이 소요되고 시간이 많이 걸릴 수 있습니다. 복잡한 작업을 포함하는 수동 워크플로우 프로세스는 오류가 발생할 수 있으며 궁극적으로 애플리케이션의 의심 스러운 동작을 조사하거나 서버에서 지속적인 공격을 중지하는 데 지연될 수 있습니다. 보안 포트폴리오의 모든 솔루션이 동일한 언어를 통해 자동화되면 보안 애널리스트와 운영자 모두 잠시 동안 다양한 제품에서 일련의 작업을 수행할 수 있습니다. 이 자동화된 프로세스는 보안 팀의 전반적인 효율성을 극대화합니다.
Ansible 보안 자동화는 다양한 벤더의 다양한 보안 기술과 상호 작용합니다. Ansible을 사용하면 보안 팀이 다양한 제품, 인터페이스 및 워크플로우를 통합 방식으로 관리하여 성공적인 배포를 생성할 수 있습니다. 예를 들어 보안 팀은 엔터프라이즈 방화벽과 같은 지원되는 기술에서 IP 및 URL 차단과 같은 작업을 자동화할 수 있습니다.
1.2. 방화벽 규칙 자동화 링크 복사링크가 클립보드에 복사되었습니다!
Ansible 보안 자동화를 사용하면 다양한 제품에서 일련의 작업이 필요한 다양한 방화벽 정책을 자동화할 수 있습니다. acl_manager 역할과 같은 Ansible 역할을 사용하여 IP 또는 URL 차단 또는 차단 해제와 같은 많은 방화벽 장치에 대한 ACL(액세스 제어 목록)을 관리할 수 있습니다. 역할을 사용하면 알려진 파일 구조를 기반으로 관련 변수, 파일, 작업, 핸들러 및 기타 Ansible 아티팩트를 자동으로 로드할 수 있습니다. 역할에서 콘텐츠를 그룹화한 후에는 쉽게 다시 사용하고 다른 사용자와 공유할 수 있습니다.
아래 랩 환경은 보다 복잡하고 추가 벤더별 툴을 포함하는 실제 엔터프라이즈 보안 아키텍처의 단순화된 예입니다. 이는 침입 경고를 수신하고 공격자의 IP 주소를 차단하는 acl_manger 역할을 사용하여 플레이북을 즉시 실행하는 일반적인 사고 대응 시나리오입니다.
팀 전체가 Ansible 보안 자동화를 사용하여 하나의 플랫폼에서 조사, 위협 검색 및 사고 대응을 해결할 수 있습니다. Red Hat Ansible Automation Platform 은 보안 팀 내에서 사용하기 쉽고 재사용할 수 있는 인증된 콘텐츠 컬렉션을 제공합니다.
1.2.1. 새 방화벽 규칙 생성 링크 복사링크가 클립보드에 복사되었습니다!
acl_manager 역할을 사용하여 소스 IP 주소가 대상 IP 주소에 액세스하지 못하도록 하는 새 방화벽 규칙을 생성합니다.
사전 요구 사항
- 최신 버전의 ansible-core가 설치되어 있습니다.
- 새 정책을 적용하려면 Check Point Management 서버에 액세스할 수 있습니다.
프로세스
ansible-galaxy 명령을 사용하여 acl_manager 역할을 설치합니다.
ansible-galaxy install ansible_security.acl_manager
$ ansible-galaxy install ansible_security.acl_managerCopy to Clipboard Copied! Toggle word wrap Toggle overflow 새 플레이북을 생성하고 다음 매개 변수를 설정합니다. 예를 들어 소스 오브젝트, 대상 오브젝트, 두 오브젝트와 관리 중인 실제 방화벽(예: Check Point) 간의 액세스 규칙입니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 플레이북
$ ansible-navigator run --ee false <playbook.yml> 을 실행합니다.
검증
소스 IP 주소가 대상 IP 주소에 액세스하는 것을 차단하는 새 방화벽 규칙을 생성했습니다. MGMT 서버에 액세스하여 새 보안 정책이 생성되었는지 확인합니다.
1.2.2. 방화벽 규칙 삭제 링크 복사링크가 클립보드에 복사되었습니다!
acl_manager 역할을 사용하여 보안 규칙을 삭제합니다.
사전 요구 사항
- Ansible 2.9 이상을 설치했습니다.
- 방화벽 MGMT 서버에 액세스하여 새 정책을 적용할 수 있습니다.
프로세스
ansible-galaxy 명령을 사용하여 acl_manager 역할을 설치합니다.
ansible-galaxy install ansible_security.acl_manager
$ ansible-galaxy install ansible_security.acl_managerCopy to Clipboard Copied! Toggle word wrap Toggle overflow CLI를 사용하여 acl_manger 역할을 사용하여 새 플레이북을 생성하고 매개변수(예: 소스 오브젝트, 대상 오브젝트, 두 오브젝트 간 액세스 규칙)를 설정합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 플레이북 $ ansible-navigator run --ee false <playbook.yml>을 실행합니다.
검증
방화벽 규칙을 삭제했습니다. MGMT 서버에 액세스하여 새 보안 정책이 제거되었는지 확인합니다.
2장. Ansible을 사용하여 IDPS(Network Intrusion Detection and Prevention Systems) 자동화 링크 복사링크가 클립보드에 복사되었습니다!
Ansible을 사용하여 IDPS(Intrusion Detection and Prevention System)를 자동화할 수 있습니다. 이 가이드의 목적을 위해 IDPS로 Snort를 사용합니다. Ansible 자동화 허브를 사용하여 작업, 역할 및 모듈과 같은 콘텐츠 컬렉션을 사용하여 자동화된 워크플로를 생성합니다.
2.1. 요구 사항 및 사전 요구 사항 링크 복사링크가 클립보드에 복사되었습니다!
Ansible을 사용하여 IDPS 자동화를 시작하기 전에 IDPS를 성공적으로 관리하는 데 필요한 적절한 설치 및 구성이 있는지 확인합니다.
- Ansible-core 2.15 이상을 설치했습니다.
- SSH 연결 및 키가 구성됩니다.
- IDPS 소프트웨어(Snort)가 설치 및 구성되어 있습니다.
- 새 정책을 적용하기 위해 IDPS 서버(Snort)에 액세스할 수 있습니다.
2.1.1. IDPS 설치 확인 링크 복사링크가 클립보드에 복사되었습니다!
Snort가 성공적으로 구성되었는지 확인하려면 sudo 를 통해 호출하고 버전을 요청합니다.
sudo systemctl 을 통해 서비스가 적극적으로 실행되고 있는지 확인합니다.
Snort 서비스가 실행 중이 아닌 경우 systemctl restart snort 를 사용하여 다시 시작하고 상태를 다시 확인합니다.
서비스가 적극적으로 실행 중인지 확인한 후 CTRL 및 D 를 동시에 누르거나 명령줄에서 exit 을 입력하여 Snort 서버를 종료합니다. 모든 추가 상호 작용은 Ansible 제어 호스트에서 Ansible을 통해 수행됩니다.
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 파일의 내용을 확인합니다.