대답 통합 커뮤니티 참여 가이드라인
이 문서에서는 커뮤니티 기여를 통해 Google SecOps에 응답 통합을 제출하는 가이드라인을 간략하게 설명합니다. 제출된 모든 통합은 공식 Google SecOps팀의 심사 과정을 거치며, 이 문서에 강조 표시된 요구사항에 중점을 둡니다.
응답 통합 메타데이터
이름
이름은 통합이 통합될 제품 이름과 일치해야 하며 특수문자를 포함해서는 안 됩니다.
표시 이름은 공백을 포함하여 작성해야 합니다. 예를 들어 VertexAI
이 아닌 Vertex AI
입니다.
통합 식별자
통합 식별자는 통합의 고유 식별자입니다. 통합이 생성된 후에는 이 값을 변경할 수 없습니다.
식별자는 Name
과 동일한 값이어야 하지만 공백은 삭제해야 합니다.
식별자는 플랫폼 전반의 대부분의 위치에서 사용할 수 있습니다.
설명
설명은 통합이 생성된 제품의 개요를 제공해야 하며 500자를 초과해서는 안 됩니다. 다음 정보가 포함되어 있어야 합니다.
This integration is owned by the "{vendor name}". Support Contact: {email}.
설명에 URL을 포함하지 마세요.
로고
각 통합에는 SVG 아이콘이 제공되어야 합니다. 이 아이콘은 플랫폼 내의 테마에 적응해야 합니다. 아이콘은 플랫폼의 테마만 상속해야 합니다.
다음 페이지에서 로고를 검증해야 합니다.
- 응답 > 통합 설정
- 응답 > 플레이북 > 플레이북 디자이너
- 케이스 > 알림 > 알림 플레이북 보기
다음은 Google 스타일 가이드에 맞게 디자인된 SVG 로고의 예입니다.
<?xml version="1.0" encoding="UTF-8"?><svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 21 23"> <defs> <style> .cls-1 { stroke-width: 0px; } </style> </defs> <path class="cls-1" d="M15.51,4.79H5.49c-.4,0-.72.32-.72.72v5.75c0,2.3,1.71,4.15,3.69,5.38.54.34,1.1.62,1.66.86l.09.04c.06.02.12.05.18.06.03,0,.07,0,.1,0,.1,0,.19-.03.28-.07l.09-.04c.76-.33,2.22-1.03,3.46-2.24,1.24-1.22,1.89-2.6,1.89-4v-5.75c0-.4-.32-.72-.72-.72ZM14.32,11.26c0,.88-.44,1.77-1.32,2.63-.65.64-1.55,1.22-2.5,1.68-.95-.46-1.84-1.04-2.5-1.68-.88-.86-1.32-1.75-1.32-2.63v-4.55h7.64v4.55ZM20.28,0H.72c-.4,0-.72.32-.72.72v10.77c0,2.56,1.18,4.99,3.51,7.21,2.29,2.18,5.12,3.56,6.61,4.2l.09.04s.1.04.15.05c.04,0,.09.01.13.01.1,0,.19-.02.28-.06l.09-.04c.53-.23,1.23-.55,2.02-.97,1.42-.75,3.11-1.82,4.59-3.23,2.33-2.22,3.51-4.64,3.51-7.21V.72c0-.4-.32-.72-.72-.72ZM16.17,17.31c-1.9,1.81-4.24,3.04-5.67,3.69-1.43-.65-3.77-1.88-5.67-3.69-1.94-1.84-2.92-3.8-2.92-5.82V1.92h17.18v9.57c0,2.02-.98,3.98-2.92,5.82Z"/></svg>
마켓의 다른 통합에서 볼 수 있듯이 통합 정의 파일에 추가하기 전에 SVG를 인코딩해야 합니다.
문서 링크
통합의 일부로 사용자를 문서로 안내하는 링크를 추가할 수 있습니다. 이 문서는 개발자 측에서 호스팅해야 합니다.
사용자는 인스턴스 구성 대화상자의 매개변수 섹션에서 문서 링크에 액세스할 수 있습니다.
구성 매개변수
기본 API에 인증이 필요하지 않고 API 루트를 하드코딩할 수 있는 경우를 제외하고 모든 통합에는 구성 매개변수 (API 루트 + 인증 매개변수)가 포함되어야 합니다. 인증이 필요한 모든 통합에는 Verify SSL
매개변수가 있어야 합니다.
모든 매개변수에는 설명이 있어야 합니다. 설명을 통해 사용자가 플랫폼 내에서 통합을 구성할 수 있어야 합니다. 매개변수 설명에 URL을 넣지 마세요.
핑 작업
핑 작업은 플랫폼에서 API 연결을 검증하는 데 사용하는 특수 작업입니다. 이 작업은 통합에 다른 작업이 없는 경우에도 필수입니다. 사용자가 통합 구성 내에서 테스트 버튼을 누를 때마다 연결의 정확한 상태가 표시되어야 합니다.
출시 노트
일반적인 출시 노트 구조는 다음 형식을 따라야 합니다.
{integration item} - {update}
- 예:
Get Case Details - Added ability to fetch information about affected IOCs
상황에 따라 특정 시나리오에 대한 고유한 출시 노트가 있습니다.
- 새 통합인 경우:
New Integration Added - {integration name}
- 새 작업이 추가된 경우:
New Action Added - {action name}
- 새 커넥터가 추가된 경우:
New Connector Added - {connector name}
- 새 작업이 추가된 경우:
New Job Added - {job name}
- 사전 정의된 위젯이 작업에 추가되면 다음을 충족해야 합니다.
{action name} - Added Predefined Widget.
- 사전 정의된 위젯이 업데이트되는 경우:
{action name} - Updated Predefined Widget.
- 모든 통합 항목에 영향을 미치는 변경사항:
Integration - {Update}
- 모든 작업에 영향을 미치는 변경사항:
Integration's Actions - {Update}
- 모든 커넥터에 영향을 미치는 변경사항의 경우:
Integration's Connectors - {Update}
- 모든 작업에 영향을 미치는 변경사항의 경우:
Integration's Jobs - {Update}
출시에 회귀 변경사항이 포함된 경우 출시 노트에 REGRESSIVE!
를 지정해야 합니다. 예를 들면 다음과 같습니다.
Google Chronicle - Chronicle Alerts Connector - REGRESSIVE! Updated
mapping.
출시 노트는 통합에서 세부정보 버튼을 클릭할 때 표시되는 통합 세부정보 측면 드로어에서 확인할 수 있습니다.
버전 관리
각 통합 업데이트 후에는 통합 버전을 +1 업데이트해야 합니다. 버전은 정수로 표현해야 합니다. 11.1.3 또는 11.1과 같은 부 버전은 허용되지 않습니다.
태그
원하는 경우 통합에 태그를 추가할 수 있습니다. 새로운 유형의 태그를 만들지 말고 플랫폼 내에 이미 있는 태그를 사용하세요. 자신에게 적합한 태그가 표시되지 않으면 심사팀에 문의하세요.
일반 참고사항
- 제출 전에 모든 통합 콘텐츠를 테스트하세요.
- 잠재적 취약점과 취약한 종속 항목이 있는지 모든 통합 콘텐츠를 검토합니다.
- 개발 중에 항상 지원되는 최신 버전의 Python(Python 3.11)을 사용합니다.
작업
이름
작업의 이름은 실행되는 활동을 가리켜야 합니다. 예를 들어 케이스 세부정보 가져오기, 엔티티 이벤트 나열, 검색 실행 등이 있습니다.
작업이 주로 항목과 함께 작동하도록 설계된 경우 이름에 Entity
을 넣는 것이 좋습니다. 예를 들어 Enrich Entities
입니다.
작업 이름은 2~3단어로 전달해야 합니다.
설명
작업의 설명은 작업 실행의 결과를 사용자에게 강조해야 합니다.
작업이 항목과 함께 작동하는 경우 지원되는 항목 유형에 관한 정보를 추가해야 합니다. 예를 들면 다음과 같습니다.
Add a vote to entities in VirusTotal. Supported entities: File Hash, URL, Hostname, Domain, IP Address. Note: only MD5, SHA-1 and SHA-256 Hash types are supported.
작업이 비동기 모드에서 작동하는 경우 설명에 다음 참고사항을 제공해야 합니다.
Note: Action is running as async, adjust script timeout value in Google SecOps IDE for action, as needed.
설명을 500자 이내로 작성하세요.
작업 매개변수
작업 구성 매개변수의 이름은 직관적이어야 합니다. 특수 문자를 사용하지 말고 작업 매개변수 이름을 2~4단어로 제한하세요.
매개변수 설명은 사용자에게 해당 매개변수가 작업 실행에 미치는 영향을 설명해야 합니다. 매개변수가 지원되는 값의 미리 정해진 양을 지원하는 경우 설명 내에 다음 섹션을 제공합니다. Possible Values: {value 1}, {value 2}
작업 출력 (스크립트 결과)
스크립트 결과는 작업의 간단한 결과를 나타내야 합니다. 대부분의 경우 is_success
라는 변수를 가리키기만 하면 됩니다. 이 변수는 true
또는 false
값을 사용할 수 있습니다.
일반적으로 작업이 실행을 완료하고 작업을 수행한 경우 is_success
는 true
여야 합니다.
작업 출력 (JSON 결과)
JSON 결과는 작업의 가장 중요한 출력입니다. JSON 결과에서 사용할 수 있는 모든 데이터는 플레이북 실행 중에 액세스할 수 있습니다. 유효한 JSON 객체가 출력에 푸시되고 있는지 확인합니다.
JSON 결과의 크기는 15MB로 제한됩니다.
JSON 결과를 빌드할 때는 실행 중에 고유한 키가 없어야 합니다. 예를 들어 다음 JSON 객체는 플레이북 내에서 사용할 수 없으므로 구조가 좋지 않습니다.
{
"10.10.10.10": {
"is_malicious": "false"
}
}
대신 다음과 같이 형식을 지정하세요.
[
{
"is_malicious": "false",
"ip": "10.10.10.10"
}
]
작업 내에서 항목을 사용하고 항목별로 결과를 반환하는 경우 다음과 같이 JSON 결과를 구조화하는 것이 좋습니다.
[
{
"Entity": "10.10.10.10",
"EntityResult": {
"is_malicious": "false",
}
}
]
항상 작업의 출력이 자동화 내에서 어떻게 사용될 수 있는지 고려하세요.
작업에 JSON 샘플이 있는지 확인합니다.
JSON 샘플은 플레이북 빌드 프로세스 중에 표현식 빌더 내에서 플랫폼에 의해 사용됩니다. 정확한 JSON 샘플을 사용하면 플레이북 빌드 환경이 크게 개선됩니다. JSON 샘플에서 PII 정보를 삭제합니다.
작업 출력 (엔티티 보강)
작업이 엔티티에서 실행되는 경우 작업 실행 중에 엔티티에 메타데이터를 추가할 수 있습니다. 해당 메타데이터의 구조는 {integration identifier}_{key}
형식을 따라야 합니다. 예를 들면 WebRisk_is_malicious
입니다.
항목 세부정보 페이지에서 추가된 메타데이터를 확인할 수 있습니다.
작업 출력 (출력 메시지)
출력 메시지는 사용자에게 작업 실행이 어떻게 진행되었는지 더 자세히 설명해야 합니다. 사용자에게 작업 실행 결과를 알려야 합니다.
일부 항목은 성공적으로 보강되었지만 다른 항목은 보강되지 않은 경우 메시지에 제공된 각 항목의 상태 정보를 제공하는 것이 좋습니다.
작업 실행 중에 심각한 오류가 발생했다고 생각되면 이 상황에 관한 자세한 메시지가 있는지 확인하고 작업을 실패시킵니다. 작업이 실패하면 오류가 해결되거나 수동으로 건너뛸 때까지 해당 플레이북의 실행이 중지됩니다.
출력 메시지의 예는 다음과 같습니다.
Successfully enriched the following entities using information from VirusTotal: {entity.identifier}
Action wasn't able to find any information for the following entities using VirusTotal: {entity.identifier}
None of the provided entities were found in VirusTotal.
Successfully executed query "{query}" in Google SecOps.
작업이 실패하고 플레이북 실행을 중지해야 하는 경우 출력 메시지를 다음 구조로 만드는 것이 좋습니다.
"Error executing action "{action name}". Reason: {error}'
오류에 대한 전체 트레이스백을 넣지 마세요. 대신 자연어로 사용자에게 실제 문제를 지적하세요.
커넥터
이름
커넥터의 이름은 수집될 데이터를 사용자에게 알려야 합니다. 일반적으로 이름의 구조는 다음과 같아야 합니다.
{integration display name} - {data that is being ingested} Connector
- 예:
Crowdstrike - Pull Alerts Connector
설명
커넥터의 설명은 커넥터에서 인그레스할 항목을 사용자에게 강조 표시해야 합니다(예: Pull alerts from Crowdstrike
).
또한 동적 목록 지원에 관한 정보(예: Dynamic List works with the
)를 제공해야 합니다.display_name
parameter.
이 경우 최종 설명은 다음과 같습니다.
Pull alerts from Crowdstrike. Dynamic List works with the display_name
parameter.
설명을 500자 이내로 작성하세요.
커넥터 매개변수
커넥터 구성 매개변수의 이름은 직관적이어야 합니다. 특수 문자를 사용하지 말고 작업 매개변수 이름을 2~4단어로 제한하세요.
매개변수 설명은 해당 매개변수가 커넥터 실행에 미치는 영향을 사용자에게 설명해야 합니다.
파라미터가 지원되는 값의 미리 정해진 양을 지원하는 경우 설명 내에 Possible Values: {value 1}, {value 2}
섹션을 제공합니다. 다음 매개변수가 있어야 합니다.
- 가져올 최대 알림 수: 커넥터 반복 1회 동안 처리할 {object} 수를 지정합니다.
- 최대 {시간/일} 뒤로: 커넥터의 첫 번째 반복의 시작 시간을 지정합니다. 예를 들어 최대 시간이 1로 설정된 경우 커넥터는 1시간 전부터 데이터를 가져오기 시작합니다.
- SSL 확인: API/인스턴스로의 연결을 확인합니다.
온톨로지 매핑
생성된 각 커넥터에 대해 온톨로지 매핑을 제공하여 공통 고객에게 최상의 경험을 제공하는 것이 좋습니다.
온톨로지 매핑은 엔티티 (IOC 및 애셋)를 자동으로 만드는 데 사용됩니다. 또한 시작 시간, 종료 시간과 같은 시스템 필드의 중요한 메타데이터가 여기에 정의됩니다.
동적 목록
동적 목록은 수집을 위한 고급 필터를 빌드할 수 있는 선택적 기능입니다. 고유한 UX를 유지하면서 맞춤 로직을 유연하게 빌드할 수 있습니다. 가장 일반적인 사용 사례는 수집을 위한 허용 목록 또는 차단 목록을 정의하는 것입니다.
동적 목록에 대한 맞춤 로직을 빌드하는 경우 커넥터의 설명에 제공되어 있는지 확인하세요. 또한 역방향 논리도 지원되도록 동적 목록을 차단 목록으로 사용 매개변수를 사용하는 것이 좋습니다.
작업
이름
작업의 이름은 이 작업이 실행하는 내용을 사용자에게 설명해야 합니다. 일반적으로 이름의 구조는 다음과 같아야 합니다.
{integration display name} - {process} Job
- 예:
ServiceNow - Sync Incidents Job
설명
작업의 설명은 반복 중에 작업이 수행하는 작업을 사용자에게 강조해야 합니다. 예를 들어 This job will
synchronize Security Command Center based cases created by the Urgent Posture
Findings connector.
설명을 500자 이내로 작성하세요.
작업 매개변수
작업 구성 매개변수의 이름은 직관적이어야 합니다. 특수 문자를 사용하지 말고 작업 매개변수 이름을 2~4단어로 제한하세요.
매개변수 설명은 사용자에게 해당 매개변수가 작업 실행에 미치는 영향을 설명해야 합니다.
매개변수가 지원되는 값이 미리 정해진 양을 지원하는 경우 설명 내에 다음 섹션을 제공합니다.
Possible Values: {value 1}, {value 2}
개
인증 매개변수 외에도 모든 작업에는 다음 매개변수가 있어야 합니다.
- 최대 {시간/일} 뒤로: 작업의 첫 번째 반복의 시작 시간을 지정합니다.
- SSL 확인: API/인스턴스로의 연결을 확인합니다.
도움이 더 필요하신가요? 커뮤니티 회원 및 Google SecOps 전문가로부터 답변을 받으세요.