Msticpy

Latest version: v2.14.0

Safety actively analyzes 706267 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 6 of 15

2.0.0.rc1

One of our main goals for V2.0.0 was to re-organize MSTICPy to be more logical and easier to
use and maintain. Several years of organic growth had seen modules created in places that
seemed like a good idea at the time but did not age well.

The discussion about the V2 structure can be found here 320.

This first pre-release of V2.0 has a small number of new features but is mostly
about testing compatibility. We'll be adding features to future pre-releases in
the next week or two.

**Due to the re-organization, many features are no longer in places where they used
to be imported from! **

We have tried to maintain compatibility with old locations by adding "glue" modules.
These allow import of many modules from their previous locations but will issue a Deprecation warning if loaded from here.
The warning will contain the new location of the module - so you should update your code to point to this new location.

This table gives a quick overview of the V2.0 structure

| folder | description |
|-----------|----------------------------------------------------------------------------------|
| analysis | data analysis functions - timeseries, anomalies, clustering |
| auth | authentication and secrets management |
| common | common used utilities and definitions (e.g. exceptions) |
| config | configuration and settings UI |
| context | enrichment modules geoip, ip_utils, domaintools, tiproviders, vtlookup |
| data | data acquisition/queries/storage/uploaders |
| datamodel | entities, soc objects |
| init | package loading and initialization - nbinit, pivot modules |
| nbwidgets | nb widgets modules |
| transform | simple data processing - decoding, reformatting, schema change, process tree |
| vis | visualization modules including browsers |


Notable things that have moved:

* most things from the sectools folder have migrated to context, transform or analysis
* most things from the nbtools folder have migrated to:
* init - (not to be confused with __init__) - package initialization
* vis - visualization modules
* pivot functionality has moved to init

If you are having trouble finding a module, we have added a simple search function

python
import msticpy
msticpy.search("riskiq")


Any matches will be returned in a table with links to the module documentation

---
<h4>Modules matching 'riskiq'</h4>
<table class='table_mod'>
<tr class='cell_mod'><th>Module</th><th>Help</th></tr>
<tr class='cell_mod'><td>msticpy.context.tiproviders.riskiq</td><td>
<a href={https://msticpy.readthedocs.io/en/latest/api/msticpy.sectools.tiproviders.html#msticpy-sectools-tiproviders-riskiq-module} target='_blank'>msticpy.context.tiproviders.riskiq</a></td>
</tr>
</table>

---

The Help link is to the current release version of the documentation, so will not
map to the correct path on ReleaseTheDocs for the release documentation. You should be able to
map this to the pre-release doc version by adding v2.0.0.rc1 into the URL.

https://msticpy.readthedocs.io/en/v2.0.0rc1/api/msticpy.sectools.tiproviders.html

Other Features/Changes

Pandas accessors have been consolidated into two main ones:

* df.mp.*func* - contains all of the transformation functions like base64 decoding, ioc searching, etc.
* df.mp_plot.*func* - contains all of the visualization accessors (timeline, process tree, etc.)

We've also done a lot of work to clean up warnings, move some remaining Python unittest tests to pytest
format and random other things that you do when you're cleaning house. A fuller but
not especially readable list of changes follows.

Please let us know if you hit any issues with the re-jigged structure
or any other bugs. File them as issues or reach out to msticpymicrosoft.com

List of changes


Co-authored-by: Ian Hellen <ianhellemicrosoft.com>
Co-authored-by: Pete Bryan <pebryanmicrosoft.com>

* 857835dIanhelle/mpconfigedit fix from main 2022 05 22 (396)* Fix for MpConfigEdit ValueError
* Updating Dockerfile source to mcr anaconda
* bd96d40Ianhelle/v2 reorg directories 2 2022 04 12 (377)* Merging changes from main for geoip.py, mp_config_edit, mp_config_file, pkg_config and kusto_driver
* Some fixes to Kusto common_imports
* now works with Kusto config entry without instance suffix
* can now supply cluster ALIAS (instance name) instead of actual cluster name in connect or query
* added explicit "database" key in query files - can be used instead of the more opaque "data_family.database" encoding
in the data_families key.
* Fixed documentation in DataProv-Kusto.rst to correct inaccuracies and update sections on query templates and configuration
* Fixed bug and simplified/cleaned up code for GeoLiteLookup in geoip.py.
* Fixed bug in mp_config_edit.py and mp_config_file.py where empty/new msticpyconfig.yaml didn't save any settings.
* Reorganized logic for handling parameters and failing on invalid file path in config module.
* Moved analysis.data to transform folder
* Moved data.context to context
* Moved auth and secrets modules to auth folder
* Moved nbwidgets to new folder
* Updated deprecation warning in glue modules to v2.2
* Fix to URLs in README.md
* Adding init folder - moved:
* nbinit.py, user_config.py, pivot.py, azure_ml_tools.py to here
* also moved vt_pivot.py and pivot_ti_provider.py to init/pivot_init
* Renaming datamodel/pivots to datamodel/pivot
* Moved azure_blob_storage.py to data/storage folder
* Refactored query_container to data_types.py - to be separate types for queries (query_container.py) and pivots (pivot_container.py)
* Moved browsers to vis folder
* Updating API docs for moves
* Moved all pivot functions to init folder.
* Added functionality to pkg_config to delete and translate settings (for AzureSentinel->MSSentinel switch TBD)
* Added automatic acquisition of globals() in nbinit.py
* Fixed a couple of bugs in pivot_pipeline.py
* Removed direct import of pivot into datamodel/pivot and added code to add them dynamically after init.pivot initiialization.
* Added trap to timeline when supplied with no data.
* Fixed incorrect escaping in regex in kql_driver.py
* Notebook updates for errors and invalid links.
* Added script to run all notebooks for testing
* Changing the pattern for httpx timeout to default to Timeout(None). This can be overridden in settings and in the case of drivers and TILookup in runtime parameter (timeout=x). Other components use the default.
* Updated typing rigor for pkg_config::get_http_timeout
* Fixed bugs in test test_pkg_config.py and test_code_view.py
* Fixed re-auth on query issue in KQL driver
* Fixed kql_driver tests
* Kusto provider
* now works with Kusto config entry without instance suffix
* can now supply cluster ALIAS (instance name) instead of actual cluster name in connect or query
* added explicit "database" key in query files - can be used instead of the more opaque "data_family.database" encoding
in the data_famiies key.
* Fixed documentation in DataProv-Kusto.rst to correct inaccuracies and update sections on query templates and configuration
* Fixed bug and simplified/cleaned up code for GeoLiteLookup in geoip.py.
* Fixed bug in mp_config_edit.py and mp_config_file.py where empty/new msticpyconfig.yaml didn't save any settings.
* Reorganized logic for handling parameters and failing on invalid file path in config module.
* e2e743aIanhelle/main mergeback 2022 04 05 (355)* Updated nbwidgets - GetText, QueryTime, GetEnvironmentKey to work with notebook parameters.
* Fixed query_time widget so that you can reset time range from parameter
* Added additional unit test for QueryTime setter
* Simplified SelectAlert (in select_alert and nbdisplay) to remove title line. this was not updating so every alert selected would add another titlel line.
* Changed structure and formatting of alert item display - removing CompromisedEntity and adding ProductName.
* Updated TimeSpan class so it has more flexible constructor
* Added account_id as a parameter for list_aad_signins_by_account query
* Fix for kql_driver - reconnecting for each query loses original kwargs (including mp_az_auth) setting, so reverts
to defaults. This can cause errors if the defaults are different to user-specified parameters.
There is also a problem in azure_auth.py - if a user has AzureCLI settings, these override everything. I've removed this since we don't really want people configuring auth methods from these settings.

* aa14784moved list_sentinel_workspaces to AzureData
* f3e82d9New MSAL delegated auth methods added and support for this added to Graph providers. Added ability to pass tenant ID to KQL provider fixing issue 333. Minor fixes added incl merge from 352.
* ba33c38Ianhelle/pivot dataprov selfload 2022 03 15 (343)* Query providers load pivots dynamically when created.
* Renamed query paths and changed data_providers so that only env-specific queries are loaded.
* Moving ensure_df_datetimes to common/data_utils.py to avoid circular imports
* Consolidated data-related pandas accessors into single module.
* Fixing circular dependency in iocextract
* Fixing linting errors in data_providers.py, azure_resource.py, host.py, process.py, pivot_data_queries.py
* Adding default timeout values to httpx calls.
* Changing tor_exit_nodes.py Tor provider to defer download of tor list until first lookup
* Fixing test for trigger Tor node download before running test.
* Fixing case where MpConfigEdit loads with no current msticpyconfig.yaml. (from main branch)
* Now loads with empty settings rather than throw exception.
* Added unit test case
* Aligning splunk_uploader params with base class
* 243f196Ianhelle/implement isort branch post-fixes 2022 03 21 (346)* move query files
* Stub files and restructure fixes
* Merging in updates to Azure auth
* Making tests more resilient for multiple environments
* restructure cyberreason and splunk queries
* Fixed incorrect vtlookup
* Updating missed Conda version for respx
* Updated cybereason folder names
* Fixed Sentinel APIs
* Updated test mocked data to match new Sentinel APIs
* Renamed data.context_providers to context
* Renamed data.common to data.core
* Added docstrings to redirection files so that they link to right location in read-the-docs
* Updated docs with new paths
* Updated notebooks with new module paths
* Changed RTD to generate an API page for each module.
* Add text to deprecation warning that we'll remove in v2.0.0
* Adding isort to pre-commit.yaml
* Isorting all of the imports in msticpy, tests and tools
* Renaming query folders
* Removing some automatic imports from msticpy.__init__.py
* Adding search function to find modules to utility.py
* Fixing old paths in test_timeline.py
* Adding triggers for release branches
* Adding isort to requirements-dev and conda-reqs-dev.txt
* Bandit FPs in anomaly sequence modules
* Fixed failing clustering notebook
* Errors in notebook and keyvault tests
* Fixing test issues in MicrosoftDefender.ipynb and EventClustering.ipynb
* Bug using wrong httpx code syntax in odata_driver.py
* Removing auto-load of VTLookup in nbinit
* Forcing notebook tests to use test msticpyconfig-test.yaml
* Added missing __init__.py to tests/data/browsers
* Removing vtlookup import from sectools init because of circular import error
* Moving IPStack check for API key to first call (rather than __init__) to avoid error on load.
* prospector config changed produces deprecation warning and non-zero exit code.
* Fixing misconfigured prospector.yaml
* Getting rid of warning from test_nbinit
* Adding McCabe suppression to ip_utils.py
* removing version restriction for prospector in Github actions python-package.yaml
* Powershell viewer PR
* Elastic driver skeleton and changes to allow driver-specific param substitution
* Cleaning up some import redirections to point to new locations
* Fixing circular import in vtfile_behavior
* Adding placeholder class to allow imports to sort of work even if sub-modules fail to import
* Refactored _value_or_default in query_source to reduce complexity
* Fixed import errors in elastic_driver.py and splunk_driver.py
* Fixed import from old location in nbinit
* Fixing warning in code_view.py
* Fixed test failure in test_code_view
* Changing test_timeline.py to use new mp_plot accessor in place of deprecated one.
* Fixing test failure in test_timeline.py
* 3f3140aSync changes to main into v2 branch (330)* adding devcontainer files (321)
* Syncing recent IPython-related changes (to skip magic creation if not in IPython)
* f7923e5Minor quality of life improvements to AzureData & MicrosoftSentinel (331)* Updated names in AzureData to match MicrosoftSentinel
* Added connection checks to Sentinel features

PRs
* Sync changes to main into v2 branch by ianhelle in https://github.com/microsoft/msticpy/pull/330
* Ianhelle/msticpy v2.0.0 merge updates 2022 03 14 by ianhelle in https://github.com/microsoft/msticpy/pull/338
* Ianhelle/implement isort 2022 02 15 by ianhelle in https://github.com/microsoft/msticpy/pull/327
* Ianhelle/implement isort branch post-fixes 2022 03 21 by ianhelle in https://github.com/microsoft/msticpy/pull/346
* Ianhelle/pivot dataprov selfload 2022 03 15 by ianhelle in https://github.com/microsoft/msticpy/pull/343
* Ianhelle/main mergeback 2022 04 05 by ianhelle in https://github.com/microsoft/msticpy/pull/355
* Merging changes from main for geoip.py, config editor and kusto_driver by ianhelle in https://github.com/microsoft/msticpy/pull/359
* Pebryan/2022 4 14 auth merge by petebryan in https://github.com/microsoft/msticpy/pull/368
* Fixed minor issues by petebryan in https://github.com/microsoft/msticpy/pull/372
* Ianhelle/v2 reorg directories 2 2022 04 12 by ianhelle in https://github.com/microsoft/msticpy/pull/377
* Ianhelle/mpconfigedit fix from main 2022 05 22 by ianhelle in https://github.com/microsoft/msticpy/pull/396


**Full Changelog**: https://github.com/microsoft/msticpy/compare/v.1.5.2...v2.0.0.rc1

1.8.2

Minor release fixing a few usability issues.

What's Changed
* Adding full Delegated Auth support to all OData Drivers by petebryan in https://github.com/microsoft/msticpy/pull/409
This allows MDE and Graph users to use User-delegated authentication rather than app ID/secrets
* Fixes for usability bugs in kql_driver, nbinit, user_config - added typing-extensions requirement by ianhelle in https://github.com/microsoft/msticpy/pull/411
- Kql driver will revert to Kqlmagic-based device authentication if Azure Authentication fails
- Kql driver suppresses "missing PyGObject message" - a dependency that isn't required in this scenario
- init_notebook produced spurious error message about Virus Total libraries not being available even if they were not used.
- User config throws error if user has partial auto-load configuration in msticpy
* Replace MSAL auth plaintext file cache with memory cache by petebryan in https://github.com/microsoft/msticpy/pull/413
- removed ability to use plaintext token cache because of security concerns
* Update API version for list_alert_rules by FlorianBracq in https://github.com/microsoft/msticpy/pull/399
* Updating Dockerfile source to mcr anaconda by ianhelle in https://github.com/microsoft/msticpy/pull/397
Docker source switched to trusted anaconda source for supply chain security
* Updated Tweet bot to include more context in the tweets by petebryan in https://github.com/microsoft/msticpy/pull/403
* Updated tweet action to include more detail in the tweets by petebryan in https://github.com/microsoft/msticpy/pull/405
* Adding Microsoft SECURITY.MD by microsoft-github-policy-service in https://github.com/microsoft/msticpy/pull/407
* Bump readthedocs-sphinx-ext from 2.1.5 to 2.1.6 by dependabot in https://github.com/microsoft/msticpy/pull/400


**Full Changelog**: https://github.com/microsoft/msticpy/compare/v1.8.1...v1.8.2

1.8.1

Not secure
What's Changed
* MpConfigEdit throws exception when passed file name
* MpConfigEdit throws error with invalid file path. by ianhelle in https://github.com/microsoft/msticpy/pull/395


**Full Changelog**: https://github.com/microsoft/msticpy/compare/v1.8.0...v1.8.1

1.8.0

Not secure
Summary
There are some feature changes and fixes in this release:
- MS Sentinel Search API support in the Sentinel package - allowing you to create, check status and delete automated search jobs.
- Authentication updates to
- support wider range of Azure authentication types (incl VSCode and Powershell)
- specify tenantID at auth time (this was a specific issue for Azure Data explorer users)
- lets you use MSAL token caching
- Fixes to httpx timeouts (we recently switch from using requests to httpx and have
changed the default timeout to be none (like requests). You can also set this in configuration
and specify while calling a function that makes a network request, e.g. `mde_prov.my_query(...params, timeout=30)`
- MpConfigEdit now behaves better when no existing `msticpyconfig.yaml` exists - making it easier to create a
config file from scratch.

What's Changed
* Ianhelle/mp config edit load fix 2022 03 28 by ianhelle in https://github.com/microsoft/msticpy/pull/352
Also fixes to multiple widgets for papermill/automation. Can now set QueryTime timespan programmatically.
Fix to Sentinel data provider to prevent re-auth for every query.
* Pebryan/2022 3 29 auth updates by petebryan in https://github.com/microsoft/msticpy/pull/351
- Re-implemented using DefaultCredential
- Added support for MSAL token cache
* Bump sphinx from 4.4.0 to 4.5.0 by dependabot in https://github.com/microsoft/msticpy/pull/350
* Fixes for GeoLiteLookup and MpConfigEdit by ianhelle in https://github.com/microsoft/msticpy/pull/356
- GeoIPLite no longer tries to update DB during initialization - only on first query
- Fixes to MpConfigEdit and MpConfig file for msticpyconfig path handling.
* Some fixes to Kusto common_imports by ianhelle in https://github.com/microsoft/msticpy/pull/358
- Kusto queries now support "database" element in query file. This controls DB usage rather than having to
encode inside the datafamily. Read more here https://msticpy.readthedocs.io/en/latest/data_acquisition/DataProv-Kusto.html
* Changing the pattern for httpx timeout to default to Timeout(None). by ianhelle in https://github.com/microsoft/msticpy/pull/378
- config based setting for http timeouts
- can be overridden in calls in several providers - OData (MSGraph, MDE) and HTTP-based TI providers.
* Add Workflow to Tweet by petebryan in https://github.com/microsoft/msticpy/pull/369
- testing to automatically tweet status on PR completion
* Fixed minor issues by petebryan in https://github.com/microsoft/msticpy/pull/371
- some issues with incident exploration having incomplete information
* Fixing bug in local_data_driver.py if CSV with no TimeGenerated field by ianhelle in https://github.com/microsoft/msticpy/pull/374
- also added new Sentinel query list_logon_attempts_by_ip
* Ianhelle/nb fixes 2022 04 20 by ianhelle in https://github.com/microsoft/msticpy/pull/379
* Added new Sentinel Search Features: by petebryan in https://github.com/microsoft/msticpy/pull/376
- Sentinel Search API - can create, delete and check status of an automated search
- Also added feature to treat cases where you only have one Sentinel workspace configured - this will be treated as the default
even if it is not marked as the default.


**Full Changelog**: https://github.com/microsoft/msticpy/compare/v1.7.5...v1.8.0

1.7.5

Not secure
Introduction

An intermediate release while we prepare the ground for v2.0.0 of MSTICPy.
The release includes some small features a several fixes


What's Changed
* Added Splunk async provider and unit_tests by d3vzer0 in https://github.com/microsoft/msticpy/pull/337
The default is now to execute splunk queries asynchronously - the previous default was to run all queries as
one-shot queries so limiting the size of results sets that could be returned. To use the previous behaviour
add the `oneshot=True` parameter to the query function.<br>
Big thanks to d3vzer0 (Joey Dreyer) for this (in addition to previous Splunk queries!)

* Powershell simple de-obfuscator and code viewer. by ianhelle in https://github.com/microsoft/msticpy/pull/335
python
obfus_str = """
IF($PSVerSIONTAble.PSVErSion.MaJoR -gE 3){$43de2=[REF].AsSEmbly.GetTypE(\'System.Management.Automation.Utils\')."GEtFIe`LD"(\'cachedGroupPolicySettings\',\'N\'+\'onPublic,Static\');IF($43DE2)
...
"""
from msticpy.analysis.code_cleanup import format_powershell
from msticpy.vis.code_view import display_html
display_html(
format_powershell(obfus_str),
language="powershell"
)

output
powershell
if($psversiontable.psversion.major -ge 3)
{
$43de2=[ref].assembly.gettype('system.management.automation.utils')."getfield"('cachedgrouppolicysettings','nonpublic,static')
if($43de2)
{
$712db=$43de2.getvalue($null)
if($712db['scriptblocklogging'])


* Fixed incorrect use of httpx.codes enum in odata_driver by ianhelle in https://github.com/microsoft/msticpy/pull/345
* Added refresh and delete functions for keyring cached secrets by ianhelle in https://github.com/microsoft/msticpy/pull/336
* Bump readthedocs-sphinx-ext from 2.1.4 to 2.1.5 by dependabot in https://github.com/microsoft/msticpy/pull/339

Other Fixes and minor changes

3af4379
Bump readthedocs-sphinx-ext from 2.1.4 to 2.1.5 (339)Bumps [readthedocs-sphinx-ext]

c0fc7fa
* Fixed incorrect use of httpx.codes enum in odata_driver
* Added httpx timeouts (30sec connect, 10sec other) to cybereason_driver and http_base and other users of httpx
* Splitting keyring into its own module so that we can load without Keyring as a dependency - avoiding
load failure on linux systems without keyring support
* Prevent VTLookupV3 from trying to load automatically and throwing exception
* Moved IPStack check for API key out of constructor so avoid error if loaded with no configuration.
* Change Msticpy exceptions to output plaintext if not running in a notebook (e.g. IPython)
* Added -utf16 argument to %b64 magic to allow correct decoding of Windows strings

1.7.0

Not secure
Highlights

We have two new providers - a Threat intel provider for [*IntSights*](https://intsights.com/)
and a data/query provider for [*Cybereason* ](https://www.cybereason.com/)
contributed by Florian Bracq - AXA (FlorianBracq). The [Cybereason docs](https://msticpy.readthedocs.io/data_acquisition/DataProv-Cybereason.html) are here.

A range of new Splunk queries for our Splunk data provider for Alert and Authentication data
contributed by Joey Dreijer (d3vzer0)

Two cool sample notebooks:
- Azure data explorer/Kusto notebook from Liam Kirton liamkirton
- AWS S3 HoneyBucket Log analysis notebook by Ashwin Patil ashwin-patil

Complete replacement of requests with the async-capable httpx library by GrantV grantv9

New Sentinel Security alert entity that automatically extracts related entities from
a MS Sentinel alert.

Overhaul of some of our documentation - including automated build/collection of API docs and
data provider query list (so these should now be up-to-date) and re-organization/re-write of the
Data provider docs.

Reorganization of setup and tool settings using setup.cfg and pyproject.toml.

We also added a workaround (the IPython version dependency) to allow msticpy to be installed
on Python 3.6 (even though we don't officially support it).


What's Changed
* Add IntSights support by FlorianBracq in https://github.com/microsoft/msticpy/pull/276
* Setup.cfg and Pyproject.toml by ianhelle in https://github.com/microsoft/msticpy/pull/287
* Ianhelle/nbwidgets refactor 2022 01 25 by ianhelle in https://github.com/microsoft/msticpy/pull/299
* Add tenant_id parameter back by liamkirton in https://github.com/microsoft/msticpy/pull/295
* (fix): typo in README by zscholl in https://github.com/microsoft/msticpy/pull/294
* Add alert-oriented queries for Splunk using datamodels by d3vzer0 in https://github.com/microsoft/msticpy/pull/297
* Add authentication-oriented queries for Splunk using datamodels by d3vzer0 in https://github.com/microsoft/msticpy/pull/298
* Fix QueryTime unit change by kubajir in https://github.com/microsoft/msticpy/pull/303
* Update regular expression to extract parameters from source by FlorianBracq in https://github.com/microsoft/msticpy/pull/291
* Ianhelle/data docs rewrite 2022 01 27 by ianhelle in https://github.com/microsoft/msticpy/pull/304
* SentinelAlert entity creation by petebryan in https://github.com/microsoft/msticpy/pull/293
* Replaced requests with httpx 0.18 by grantv9 in https://github.com/microsoft/msticpy/pull/285
* Updating httpx requirements to work with out requirements by petebryan in https://github.com/microsoft/msticpy/pull/312
* Change to Querylist doc and py script to avoid phantom changes by ianhelle in https://github.com/microsoft/msticpy/pull/310
* Cybereason by FlorianBracq in https://github.com/microsoft/msticpy/pull/306
* AWS S3 HoneyBucket Log analysis notebook by ashwin-patil in https://github.com/microsoft/msticpy/pull/311
* Kusto Driver Example Notebooks by liamkirton in https://github.com/microsoft/msticpy/pull/308
* Bump sphinx from 4.3.2 to 4.4.0 by dependabot in https://github.com/microsoft/msticpy/pull/283
* doc updates by ashwin-patil in https://github.com/microsoft/msticpy/pull/316
* Adding dev container files for VSCode by ashwin-patil in https://github.com/microsoft/msticpy/pull/321
* Bump respx from 0.17.1 to 0.19.2 by dependabot in https://github.com/microsoft/msticpy/pull/314
* Updated Cybereason docs to fit pattern by petebryan in https://github.com/microsoft/msticpy/pull/324
* Ianhelle/1.6.1 hotfixes 2022 01 27 for 1.6.2 by ianhelle in https://github.com/microsoft/msticpy/pull/317
* Changing magics creation so that they don't get created if not in ipython by ianhelle in https://github.com/microsoft/msticpy/pull/332

New Contributors
* FlorianBracq made their first contribution in https://github.com/microsoft/msticpy/pull/276
* zscholl made their first contribution in https://github.com/microsoft/msticpy/pull/294
* d3vzer0 made their first contribution in https://github.com/microsoft/msticpy/pull/297
* kubajir made their first contribution in https://github.com/microsoft/msticpy/pull/303
* grantv9 made their first contribution in https://github.com/microsoft/msticpy/pull/285

**Full Changelog**: https://github.com/microsoft/msticpy/compare/v1.6.1...v1.7.0

Page 6 of 15

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.