Skip to main content Why Microsoft Security AI-powered cybersecurity Cloud security Data security & governance Identity & network access Privacy & risk management Security for AI Unified SecOps Zero Trust Microsoft Defender Microsoft Entra Microsoft Intune Microsoft Priva Microsoft Purview Microsoft Sentinel Microsoft Security Copilot Microsoft Entra ID (Azure Active Directory) Microsoft Entra Agent ID Microsoft Entra External ID Microsoft Entra ID Governance Microsoft Entra ID Protection Microsoft Entra Internet Access Microsoft Entra Private Access Microsoft Entra Permissions Management Microsoft Entra Verified ID Microsoft Entra Workload ID Microsoft Entra Domain Services Azure Key Vault Microsoft Sentinel Microsoft Defender for Cloud Microsoft Defender XDR Microsoft Defender for Endpoint Microsoft Defender for Office 365 Microsoft Defender for Identity Microsoft Defender for Cloud Apps Microsoft Security Exposure Management Microsoft Defender Vulnerability Management Microsoft Defender Threat Intelligence Microsoft Defender Suite for Business Premium Microsoft Defender for Cloud Microsoft Defender Cloud Security Posture Mgmt Microsoft Defender External Attack Surface Management Azure Firewall Azure Web App Firewall Azure DDoS Protection GitHub Advanced Security Microsoft Defender for Endpoint Microsoft Defender XDR Microsoft Defender for Business Microsoft Intune core capabilities Microsoft Defender for IoT Microsoft Defender Vulnerability Management Microsoft Intune Advanced Analytics Microsoft Intune Endpoint Privilege Management Microsoft Intune Enterprise Application Management Microsoft Intune Remote Help Microsoft Cloud PKI Microsoft Purview Communication Compliance Microsoft Purview Compliance Manager Microsoft Purview Data Lifecycle Management Microsoft Purview eDiscovery Microsoft Purview Audit Microsoft Priva Risk Management Microsoft Priva Subject Rights Requests Microsoft Purview Data Governance Microsoft Purview Suite for Business Premium Microsoft Purview data security capabilities Pricing Services Partners Cybersecurity awareness Customer stories Security 101 Product trials How we protect Microsoft Industry recognition Microsoft Security Insider Microsoft Digital Defense Report Security Response Center Microsoft Security Blog Microsoft Security Events Microsoft Tech Community Documentation Technical Content Library Training & certifications Compliance Program for Microsoft Cloud Microsoft Trust Center Security Engineering Portal Service Trust Portal Microsoft Secure Future Initiative Business Solutions Hub Contact Sales Start free trial Microsoft Security Azure Dynamics 365 Microsoft 365 Microsoft Teams Windows 365 Microsoft AI Azure Space Mixed reality Microsoft HoloLens Microsoft Viva Quantum computing Sustainability Education Automotive Financial services Government Healthcare Manufacturing Retail Find a partner Become a partner Partner Network Microsoft Marketplace Marketplace Rewards Software development companies Blog Microsoft Advertising Developer Center Documentation Events Licensing Microsoft Learn Microsoft Research View Sitemap

During the month of January 2022, the Microsoft Threat Intelligence Center (MSTIC) ran its inaugural hackathon for the open-source Jupyter and Python Security Tools library, MSTICPy. We asked the security community for their contributions to expand and improve MSTICPy’s features and capabilities, and we helped contributors shape and deliver their contributions. As MSTICPy is an open-source project, contributions from the community are highly valued and help to make the tools useful and effective. 

The response from the community was fantastic, with engagement and discussions on the future design and direction of MSTICPy, and many awesome contributions that ranged from updated documentation to completely new features. We are incredibly grateful for everyone’s engagement and wanted to take a moment to highlight some of the contributions and extend our sincere thanks to the authors. 

Some of these contributions are already released in MSTICPy 1.6.1, while most of the remaining items will make it into version 1.7.0, to be released in late February 2022. 

Contribution highlights

Data connector for Cybereason (Contributor: Florian Bracq, AXA)

This contribution added a new MSTICPy data provider for the Cybereason endpoint detection and response (EDR) product. This enables Cybereason users to query from a Jupyter Notebook and bring the data back for further analysis. The contribution also includes several pre-defined queries that users can select from.

As part of this work, Florian also added several fixes and improvements to MSTICPy’s core data provider features.

Splunk queries and async support (Contributor: Joey Dreijer (d3vzer0))

MSTICPy’s existing Splunk data provider was expanded with the addition of pre-defined Splunk queries for authentication and alert events, providing users with a much wider set of queries to select from. In addition, query performance was improved with the addition of support for Splunk’s asynchronous query execution.

Replaced Requests with HTTPX (Contributor: Grant Versfeld (@grantversfeld))

MSTICPy has traditionally used the Python Requests package to handle HTTP based connections. However, active development on Requests ended some time ago, and it does not support Python’s asynchronous architecture, so we needed to migrate to another package. Grant’s contribution replaced Requests with HTTPX ensuring that MSTICPy can use the improved performance that async support brings.

IntSights TI provider (Contributor: Florian Bracq, AXA)

Another contribution from Florian saw support for the IntSights Threat Intelligence (TI) platform added to MSTICPy. This feature allows users to see if indicators under investigation appear in the IntSights platform and obtain details about the indicators.

Updated QueryTime widget (Contributor: Jakub Jirasek, Chr. Hansen)

This contribution updated MSTICPy’s existing QueryTime widget to correctly accept time unit changes provided by the user.

Updated Readme (Contributor: danielc-evans)

The Readme file is often the first thing that new users to MSTICPy see, so ensuring it contains all the information they need is key. This update does just that, adding key additional information to the Readme.

Support for Sysmon data in MSTICPy’s process tree (Contributor: Nicolas Bareil (@nbareil))

This update adds schema support that allows users to generate process trees from Sysmon ProcessCreate events. This allows Sysmon users to take advantage of one of MSTICPy’s most powerful visualizations.

Blob storage connection string support (Contributor: Luis Francisco Monge (@Lukky86))

This contribution adds the ability for users to provide a connection string when using MSTICPy’s AzureBlobStorage feature. This provides additional flexibility to users when connecting to the Azure Blog Storage containers.

Our thanks

We would like to thank all the contributors for their efforts during the hackathon. These contributions are great additions to MSTICPy and will make the library more useful.

Wider impact 

In addition, thanks to feedback received from these and others, we (the MSTICPy team) added several new features. These include: 

Pyproject.toml and Setup.cfg 

Thanks to suggestions from Joey Dreijer (d3vzer0), we moved MSTICPy into the modern era by implementing much of the project configuration into setup.cfg and pyproject.toml. This has the side benefit of making some of our tests that check for valid package configuration easier. 

As well as these external contributions, we also worked on a number of new features during the hackathon. Full details of these can be found in the MSTICPy release notes, but below is the summary of these additions: 

  • Support for new Microsoft Sentinel APIs, including adding the ability to create Incidents and interact with Watchlists and Analytics. 
  • Added a new SentinelAlert entity to better handle Sentinel alert objects. 
  • Improved authentication features for Azure elements, allowing users to authenticate against tenants other than their home tenant. This was a first-time contribution by MSTIC member Liam Kirton. 
  • Restructured data provider documentation to make it clearer and easier to read. 
  • Updated the GitHub pipeline to make it simpler for external contributors. 
  • Implemented multiple minor fixes and improvements. 

MSTICPy restructure 

The MSTICPy package has evolved organically and we have been considering a restructure of the package for some time. Thanks to inspiration from Florian Bracq, we set about reorganizing the modules into more a logical structure. These changes will make the structure of MSTICPy more intuitive to users and make sure the package is more easily extensible and maintainable in the future. This restructure will be included in the v2.0.0 release of MSTICPy.

Conclusion 

There are several other contributions still being worked on that we will incorporate as soon as they are ready. We will include these in a future release of MSTICPy. You can keep up to date with MSTICPy on GitHub and by following @msticpy on Twitter. 

We plan to run more hackathons in the year, but contributions, ideas, and feedback are welcome at any time. 

The MSTICPy Team (@msticpy

Related posts