Nmap を Google SecOps と統合する
このドキュメントでは、Nmap を Google Security Operations と統合する方法について説明します。
統合バージョン: 1.0
統合のパラメータ
Nmap 統合にはパラメータは必要ありません。
操作
アクションの詳細については、 デスクから保留中のアクションに対応すると手動アクションを実行するをご覧ください。
Ping
Ping アクションを使用して、Nmap への接続をテストします。
このアクションは Google SecOps エンティティに対しては実行されません。
アクション入力
なし
アクションの出力
[Ping] アクションでは、次の出力が提供されます。
アクションの出力タイプ | 対象 |
---|---|
ケースウォールのアタッチメント | 利用不可 |
ケースウォールのリンク | 利用不可 |
ケースウォール テーブル | 利用不可 |
拡充テーブル | 利用不可 |
JSON の結果 | 利用不可 |
出力メッセージ | 利用可能 |
スクリプトの結果 | 利用可能 |
出力メッセージ
Ping アクションは、次の出力メッセージを返すことができます。
出力メッセージ | メッセージの説明 |
---|---|
|
アクションが成功しました。 |
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 スキャン パラメータを指定します。 デフォルト値は これらのオプションは、TCP 接続スキャン( |
アクションの出力
[エンティティをスキャン] アクションは、次の出力を提供します。
アクションの出力タイプ | 対象 |
---|---|
ケースウォールのアタッチメント | 利用不可 |
ケースウォールのリンク | 利用不可 |
ケースウォール テーブル | 利用不可 |
拡充テーブル | 利用可能 |
JSON の結果 | 利用可能 |
出力メッセージ | 利用可能 |
スクリプトの結果 | 利用可能 |
エンティティ拡充テーブル
エンティティをスキャン アクションは、次のエンティティの拡充をサポートしています。
拡充フィールド | ソース(JSON キー) | ロジック |
---|---|---|
NMAP_state |
status_state |
利用可能になった時点 |
NMAP_related_addresses_{addrtype} |
各 addrtype に、{addr} 値のカンマ区切りリストを指定します。 |
利用可能になった時点 |
NMAP_related_hostnames |
hostnames.name |
利用可能になった時点 |
NMAP_port_{ports.portid} |
このエントリは、検出されたポートごとにフィールドを動的に作成し、その状態(開いている、閉じているなど)と、そのポートで実行されているサービスを表示します。 |
利用可能になった時点 |
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"
}
}
]
}
}
}
]
出力メッセージ
エンティティをスキャン アクションは、次の出力メッセージを返すことができます。
出力メッセージ | メッセージの説明 |
---|---|
|
アクションが成功しました。 |
Error executing action "Scan Entities". Reason:
ERROR_REASON |
操作に失敗しました。 サーバーへの接続、入力パラメータ、または認証情報を確認してください。 |
スクリプトの結果
次の表に、エンティティをスキャン アクションを使用する場合のスクリプト結果出力の値を示します。
スクリプトの結果名 | 値 |
---|---|
is_success |
True または False |
さらにサポートが必要な場合 コミュニティ メンバーや Google SecOps のプロフェッショナルから回答を得ることができます。