ブール型演算子(AND、OR、NOT)を使うと、検索結果を絞り込むことができます。覚えておくとよい事項をいくつか示します。
さまざまな検索能力を組み合わせたクエリの例を示します。
vulnerabilities: (typeDetected: "Confirmed" AND firstFound < now-1d AND lastFound:[now-1M ... now-1s])
vulnerabilities:(vulnerability.cveIds: (CVE-2016-0189 OR CVE-2016-0162 OR CVE-2016-7200 OR CVE-2016-7201 OR CVE-2016-0034 OR CVE-2015-3105 OR CVE-2015-3113) AND lastFound:[now-10d ... now-1s]
次に示す構文を使用して、最初に部分的なトークンキー“ vulnerabilities ”を指定し、NOT の後に残りの脆弱性キーを指定します。
「収集情報」という条件に一致しない脆弱性の検出結果の表示
vulnerabilities: (not vulnerability.types: "INFORMATION")
「収集情報」、typeDetectedが「Confirmed(確認済)」という両方の条件に一致しない脆弱性の検出結果の表示
vulnerabilities: (not (vulnerability.types: "INFORMATION" and typeDetected: "Confirmed" ))
重要 - 次に示す構文は無効です。
not vulnerabilities.vulnerability.types:"INFORMATION"
演算子 AND や OR が含まれるクエリには、構文解析上、制限があります。AND/OR クエリに許される最大深さは、1000 レベル未満でなければなりません。1000 レベル以上の深さのクエリはエラーになります。
次のように簡単なクエリは、深さが 2 です。
vulnerabilities.vulnerability: (patchAvailable: "true" AND category: "CGI")
より複雑な、次のクエリの深さは 5 となります。
(operatingSystem: windows OR operatingSystem: linux)AND(openPorts.port: 80 OR openPorts.port:8080) AND NOT updated <= "2018-01-20"