Forum Discussion

akshay250692's avatar
akshay250692
Brass Contributor
Aug 10, 2022

Playbook is not running

Hi Team,

Please help me to resolve this issue. We have created one playbook for outbound traffic to ThreatIntel. But after sometime it is giving blank excel sheet. Before it provide 2-3 times result in a week but now we are not getting any output from this playbook from long time. If we run this query then msg will show " The query couldn’t be processed in less than 10 minutes, which might happen when large volumes of old data are retrieved.
Try running the query again". This is scheduled on daily basis.

Please find query for this.

let deviceIP = (_GetWatchlist('manufacturingFirewalls') | project SearchKey);
ThreatIntelligenceIndicator
| where ExpirationDateTime > now()
| where Active == true
| where isnotempty(NetworkIP) or isnotempty(NetworkSourceIP) or isnotempty(NetworkDestinationIP)
| extend entity_threat_IP = iff(isnotempty(NetworkIP), NetworkIP, NetworkDestinationIP)
| extend entity_threat_IP = iff(isnotempty(entity_threat_IP) and isnotempty(NetworkSourceIP), NetworkSourceIP, entity_threat_IP)
| join(
workspace(".....").CommonSecurityLog
|union workspace("....").CommonSecurityLog, workspace("..........").CommonSecurityLog, workspace("...........").CommonSecurityLog, workspace("..........").CommonSecurityLog
| where TimeGenerated > now()-7d
| where DeviceVendor =~ "Palo Alto Networks" and DeviceProduct =~ "PAN-OS" and Activity =~ "traffic"
| where DeviceAction !in ("reset-both", "deny", "reset-server", "reset-client")
| where DeviceCustomString5 in~ ("outside","Outside","Outside-ISP2", "untrust", "PRISMA_INSIDE")
| where Computer !in (deviceIP)
| extend CommonSecurityLog_TimeGenerated = TimeGenerated
) on $left.entity_threat_IP == $right.DestinationIP
| where CommonSecurityLog_TimeGenerated > TimeGenerated and CommonSecurityLog_TimeGenerated < ExpirationDateTime
| project TrafficTimestamp = CommonSecurityLog_TimeGenerated, SourceIP, SourceTranslatedAddress, Source_Port=strcat(SourcePort), SourceUserName, DestinationIP, Destination_port=strcat(DestinationPort), ApplicationProtocol, Firewall_Action = DeviceAction, Packets= DeviceCustomNumber2, Rule= DeviceCustomString1, Firewall =Computer, IOC_Tag = Tags, IOC_Expiration = ExpirationDateTime, IOC_Source = Description

  • GaryBushey's avatar
    GaryBushey
    Bronze Contributor
    I take it you are trying to do a union with 5 different Microsoft Sentinel instances? Those unions are not cheap in terms of processing and will take a long to time run since you are getting all the information and then doing a filter. I would suggest filtering the data on each union command so that only the information you need is actually being sent with the union command.
    • akshay250692's avatar
      akshay250692
      Brass Contributor
      may you re write my query ?so i can understand easily and i will apply to get result
      • Clive_Watson's avatar
        Clive_Watson
        Bronze Contributor
        As you dont summarize the results returned, you could be getting 100-30k rows per workspace, that takes time and isn't easily human readable.

        Maybe reduce the results using a bin or arg_max (you may in the investigation have to get the specific time range) but for the Alert this should be good enough to get focus on the rough time and details.

        e.g. Add one of these lines

        ..
        | where Computer !in (deviceIP)
        | extend CommonSecurityLog_TimeGenerated = TimeGenerated
        // use this
        | summarize count(), make_set(SourceIP) by Computer, DeviceAction, bin(CommonSecurityLog_TimeGenerated,1d)
        //or maybe this
        //| summarize count(), make_set(SourceIP), arg_max(CommonSecurityLog_TimeGenerated, Computer) by DeviceAction

Share

Resources