Search

Playbook

대분류
DevOps/Tool
보안
소분류
FortiSoar
유형
플레이북
사용법
최종 편집 일시
2024/10/30 02:04
생성 일시
2024/01/09 00:54
15 more properties

SOAR(Security Orchestration, Automation and Response) Playbook

개요

보안 자동화 솔루션
SOC Portal(보안관제센터 프론트)기능이 약해서 분석까지만 권장함

플레이북 소유권 할당

특정 팀에서만 특정 플레이북을 실행하도록 하려면 비공개 플레이북을 생성하고 해당 팀에서만 플레이북을 할당 가능
기본 옵션 : 공개
비공개 설정
특정 팀에 플레이북을 할당 방법 (여러 팀 할당 가능)
^ 팀 아이콘 클릭 → Assign Owners 대화상자 → Owner 드롭다운 목록 → 플레이북을 소유할 팀을 선택 후 Assign 클릭
특정 팀 소유권 제거
팀 이름 옆에 나타나는 빨간색 십자가 클릭
플레이북 컬렉션을 내보내면 해당 컬렉션 내의 모든 플레이북은 “공개”됨. 일부가 “비공개” 플레이북으로 표시되어 있고 비공개 플레이북의 소유자가 비어있는 경우에도 동일 → 이러한 플레이북을 FortiSOAR로 다시 가져와서 플레이북을 비공개로 설정하려면 플레이북을 열고 "비공개"를 클릭하고 소유자 재할당 필요, 단일 비공개 플레이북을 내보내면 해당 플레이북도 공개로 표시되고 해당 소유자도 비어있게 됨.

플레이북 만들기

1.
Automation > Playbooks 접속
2.
Playbook Collections(=Folder) 메뉴 → New Collection 클릭
참고 : 페이지에 플레이북을 직접 추가 불가, 플레이북 컬렉션에서 플레이북 추가 가능
3.
Add New Playbook Collection 메뉴 → Name 필수 & Description 선택 & 이미지(Icon) 변경 선택 필드 작성
4.
Add New Playbook 클릭
5.
Add New Playbook 메뉴→ (컬렉션 내 고유이름) Name필수 & Tag, Description 선택 필드 작성
6.
Save 클릭
7.
상단 이름 필드 = Playbook Designer 자리에 Triger Step과 지정한 이름 표시
8.
(선택 사항) Step 편집 및 제거 : 트리거단계를 더블 클릭
정보 : 해당 Step에 대한 추가 정보 표시(사용 가능한 경우)
복제 : 현재 Step의 복사본(이름 : &Step Name&) 생성
삭제 : 현재 Step 완전 삭제

BPMN

BPMN(비즈니스 프로세스 모델링 표기법) 공유 가능 Workflows를 FortiSOAR 플레이북으로 가져오기

BPMN(순서도 생성 도구) 워크플로 → FortiSOAR 플레이북으로 직접 변환 가능
1.
Flowable, Camunda 또는 Signavio와 같은 도구에서 BPMN 공유 가능 Workflows 내보내기 XML 형식 BPMN Workflows 내보내기
2.
FortiSOAR은 단일 BPMN Workflows 가져오기만 지원 BPMN Workflows 모음 가져오기 불가
a.
Automation → Playbooks 접속
b.
Import BPMN 클릭
c.
Import BPMN 메뉴
i.
BPMN Tool 드롭다운 목록 → BPMN Workflows 생성 도구 클릭
ii.
BPMN Output Format 드롭다운 목록 → BPMN 워크플로 변환 출력 형식 선택 FortiSOAR은 출력 형식으로 XML만 지원
iii.
BPMN XML 파일을 끌어서 놓거나 Import Icon 클릭 후 가져오기
BPMN 워크플로의 XML에 일치하지 않는 요소나 기타 오류가 포함되어 있지 않으면 FortiSOAR에서 워크플로를 플레이북으로 가져올 수 있음.
iv.
Import Icon 클릭 후 BPMN 워크플로우 파일 가져오기
플레이북 이름 = 고유 즉, 가져오려는 동일한 이름을 가진 두 개의 워크플로가 있는 경우 플레이북 이름을 변경하거나 기존 플레이북 교체 확인란을 클릭하여 기존 플레이북 교체 필요
표시 내역

BPMN workflow steps → Playbook FortiSOAR steps

Flowable (BPMN) step
FortiSOAR steps
Notes
SequenceFlows
Routes 노선
모든 BPMN Workflow의 SequenceFlows 정의 항목은 FortiSOAR Decision 플레이북 단계로 변환
StartEvent
Trigger steps
BPMN Workflow는 BPMN 워크플로우의 시작점인 "시작" 이벤트가 필수 → BPMN Workflow 시작 이벤트는 FortiSOAR Playbooks의 Manual Trigger로 변환
Gateways
Decision Step
BPMN Workflow에는 게이트웨이 ID를 참조해야 하는 "Flow Condition" 입력이 필수
UserTasks
Manual Tasks step
참고: 만약 FortiSOAR Manual Task step에 따라 <userTask>가 생성되지 않은 경우, 플레이북이 실패하는 대신에 FortiSOAR 플레이북에 generic manual task step이 생성 워크플로를 가져온 후 수동 작업 단계 업데이트 가능
ServiceTasks
Create Record step Or Update Record step
BPMN Workflow <serviceTask> 필수 항목 - 모델 검증에 필요한 "클래스" 속성 - "클래스" 속성은 무조건 module로 지정 - 생성 또는 업데이트를 포함하는 "클래스 필드"를 추가 필요
ScriptTasks
Connector step or as a Code Snippet step
BPMN Workflow <scriptTask> 필수 항목 - Name= {{ConnectorName}} - scriptFormat= {{FortiSOAR Connector Action}} - <script>=> CDATA[ {{property mapping}} ] 참고 : <scriptTask> step에서 정의한 커넥터가 FortiSOAR 인스턴스에 설치되지 않은 경우 플레이북 실패하는 대신에 일반 커넥터 step이 대신 FortiSOAR 플레이북에 생성. Workflow를 가져온 후 커넥터 단계 업데이트 가능
MailTasks
SMTP step
<serviceTask>의 mailTask유형 BPMN Workflow필수 항목 <serviceTask> Flowable:type.mail
HttpTasks
FortiSOAR Utility Step (REST API call)
<serviceTask>의 httpTask유형BPMN Workflow필수 항목 <serviceTask> Flowable:type.http

플레이북 작업

1.
Automation → Playbooks 클릭
2.
<Playbooks Collections> Page
Import (내보내기) : 플레이북 컬렉션(JSON형식)을 내보내기 (연결된 모든태그 시스템 방출)
Export(가져오기) : 플레이북 컬렉션을 FortiSOAR로 가져오기 (연결된 모든태그 시스템 삽입
Delete (삭제) : Delete 모듈 권한 보유 사용자만 가능
영구 삭제
휴지통으로 이동
추가 옵션 아이콘 클릭 →
Reset Columns To Default (열값 재설정)
Created By (생성자) 필드
Created On (생성날짜) 필드
Modified On (수정날짜) 필드
Modified By (수정자) 필드
Import Playbook (플레이북 가져오기) : (JSON 형식의 플레이북 + 연결된 모든 태그) → 시스템 삽입
3.
<Playbooks Listing> Page
Activate (활성화) : 플레이북 활성화
Deactivate (비활성화) : 플레이북 비활성화
Clone (복제) : 새 플레이북 시작점으로 재사용 (두 개 이상 선택 가능)
Move (이동) : 다른 기존 컬렉션으로 이동
Export (내보내기) : 플레이북을 JSON 형식으로 내보내기
Delete (삭제)
영구 삭제
휴지통으로 이동

플레이북 편집

<Playbooks Listing> Page →
Is Active Box : Active | Inactive
Name Box : 이름 변경
Description : 설명 추가 및 업데이트
Tags : 태그 추가 및 제거
Tools Menu
Edit Parameters (매개변수 추가)
Global Variables (전역변수 추가)
Execution History (실행 기록)
Execution Priority (실행 우선순위)
Jinja Editor : JSON 입력에 Jinja 템플릿을 적용한 후 출력을 렌더링 할 때 사용 → Jinja를 플레이북에 추가하기 전에 유호성과 출력을 확인할 수 있음.

Optional

Export : 플레이북을 JSON형식으로 내보내기
Delete : 플레이북 삭제
Trigger Playbook With Sample Data : 플레이북 디자이너에서 플레이북을 트리거
Auto-Align-Vertical/Horizontal (수직 / 수평)
Undo / Redo : Ctrl + z / y
우측 하단에 Undo / Redo 버튼 : Step 수정 사항이 삭제 및 복구
Add Block : 플레이북에 블록 추가(블록 일부인 Step은 점선, 일부가 아닌 Step은 실선)
Add Note : 플레이북에 대한 메모 추가
Hide Note in Executed Playbook Log : 실행된 플레이북 로그의 플레이북에 추가된 노트 표시/비표시 옵션

블록 옵션

Info : 블록에 대한 추가 정보, 즉 블록에 추가한 설명을 표시
Minimize/Maximize : 블록 최소화 / 최대화
Edit : 블록의 이름 및/또는 설명을 편집할 수 있는 대화 상자 열기
Delete : 블록 삭제. 블록을 삭제하면 블록만 삭제되고 해당 블록의 일부였던 플레이북 단계는 삭제 불가

플레이북 디버깅

Trigger Playbook with Sample Data
Last Run Data : 마지막 실행 데이터 사용
Choose a recent playbook execution drop-down : 트리거하려는 환경의 플레이북 실행
Trigger Playbook : 플레이북 트리거
Record Input/Custom : 레코드 입력/사용자 지정 사용
Select Record drop-down : 원하는 데이터(예 : 필드 및 값)를 사용하는 레코드 선택 * 최근 생성된 30개의 레코드를 가져옴
트리거 후 플레이북에 대해 정의한 트리거 유형에 따라 입력을 제공
Does not require a record input to run이 선택된 수동 트리거 Step : Select Record drop-down이 표시되지 않음
Run separately for each selected records이 선택된 수동 트리거 Step : 단일 플레이북만 실행
참조된 트리거일 경우 매개변수 값을 제공하고 해당 매개변수를 사용하여 플레이북을 트리거할 수 있음.
Enable mock output(모의 출력 활성화) : 플레이북을 실행하는 동안 단계에 정의된 “모의 출력” 사용가능

플레이북 실행 우선순위 변경

기본 실행 우선순위

작업 실행에 사용할 수 있는 작업자가 있으면 먼저 "높음" 대기열에서 작업이 할당됩니다.
모든 작업자가 낮은 우선 순위 작업을 수행하고 있고 우선 순위가 높은 작업이 나타나면 작업자가 다시 사용 가능한 경우에만 우선 순위가 높은 작업이 실행됩니다.
우선순위가 높은 작업이 있으면 우선순위가 낮은 작업은 실행되지 않습니다.

수동 우선순위 지정 설정 방법

Tools → Execution Priority
HighMedium, or Low : High부터 높은 우선순위
celery : 대기열의 메시지 수(워크플로 수)를 나열 명령어
rabbitmqctl list_queues -p fsr-cluster --no-table-headers --silent | grep -E "^\s*celery\s+" | awk '{print $2}
JavaScript
복사
대기열이 없으면 0(기본값)이 표시, 대기열이 쌓이면 다음과 같은 대기열 수 번호가 표시
다음 프로세스를 사용하여 Flower 웹 서버 가동
cd /opt/cyops-workflow/sealab ../.env/bin/flower -A sealab --port=5555
JavaScript
복사
모든 '동기화' 참조 플레이북은 상위 플레이북의 우선순위를 자동으로 상속하므로 사전 설정된 우선순위는 무시됩니다.
예약된 플레이북의 실행 우선순위를 업데이트하는 경우 해당 플레이북과 연결된 일정을 편집하고 다시 저장해야 합니다.
데이터 수집 플레이북을 예약하려면 데이터 수집 플레이북을 예약하기 전에 데이터 수집 플레이북의 우선순위를 설정해야 합니다.

실시간 시용자의 이점

사용자는 동일한 플레이북에서 활성화된 다른 사용자 또는 세션에 대한 알림을 받음.
사용자는 최신 버전의 플레이북에서 작업하며 플레이북에 대한 업데이트가 손실되지 않음.

Playbook Version

플레이북 버전 저장

모든 사용자에 대해 촬영할 수 있는 최대 버전 수는 20개
귀하 또는 다른 사용자가 20개 이상의 스냅샷을 촬영하려고 하면 버전을 삭제하여 스냅샷을 해제하라는 확인 대화 상자가 표시

플레이북 버전 내보내기

플레이북을 내보내는 동안 플레이북 버전을 유지하면 이전에 저장한 플레이북 버전의 스냅샷을 가져온 플레이북에 로드가능
Save Version → View Saved Versions : 이전에 저장한 플레이북 버전 확인
Load : 이전에 저장한 플레이북 버전의 스냅샷 로드
View Current Saved Playbook : 마지막으로 저장되었을 때의 플레이북 상태로 되돌리기

플레이북 복구

마지막 변경 후 15초 후에 초안 저장
Application Configuration Tab : 시간(초)를 수정하여 모든 플레이북에서 이 시간을 변경하도록 관리자에게 요청 가능 (최소 시간 5초)

시스템 플레이북

전역 변수 에 대한 참조가 포함된 플레이북은 approvalHostapprovalHost variable undefined' 오류와 함께 실패합니다. approvalHost전역 변수가 릴리스 7.2.0부터 제거되었기 때문입니다. 이 오류를 해결하려면 approvalHost플레이북의 전역 변수를 Server_fqhn전역 변수로 바꾸세요.