플레이북 루프로 작업 자동화하기
플레이북 루프 기능은 목록을 반복하고 각 항목에 대해 작업 집합을 한 번 실행하는 for-each 루프에 중점을 둡니다.
플레이북 루프를 사용하면 단일 작업 또는 일련의 작업을 여러 번 실행하여 엔티티와 같은 여러 항목을 효율적으로 처리할 수 있습니다. 이렇게 하면 여러 항목이나 기타 데이터 유형에서 반복 단계를 실행해야 할 때 작업을 맞춤설정하거나 작업을 수동으로 복제할 필요가 없습니다. 루프 내에 블록을 배치하거나 블록 내에 루프를 삽입하여 워크플로를 간소화할 수도 있습니다.
지원되는 루프 유형
플레이북 루프는 다음 데이터 유형에 대한 반복을 지원합니다.
- 항목: 알림 내 항목 목록을 반복할 수 있습니다.
- 목록: 자리표시자를 사용하여 사용자 정의 항목 목록 또는 동적으로 확인된 목록을 반복할 수 있습니다.
루프 구조화
플레이북 루프는 루프 시작 단계와 이에 상응하는 루프 종료 단계로 구성됩니다. 목록의 각 항목에 대해 반복하려는 작업은 이 두 단계 사이에 배치됩니다.
루프 시작
루프 시작 단계는 루프의 시작을 표시하며 루프의 구성을 포함합니다.
- 루프 시작 단계에서 루프에 이름을 할당할 수 있습니다. 이 이름은 루프 시작 및 루프 종료 단계에 모두 표시됩니다.
- 이 단계에서는 반복 매개변수(엔티티 또는 목록)를 정의하고 선택한 유형의 특정 설정을 구성합니다.
- 이 단계를 통해 루프가 반복 한도 (현재 100회 반복으로 제한됨)에 도달하거나 문제가 발생할 때 루프의 동작을 구성할 수 있습니다.
- 루프가 성공적으로 시작되면 체크표시가 표시됩니다.
루프 종료
루프 끝 단계는 루프의 엔드포인트를 표시합니다.
- 루프 종료 단계를 직접 수정할 수는 없습니다. 이 단계의 구성은 루프 시작 단계와 연결되어 있습니다.
- 루프가 모든 반복을 성공적으로 완료하면 루프 종료 단계에서 성공 상태 (체크표시로 표시됨)를 반환하고 JSON 결과에는 실행된 반복 횟수가 포함됩니다.
- 최대 반복 한도에 도달하여 모든 항목을 처리하기 전에 루프가 중지되면 JSON 결과에 건너뛴 항목 목록이 포함됩니다.
루프 내에서 작업 정의
루프 시작 단계와 루프 종료 단계 사이에 배치된 작업은 반복적으로 실행됩니다. 조건부 작업 및 블록을 포함하여 표준 플레이북 작업을 이 영역으로 드래그할 수 있습니다.
엔티티를 반복하는 루프
기본적으로 루프가 항목을 반복할 때 해당 루프 내의 작업은 각 반복의 현재 항목에만 적용됩니다. 작업은 루프가 진행됨에 따라 한 번에 하나의 항목을 처리합니다.
엔티티에서 작동하는 작업 (예: VirusTotal - 해시 보강)의 경우 작업은 루프 내의 현재 엔티티로 자동 범위가 지정됩니다. 루프 내에서 사용되는 항목 자리표시자도 현재 루프 항목만 참조합니다.
이를 설명하기 위해 해시를 스캔하고 악성 해시에 대한 티켓 만들기라는 사용 사례를 살펴보겠습니다.
엔티티를 반복하는 고급 루프
일부 사용 사례에서는 현재 반복된 항목과 다른 알림 항목의 정보에 모두 액세스해야 할 수 있습니다. 이를 위해 해당 특정 루프 작업에 대해 범위를 반복으로 잠금 전환 버튼을 사용 중지로 설정합니다.
- 전환 버튼이 사용 설정되면 항목 데이터와 자리표시자가 현재 루프되는 항목으로만 제한됩니다.
- 전환 버튼이 꺼져 있으면 항목 메뉴의 구성에 따라 항목 데이터와 자리표시자가 모든 알림 항목에 액세스할 수 있습니다.
Entity
자리표시자를 사용하여 알림 전체 항목 데이터에 액세스합니다.Loop.Entity
를 사용하여 현재 루프된 항목만 참조합니다.
이를 설명하기 위해 사용자 직책을 기반으로 악성 파일에 대한 우선순위 티켓 만들기라는 사용 사례를 살펴보겠습니다.
목록을 반복하는 루프
루프는 정의된 목록의 각 항목에 대해 일련의 작업을 실행할 수 있으며, 다음 작업을 할 수 있습니다.
- 목록을 직접 정의하거나 목록으로 확인되는 자리표시자를 사용합니다.
- 필요에 따라 구분 기호 (예: 쉼표 또는 슬래시)를 맞춤설정합니다.
Loop.item
자리표시자를 사용하여 반복된 항목을 참조합니다.
이를 설명하기 위해 유출된 비밀번호에 대해 사용자에게 알림 보내기라는 사용 사례를 살펴보겠습니다.
루프 내 블록 작업
루프 내에 플레이북 블록을 직접 포함할 수 있습니다. 블록을 루프로 드래그하면 루프에서 처리하는 각 항목 또는 항목에 대해 작업이 한 번 실행됩니다.
루프가 항목을 반복하는 경우 블록에는 반복에 범위 잠금 전환 버튼이 포함됩니다. 이 전환 버튼은 차단 액세스 항목 데이터 내에서 다음과 같이 작업을 제어합니다.
- 사용 설정: 블록 내의 모든 단계는 해당 특정 루프 반복의 현재 항목으로 범위가 지정됩니다. 이렇게 하면 블록의 모든 항목 자리표시자와 작업이 해당 반복의 관련 데이터에만 작동합니다.
- 사용 중지: 블록 내부의 단계는 모든 알림 항목에 액세스할 수 있습니다. 이 블록은 상위 루프에서 처리되는 항목뿐만 아니라 알림의 모든 항목을 수신합니다. 이 경우
loop.entity
자리표시자가 메뉴에 표시되며 반복된 항목에만 액세스하는 데 사용할 수 있습니다.
블록 내에서 루프 작업
플레이북 블록 내에 루프를 배치하여 블록 로직의 일부로 반복 작업을 실행할 수 있습니다. 이렇게 하면 플레이북의 범위가 지정된 섹션 내에서 항목이나 항목을 반복할 수 있습니다.
블록 내에서 루프를 구성하는 것은 플레이북에서 다른 루프를 설정하는 것과 동일한 프로세스를 따릅니다.
자세한 내용은 플레이북 루프 작업 구성을 참고하세요.
플레이북 루프 작업 구성
플레이북 루프 작업을 구성하려면 다음 단계를 따르세요.
- 탐색 메뉴에서 응답 > 플레이북으로 이동합니다.
- 수정하려는 플레이북을 열거나 새 플레이북을 만듭니다.
- + 단계 선택 열기를 클릭합니다.
- 루프 탭을 클릭합니다.
- For Each 루프 작업을 플레이북 캔버스로 드래그합니다. 이렇게 하면 중간에 작업을 추가할 수 있는 지정된 영역이 있는 루프 시작 및 루프 종료 단계가 자동으로 생성됩니다.
- 루프 시작을 구성합니다.
- 루프 시작 단계를 클릭하여 각 루프 측면 드로어를 엽니다.
- 매개변수 탭에서 루프 대상(항목 또는 목록)을 선택합니다.
- 항목: 항목 범위 (모든 항목, 의심스러운 항목 또는 맞춤 범위)를 선택합니다.
- 목록: 항목 필드에 항목 목록을 수동으로 또는 자리표시자를 사용하여 입력합니다. 항목을 구분할 구분 기호(예: 쉼표 또는 슬래시)를 정의합니다.
- 설정 탭에서 루프의 동작을 구성합니다.
- 작업 유형: 자동 (즉시 시작) 또는 수동 (사용자 작업 필요) 중에서 선택합니다.
- 단계가 실패하거나 최대 반복 횟수를 초과한 경우: 남은 항목을 건너뛰고 계속할지 아니면 플레이북을 중지할지 선택합니다.
- 루프 전후에 작업을 추가하여 데이터를 준비하거나 루프의 결과를 처리합니다.
제한사항
승인 링크는 플레이북 루프 내에서 지원되지 않습니다.
뷰 및 플레이북 루프 작업
이 섹션에서는 맞춤 위젯과 사전 빌드 위젯이 뷰 내에서 플레이북 루프의 정보를 표시하는 방법을 설명하고 루프에서 생성된 데이터 시각화의 중요한 측면을 다룹니다.
맞춤 위젯
내부 루프 단계에서 자리표시자를 직접 참조할 수는 없지만 루프 실행 중에 결과를 집계하여 위젯에 표시할 수 있습니다. 맞춤 위젯에 집계된 결과를 표시하려면 루프 내에서 컨텍스트 값을 사용합니다 (예: 도구 파워업에서 컨텍스트 값에 추가 작업을 사용).
사전 빌드된 위젯
Google에서는 플레이북 디자이너에서 지원되는 작업과 원활하게 통합되는 사전 빌드 위젯을 제공합니다. 지원되는 작업을 플레이북 디자이너로 드래그하면 시스템에서 관련 사전 빌드 위젯을 제안합니다. 이러한 위젯은 루프 내에서 사용되는 경우에도 작업에 직접 연결됩니다.
플레이북 시뮬레이터의 루프
플레이북 시뮬레이터는 루프와 블록이 포함된 플레이북에 대한 자세한 시각화를 제공합니다. 또한 블록 내에 중첩된 루프, 루프 내에 중첩된 블록과 같은 중첩 구조도 지원합니다. 시뮬레이터 뷰어 내에서 단계는 위에서 아래로 표시되며 (오래된 단계가 위쪽, 최신 단계가 아래쪽) 최신 활동을 표시하기 위해 자동으로 스크롤됩니다.
자세한 내용은 플레이북 시뮬레이터 사용을 참고하세요.
케이스 개요
루프가 포함된 플레이북이 실행되면 진행 상황과 각 반복의 결과에 관한 정보가 케이스 페이지의 여러 영역에 표시됩니다.
다음 섹션에서는 위젯, 플레이북 뷰어, 케이스 월에서 이러한 루프와 관련된 정보를 표시하는 방법을 설명합니다.
Widgets
케이스 개요의 사전 빌드 위젯은 해당 작업의 결과입니다. 작업이 루프 내에서 실행되면 위젯이 동적으로 업데이트되어 최신 루프 반복의 결과가 표시됩니다.
플레이북 뷰어
루프가 있는 플레이북을 실행하면 플레이북 뷰어에서 각 반복의 진행 상황과 결과를 추적할 수 있습니다. 이 기능에 액세스하려면 케이스 내에서 관련 알림을 선택하고 플레이북 탭을 클릭합니다.
플레이북 뷰어는 루프와 블록을 계층 구조로 표시합니다. 이 구성을 통해 중첩된 프로세스의 흐름을 시각화하고 각 단계의 컨텍스트를 이해할 수 있습니다.
플레이북 뷰어에서 다음 작업을 할 수 있습니다.
- 루프 단계는 함께 그룹화되므로 각 반복을 검토합니다.
- 반복 간에 이동하여 개별 결과를 검토합니다.
- 루프 내에서 단계를 선택하여 측면 드로어에 반복 번호를 표시합니다.
- 결과 보기를 클릭하여 루프 이름과 반복 횟수를 표시합니다.
케이스 월
루프 반복의 각 결과는 반복 번호와 같은 루프 표시와 함께 케이스 월에 표시됩니다. 이를 통해 각 반복 중에 취해진 작업을 추적하고 구분할 수 있습니다.
사용 사례
이 섹션에서는 플레이북 루프를 사용하여 다양한 유형의 워크플로를 자동화하는 방법을 보여주는 실제 예시를 제공합니다.
해시를 스캔하고 악성 해시에 대한 티켓 만들기
이 사용 사례에서는 다음 단계를 수행합니다.
- VirusTotal을 사용하여 알림에 있는 모든 파일의 해시를 검사합니다.
- 악성으로 식별된 각 파일에 대해 고유한 티켓을 자동으로 생성합니다.
다음 단계에 따라 플레이북을 만듭니다.
플레이북을 만들려면 다음 단계를 완료하세요.
- VirusTotal - Enrich Hash 작업을 플레이북 캔버스로 드래그하고 루프를 추가하기 전에 구성합니다.
- For Each 루프를 캔버스로 드래그합니다.
- 루프 시작을 클릭합니다.
- 매개변수 탭에서 항목을 반복 유형으로 선택합니다.
- 항목 메뉴에서 의심스러운 것으로 표시된 모든 항목을 선택합니다. 이 단계에서는 루프 실행이 이전 단계의 VirusTotal - 해시 보강 작업에서 의심스러운 것으로 표시된 엔티티로만 범위가 지정되도록 합니다.
- 티켓 만들기 작업을 루프로 드래그합니다. 이 작업의 정확한 이름과 구성은 사용 중인 티켓팅 시스템 통합에 따라 다릅니다.
- 티켓 만들기 작업의 구성에서 다음을 수행합니다.
- 티켓 제목(예:
Malicious File Detected
)을 입력합니다. - 설명 필드에서 자리표시자 메뉴를 사용하여 루프의 현재 항목에 관한 세부정보 (예:
Entity.Identifier
또는Entity.Type
)를 삽입합니다. 이제 의심스러운 항목과 연결된 VirusTotal 보강의 관련 정보를 포함합니다.
- 티켓 제목(예:
VirusTotal에서 악성으로 식별한 각 파일 해시에 대해 관련 세부정보가 포함된 고유 티켓이 생성됩니다.
사용자 직책에 따라 악성 파일에 대한 우선순위 티켓 만들기
이 사용 사례에서는 악성 파일을 식별한 후 (이전 사용 사례에서와 같이) 파일과 연결된 내부 사용자의 직책에 'CEO'가 포함되어 있는지에 따라 우선순위가 다른 새 티켓을 만듭니다.
시작하기 전에 이전 사용 사례의 초기 단계를 완료했는지 확인하세요.
- 루프 전의 VirusTotal - 해시 보강 작업으로 모든 파일 해시 항목을 타겟팅합니다.
- 범위가 의심스러운 것으로 표시된 모든 항목으로 설정된 항목을 반복하는 For Each Loop 작업
악성 파일에 대한 우선순위 티켓을 만들려면 다음 단계를 완료하세요.
- 루프 내에 조건부 작업을 추가합니다.
- 루프된 항목 외에 다른 알림 항목에 대한 액세스를 허용하려면 반복에 범위 잠금 전환 버튼을 사용 중지합니다.
- 항목 메뉴에서 내부 사용자를 선택합니다.
Entity.job
에CEO
이 포함되어 있는지 확인하는 조건을 구성합니다. 이 작업은 우선순위를 CRITICAL로 설정합니다.CEO
가 관련되지 않은 시나리오를 처리하려면 ELSE 분기를 사용합니다 (이렇게 하면 우선순위가 HIGH로 설정됨).- Create Ticket(티켓 만들기) 작업을 첫 번째 분기로 드래그합니다.
- 제목을 만듭니다 (예:
CRITICAL: Malicious File Detected - Potential CEO Impact
). - 침해사고 우선순위를 CRITICAL로 구성합니다.
- 설명 필드에 사용자와 관련된 세부정보와 VirusTotal 추가 정보의 정보를 포함합니다.
- 다른 Create Ticket(티켓 만들기) 작업을 ELSE(그 외) 브랜치로 드래그합니다.
- 제목을 만듭니다 (예:
Attention: Malicious File Detected
). - 인시던트 우선순위를 높음으로 구성합니다.
- 설명 필드에 사용자와 관련된 세부정보와 VirusTotal 추가 정보의 정보를 포함합니다.
각 악성 파일에 대해 플레이북은 연결된 내부 사용자의 직책을 확인합니다. 제목에 CEO
가 포함된 경우 CRITICAL 우선순위 티켓이 생성됩니다. 그렇지 않으면 높음 우선순위 티켓이 생성됩니다.
유출된 비밀번호에 관해 사용자에게 알리기
데이터 유출 감지 솔루션은 최근 데이터 유출로 인해 비밀번호가 유출된 사용자 이름 (이메일 주소) 목록을 제공합니다. 모든 사용자에게 하나의 이메일을 보내는 대신 영향을 받는 각 사용자에게 맞춤 이메일 알림을 보내고 싶습니다. 영향을 받는 사용자의 목록은 alert.affected_users 필드에서 확인할 수 있습니다.
다음 단계에 따라 플레이북을 만듭니다.
- For Each 루프 작업을 플레이북 캔버스로 드래그합니다.
- 루프 시작 단계를 클릭합니다.
- 매개변수 탭에서 반복 유형으로 목록을 선택합니다.
- Items 필드에서
alert.affected_users
자리표시자를 사용합니다. alert.affected_users
의 목록에서 쉼표 이외의 구분 기호를 사용하는 경우 구분 기호 필드에서 해당 구분 기호를 업데이트합니다.- 이메일 - 이메일 보내기 작업을 루프로 드래그합니다.
- 이메일 - 이메일 보내기 작업의 구성에서 다음을 수행합니다.
- 수신자 필드에서
Loop.Item
자리표시자를 사용합니다. 목록 루프가alert.affected_users
목록을 반복하면Loop.Item
자리표시자는 처리 중인 현재 이메일 주소를 나타내므로 각 사용자가 고유한 이메일을 받게 됩니다. - 사용자에게 유출된 비밀번호를 알리는 이메일의 제목과 내용을 구성합니다.
- 수신자 필드에서
alert.affected_users
목록의 각 사용자 (이메일 주소)는
유출된 비밀번호에 관한 맞춤 이메일 알림을 받습니다.
도움이 더 필요하신가요? 커뮤니티 회원 및 Google SecOps 전문가로부터 답변을 받으세요.