Git Product home page Git Product logo

sentinelautomationmodules's Introduction

Microsoft Sentinel Triage AssistanT (STAT) ๐Ÿฅ

The Microsoft Sentinel Triage AssistanT (STAT) is a Logic Apps Custom Connector that calls on a library of Automation Modules that can be used from Incident and alert based Microsoft Sentinel playbooks. This connector and modules simplify automation by moving complex automation tasks into these callable modules so they can be performed consistently and with ease from the Logic Apps Connector.

Using the Microsoft Sentinel Triage AssistanT starts by calling the Base Module. This module prepares and enriches Incident and entity data for each of the triage modules which consumes this data. Once the Base Module has been called the triage modules can be used to perform analysis against the entities related to the Microsoft Sentinel incident. These triage modules will return an easy to use, well documented result so you can evaluate the outputs and quickly make decisions about how to handle an incident.

Project goals include:

  • Reducing the time (and cost) of building Microsoft Sentinel Automation
  • Reducing the time to test Microsoft Sentinel Automation through the use of consistent callable modules
  • Increasing SOC efficiency by triaging Incidents before they reach an analyst

Many of the Microsoft Sentinel playbook templates available today focus on Notification, Incident Enrichment and Remediation. This project focuses on the triage and analysis of an incident to provide additional confidence in the quality of the incident before taking actions. When the incident is determined to be low quality (likely a benign positive), it can be closed or lowered in severity through these automation flows. When the incident is determined to be of higher quality, it can be raised in severity, assigned to an analyst or even trigger a remediation playbook.

The full solution is available for deployment in the Deployment section and additional documentation can be found in the Wiki.

If you have any questions about this project or would like to provide suggestions to the STAT project maintainers please open an issue.

sentinelautomationmodules's People

Contributors

andrew-bennett avatar briandelmsft avatar piaudonn avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

sentinelautomationmodules's Issues

Related Alerts Module

Check entity type for related alerts in Sentinel, input entities, entity type to check, incident arm id (to filter out linked alerts) and timeframe to look back

FileInsight module

Leverage the FileProfile() function from Defender to return the prevalance of a file (as well as other meta data).

Refine module return schema

I tried calling some of the modules and when I parsed the output using parse json it wasn't obvious what properties were in an array.

We need to see if we can add some descriptions to the schema to make it more clear, if not perhaps make the names more obvious

Entities Processing Module

Build a shared module to handle entity processing to provide consistent results. This is particularly important for the account entity where UPN and/or Azure AD Id are not always included in the entity, but are needed by much of the automation.

Proposed sample return:

{
    "AccountsAllValid": false,
    "AccountsInput": 4,
    "AccountsValid": 3,
    "Accounts": [
        {
            "AADId": "",
            "DistinguishedName": "",
            "objectSID": "",
            "UserPrincipalName": ""
        }
    ],
    "IPsAllValid": true,
    "IPsInput": 1,
    "IPsValid": 1,
    "IPs": [
        {
            "Address": ""
        }
    ],
    "HostsAllValid": true,
    "HostsInput": 0,
    "HostsValid": 0,
    "Hosts": []
}

MCAS Module - API Key Handling

On the key vault Get MCAS API secret step, set that logic app step to Secure Outputs... otherwise the API key will be logged in the logic app run history

Entities module - where to call it?

As I am rewrite the MCAS and MDE modules, I wonder. Would the goal to use it in every Module? Or before calling a any module?

I guess it would make sense to call it before calling any module as it would avoid duplicate work. But then it changes the input for the existing modules (well the existing module have to change anyway, whether it is to add the call to the shared module or to change the input parameter in the trigger).

I see pro and cons for both.

MDE Module - Simplify entities parsing

The current logic is very cumbersome. It can be redone with the foolowing assumption:

  • There are nearly never account entities with only the aadUserId
  • Most of account entities will have an AccountName

User assigned managed identity

Should we switch to user assigned managed identity? Sharing one identity across all the modules has some benefit in that it would simplify permissions assignment as the identity is shared but there could also be downsides.

Get-MCASInvestigationPriority

Get-MCASInvestigationPriority
Input

  • The username or userid and look up the Investigation priority in MCAS as well as the Investigation priority history
  • ARM Incident ID to add results into an comment

Requirements

  • URL of the API (depends on the location and tenant name)
  • Token API
  • Key Vault to safely store the Token

Signin Risk Module

Evaluate the risk of the users signin activity, considering risk status, named locations, MFA, Conditional Access, etc

Watchlist Module

Build module to check watchlists, inputs will include entity data, entity type to check, watchlist name, watchlist column

Watchlist module deployment fails intermittently

The logic app resource is missing a dependency on the API connection.
I suggest adding:

"dependsOn": [ "[resourceId('Microsoft.Web/connections', variables('AzureSentinelConnectionName'))]" ],

Entities - user's status

@briandelmsft Should we add the status of the user such as "IsEnabled" : true or something of the sort? It's not used on other module (yet?) but it could be usefull I guess. Nope?

Base Module - Add additional error handling

If we are not successful in the first attempt we stop, despite the entity potentially succeeding via another method. For example if an email is provided as a upn and the do not match it will fail

UEBA Module - Min return schema

Ensure minimum return schema is passed by module

{
	"AnalyzedEntities": 0,
	"DetailedResults": [],
	"RapidTriage": "Passed/Failed"
}

OOF Module - Min return schema

Ensure minimum return schema is passed by module

{
	"AnalyzedEntities": 0,
	"DetailedResults": [],
	"RapidTriage": "Passed/Failed"
}

MDE Risk Module

Get the level of risk of devices onbaorded in MDE where the accounts have logged-in in the last x days.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.