Skip to content

Conversation

@fgravato
Copy link
Contributor

Summary

Updates Lookout solution v3.0.1 with parser fixes to support the actual streaming API data structure and adds threat hunting notebooks.

Changes Made

Parser v3.1.0

  • ✅ Added coalesce() support for Streaming API (device.info.email, device.hardware.*, device.software.*, device.status.*)
  • ✅ Added support for Polling API (same nested structure)
  • ✅ Added support for REST API (device.email_address, device.manufacturer, etc.)
  • ✅ Handles all 4 event types: THREAT, DEVICE, SMISHING_ALERT, AUDIT

Workbooks

  • ✅ Updated all 5 workbooks to use correct streaming API field paths
  • ✅ Fixed queries to use tostring() for safe field extraction

Notebooks (NEW)

  • Lookout-ThreatHunting-MobileMalware.ipynb - Mobile malware investigation
  • Lookout-ThreatHunting-Smishing.ipynb - SMS phishing campaign analysis
  • Lookout-ThreatHunting-DeviceCompliance.ipynb - Device compliance hunting
  • Lookout-ThreatHunting-AuditInsider.ipynb - Audit & insider threat analysis

Cleanup

  • ✅ Removed development/documentation files
  • ✅ Removed test scripts and validation files
  • ✅ Fixed gated URLs (replaced enterprise.support.lookout.com with public URLs)

Technical Details

The Lookout MRA v2 Streaming API (/mra/stream/v2/events) returns data with a different nested structure than documented:

Field REST API Docs Streaming API (Actual)
Email device.email_address device.info.email
Manufacturer device.manufacturer device.hardware.manufacturer
OS Version device.os_version device.software.os_version

The parser now uses coalesce() to handle both:

DeviceEmailAddress = coalesce(tostring(threat.device.email), tostring(device.info.email), tostring(device.email_address))

Testing

  • ✅ All analytic rules use LookoutAPI connector ID
  • ✅ Parser handles multiple API structures
  • ✅ Version 3.0.1 consistent across metadata files
  • ✅ No hardcoded locations
  • ✅ No gated URLs

Files Changed

  • 29 files (Lookout solution only)
  • Net: -3,134 lines (cleanup of dev files)

…tebooks

Changes:
- Parser v3.1.0: Support for Streaming/Polling/REST API field structures using coalesce()
- Enhanced workbooks with correct streaming API field paths (device.info.email, device.hardware.*, etc.)
- Added 4 Jupyter Notebooks for threat hunting (Mobile Malware, Smishing, Device Compliance, Audit/Insider)
- Updated analytic rules with MITRE ATT&CK mobile tactics
- Fixed gated URLs (replaced enterprise.support.lookout.com with public URLs)
- Cleaned up development files, scripts, and extra templates

Tested:
- All analytic rules use LookoutAPI connector ID
- Parser handles both Streaming API and REST API data structures
- No hardcoded locations or gated URLs
- Version 3.0.1 consistent across all metadata files
@fgravato fgravato requested review from a team as code owners December 18, 2025 19:48
@review-notebook-app
Copy link

Check out this pull request on  ReviewNB

See visual diffs & provide feedback on Jupyter Notebooks.


Powered by ReviewNB

@v-shukore v-shukore self-assigned this Dec 19, 2025
@v-shukore v-shukore added Solution Solution specialty review needed Notebook Notebook specialty review needed labels Dec 19, 2025
@fgravato
Copy link
Contributor Author

Fix Applied

Fixed Microsoft Sentinel branding validation error:

  • Replaced 'Azure Sentinel' with 'Microsoft Sentinel' in 4 files:
    • Workbooks/LookoutEvents.json
    • Workbooks/LookoutEventsV2.json
    • Package/mainTemplate.json
    • Package/createUiDefinition.json

CI should pass now.

@v-shukore
Copy link
Contributor

Hi @fgravato, could you repackage this solution using the V3 tool and generate an updated package with current version? Currently, only the maintemplate and createui files were updated; the package also needs to be updated. Thanks!

Generated updated package with V3 createSolutionV3.ps1:
- Updated 3.0.1.zip with all solution components
- Updated mainTemplate.json and createUiDefinition.json
- All ARM-TTK validations passed (except known resourceId warning)
@fgravato
Copy link
Contributor Author

Repackaged using V3 Tool

As requested by @v-shukore, I've repackaged the solution using the V3 tool (createSolutionV3.ps1).

Changes:

  • ✅ Regenerated 3.0.1.zip with all solution components
  • ✅ Updated mainTemplate.json
  • ✅ Updated createUiDefinition.json
  • ✅ All ARM-TTK validations passed

Ready for review!

v-shukore and others added 3 commits December 19, 2025 08:09
- Updated 'Azure Sentinel Solution' to 'Microsoft Sentinel Solution' in:
  - Package/createUiDefinition.json
  - Package/mainTemplate.json (2 occurrences)
- Fixes CI validation failure for Microsoft Sentinel branding
@fgravato
Copy link
Contributor Author

Hi @v-shuklasumit, could you please review this PR when you have a chance?

The latest commit fixes the Microsoft Sentinel branding validation failure - updated 'Azure Sentinel Solution' to 'Microsoft Sentinel Solution' in the workbook descriptions.

Thank you!

@v-shukore
Copy link
Contributor

Hi @fgravato, we checked the following URL: https://www.lookout.com/hc/en-us/articles/115002741773-Mobile-Risk-API-Guide, and it is returning a 404 error.
image
Could you please share the updated workbook, parser screenshots, and screenshots of the newly added notebooks running?
Thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Notebook Notebook specialty review needed Solution Solution specialty review needed

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants