Fortinet FortiSIEM

통합 버전: 5.0

Google Security Operations에서 Fortinet FortiSIEM 통합 구성

Google SecOps에서 통합을 구성하는 방법에 대한 자세한 내용은 통합 구성을 참고하세요.

통합 매개변수

다음 매개변수를 사용하여 통합을 구성합니다.

매개변수 표시 이름 유형 기본값 필수 항목 설명
API 루트 문자열 https://x.x.x.x:port 타겟 FortiSIEM 설치의 API 루트를 지정합니다.
사용자 이름 문자열 해당 사항 없음 타겟 FortiSIEM 설치에 사용할 사용자 이름을 지정합니다.
비밀번호 비밀번호 해당 사항 없음 타겟 FortiSIEM 설치에 사용할 비밀번호를 지정합니다.
SSL 확인 체크박스 선택 아니요 사용 설정되면 Google SecOps 서버에서 인증서가 API 루트에 대해 구성되었는지 확인합니다.

제품 사용 사례

  1. SIEM에서 Google SecOps로 알림을 수집합니다.
  2. Google SecOps 알림 강화를 위해 SIEM의 데이터를 사용합니다.
  3. Google SecOps 알림으로 처리된 상태를 SIEM 측으로 다시 동기화합니다.

작업

설명

Google Security Operations Marketplace 탭의 통합 구성 페이지에서 제공된 매개변수를 사용하여 FortiSIEM에 대한 연결을 테스트합니다.

매개변수

해당 사항 없음

실행

작업이 항목에서 실행되지 않거나 필수 입력 매개변수가 없습니다.

작업 결과

스크립트 결과
스크립트 결과 이름 값 옵션
is_success True/False is_success=False
JSON 결과
N/A
항목 보강

해당 사항 없음

통계

해당 사항 없음

케이스 월
결과 유형 값/설명 유형
출력 메시지*

작업이 실패하거나 플레이북 실행을 중지하지 않습니다.

성공한 경우: '제공된 연결 매개변수를 사용하여 FortiSIEM 설치에 성공적으로 연결되었습니다.'

작업이 실패하고 플레이북 실행을 중지합니다.

>실패한 경우: 'FortiSIEM 설치에 연결할 수 없습니다. 오류: {0}".format(exception.stacktrace)"

일반

항목 보강

설명

Fortinet FortiSIEM CMDB의 정보를 사용하여 항목을 보강합니다. 지원되는 항목: 호스트 이름, IP 주소

매개변수

매개변수 표시 이름 유형 기본값 필수 항목 설명
타겟 조직 문자열 해당 사항 없음 아니요 이 조직에서만 보강 정보를 찾도록 선택적 타겟 조직 이름을 지정합니다.

실행

이 작업은 다음 항목에서 실행됩니다.

  • 호스트 이름
  • IP 주소

작업 결과

스크립트 결과
스크립트 결과 이름 값 옵션
is_success True/False is_success=False
JSON 결과
[
  {
    "Entity": "centos-xxx",
    "EntityResult": {
      "device": {
        "organization": {
          "@id": "1xx",
          "@name": "Super"
        },
        "accessIp": "172.30.xxx.xxx",
        "approved": "true",
        "components": null,
        "creationMethod": "LOG",
        "deviceType": {
          "accessProtocols": "TELNET,SSH",
          "jobWeight": "10",
          "model": "Unix",
          "vendor": "Generic",
          "version": "ANY"
        },
        "discoverMethod": "LOG",
        "discoverTime": "1640008485000",
        "eventParserList": null,
        "interfaces": null,
        "ipToHostNames": null,
        "luns": null,
        "name": "centos-xxx",
        "naturalId": "centos%2dxxx",
        "processors": null,
        "properties": {
          "customproperty": [
            {
              "matched": "false",
              "propertyDef": {
                "displayInCMDB": "false",
                "displayName": "Importance",
                "groupKey": "false",
                "propertyName": "importance",
                "subValueType": "STRING",
                "valueType": "STRING"
              },
              "propertyName": "importance",
              "propertyValue": "Normal",
              "updated": "false"
            },
            {
              "matched": "false",
              "propertyDef": {
                "displayInCMDB": "false",
                "displayName": "Location Name",
                "groupKey": "false",
                "propertyName": "locationName",
                "subValueType": "STRING",
                "valueType": "STRING"
              },
              "propertyName": "locationName",
              "updated": "false"
            }
          ]
        },
        "raidGroups": null,
        "sanControllerPorts": null,
        "softwarePatches": null,
        "softwareServices": null,
        "status": "2",
        "storageGroups": null,
        "storages": null,
        "unmanaged": "false",
        "updateMethod": "LOG",
        "version": "ANY",
        "winMachineGuid": null
      }
    }
  },
  {
    "Entity": "172.30.xxx.xxx",
    "EntityResult": {
      "device": {
        "organization": {
          "@id": "1xx",
          "@name": "Super"
        },
        "accessIp": "172.30.xxx.xxx",
        "applications": null,
        "approved": "true",
        "components": null,
        "creationMethod": "LOG",
        "deviceType": {
          "accessProtocols": "TELNET,SSH",
          "jobWeight": "10",
          "model": "Unix",
          "vendor": "Generic",
          "version": "ANY"
        },
        "discoverMethod": "LOG",
        "discoverTime": "1640070721000",
        "eventParserList": {
          "eventparser": {
            "deviceType": {
              "category": "Appliance",
              "jobWeight": "10",
              "model": "Generic",
              "vendor": "Generic",
              "version": "ANY"
            },
            "enabled": "true",
            "name": "SyslogNGParser",
            "parserXml": "<patternDefinitions><pattern>..."
          }
        },
        "interfaces": null,
        "ipToHostNames": null,
        "luns": null,
        "name": "centos-xxx",
        "naturalId": "centos",
        "primaryContactUser": "0",
        "processors": null,
        "properties": {
          "customproperty": [
            {
              "matched": "false",
              "propertyDef": {
                "displayInCMDB": "false",
                "displayName": "Importance",
                "groupKey": "false",
                "propertyName": "importance",
                "subValueType": "STRING",
                "valueType": "STRING"
              },
              "propertyName": "importance",
              "propertyValue": "Mission Critical",
              "updated": "false"
            },
            {
              "matched": "false",
              "propertyDef": {
                "displayInCMDB": "false",
                "displayName": "Location Name",
                "groupKey": "false",
                "propertyName": "locationName",
                "subValueType": "STRING",
                "valueType": "STRING"
              },
              "propertyName": "locationName",
              "updated": "false"
            }
          ]
        },
        "raidGroups": null,
        "sanControllerPorts": null,
        "secondaryContactUser": "0",
        "softwarePatches": null,
        "softwareServices": null,
        "status": "2",
        "storageGroups": null,
        "storages": null,
        "unmanaged": "false",
        "updateMethod": "MANUAL",
        "version": "ANY",
        "winMachineGuid": null
      }
    }
  }
]
항목 보강
보강 필드 이름 소스(JSON 키) 로직 - 적용 시기
accessIp accessIp XML로 제공되는 경우
name name XML로 제공되는 경우
애플리케이션 'applications/name'의 CSV XML로 제공되는 경우
creationMethod creationMethod XML로 제공되는 경우
deviceType_model deviceType_model XML로 제공되는 경우

deviceType_accessProtocols

deviceType_vendor

deviceType_accessProtocols

deviceType_vendor

XML로 제공되는 경우
discoverMethod discoverMethod XML로 제공되는 경우
discoverTime discoverTime XML로 제공되는 경우
통계

해당 사항 없음

케이스 월
결과 유형 값/설명 유형
출력 메시지*

작업이 실패하거나 플레이북 실행을 중지하지 않습니다.

항목 하나에 데이터를 사용할 수 있는 경우 (is_success=true): 'FortiSIEM: {entity.identifier}의 정보를 사용하여 다음 항목을 성공적으로 보강했습니다.'

항목 하나에 데이터를 사용할 수 없는 경우 (is_success=true): '작업이 FortiSIEM: {entity.identifier}의 정보를 사용하여 다음 항목을 보강할 수 없습니다.'

모든 항목에 데이터를 사용할 수 없는 경우(is_success=false): '제공된 항목이 보강되지 않았습니다.'

작업이 실패하고 플레이북 실행을 중지해야 합니다.

잘못된 사용자 인증 정보, 서버 연결 없음과 같은 치명적인 오류가 보고되는 경우: ''항목 보강' 작업 실행 중에 오류가 발생했습니다. 이유: {0}''.format(error.Stacktrace)

일반
케이스 월 테이블

테이블 제목: {entity.identifier}

테이블 열:

항목

간단한 쿼리 실행

설명

제공된 매개변수를 기반으로 FortiSIEM 이벤트 쿼리를 실행합니다.

매개변수

매개변수 표시 이름 유형 기본값 필수 항목 설명
이벤트 유형 CSV 해당 사항 없음 아니요

쿼리에서 가져와야 하는 이벤트 유형을 지정합니다.

매개변수는 여러 값을 쉼표로 구분된 문자열로 허용합니다.

가져올 최소 심각도 정수 해당 사항 없음 아니요

Google SecOps로 가져올 최소 이벤트 심각도를 숫자로 지정합니다.

예: 5 또는 7

이벤트 카테고리 CSV 해당 사항 없음 아니요

이벤트 카테고리 쿼리가 가져와야 하는 항목을 지정합니다.

매개변수는 여러 값을 쉼표로 구분된 문자열로 허용합니다.

이벤트 ID CSV 해당 사항 없음 아니요

선택적으로 가져와야 하는 정확한 이벤트 ID를 지정합니다.

매개변수는 여러 값을 쉼표로 구분된 문자열로 허용합니다.

반환할 필드 CSV 해당 사항 없음 아니요

반환할 필드를 지정합니다.

아무것도 제공되지 않으면 작업에서 모든 필드를 반환합니다.

필드 정렬 문자열 phRecvTime 아니요 정렬에 사용해야 하는 매개변수를 지정합니다.
정렬 순서 DDL

DESC

가능한 값은 다음과 같습니다.

  • ASC
  • DESC
No 정렬 순서를 지정합니다.
기간 DDL

지난 1시간

가능한 값은 다음과 같습니다.

  • 지난 1시간
  • 지난 6시간
  • 지난 24시간
  • 지난주
  • 지난달
  • 커스텀
No

결과 기간을 지정합니다.

'커스텀'을 선택한 경우 '시작 시간' 매개변수도 제공해야 합니다.

시작 시간 문자열 해당 사항 없음 No

결과 시작 시간을 지정합니다.

'기간' 매개변수에 '커스텀'을 선택한 경우 이 매개변수는 필수 항목입니다.

형식: ISO 8601

예: 2021-04-23T12:38Z

종료 시간 문자열 해당 사항 없음 No

결과 종료 시간을 지정합니다.

아무것도 제공하지 않고 '기간' 매개변수에 '커스텀'을 선택하면 이 매개변수는 현재 시간을 사용합니다.

형식: ISO 8601

반환할 최대 결과 수 정수 50 아니요 반환할 결과 수를 지정합니다.

실행

이 작업은 항목에서 실행되지 않습니다.

작업 결과

스크립트 결과
스크립트 결과 이름 값 옵션
is_success True/False is_success=False
JSON 결과
[
  {
    "custId": "1",
    "attributes": {
      "eventType": "Unknown_EventType",
      "eventSeverity": "3",
      "eventAction": "0 (Permit)",
      "phRecvTime": "Wed Dec 29 00:36:55 IST 2021",
      "relayDevIpAddr": "172.30.20xxx",
      "reptDevIpAddr": "172.30.20xxx",
      "destIpAddr": "172.30.20xxx",
      "destName": "HOST-172.30.20xxx",
      "reptDevName": "centos-xxx",
      "reptVendor": "Unknown",
      "customer": "Super",
      "reptModel": "Unknown",
      "rawEventMsg": "<27>Dec 29 00:36:47 centos-xxx aella_flow[5074]: 1902195|aos_afix_json|ERR|Failed to send message: Couldn't connect to server/7",
      "collectorId": "1",
      "eventId": "4242813061460978xxx",
      "phEventCategory": "0 (External)",
      "count": "1",
      "eventName": "Unknown event type",
      "eventParsedOk": "0",
      "parserName": "SyslogNGParser"
    },
    "dataStr": null,
    "eventType": "Unknown_EventType",
    "id": "4242813061460978xxx",
    "index": "0",
    "nid": "4242813061460978xxx",
    "receiveTime": "2021-12-29T00:36:55+02:00"
  }
]
항목 보강

해당 사항 없음

통계

해당 사항 없음

케이스 월
결과 유형 값/설명 유형
출력 메시지*

작업이 실패하거나 플레이북 실행을 중지하지 않습니다.

데이터가 하나 이상 발견된 경우 (is_success=true): 'FortiSIEM에서 구성된 쿼리 '{query}'의 결과를 가져왔습니다.'

결과가 없는 경우 (is_success=false): 'FortiSIEM에서 구성된 '{Query}' 쿼리에 대한 결과를 찾을 수 없습니다.'

작업이 실패하고 플레이북 실행을 중지합니다.

잘못된 사용자 인증 정보, 서버 연결 없음과 같은 치명적인 오류가 보고되는 경우: ''간단한 쿼리' 작업 실행 중에 오류가 발생했습니다.' 이유: {0}'.format(error.Stacktrace)

'시작 시간' 매개변수가 비어 있고 '기간' 매개변수가 '맞춤'으로 설정된 경우(실패): '' 작업을 실행하는 동안 오류가 발생했습니다. 이유: '기간' 매개변수에서 '맞춤'을 선택한 경우 '시작 시간'을 제공해야 합니다.'

'시작 시간' 값이 '종료 시간' 매개변수 값보다 큰 경우 (실패): '' 작업 실행 중에 오류가 발생했습니다. 이유: '종료 시간'은 '시작 시간'보다 늦어야 합니다.

일반

테이블 이름: Simple Query Results(간단한 쿼리 결과)

표 열: 응답의 모든 열

일반

맞춤 쿼리 실행

설명

FortiSIEM에서 맞춤 쿼리를 실행합니다.

매개변수

매개변수 표시 이름 유형 기본값 필수 항목 설명
쿼리 문자열 여러 줄 입력란 (속성 = 값 또는 값) AND (속성 값 또는 값)

이벤트에 관한 정보를 가져오는 데 사용되는 쿼리를 지정합니다.

예: (relayDevIpAddr = 172.30.202.1 또는 172.30.202.2) AND (reptDevName = HOST1)

반환할 필드 CSV 아니요

반환할 필드를 지정합니다.

아무것도 제공되지 않으면 작업에서 모든 필드를 반환합니다.

필드 정렬 문자열 phRecvTime 아니요 정렬에 사용해야 하는 매개변수를 지정합니다.
정렬 순서 DDL

DESC

가능한 값은 다음과 같습니다.

  • ASC
  • DESC
No 정렬 순서를 지정합니다.
기간 DDL

지난 1시간

가능한 값은 다음과 같습니다.

  • 지난 1시간
  • 지난 6시간
  • 지난 24시간
  • 지난주
  • 지난달
  • 커스텀
No

결과 기간을 지정합니다.

'커스텀'을 선택한 경우 '시작 시간' 매개변수도 제공해야 합니다.

시작 시간 문자열 해당 사항 없음 No

결과 시작 시간을 지정합니다.

'기간' 매개변수에 '커스텀'을 선택한 경우 이 매개변수는 필수 항목입니다.

형식: ISO 8601

예: 2021-04-23T12:38Z

종료 시간 문자열 해당 사항 없음 No

결과 종료 시간을 지정합니다.

아무것도 제공하지 않고 '기간' 매개변수에 '커스텀'을 선택하면 이 매개변수는 현재 시간을 사용합니다.

반환할 최대 결과 수 정수 50 아니요 반환할 결과 수를 지정합니다.

실행

이 작업은 항목에서 실행되지 않습니다.

작업 결과

스크립트 결과
스크립트 결과 이름 값 옵션
is_success True/False is_success=False
JSON 결과
[
  {
    "custId": "1",
    "attributes": {
      "eventType": "Unknown_EventType",
      "eventSeverity": "3",
      "eventAction": "0 (Permit)",
      "phRecvTime": "Wed Dec 29 00:36:55 IST 2021",
      "relayDevIpAddr": "172.30.20xxx",
      "reptDevIpAddr": "172.30.20xxx",
      "destIpAddr": "172.30.20xxx",
      "destName": "HOST-172.30.20xxx",
      "reptDevName": "centos-xxx",
      "reptVendor": "Unknown",
      "customer": "Super",
      "reptModel": "Unknown",
      "rawEventMsg": "<27>Dec 29 00:36:47 centos-xxx aella_flow[5074]: 1902195|aos_afix_json|ERR|Failed to send message: Couldn't connect to server/7",
      "collectorId": "1",
      "eventId": "4242813061460978xxx",
      "phEventCategory": "0 (External)",
      "count": "1",
      "eventName": "Unknown event type",
      "eventParsedOk": "0",
      "parserName": "SyslogNGParser"
    },
    "dataStr": null,
    "eventType": "Unknown_EventType",
    "id": "4242813061460978xxx",
    "index": "0",
    "nid": "4242813061460978xxx",
    "receiveTime": "2021-12-29T00:36:55+02:00"
  }
]
항목 보강

해당 사항 없음

통계

해당 사항 없음

케이스 월
결과 유형 값/설명 유형
출력 메시지*

작업이 실패하거나 플레이북 실행을 중지하지 않습니다.

데이터가 하나 이상 발견된 경우 (is_success=true): 'FortiSIEM에서 제공된 쿼리 '{query}'의 결과를 성공적으로 가져왔습니다.'

결과가 없는 경우 (is_success=false): 'FortiSIEM에서 제공된 '{Query}' 쿼리에 대한 결과를 찾을 수 없습니다.'

작업이 실패하고 플레이북 실행을 중지합니다.

잘못된 사용자 인증 정보, 서버 연결 없음과 같은 치명적인 오류가 보고되는 경우: ''간단한 쿼리' 작업 실행 중에 오류가 발생했습니다.' 이유: {0}'.format(error.Stacktrace)

'시작 시간' 매개변수가 비어 있고 '기간' 매개변수가 '맞춤'으로 설정된 경우(실패): '' 작업을 실행하는 동안 오류가 발생했습니다. 이유: '기간' 매개변수에서 '맞춤'을 선택한 경우 '시작 시간'을 제공해야 합니다.'

'시작 시간' 값이 '종료 시간' 매개변수 값보다 큰 경우 (실패): '' 작업 실행 중에 오류가 발생했습니다. 이유: '종료 시간'이 '시작 시간'보다 늦어야 합니다.

일반

표 이름: 맞춤 쿼리 결과

표 열: 응답의 모든 열

일반

커넥터

FortiSIEM 인시던트 커넥터

커넥터 설명

커넥터를 사용하여 FortiSIEM 인시던트를 가져올 수 있습니다. 커넥터 허용 목록을 사용하여 인시던트의 'eventType' 속성 값을 기반으로 특정 유형의 인시던트만 수집할 수 있습니다. 커넥터의 SourceGroupIdentifier를 사용하여 인시던트 ID를 기반으로 Google SecOps 알림을 그룹화할 수 있습니다. 커넥터에는 FortiSIEM 버전 6.3 이상이 필요합니다.

커넥터 매개변수

매개변수 표시 이름 유형 기본값 필수 항목 설명
제품 필드 이름 문자열 deviceProduct 제품 필드 이름을 가져오려면 소스 필드 이름을 입력합니다.
이벤트 필드 이름 문자열 eventType 이벤트 필드 이름을 가져오려면 소스 필드 이름을 입력합니다.
환경 필드 이름 문자열 아니요

환경 이름이 저장된 필드의 이름을 설명합니다.

환경 필드를 찾을 수 없으면 환경이 기본 환경입니다.

환경 정규식 패턴 문자열 .* 아니요

'환경 필드 이름' 필드에 있는 값에서 실행할 정규식 패턴입니다.

기본값은 .*로서 모두 포착하고 변경되지 않은 값을 반환합니다.

사용자가 정규식 로직을 통해 환경 필드를 조작할 수 있도록 허용하는 데 사용됩니다.

정규식 패턴이 null이거나 비어 있거나 환경 값이 null인 경우 최종 환경 결과는 기본 환경입니다.

스크립트 제한 시간 정수 300 커넥터 실행 제한 시간을 지정합니다.
API 루트 문자열 https:/x.x.x.x:port 타겟 FortiSIEM 설치의 API 루트를 지정합니다.
사용자 이름 문자열 해당 사항 없음 타겟 FortiSIEM 설치에 사용할 사용자 이름을 지정합니다.
비밀번호 비밀번호 해당 사항 없음 타겟 FortiSIEM 설치에 사용할 비밀번호를 지정합니다.
SSL 확인 체크박스 선택 아니요 사용 설정되면 Google SecOps 서버에서 API 루트에 대해 구성된 인증서를 확인합니다.
타겟 조직 CSV 해당 사항 없음 아니요

커넥터가 이슈를 가져와야 하는 조직을 지정합니다.

매개변수는 쉼표로 구분된 문자열로 여러 값을 허용합니다.

최대 이전 시간 정수 24 X시간부터 역순으로 인시던트를 가져올 기간을 지정합니다.
주기당 최대 인시던트 수 정수 10 커넥터 실행 한 번에 처리할 인시던트 수를 지정합니다.
인시던트당 최대 이벤트 수 정수 100

커넥터가 인시던트에 대해 추적해야 하는 최대 이벤트 수를 지정합니다.

한도에 도달하면 새 이벤트가 Google SecOps에 추가되지 않습니다.

가져올 사고 상태 CSV 0 아니요

Google SecOps로 가져올 인시던트 상태를 지정합니다.

매개변수는 여러 값을 쉼표로 구분된 문자열로 허용합니다.

0은 미해결 상태의 인시던트를 나타냅니다.

가져올 최소 심각도 정수 해당 사항 없음 아니요 Google SecOps로 가져올 최소 인시던트의 이벤트 심각도를 숫자로 지정합니다(예: 5 또는 7).
허용 목록을 차단 목록으로 사용 체크박스 선택 해제 사용 설정하면 허용 목록이 차단 목록으로 사용됩니다.
이미 수집된 인시던트에 추가된 새 이벤트 추적 체크박스 선택 사용 설정된 경우 이미 수집된 FortiSIEM 인시던트에 새 이벤트가 추가되면 해당 새 이벤트가 포함된 새 알림이 Google SecOps에 추가로 생성됩니다.
신규 이벤트 추적 기준점 (시간) 정수 24

'이미 수집된 인시던트에 추가된 새 이벤트 추적' 체크박스가 선택된 경우 커넥터가 이미 수집된 인시던트에서 새 이벤트를 추적해야 하는 최대 시간(시간)을 지정합니다.

한도에 도달하면 새 이벤트가 Google SecOps에 추가되지 않습니다.

프록시 서버 주소 문자열 해당 사항 없음 아니요 사용할 프록시 서버의 주소를 지정합니다.
프록시 사용자 이름 문자열 해당 사항 없음 아니요 인증할 프록시 사용자 이름을 지정합니다.
프록시 비밀번호 비밀번호 해당 사항 없음 아니요 인증할 프록시 비밀번호를 지정합니다.

커넥터 규칙

프록시 지원

커넥터가 프록시를 지원합니다.

도움이 더 필요하신가요? 커뮤니티 회원 및 Google SecOps 전문가로부터 답변을 받으세요.