CSV
통합 버전: 31.0
권한 필수 요건
통합을 사용하여 파일로 작업하려면 올바른 권한이 있어야 합니다. 다음 명령어를 실행하여 폴더에 올바른 권한을 제공합니다. chown scripting:scripting "directory_path"
Google Security Operations에서 CSV 통합 구성
Google SecOps에서 통합을 구성하는 방법에 대한 자세한 내용은 통합 구성을 참고하세요.
통합 매개변수
다음 매개변수를 사용하여 통합을 구성합니다.
매개변수 표시 이름 | 유형 | 기본값 | 필수 항목 | 설명 |
---|---|---|---|---|
인스턴스 이름 | 문자열 | 해당 사항 없음 | No | 통합을 구성할 인스턴스의 이름입니다. |
설명 | 문자열 | 해당 사항 없음 | No | 인스턴스에 대한 설명입니다. |
원격 실행 | 체크박스 | 선택 해제 | No | 구성된 통합을 원격으로 실행하려면 필드를 선택합니다. 선택하면 원격 사용자(에이전트)를 선택하는 옵션이 나타납니다. |
작업
JSON을 CSV로 저장
설명
JSON 객체를 CSV로 저장합니다.
매개변수
매개변수 이름 | 유형 | 기본값 | 필수 | 설명 |
---|---|---|---|---|
JSON 객체 | JSON | 해당 사항 없음 | 예 | CSV로 저장할 JSON 객체를 지정합니다. |
덮어쓰기 | 불리언 | 거짓 | 아니요 | 사용 설정하면 작업에서 기존 파일을 덮어씁니다. |
파일 경로 | 문자열 | 해당 사항 없음 | 예 | 새로 생성된 CSV 파일의 절대 파일 경로를 지정합니다. 파일 이름만 제공되면 작업에서 파일을 /tmp/ 폴더에 저장합니다. |
실행
해당 사항 없음
작업 결과
스크립트 결과
스크립트 결과 이름 | 값 |
---|---|
is_success | True/False |
JSON 결과
{"filepath": "{file name}"}
케이스 월
이 작업은 다음 출력 메시지를 제공합니다.
출력 메시지 | 메시지 설명 |
---|---|
JSON 객체를 변환하여 제공된 파일 경로에 저장했습니다. | 작업이 완료되었습니다. |
제공된 경로에서 파일을 찾을 수 없습니다. | 파일이 없습니다. |
제공된 서비스 계정의 활동이 Google Cloud 정책 인텔리전스에서 발견되지 않음 | 작업에서 나열된 서비스 계정의 데이터를 찾을 수 없습니다. |
'JSON을 CSV로 저장' 작업을 실행하는 동안 오류가 발생했습니다. | 작업에서 오류가 반환되었습니다. 서버, 입력 매개변수 또는 사용자 인증 정보에 대한 연결을 확인합니다. |
문자열로 검색
설명
CSV 파일에서 문자열을 검색합니다.
매개변수
파라미터 이름 | 유형 | 기본값 | 필수 항목 | 설명 |
---|---|---|---|---|
CSV 경로 | 문자열 | 해당 사항 없음 | 예 | CSV 파일의 파일 경로 또는 모든 CSV 파일이 포함된 폴더 경로를 지정합니다. 폴더가 제공되면 작업은 폴더의 모든 CSV 파일을 반복합니다. |
CSV 열 | 문자열 | 해당 사항 없음 | 아니요 | 엔티티 정보를 포함할 수 있는 열을 쉼표로 구분된 목록으로 지정합니다. 아무것도 제공하지 않으면 작업에서 모든 열을 검색합니다. |
일 전 | 문자열 | 10 | 아니요 | CSV 파일을 처리할 이전 일수를 지정합니다. |
검색 값 | 문자열 | 해당 사항 없음 | 아니요 | 검색해야 하는 문자열을 지정합니다. '여러 문자열 검색'이 사용 설정된 경우 이 매개변수는 검색해야 하는 문자열의 쉼표로 구분된 목록으로 처리됩니다. |
첫 번째 행만 반환합니다. | 체크박스 | 선택 해제 | 아니요 | 사용 설정하면 작업에서 항목과 일치하는 첫 번째 파일의 행 1개만 반환합니다. |
파일 인코딩 유형 | 문자열 | utf-8, latin-1, iso-8859-1 | 예 | CSV 파일을 디코딩하는 데 사용되는 쉼표로 구분된 목록 CSV 인코딩 유형입니다(예: utf-8, latin-1, iso-8859-1, utf-16). 인코딩 유형이 지정된 순서에 따라 파일 디코딩에 사용되는 순서가 설정됩니다.예를 들어 위의 예에서 utf-8의 우선순위가 가장 높으므로 모든 파일을 디코딩하는 데 주로 사용됩니다. 다른 인코딩을 사용하는 CSV 파일이 있으면 순서대로 다음 인코딩인 latin-1 인코딩이 사용되고 마지막 인코딩이 사용될 때까지 이 과정이 반복됩니다. |
여러 문자열 검색 | 체크박스 | 선택 해제 | 아니요 | 사용 설정하면 '검색 값'이 단일 문자열이 아닌 쉼표로 구분된 값 목록으로 작동합니다. |
반환할 필드 | CSV | 해당 사항 없음 | 아니요 | 반환해야 하는 값을 쉼표로 구분된 목록으로 지정합니다. |
사용 사례
CSV 파일에서 문자열을 검색합니다.
실행
이 작업은 모든 항목에서 실행됩니다.
작업 결과
스크립트 결과
스크립트 결과 이름 | 값 옵션 | 예시 |
---|---|---|
count_rows_csv | 행 수 제한 없음 | count_rows += 1 |
JSON 결과
[
{
"EntityResult": {
"Field2": "Value2",
"Field3": "Value3",
"Field1": "Value1",
"Field4": "Value4",
"Field5": "Value5"
},
"Entity": "host"
}, {
"EntityResult": {
"Field2": "Value2",
"Field3": "Value3",
"Field1": "Value1",
"Field4": "Value4",
"Field5": "Value5"
}, "Entity": "1.1.1.1"
}
]
케이스 월
결과 유형 | 값 / 설명 | 유형 |
---|---|---|
출력 메시지* | 레코드가 발견된 경우: '다음 문자열에 관한 정보를 찾았습니다. \n (search_string)' 일부 문자열에 대한 레코드를 찾을 수 없는 경우: "작업에서 다음 문자열에 대한 정보를 찾을 수 없습니다." 모든 레코드가 성공하지 않은 경우: "제공된 항목에 대한 정보를 찾을 수 없습니다." 모든 인코딩이 유효하지 않은 경우: "'문자열로 CSV 검색' 작업을 실행하는 동안 오류가 발생했습니다. 제공된 인코딩이 잘못되었습니다. 철자를 확인하세요." |
일반 |
엔티티별 검색
설명
CSV 파일에서 항목을 검색하고 보강합니다.
매개변수
파라미터 이름 | 유형 | 기본값 | 필수 항목 | 설명 |
---|---|---|---|---|
CSV 경로 | 문자열 | 해당 사항 없음 | 예 | CSV 파일의 파일 경로 또는 모든 CSV 파일이 포함된 폴더 경로를 지정합니다. 폴더가 제공되면 작업은 폴더의 모든 CSV 파일을 반복합니다. |
CSV 열 | 문자열 | 해당 사항 없음 | 예 | 엔티티 정보를 포함할 수 있는 열을 쉼표로 구분된 목록으로 지정합니다. 아무것도 제공하지 않으면 작업에서 모든 열을 검색합니다. |
일 전 | 문자열 | 10 | 예 | CSV 파일을 처리할 이전 일수를 지정합니다. |
의심스러운 케이스로 표시 | 체크박스 | 선택 해제 | 아니요 | 사용 설정된 경우 파일에서 발견된 항목을 의심스러운 항목으로 표시합니다. |
첫 번째 행만 반환합니다. | 체크박스 | 선택 해제 | 아니요 | 사용 설정하면 작업에서 항목과 일치하는 첫 번째 파일의 행 1개만 반환합니다. |
파일 인코딩 유형 | 문자열 | utf-8, latin-1, iso-8859-1 | 예 | CSV 파일을 디코딩하는 데 사용되는 쉼표로 구분된 목록 CSV 인코딩 유형입니다(예: utf-8, latin-1, iso-8859-1, utf-16). 인코딩 유형이 지정된 순서에 따라 파일 디코딩에 사용되는 순서가 설정됩니다.예를 들어 위의 예에서 utf-8의 우선순위가 가장 높으므로 모든 파일을 디코딩하는 데 주로 사용됩니다. 다른 인코딩을 사용하는 CSV 파일이 있으면 순서대로 다음 인코딩인 latin-1 인코딩이 사용되고 마지막 인코딩이 사용될 때까지 이 과정이 반복됩니다. |
항목 보강 | 체크박스 | 선택 | 아니요 | 사용 설정하면 작업에서 CSV 파일의 정보를 추가하여 항목의 보강 테이블에 추가합니다. |
통계 만들기 | 체크박스 | 선택 | 아니요 | 사용 설정하면 파일에서 항목이 발견된 경우 작업에서 통계를 만듭니다. |
반환할 필드 | CSV | 해당 사항 없음 | 아니요 | 반환해야 하는 값을 쉼표로 구분된 목록으로 지정합니다. |
실행
이 작업은 모든 항목에서 실행됩니다.
작업 결과
스크립트 결과
스크립트 결과 이름 | 값 옵션 | 예시 |
---|---|---|
count_rows_csv | 행 수 제한 없음 | count_rows += 1 |
JSON 결과
[
{
"EntityResult": [{
"domain": "example.dom",
"fileHash": "cbbc5aea3d4c7ec193aa2ff3b52df36ebb12338b18c9bb53fc4896115efaf78d",
"reporter": "Symantec Antivirus",
"app": "Arcsight",
"id": "1011",
"eventTime": "9/4/2017 10:00",
"antivirusAction": "blocked",
"virusName": "ECAT",
"rule": "malicious",
"eventName": "Virus detected",
"User": "Ziv",
"eventHostName": "WS-ZivDevComp",
"File Source Path": "C:\\\\Users\\\\Default\\\\Desktop\\\\stringTimeRaw.csv",
"machineAddress": "192.168.11.11"
}, {
"domain": "SmartCompany.dom",
"fileHash": "cbbc5aea3d4c7ec193aa2ff3b52df36ebb12338b18c9bb53fc4896115efaf78d",
"reporter": "Symantec Antivirus",
"app": "ESM",
"id": "1012",
"eventTime": "9/4/2017 10:00",
"antivirusAction": "allowed",
"virusName": "ECAT",
"rule": "malicious",
"eventName": "Virus detected",
"User": "GG",
"eventHostName": "WS-GGDevComp",
"File Source Path": "C:\\\\Users\\\\Default\\\\Desktop\\\\stringTimeRaw.csv",
"machineAddress": "192.168.11.11"
}],
"Entity": "192.168.11.11"
}
]
케이스 월
결과 유형 | 값 / 설명 | 유형 |
---|---|---|
출력 메시지* | 발견된 항목의 경우: '다음 항목에 대한 정보를 찾았습니다. \n (entity.identifier)' 찾을 수 없는 항목의 경우: '다음 항목에 대한 정보를 찾을 수 없습니다.\n (entity.identifier)' 모든 항목에 대해 성공하지 못한 경우: '제공된 항목에 대한 정보를 찾을 수 없습니다.' 모든 인코딩이 유효하지 않은 경우: "Error executing action "CSV Search by String". 제공된 인코딩이 잘못되었습니다. 철자를 확인하세요." |
일반 |
핑
설명
연결을 테스트합니다.
매개변수
해당 사항 없음
실행
이 작업은 모든 항목에서 실행됩니다.
작업 결과
스크립트 결과
해당 사항 없음
JSON 결과
N/A
커넥터
CSV 커넥터
설명
특정 폴더에 있는 CSV 파일에서 데이터를 가져와 이 데이터를 Google SecOps 시스템의 알림으로 변환합니다.
이 주제에서는 Google SecOps가 CSV 파일을 생성하는 메커니즘과 구성, 지원되는 작업 흐름, 플랫폼 내에서 취해지는 작업을 설명합니다.
사용 사례
고객이 시스템에서 가져온 CSV가 있으며 파일의 인코딩이 다를 수 있습니다.
* Add support for comma-separated encodings in the Encoding field in the
connector.
* The connector should try the different encodings by their order in
the field (first encoding - highest priority, last - lowest
priority) with try/except. If no matching encoding was found -
consider the file as an error and notify.
* Put a default value for the fields - a list of most common CSV
encodings by priority (utf8, latin1, and iso...)
CSV 파일 액세스
Google SecOps의 CSV 파일 액세스: CSV 파일용 폴더를 설정합니다.
Google SecOps로 CSV 레코드 전달
CSV 파일 레코드 작업
CSV 파일을 알림 소스로 사용하도록 Google SecOps를 구성할 때 CSV를 가져올 특정 폴더를 제공하라는 메시지가 표시됩니다. Google SecOps는 CSV 파일 내의 레코드를 가져와 번역하고 케이스의 알림으로 맥락화하도록 전달합니다.
커넥터에서 심각도를 매핑하는 방법
심각도를 매핑하려면 '심각도 필드 이름' 매개변수에서 심각도 값을 가져오는 데 사용할 필드를 지정해야 합니다. 응답에는 정수, 부동 소수점, 문자열의 세 가지 유형의 값이 포함될 수 있습니다. 정수와 부동 소수점의 경우 추가 구성을 수행할 필요가 없습니다. 커넥터는 이러한 값을 읽고 Google SecOps 표준에 따라 매핑합니다. 정수 값이 매핑되는 방식을 간단히 살펴보겠습니다.
- 100 - 심각
- 100 > x >= 80 높음
- 80 > x >=60 보통
- 60 > x >=40 낮음
- 40 > x 정보
대답에서 문자열을 사용하는 경우 추가 구성이 필요합니다. 커넥터 스크립트가 있는 폴더에 severity_map_config.json이라는 구성 파일이 있습니다. 이 파일은 심각도에 대한 매핑 규칙을 정의합니다.
처음에는 파일이 다음과 같이 표시됩니다. 1 2 3
{ "Default": 50 }
필요한 값이 event.severity에 있는 상황을 가정해 보겠습니다. event.severity에는 'Malicious', 'Benign', 'Unknown' 값이 포함될 수 있습니다.
먼저 '심각도 필드 이름' 매개변수에서 event.severity를 사용한다고 지정해야 합니다. 두 번째로 구성 파일을 업데이트해야 합니다. 변경 후 severity_map_config.json 파일은 다음과 같이 표시됩니다. 1 2 3 4 5 6 7 8
{
"event.severity": { "Malicious": 100, "Unknown": 60, "Benign": -1 }, "Default":
50 }
이제 커넥터가 event.severity
= 'Malicious'인 이벤트를 수신하면 심각도 Critical을 부여합니다.
Google SecOps에서 CSV 커넥터 구성
Google SecOps에서 커넥터를 구성하는 방법에 대한 자세한 내용은 커넥터 구성을 참고하세요.
커넥터 매개변수
다음 매개변수를 사용하여 커넥터를 구성합니다.
파라미터 이름 | 유형 | 기본값 | 필수 항목 | 설명 |
---|---|---|---|---|
제품 필드 이름 | 문자열 | device_product | 예 | 기기 제품을 확인하는 데 사용되는 필드 이름입니다. |
이벤트 필드 이름 | 문자열 | name | 아니요 | 이벤트 이름(하위 유형)을 결정하는 데 사용되는 필드 이름입니다. |
스크립트 제한 시간(초) | 문자열 | 60 | 예 | 현재 스크립트를 실행하는 Python 프로세스의 제한 시간 한도(초)입니다. |
CSV 폴더 경로 | 문자열 | 해당 사항 없음 | 예 | 수집해야 하는 모든 CSV 파일이 포함된 폴더 경로입니다. |
CSV 한도 | 문자열 | 해당 사항 없음 | 아니요 | 반복당 처리할 CSV 파일 수입니다. |
규칙 생성기 필드 이름 | 문자열 | 해당 사항 없음 | 아니요 | 규칙 생성기에 관한 정보가 포함된 필드의 이름입니다. |
시간 필드 이름 | 문자열 | 해당 사항 없음 | 아니요 | 이벤트 시간에 관한 정보가 포함된 필드의 이름입니다. |
CSV에 헤더가 있음 | 체크박스 | 선택 | 예 | CSV 파일에 헤더가 있는지 여부를 나타냅니다. |
파일 인코딩 유형 | 문자열 | utf-8 | 예 | CSV 인코딩 유형을 설정합니다(예: iso-8859-1, latin1, utf-8, utf-16). |
알림 필드 이름 | 문자열 | 해당 사항 없음 | 아니요 | 알림 이름에 관한 정보가 포함된 필드의 이름입니다. |
심각도 필드 이름 | 문자열 | 해당 사항 없음 | 아니요 | 심각도에 관한 정보가 포함된 필드의 이름입니다. |
커넥터 규칙
프록시 지원
커넥터가 프록시를 지원하지 않습니다.
도움이 더 필요하신가요? 커뮤니티 회원 및 Google SecOps 전문가로부터 답변을 받으세요.