As-Is: OTXLookupResult checks in the result only non-zero count of pulses. But some of the results have validation field, where can be found information about whitelisting of IP/Domain (not malicious, even if found in pulses). This causes return of the false positive result into Graylog.
To-Be: OTXLookupResult should check the occurence of validation key first and if it is false, then continue with checking the non-zero count of pulses.
Example of the result from OTX API, indicator IPv4, IP=8.8.8.8
...
"validation": [
{
"message": "suspiciously short IP (len: 7)",
"name": "Suspicious IP format / Possible version number",
"source": "suspicious"
},
{
"message": "contained in 8.8.8.8",
"name": "Whitelisted IP",
"source": "whitelist"
}
],
...
Example: for inspiration, here is code in Python OTX-Python-SDK example, function def ip()