Nmap を Google SecOps と統合する

このドキュメントでは、Nmap を Google Security Operations と統合する方法について説明します。

統合バージョン: 1.0

統合のパラメータ

Nmap 統合にはパラメータは必要ありません。

操作

アクションの詳細については、 デスクから保留中のアクションに対応する手動アクションを実行するをご覧ください。

Ping

Ping アクションを使用して、Nmap への接続をテストします。

このアクションは Google SecOps エンティティに対しては実行されません。

アクション入力

なし

アクションの出力

[Ping] アクションでは、次の出力が提供されます。

アクションの出力タイプ 対象
ケースウォールのアタッチメント 利用不可
ケースウォールのリンク 利用不可
ケースウォール テーブル 利用不可
拡充テーブル 利用不可
JSON の結果 利用不可
出力メッセージ 利用可能
スクリプトの結果 利用可能
出力メッセージ

Ping アクションは、次の出力メッセージを返すことができます。

出力メッセージ メッセージの説明

Successfully connected to the Nmap server with the provided connection parameters!

アクションが成功しました。
Failed to connect to the Nmap server! Error is ERROR_REASON

操作に失敗しました。

サーバーへの接続、入力パラメータ、または認証情報を確認してください。

スクリプトの結果

次の表に、Ping アクションを使用した場合のスクリプト結果出力の値を示します。

スクリプトの結果名
is_success True または False

エンティティをスキャンする

エンティティをスキャン アクションを使用して、Nmap を使用して Google SecOps エンティティをスキャンします。

このアクションは、次の Google SecOps エンティティに対して実行されます。

  • IP Address
  • Hostname
  • Domain

アクション入力

[エンティティをスキャン] アクションには、次のパラメータが必要です。

パラメータ 説明
IP Address

省略可。

スキャンする IP アドレス。

これらの IP アドレスはエンティティとともに処理されます。

Hostname

省略可。

スキャンするホスト名。

これらのホスト名はエンティティとともに処理されます。

Options

必須。

Nmap スキャン パラメータを指定します。

デフォルト値は -sT -sV -p- -T4 -v です。

これらのオプションは、TCP 接続スキャン(-sT)を開始し、バージョン検出(-sV)を有効にし、65,535 個のポートすべてをスキャン(-p-)し、アグレッシブ タイミング テンプレート(-T4)を使用し、詳細度(-v)を高めます。

アクションの出力

[エンティティをスキャン] アクションは、次の出力を提供します。

アクションの出力タイプ 対象
ケースウォールのアタッチメント 利用不可
ケースウォールのリンク 利用不可
ケースウォール テーブル 利用不可
拡充テーブル 利用可能
JSON の結果 利用可能
出力メッセージ 利用可能
スクリプトの結果 利用可能
エンティティ拡充テーブル

エンティティをスキャン アクションは、次のエンティティの拡充をサポートしています。

拡充フィールド ソース(JSON キー) ロジック
NMAP_state status_state 利用可能になった時点
NMAP_related_addresses_{addrtype} addrtype に、{addr} 値のカンマ区切りリストを指定します。 利用可能になった時点
NMAP_related_hostnames hostnames.name 利用可能になった時点
NMAP_port_{ports.portid}

{ports.state.state}{ports.service.product}

このエントリは、検出されたポートごとにフィールドを動的に作成し、その状態(開いている、閉じているなど)と、そのポートで実行されているサービスを表示します。

利用可能になった時点
NMAP_os_matches {os.osmatches.name} の CSV 利用可能になった時点
NMAP_last_boot {uptime.lastboot} 利用可能になった時点
JSON の結果

次の例は、エンティティをスキャン アクションを使用した場合に受信する JSON 結果の出力例を示しています。

[
  {
      "Entity": "50.116.62.192",
      "EntityResult": {
          "status": {
              "state": "up",
              "reason": "syn-ack",
              "reason_ttl": "0"
          },
          "addresses": [
              {
                  "addr": "50.116.62.192",
                  "addrtype": "ipv4"
              }
          ],
          "hostnames": [
              {
                  "name": "k3s-agent1.hegedus.wtf",
                  "type": "PTR"
              }
          ],
          "ports": {
              "extraports": [
                  {
                      "state": "closed",
                      "count": "996",
                      "reasons": [
                          {
                              "reason": "conn-refused",
                              "count": "996"
                          }
                      ]
                  }
              ],
              "ports": [
                  {
                      "protocol": "tcp",
                      "portid": "80",
                      "status": {state.state},
                      "service_name": {service.name},
                      "state": {
                          "state": "open",
                          "reason": "syn-ack",
                          "reason_ttl": "0"
                      },
                      "service": {
                          "name": "http",
                          "servicefp": "SF-Por\r\\n400\\x20Bad\\x20Request\");",
                          "method": "table",
                          "conf": "3"
                      }
                  },
                  {
                      "protocol": "tcp",
                      "portid": "443",
                      "state": {
                          "state": "open",
                          "reason": "syn-ack",
                          "reason_ttl": "0"
                      },
                      "service": {
                          "name": "https",
                          "servicefp": 
"SF-Port443-TCP:V=6.40%I=7%D=5/23%Time=68305D69%P=x86_64-redhat-linux-gnu%r(HTTPOptions,B0,\"HTTP/1\\.0\\x20404\\x20Not\\x20Found\\r\\nContent-Type:\\x20text/plain;\\x20charset=utf-8\\r\\nX-Content-Type-Options:\\x20nosniff\\r\\nDate:\\x20Fri,\\x2023\\x20May\\x202025\\x2011:35:05\\x20GMT\\r\\nContent-Length:\\x2019\\r\\n\\r\\n404\\x20page\\x20not\\x20found\\n\")%r(SSLSessionReq,7,\"\\x15\\x03\\x01\\0\\x02\\x02F\")%r(SSLv23SessionReq,7,\"\\x15\\x03\\x01\\0\\x02\\x02F\")%r(GenericLines,67,\"HTTP/1\\.1\\x20400\\x20Bad\\x20Request\\r\\nContent-Type:\\x20text/plain;\\x20charset=utf-8\\r\\nConnection:\\x20close\\r\\n\\r\\n400\\x20Bad\\x20Request\")%r(GetRequest,B0,\"HTTP/1\\.0\\x20404\\x20Not\\x20Found\\r\\nContent-Type:\\x20text/plain;\\x20charset=utf-8\\r\\nX-Content-Type-Options:\\x20nosniff\\r\\nDate:\\x20Fri,\\x2023\\x20May\\x202025\\x2011:35:16\\x20GMT\\r\\nContent-Length:\\x2019\\r\\n\\r\\n404\\x20page\\x20not\\x20found\\n\")%r(RTSPRequest,67,\"HTTP/1\\.1\\x20400\\x20Bad\\x20Request\\r\\nContent-Type:\\x20text/plain;\\x20charset=utf-8\\r\\nConnection:\\x20close\\r\\n\\r\\n400\\x20Bad\\x20Request\")%r(RPCCheck,7,\"\\x15\\x03\\x01\\0\\x02\\x02F\")%r(Help,67,\"HTTP/1\\.1\\x20400\\x20Bad\\x20Request\\r\\nContent-Type:\\x20text/plain;\\x20charset=utf-8\\r\\nConnection:\\x20close\\r\\n\\r\\n400\\x20Bad\\x20Request\")%r(Kerberos,67,\"HTTP/1\\.1\\x20400\\x20Bad\\x20Request\\r\\nContent-Type:\\x20text/plain;\\x20charset=utf-8\\r\\nConnection:\\x20close\\r\\n\\r\\n400\\x20Bad\\x20Request\")%r(FourOhFourRequest,B0,\"HTTP/1\\.0\\x20404\\x20Not\\x20Found\\r\\nContent-Type:\\x20text/plain;\\x20charset=utf-8\\r\\nX-Content-Type-Options:\\x20nosniff\\r\\nDate:\\x20Fri,\\x2023\\x20May\\x202025\\x2011:35:32\\x20GMT\\r\\nContent-Length:\\x2019\\r\\n\\r\\n404\\x20page\\x20not\\x20found\\n\")%r(LPDString,67,\"HTTP/1\\.1\\x20400\\x20Bad\\x20Request\\r\\nContent-Type:\\x20text/plain;\\x20charset=utf-8\\r\\nConnection:\\x20close\\r\\n\\r\\n400\\x20Bad\\x20Request\")%r(SIPOptions,67,\"HTTP/1\\.1\\x20400\\x20Bad\\x20Request\\r\\nContent-Type:\\x20text/plain;\\x
20charset=utf-8\\r\\nConnection:\\x20close\\r\\n\\r\\n400\\x20Bad\\x20Request\");",
                          "method": "table",
                          "conf": "3"
                      }
                  },
                  {
                      "protocol": "tcp",
                      "portid": "2222",
                      "state": {
                          "state": "open",
                          "reason": "syn-ack",
                          "reason_ttl": "0"
                      },
                      "service": {
                          "name": "ssh",
                          "product": "OpenSSH",
                          "version": "8.4p1 Debian 5",
                          "extrainfo": "protocol 2.0",
                          "ostype": "Linux",
                          "method": "probed",
                          "conf": "10",
                          "cpes": [
                              "cpe:/a:openbsd:openssh:8.4p1",
                              "cpe:/o:linux:linux_kernel"
                          ]
                      }
                  },
                  {
                      "protocol": "tcp",
                      "portid": "9100",
                      "state": {
                          "state": "open",
                          "reason": "syn-ack",
                          "reason_ttl": "0"
                      },
                      "service": {
                          "name": "jetdirect",
                          "method": "table",
                          "conf": "3"
                      }
                  }
              ]
          }
      }
  }
]
出力メッセージ

エンティティをスキャン アクションは、次の出力メッセージを返すことができます。

出力メッセージ メッセージの説明

Successfully scanned the following entities using Nmap: entity.identifier

No information was found for the following entities: entity.identifier

No information was found for the provided entities.

アクションが成功しました。
Error executing action "Scan Entities". Reason: ERROR_REASON

操作に失敗しました。

サーバーへの接続、入力パラメータ、または認証情報を確認してください。

スクリプトの結果

次の表に、エンティティをスキャン アクションを使用する場合のスクリプト結果出力の値を示します。

スクリプトの結果名
is_success True または False

さらにサポートが必要な場合 コミュニティ メンバーや Google SecOps のプロフェッショナルから回答を得ることができます。