IBM QRadar SOAR

IBM QRadar

Join this online topic group to communicate across Security product users and IBM experts by sharing advice and best practices with peers and staying up to date regarding product enhancements.


#Security
#QRadar
#SecuringhybridcloudandAI
 View Only
Expand all | Collapse all

IBM Resilient simple Workflow/Script check

  • 1.  IBM Resilient simple Workflow/Script check

    Posted 08/26/20 03:52 AM

    Hello Everyone, 

    I'm kinda new to IBM Resilient, I'm currently studying the product and I'd like to make some examples to show its potential.

    I am mainly using Resilient due to its integration with QRadar, the goal is to automate some of the offenses that opens up everyday such as excessive firewall denies or auth failure due to credentials expired.

    So, given an Offense and created an incident about it, I'd just want to make a couple of steps before closing the incident and the offense.

    For example, I have this Offense on QRadar:  Excessive Firewall Denies Between Hosts containing Firewall Deny


    The offense automatically escalate to an incident by the QRadar Resilient Integration and it carries 2 Artifacts, source and destination IP.

    What I'd like to do is:

    1 - A simple IP lookup on the source ip
    2 - If the result is a botnet or something nasty -> close the incident and send me an email with the details OR just close the incident

    Alternatively, if this use case is too advanced, I'd like to close an incident when matching a rule based on the description or an artifact.

    I've read the documentation about the Playbook but I can't quite catch how to effectively close an incident just by triggering a rule. 

    Is there any suggestions? I'm new to this and I feel a bit lost.

    Thanks.



  • 2.  RE: IBM Resilient simple Workflow/Script check

    Posted 08/27/20 10:58 AM
    There are probably a lot of ways to accomplish your goal. I find learning by example sometimes is effective. For example, I downloaded the IP Void lookup app: https://exchange.xforce.ibmcloud.com/hub/extension/d7d7b27c2ba8e89f103b62b318a1ce15 and installed it. This installs a number of Rules and Workflows that may be similar to what you are trying to accomplish.

    Specifically it installs a rule that runs on an artifact:



    This is the workflow:

    It would be possible to add an exclusive gateway after the function that checks the results and if necessary close the incident using a script:




    Sending an email would require the configuration of a Notification:




    These are just pointers but what you want to accomplish is certainly possible. May take some work.

    Ben

    ------------------------------
    Ben Lurie
    ------------------------------



  • 3.  RE: IBM Resilient simple Workflow/Script check

    Posted 08/28/20 05:30 AM

    Hello Ben, 

    Thank you for the detailed answer.

    I'm trying to edit the workflow as you showed on the images above but I'm getting an error :

     "Exclusive Gateway 'ExclusiveGateway_0dr700o' has outgoing sequence flow 'SequenceFlow_10pcls6' without condition which is not the default flow."



    ------------------------------
    Alessandro Di Liberto
    ------------------------------



  • 4.  RE: IBM Resilient simple Workflow/Script check

    Posted 08/28/20 09:22 AM
    It sounds like the gateway does not have a "default" flow (the one chosen if the other flows don't match based on conditions). See if this article helps: https://www.ibm.com/support/knowledgecenter/SSBRUQ_32.0.0/com.ibm.resilient.doc/playbook/resilient_playbook_configwrkflows_conditions.htm

    Ben

    ------------------------------
    Ben Lurie
    ------------------------------



  • 5.  RE: IBM Resilient simple Workflow/Script check

    Posted 08/31/20 06:59 AM

    Hi Ben, 

    Thank you for the answer reading the article you sent me, I realized that I don't actually need an exclusive gateway on that position because I need to do the Ip Void check on both cases, if the result is positive then I'll close with a mail if not I'll just close ( without mail). At this point it should be easier to close the incident in both cases with a mail notification. 

    So, I'll ask you, is there a way to print the query result in the notification?  I tried to run the workflow and the action querying an artifact manually but both the action and the workflow are stuck in pending status so I'm not really sure if its working.



    ------------------------------
    Alessandro Di Liberto
    ------------------------------



  • 6.  RE: IBM Resilient simple Workflow/Script check

    Posted 08/31/20 07:21 AM
    Unfortunately there is not a direct way to send emails from the workflow (thought this would be a handy feature).  I think it will be necessary to put the results into an incident field (or datatable). Then configuration the notification to send if this value has changed. You will be able to access the incident/data table value in the notification with substitution variables.

    If an action/workflow are in the pending state it means that the circuits integration server processing the request did not return a value. You will need to check the circuits logs on the integration server to see what is happening. If you do a google search for 'Resilient ibm workflow pending status', I'm sure you'll find lots of things to look at :)

    Ben

    ------------------------------
    Ben Lurie
    ------------------------------



  • 7.  RE: IBM Resilient simple Workflow/Script check

    Posted 08/31/20 08:17 AM

    I tried to debug resilient-circuits several times, from the circuits logs itself I only see heartbeats. 

    If I run something like: resilient-circuits selftest -l fn-ip-void

    I got this output

    fn-ip-void:
    Test was successful!
    Credits Remaining: 25
    Estimated Queries: 312
    selftest: success, Elapsed time: 0.000000 seconds

    This is a part of the app.log regarding ip_void:

    [integration@resilient .resilient]$ cat app.log | grep void
    2020-08-31 09:29:27,864 DEBUG [connectionpool] https://172.25.0.169:443 "GET /rest/orgs/203/functions/fn_ip_void_request HTTP/1.1" 200 None
    2020-08-31 09:29:28,776 DEBUG [decorators] @function <function _fn_ip_void_request_function at 0x7f26ba682c50>
    2020-08-31 09:29:29,292 INFO [component_loader] 'fn_ip_void.components.fn_ip_void_request.FunctionComponent' loading
    2020-08-31 09:29:29,293 DEBUG [component_loader] 'fn_ip_void.components.fn_ip_void_request.FunctionComponent' loaded
    2020-08-31 09:29:30,468 INFO [actions_component] 'fn_ip_void.components.fn_ip_void_request.FunctionComponent' function 'fn_ip_void_request' registered to 'fn_ip_void'
    2020-08-31 09:29:30,469 DEBUG [actions_component] Listeners: {u'email_outbound': set([<FunctionComponent/* 26263:MainThread (queued=0) [S]>]), u'fn_spamhaus_query': set([<FunctionComponent/* 26263:MainThread (queued=0) [S]>]), u'fn_qradar_integration': set([<FunctionComponent/* 26263:MainThread (queued=0) [S]>, <FunctionComponent/* 26263:MainThread (queued=0) [S]>, <FunctionComponent/* 26263:MainThread (queued=0) [S]>, <FunctionComponent/* 26263:MainThread (queued=0) [S]>, <FunctionComponent/* 26263:MainThread (queued=0) [S]>]), u'fn_mitre_integration': set([<FunctionComponent/* 26263:MainThread (queued=0) [S]>, <FunctionComponent/* 26263:MainThread (queued=0) [S]>, <FunctionComponent/* 26263:MainThread (queued=0) [S]>, <FunctionComponent/* 26263:MainThread (queued=0) [S]>, <FunctionComponent/* 26263:MainThread (queued=0) [S]>]), u'fn_whois_rdap': set([<FunctionComponent/* 26263:MainThread (queued=0) [S]>]), u'fn_ipinfo': set([<FunctionComponent/* 26263:MainThread (queued=0) [S]>]), u'fn_xforce': set([<FunctionComponent/* 26263:MainThread (queued=0) [S]>, <FunctionComponent/* 26263:MainThread (queued=0) [S]>]), u'fn_ip_void': set([<FunctionComponent/* 26263:MainThread (queued=0) [S]>])}
    fn_ip_void_request/functions.fn_ip_void_request
    2020-08-31 09:29:30,476 INFO [actions_component] Subscribe to message destination 'fn_ip_void'
    2020-08-31 09:29:30,483 INFO [stomp_component] Subscribe to message destination actions.203.fn_ip_void
    2020-08-31 09:29:30,483 DEBUG [client] Sending SUBSCRIBE frame [headers={'ack': 'client-individual', 'destination': 'actions.203.fn_ip_void', 'id': 'actions.203.fn_ip_void', 'activemq.prefetchSize': 20}, version=1.2]

    I don't see any errors on this side, the workflow status is nor on "pending" but on "running", I can't find anything related to it tough.



    ------------------------------
    Alessandro Di Liberto
    ------------------------------



  • 8.  RE: IBM Resilient simple Workflow/Script check

    Posted 09/01/20 10:06 AM
    Edited by Richard Giesige 09/01/20 10:08 AM
    @Alessandro Di Liberto 

    If you aren't seeing anything other than heartbeats in the resilient-circuits log than it doesn't seem like it is actually registered​ to the circuits server. The self test functions don't actually run anything on the real server.

    if you do "resilient-circuits list" does your function show up as installed on the integration server or whatever sever your are running it on?

    Also are you using YIELD statements in your code? Yields should show up inside resilient under the "Actions" section when you are running the function that is setup to talk to IP VOID.

    Also make sure the function is pointing at the right message destination.

    ------------------------------
    Richard Giesige
    Security Engineer
    Oshkosh Corporation
    Oshkosh
    ------------------------------



  • 9.  RE: IBM Resilient simple Workflow/Script check

    Posted 09/01/20 10:19 AM

    Hello Richard, 

    Thank you for the answer, i ran "resilient-circuits list" before and I didn't see anything wrong, here's the output:

    resilient-circuits list
    The following packages and components are installed:
    fn-ip-void==1.0.1:
    FnIpVoidRequestFunctionComponent
    fn-ipinfo==1.0.0:
    FnIpinfoQueryIpAddressFunctionComponent
    fn-mitre-integration==2.0.1:
    MitreTechniqueInformationFunctionComponent
    MitreTacticInformationFunctionComponent
    MitreTechniquesSoftwareFunctionComponent
    MitreGroupsUsingTechniqueFunctionComponent
    MitreGroupsTechniqueIntersectionFunctionComponent
    fn-outbound-email==1.0.9:
    SendEmailFunctionComponent
    fn-qradar-integration==2.0.6:
    QradarFindReferenceSetItemFunctionComponent
    QradarFindReferenceSetsFunctionComponent
    QradarSearchFunctionComponent
    QradarDeleteReferenceSetItemFunctionComponent
    QradarAddReferenceSetItemFunctionComponent
    fn-spamhaus-query==1.0.0:
    FnSpamhausQuerySubmitArtifactFunctionComponent
    fn-whois-rdap==1.0.2:
    WhoisQueryFunctionComponent
    RdapQueryFunctionComponent
    fn-xforce==1.0.0:
    XforceQueryCollectionFunctionComponent
    XforceGetCollectionByIdFunctionComponent

    For what concerns using YELD statements, haven't really touched anything from the script. 

    I've just created a rule that takes the IP from an offense and forwards it to the IP Void destination when the artifact type is an IP address and executes the Workflow above.



    ------------------------------
    Alessandro Di Liberto
    ------------------------------



  • 10.  RE: IBM Resilient simple Workflow/Script check

    Posted 09/01/20 10:34 AM


    The action remains in a "Pending" status


    ------------------------------
    Alessandro Di Liberto
    ------------------------------



  • 11.  RE: IBM Resilient simple Workflow/Script check

    Posted 09/01/20 10:27 AM
    @Alessandro Di Liberto can you take a screenshot of the out put of the "Actions" section on the incident that you are testing it on? Make sure to check "complete" and then expand the one that is associated with the IP Void function.

     ​

    ------------------------------
    Richard Giesige
    Security Engineer
    Oshkosh Corporation
    Oshkosh
    ------------------------------



  • 12.  RE: IBM Resilient simple Workflow/Script check

    Posted 09/01/20 10:39 AM

    This is the screenshot from the action panel, the status is constantly "pending". I executed the workflow manually in this case


    ------------------------------
    Alessandro Di Liberto
    ------------------------------



  • 13.  RE: IBM Resilient simple Workflow/Script check

    Posted 09/01/20 10:49 AM
    So from that screenshot it looks like possibly you don't have the resilient-server checking the message destination since it is in a pending state.

    We have done this a couple of times where we forgot to restart the resilient-circuits service after installing a new function. So next question, did you restart the resilient-circuits service after the installation? Also if you have can you try doing it again and then provide the output of the service from the resilient-circuits.log?

    Thanks

    ------------------------------
    Richard Giesige
    Security Engineer
    Oshkosh Corporation
    Oshkosh
    ------------------------------



  • 14.  RE: IBM Resilient simple Workflow/Script check

    Posted 09/01/20 10:55 AM

    I previously restarted the whole server but I've restarted the service now, the action is still on pending.  Where can I finf the resilient-circuits.log?

    I've always checked the app.log file on the /.resilient/ folder



    ------------------------------
    Alessandro Di Liberto
    ------------------------------



  • 15.  RE: IBM Resilient simple Workflow/Script check

    Posted 09/01/20 01:54 PM
    @Alessandro Di Liberto

    The log should be called app.log and it should be contain information about each function that is running. Let me know if you need to help finding it. The log location is controlled in the app.config​

    ------------------------------
    Richard Giesige
    Security Engineer
    Oshkosh Corporation
    Oshkosh
    ------------------------------



  • 16.  RE: IBM Resilient simple Workflow/Script check

    Posted 09/02/20 06:04 AM

    Hello Richard, 

    I think I posted an example above:

    This is a part of the app.log regarding ip_void:

    [integration@resilient .resilient]$ cat app.log | grep void
    2020-08-31 09:29:27,864 DEBUG [connectionpool] https://172.25.0.169:443 "GET /rest/orgs/203/functions/fn_ip_void_request HTTP/1.1" 200 None
    2020-08-31 09:29:28,776 DEBUG [decorators] @function <function _fn_ip_void_request_function at 0x7f26ba682c50>
    2020-08-31 09:29:29,292 INFO [component_loader] 'fn_ip_void.components.fn_ip_void_request.FunctionComponent' loading
    2020-08-31 09:29:29,293 DEBUG [component_loader] 'fn_ip_void.components.fn_ip_void_request.FunctionComponent' loaded
    2020-08-31 09:29:30,468 INFO [actions_component] 'fn_ip_void.components.fn_ip_void_request.FunctionComponent' function 'fn_ip_void_request' registered to 'fn_ip_void'
    2020-08-31 09:29:30,469 DEBUG [actions_component] Listeners: {u'email_outbound': set([<FunctionComponent/* 26263:MainThread (queued=0) [S]>]), u'fn_spamhaus_query': set([<FunctionComponent/* 26263:MainThread (queued=0) [S]>]), u'fn_qradar_integration': set([<FunctionComponent/* 26263:MainThread (queued=0) [S]>, <FunctionComponent/* 26263:MainThread (queued=0) [S]>, <FunctionComponent/* 26263:MainThread (queued=0) [S]>, <FunctionComponent/* 26263:MainThread (queued=0) [S]>, <FunctionComponent/* 26263:MainThread (queued=0) [S]>]), u'fn_mitre_integration': set([<FunctionComponent/* 26263:MainThread (queued=0) [S]>, <FunctionComponent/* 26263:MainThread (queued=0) [S]>, <FunctionComponent/* 26263:MainThread (queued=0) [S]>, <FunctionComponent/* 26263:MainThread (queued=0) [S]>, <FunctionComponent/* 26263:MainThread (queued=0) [S]>]), u'fn_whois_rdap': set([<FunctionComponent/* 26263:MainThread (queued=0) [S]>]), u'fn_ipinfo': set([<FunctionComponent/* 26263:MainThread (queued=0) [S]>]), u'fn_xforce': set([<FunctionComponent/* 26263:MainThread (queued=0) [S]>, <FunctionComponent/* 26263:MainThread (queued=0) [S]>]), u'fn_ip_void': set([<FunctionComponent/* 26263:MainThread (queued=0) [S]>])}
    fn_ip_void_request/functions.fn_ip_void_request
    2020-08-31 09:29:30,476 INFO [actions_component] Subscribe to message destination 'fn_ip_void'
    2020-08-31 09:29:30,483 INFO [stomp_component] Subscribe to message destination actions.203.fn_ip_void
    2020-08-31 09:29:30,483 DEBUG [client] Sending SUBSCRIBE frame [headers={'ack': 'client-individual', 'destination': 'actions.203.fn_ip_void', 'id': 'actions.203.fn_ip_void', 'activemq.prefetchSize': 20}, version=1.2]

    For the rest, this is an example of what's written on the log

    2020-09-02 09:19:08,530 DEBUG [client] Received heart-beat
    2020-09-02 09:19:23,540 DEBUG [client] Received heart-beat
    2020-09-02 09:19:38,540 DEBUG [client] Received heart-beat
    2020-09-02 09:19:53,507 DEBUG [client] Received heart-beat
    2020-09-02 09:20:08,525 DEBUG [client] Received heart-beat
    2020-09-02 09:20:23,540 DEBUG [client] Received heart-beat
    2020-09-02 09:20:38,533 DEBUG [client] Received heart-beat
    2020-09-02 09:20:53,491 DEBUG [client] Received heart-beat
    2020-09-02 09:21:08,533 DEBUG [client] Received heart-beat
    2020-09-02 09:21:23,540 DEBUG [client] Received heart-beat
    2020-09-02 09:21:38,532 DEBUG [client] Received heart-beat
    2020-09-02 09:21:53,494 DEBUG [client] Received heart-beat
    2020-09-02 09:22:08,530 DEBUG [client] Received heart-beat
    2020-09-02 09:22:22,845 DEBUG [actions_component] Idle reset
    2020-09-02 09:22:23,549 DEBUG [client] Received heart-beat
    2020-09-02 09:22:38,532 DEBUG [client] Received heart-beat
    2020-09-02 09:22:53,496 DEBUG [client] Received heart-beat
    2020-09-02 09:23:08,531 DEBUG [client] Received heart-beat
    2020-09-02 09:23:23,541 DEBUG [client] Received heart-beat
    2020-09-02 09:23:38,533 DEBUG [client] Received heart-beat
    2020-09-02 09:23:53,492 DEBUG [client] Received heart-beat
    2020-09-02 09:24:08,532 DEBUG [client] Received heart-beat
    2020-09-02 09:24:23,541 DEBUG [client] Received heart-beat
    2020-09-02 09:24:38,537 DEBUG [client] Received heart-beat
    2020-09-02 09:24:53,500 DEBUG [client] Received heart-beat
    2020-09-02 09:25:08,532 DEBUG [client] Received heart-beat
    2020-09-02 09:25:23,542 DEBUG [client] Received heart-beat
    2020-09-02 09:25:38,531 DEBUG [client] Received heart-beat
    2020-09-02 09:25:53,490 DEBUG [client] Received heart-beat
    2020-09-02 09:26:08,533 DEBUG [client] Received heart-beat
    2020-09-02 09:26:23,542 DEBUG [client] Received heart-beat
    2020-09-02 09:26:38,534 DEBUG [client] Received heart-beat
    2020-09-02 09:26:53,497 DEBUG [client] Received heart-beat
    2020-09-02 09:27:08,538 DEBUG [client] Received heart-beat
    2020-09-02 09:27:23,542 DEBUG [client] Received heart-beat
    2020-09-02 09:27:38,537 DEBUG [client] Received heart-beat
    2020-09-02 09:27:53,497 DEBUG [client] Received heart-beat
    2020-09-02 09:28:08,530 DEBUG [client] Received heart-beat
    2020-09-02 09:28:23,543 DEBUG [client] Received heart-beat
    2020-09-02 09:28:38,536 DEBUG [client] Received heart-beat
    2020-09-02 09:28:53,496 DEBUG [client] Received heart-beat
    2020-09-02 09:29:08,535 DEBUG [client] Received heart-beat
    2020-09-02 09:29:23,543 DEBUG [client] Received heart-beat
    2020-09-02 09:29:38,537 DEBUG [client] Received heart-beat
    2020-09-02 09:29:53,497 DEBUG [client] Received heart-beat
    2020-09-02 09:30:08,561 DEBUG [client] Received heart-beat
    2020-09-02 09:30:23,544 DEBUG [client] Received heart-beat
    2020-09-02 09:30:38,536 DEBUG [client] Received heart-beat
    2020-09-02 09:30:53,496 DEBUG [client] Received heart-beat
    2020-09-02 09:31:08,535 DEBUG [client] Received heart-beat
    2020-09-02 09:31:23,544 DEBUG [client] Received heart-beat
    2020-09-02 09:31:38,544 DEBUG [client] Received heart-beat
    2020-09-02 09:31:53,505 DEBUG [client] Received heart-beat
    2020-09-02 09:32:08,542 DEBUG [client] Received heart-beat
    2020-09-02 09:32:22,846 DEBUG [actions_component] Idle reset
    2020-09-02 09:32:23,549 DEBUG [client] Received heart-beat
    2020-09-02 09:32:38,540 DEBUG [client] Received heart-beat
    2020-09-02 09:32:53,502 DEBUG [client] Received heart-beat
    2020-09-02 09:33:08,536 DEBUG [client] Received heart-beat
    2020-09-02 09:33:23,546 DEBUG [client] Received heart-beat
    2020-09-02 09:33:38,541 DEBUG [client] Received heart-beat
    2020-09-02 09:33:53,500 DEBUG [client] Received heart-beat
    2020-09-02 09:34:08,539 DEBUG [client] Received heart-beat
    2020-09-02 09:34:23,545 DEBUG [client] Received heart-beat
    2020-09-02 09:34:38,558 DEBUG [client] Received heart-beat
    2020-09-02 09:34:53,520 DEBUG [client] Received heart-beat
    2020-09-02 09:35:08,539 DEBUG [client] Received heart-beat
    2020-09-02 09:35:23,546 DEBUG [client] Received heart-beat
    2020-09-02 09:35:38,570 DEBUG [client] Received heart-beat
    2020-09-02 09:35:53,526 DEBUG [client] Received heart-beat
    2020-09-02 09:36:08,542 DEBUG [client] Received heart-beat
    2020-09-02 09:36:23,547 DEBUG [client] Received heart-beat
    2020-09-02 09:36:38,541 DEBUG [client] Received heart-beat
    2020-09-02 09:36:53,502 DEBUG [client] Received heart-beat
    2020-09-02 09:37:08,542 DEBUG [client] Received heart-beat
    2020-09-02 09:37:23,546 DEBUG [client] Received heart-beat
    2020-09-02 09:37:38,539 DEBUG [client] Received heart-beat
    2020-09-02 09:37:53,498 DEBUG [client] Received heart-beat
    2020-09-02 09:38:08,540 DEBUG [client] Received heart-beat
    2020-09-02 09:38:23,547 DEBUG [client] Received heart-beat
    2020-09-02 09:38:38,542 DEBUG [client] Received heart-beat
    2020-09-02 09:38:53,500 DEBUG [client] Received heart-beat
    2020-09-02 09:39:08,542 DEBUG [client] Received heart-beat
    2020-09-02 09:39:23,547 DEBUG [client] Received heart-beat
    2020-09-02 09:39:38,536 DEBUG [client] Received heart-beat
    2020-09-02 09:39:53,493 DEBUG [client] Received heart-beat
    2020-09-02 09:40:08,542 DEBUG [client] Received heart-beat
    2020-09-02 09:40:23,547 DEBUG [client] Received heart-beat
    2020-09-02 09:40:38,539 DEBUG [client] Received heart-beat
    2020-09-02 09:40:53,498 DEBUG [client] Received heart-beat
    2020-09-02 09:41:08,541 DEBUG [client] Received heart-beat
    2020-09-02 09:41:23,548 DEBUG [client] Received heart-beat
    2020-09-02 09:41:38,543 DEBUG [client] Received heart-beat
    2020-09-02 09:41:53,505 DEBUG [client] Received heart-beat
    2020-09-02 09:42:08,545 DEBUG [client] Received heart-beat
    2020-09-02 09:42:22,846 DEBUG [actions_component] Idle reset
    2020-09-02 09:42:23,549 DEBUG [client] Received heart-beat
    2020-09-02 09:42:38,545 DEBUG [client] Received heart-beat
    2020-09-02 09:42:53,505 DEBUG [client] Received heart-beat
    2020-09-02 09:43:08,547 DEBUG [client] Received heart-beat
    2020-09-02 09:43:23,550 DEBUG [client] Received heart-beat
    2020-09-02 09:43:38,547 DEBUG [client] Received heart-beat
    2020-09-02 09:43:53,506 DEBUG [client] Received heart-beat
    2020-09-02 09:44:08,543 DEBUG [client] Received heart-beat
    2020-09-02 09:44:23,550 DEBUG [client] Received heart-beat
    2020-09-02 09:44:38,548 DEBUG [client] Received heart-beat
    2020-09-02 09:44:53,528 DEBUG [client] Received heart-beat
    2020-09-02 09:45:08,547 DEBUG [client] Received heart-beat
    2020-09-02 09:45:23,551 DEBUG [client] Received heart-beat
    2020-09-02 09:45:38,546 DEBUG [client] Received heart-beat
    2020-09-02 09:45:53,507 DEBUG [client] Received heart-beat
    2020-09-02 09:46:08,547 DEBUG [client] Received heart-beat
    2020-09-02 09:46:23,550 DEBUG [client] Received heart-beat
    2020-09-02 09:46:38,547 DEBUG [client] Received heart-beat
    2020-09-02 09:46:53,507 DEBUG [client] Received heart-beat
    2020-09-02 09:47:08,548 DEBUG [client] Received heart-beat
    2020-09-02 09:47:23,551 DEBUG [client] Received heart-beat
    2020-09-02 09:47:38,550 DEBUG [client] Received heart-beat
    2020-09-02 09:47:53,511 DEBUG [client] Received heart-beat
    2020-09-02 09:48:08,570 DEBUG [client] Received heart-beat
    2020-09-02 09:48:23,551 DEBUG [client] Received heart-beat
    2020-09-02 09:48:38,550 DEBUG [client] Received heart-beat
    2020-09-02 09:48:53,509 DEBUG [client] Received heart-beat
    2020-09-02 09:49:08,561 DEBUG [client] Received heart-beat
    2020-09-02 09:49:23,552 DEBUG [client] Received heart-beat
    2020-09-02 09:49:38,552 DEBUG [client] Received heart-beat
    2020-09-02 09:49:53,512 DEBUG [client] Received heart-beat
    2020-09-02 09:50:08,554 DEBUG [client] Received heart-beat
    2020-09-02 09:50:23,551 DEBUG [client] Received heart-beat
    2020-09-02 09:50:38,552 DEBUG [client] Received heart-beat
    2020-09-02 09:50:53,515 DEBUG [client] Received heart-beat
    2020-09-02 09:51:08,553 DEBUG [client] Received heart-beat
    2020-09-02 09:51:23,553 DEBUG [client] Received heart-beat
    2020-09-02 09:51:38,552 DEBUG [client] Received heart-beat
    2020-09-02 09:51:53,513 DEBUG [client] Received heart-beat
    2020-09-02 09:52:08,555 DEBUG [client] Received heart-beat
    2020-09-02 09:52:22,846 DEBUG [actions_component] Idle reset
    2020-09-02 09:52:23,550 DEBUG [client] Received heart-beat
    2020-09-02 09:52:38,550 DEBUG [client] Received heart-beat
    2020-09-02 09:52:53,510 DEBUG [client] Received heart-beat
    2020-09-02 09:53:08,552 DEBUG [client] Received heart-beat
    2020-09-02 09:53:23,553 DEBUG [client] Received heart-beat
    2020-09-02 09:53:38,553 DEBUG [client] Received heart-beat
    2020-09-02 09:53:53,510 DEBUG [client] Received heart-beat
    2020-09-02 09:54:08,552 DEBUG [client] Received heart-beat
    2020-09-02 09:54:23,553 DEBUG [client] Received heart-beat
    2020-09-02 09:54:38,555 DEBUG [client] Received heart-beat
    2020-09-02 09:54:53,517 DEBUG [client] Received heart-beat
    2020-09-02 09:55:08,558 DEBUG [client] Received heart-beat
    2020-09-02 09:55:23,554 DEBUG [client] Received heart-beat
    2020-09-02 09:55:38,555 DEBUG [client] Received heart-beat
    2020-09-02 09:55:53,519 DEBUG [client] Received heart-beat
    2020-09-02 09:56:08,567 DEBUG [client] Received heart-beat
    2020-09-02 09:56:23,554 DEBUG [client] Received heart-beat
    2020-09-02 09:56:38,559 DEBUG [client] Received heart-beat
    2020-09-02 09:56:53,519 DEBUG [client] Received heart-beat
    2020-09-02 09:57:08,558 DEBUG [client] Received heart-beat
    2020-09-02 09:57:23,554 DEBUG [client] Received heart-beat
    2020-09-02 09:57:38,558 DEBUG [client] Received heart-beat
    2020-09-02 09:57:53,517 DEBUG [client] Received heart-beat
    2020-09-02 09:58:08,553 DEBUG [client] Received heart-beat
    2020-09-02 09:58:23,555 DEBUG [client] Received heart-beat
    2020-09-02 09:58:38,556 DEBUG [client] Received heart-beat
    2020-09-02 09:58:53,514 DEBUG [client] Received heart-beat
    2020-09-02 09:59:08,555 DEBUG [client] Received heart-beat
    2020-09-02 09:59:23,556 DEBUG [client] Received heart-beat
    2020-09-02 09:59:38,567 DEBUG [client] Received heart-beat
    2020-09-02 09:59:53,528 DEBUG [client] Received heart-beat
    2020-09-02 10:00:08,562 DEBUG [client] Received heart-beat
    2020-09-02 10:00:23,556 DEBUG [client] Received heart-beat
    2020-09-02 10:00:38,557 DEBUG [client] Received heart-beat
    2020-09-02 10:00:53,513 DEBUG [client] Received heart-beat
    2020-09-02 10:01:08,555 DEBUG [client] Received heart-beat
    2020-09-02 10:01:23,556 DEBUG [client] Received heart-beat
    2020-09-02 10:01:38,557 DEBUG [client] Received heart-beat
    2020-09-02 10:01:53,514 DEBUG [client] Received heart-beat
    2020-09-02 10:02:08,557 DEBUG [client] Received heart-beat
    2020-09-02 10:02:22,847 DEBUG [actions_component] Idle reset
    2020-09-02 10:02:23,550 DEBUG [client] Received heart-beat
    2020-09-02 10:02:38,558 DEBUG [client] Received heart-beat
    2020-09-02 10:02:53,517 DEBUG [client] Received heart-beat
    2020-09-02 10:03:08,560 DEBUG [client] Received heart-beat



    ------------------------------
    Alessandro Di Liberto
    ------------------------------



  • 17.  RE: IBM Resilient simple Workflow/Script check

    Posted 09/02/20 02:10 PM
    @Alessandro Di Liberto

    What I don't see in your log that I normally see in the resilient circuits output that would tell me that it is working is the "subscribe" lines.

    2020-08-24 10:55:55,909 INFO [actions_component] resilient-circuits has started successfully and is now running...,
    2020-08-24 10:55:55,909 INFO [actions_component] Subscribe to message destination '{integration name}',
    2020-08-24 10:55:55,909 INFO [stomp_component] Subscribe to message destination actions.201.{integration function},

    DO you see any of those in your log or the other resilient logs that say that you have ipvoid listening for the message destiination?​

    ------------------------------
    Richard Giesige
    Security Engineer
    Oshkosh Corporation
    Oshkosh
    ------------------------------



  • 18.  RE: IBM Resilient simple Workflow/Script check

    Posted 09/03/20 04:08 AM

    Hello Richard, 

    In the very same app.log I  see lines like :

    2020-08-24 10:55:55,909 INFO [actions_component] resilient-circuits has started successfully and is now running...,
     and

    2020-08-24 10:55:55,909 INFO [stomp_component] Subscribe to message destination actions.201.{integration function

    For what concern the second line you posted I only have this:

    [integration@resilient ~]$ cat /home/integration/.resilient/app.log | grep subscribe
    subscribe_to_all/*
    Unsubscribe/*
    2020-08-31 09:29:30,476 DEBUG [actions_component] Connected successfully. Resubscribe? False
    subscribe_to_all/*
    Unsubscribe/*
    2020-09-01 14:52:05,863 DEBUG [actions_component] Connected successfully. Resubscribe? False
    subscribe_to_all/*
    Unsubscribe/*
    2020-09-01 14:52:11,650 DEBUG [actions_component] Connected successfully. Resubscribe? False
    subscribe_to_all/*
    Unsubscribe/*
    2020-09-01 14:52:23,958 DEBUG [actions_component] Connected successfully. Resubscribe? False



    ------------------------------
    Alessandro Di Liberto
    ------------------------------



  • 19.  RE: IBM Resilient simple Workflow/Script check

    Posted 09/03/20 05:04 PM
    @Alessandro Di Liberto

    So from your previous post you can #7 and #16 I can see that you are actually getting these but only for org 203.

    Are you actually in organization 203 with this function? ​Just trying to figure out if maybe you have this installed in multiple orgs (I'm not sure how MISP works exactly) and you aren't subscribed to the right org?

    In the url for the incident you are testing do you see 203 in it?

    For example we run everything out of 201:
    https://resilienturl.com/#incidents/3303?orgId=201&tab=81fcccb8-abc7-45fd-b7e9-2e494e7be849

    Let me know if you are subscribed to that?

    Than also in your resilient-circuits configuration is the Org value set to the org name for 203?

    Thanks,

    ------------------------------
    Richard Giesige
    Security Engineer
    Oshkosh Corporation
    Oshkosh
    ------------------------------



  • 20.  RE: IBM Resilient simple Workflow/Script check

    Posted 09/04/20 09:00 AM

    @Richard Giesige

    Thanks for the answer, I guess that was the problem.

    I changed the app.config file on the resilient-circuits directory to the Org that I'm actually testing.

    Maybe you can't answer to this question but I'll give it a shot:

    I previously configured the Organization on the app.config file with the Configuration organization of my MSSP environment, changing that with the single organization name made the trick. The question is: how can I manage multiple organization with a single integration server? do I need to deploy an integration server for every single organization?​



    ------------------------------
    Alessandro Di Liberto
    ------------------------------



  • 21.  RE: IBM Resilient simple Workflow/Script check

    Posted 09/04/20 09:17 AM
    I don't think it is possible to support more than one organization with a circuits instance. I've heard of some organizations using docker instances to host separate circuits for each child organization.

    Ben

    ------------------------------
    Ben Lurie
    ------------------------------



  • 22.  RE: IBM Resilient simple Workflow/Script check

    Posted 09/04/20 10:29 AM
    @Alessandro Di Liberto

    This was a similar reason to why we made everything run in Docker for our resilient-circuits. It allowed us to run multiple versions of the same application on one physical server but connected to multiple organizations. Let me know if you want to explore this path, just direct message me and I would be willing to show you what we do. It's not the easiest or least complicated way but it would solve your problem without having to run multiple physical servers until they flesh out more with the App Host. But IBM are supposedly looking at it in a future release so you can run multiple versions of the same integration.​​

    ------------------------------
    Richard Giesige
    Security Engineer
    Oshkosh Corporation
    Oshkosh
    ------------------------------



  • 23.  RE: IBM Resilient simple Workflow/Script check

    Posted 09/07/20 06:43 AM

    Hello Richard, 

     Thank you very much, I've contacted you via direct message



    ------------------------------
    Alessandro Di Liberto
    ------------------------------