IBM QRadar SOAR

IBM QRadar SOAR

Join this online user 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.

 View Only
  • 1.  Clarification needed: Which component directory executes a custom function on IBM SOAR Integration Server?

    Posted 8 days ago

    Hi Team,

    I am trying to modify an existing custom function developed for IBM SOAR. The custom package is named:

    sentinelone_block_hash

    On the Integration Server, I found Python component files in two different locations:

    /home/integration/sentinel_block_hash/sentinel_block_hash/components/

    and:

    /home/integration/.resilient/components/

    The first location appears to be the original source package generated using the IBM SOAR SDK. However, the files under .resilient/components appear to contain the complete function logic currently used by the integration.

    I modified the function logic, but the changes are not reflected when I trigger the function from IBM SOAR. I am therefore unsure which copy is loaded by the running resilient-circuits process.

    Could someone please clarify the following?

    1. Which of these two directories is used at runtime by resilient-circuits?
    2. In which directory should the function code be modified?
    3. After modifying the Python file, how should the updated code be deployed?
    4. Do I need to rebuild and reinstall sentinelone_block_hash, or is restarting resilient-circuits sufficient?
    5. What is the correct command to restart or reload the integration?
    6. How can I verify from the logs which Python component file is being executed?
    7. Is there any configuration in app.config that controls loading components from:

    /home/integration/.resilient/components/

    Any guidance on the correct development, deployment, restart, and validation process would be helpful.

    Thanks,
    Sreekanth



    ------------------------------
    Sreekanth Bille
    ------------------------------


  • 2.  RE: Clarification needed: Which component directory executes a custom function on IBM SOAR Integration Server?

    Posted 7 days ago

    Dear Sreekanth ,

    I suggest you go in other path and use the REST API app to call "https://managedr.sentinelone.net/web/api/v2.1/restrictions" to block the hash , we have been using the same.

    example body is below : 

    body = {
    "filter": {
        "tenant": "True" #block on all tenants / accounts
      },
    "data": {
    "value": artifact.value,
    "type": "black_hash",
    "description": "Hash has been Block through IBM SOAR by Operations Team",
    "osType": "windows"
    }
    }



    ------------------------------
    Mohamad Islam Hamadieh
    ------------------------------



  • 3.  RE: Clarification needed: Which component directory executes a custom function on IBM SOAR Integration Server?

    Posted 7 days ago

    Hi Mohamad,

    Thank you for the suggestion. We are aware that the REST API app can be used to call the SentinelOne endpoint directly.

    However, the existing sentinelone_block_hash custom function contains additional processing and business logic beyond the REST API call. Therefore, we need to continue using and modifying the existing custom function rather than replacing it with the REST API app.

    My query is specifically about the correct procedure for modifying and deploying the existing function code:

    • Which component directory is used by the running resilient-circuits process?
    • Should we modify the source package or the file under .resilient/components?
    • After modifying the code, do we need to rebuild and reinstall the package, or only restart resilient-circuits?
    • How can we confirm which Python file is loaded at runtime?

    Any guidance on these points would be appreciated.

    Thanks,
    Sreekanth



    ------------------------------
    Sreekanth Bille
    ------------------------------



  • 4.  RE: Clarification needed: Which component directory executes a custom function on IBM SOAR Integration Server?

    Posted 7 days ago

    Hi Sreenkanth ,

    I don't have much experiences in that , hopefully some one else will help you.

    one thing to keep in mind if you are using apphost , modification an application is not easy , as even when you modify the code and reupload the app , it still pull the app from IBM servers , so any changes you made are not saved (at least that was my expirense)



    ------------------------------
    Mohamad Islam Hamadieh
    ------------------------------



  • 5.  RE: Clarification needed: Which component directory executes a custom function on IBM SOAR Integration Server?

    Posted 7 days ago

    Hello @Sreekanth Bille

    The important distinction is between the development/source directory and the Python package actually installed in the environment used by resilient-circuits. Editing the SDK project under /home/integration/sentinel_block_hash/... won't necessarily affect the running integration, which explains why your changes aren't appearing.

    I would avoid directly modifying /home/integration/.resilient/components/ as the normal deployment method. Instead, make the changes in the original sentinelone_block_hash source project, rebuild the package, reinstall/upgrade it into the same Python environment used by resilient-circuits, and then restart the service/process.

    You can first verify exactly what Python is loading with something similar to:

    python -c "import sentinel_block_hash; print(sentinel_block_hash.__file__)"

    For the specific component module, you can similarly import it and print its __file__. This is a reliable way to determine whether the running environment is using the installed package or another copy.

    Also verify that you're building/reinstalling with the same Python/virtual environment used to launch resilient-circuits; otherwise, you can successfully install the updated package into one environment while the service continues using the old package from another.

    app.config normally controls the integration configuration rather than selecting arbitrary Python source directories. Since your thread shows two copies of the component, confirming the active Python module path should be the first step before changing anything else.

    Hope this helps narrow down which copy is actually executing.



    ------------------------------
    Allan Solomon Mejia
    ------------------------------