VISTASecurity
  • Vista Platform
  • How it works
  • Insights
  • Docs
  • Release status
  • Mailing list
Try Core
Vista Documentation
  • Editions
  • Vista Platform Platform Overview
  • Cbom
    • CBOM Artifacts
  • Features
    • Algorithm Reference
    • AI Assistant Integration (MCP)
    • Asset Approval Workflow
    • Asset Lifecycle Management
    • AWS Cloud Resource Discovery
    • Azure Cloud Resource Discovery
    • Certificate Chain Management
    • CMDB Integrations
    • CMDB Terminology Glossary
    • Compliance Framework Management
    • Crypto Risks Dashboard
    • Cryptographic Keys
    • Device Interrogation Feature
    • Discovery Feature
    • Fortinet Device Interrogation
    • Viewing Frameworks, Controls & Measurements
    • GCP Cloud Resource Discovery
    • Getting Started checklist
    • Global search (⌘K)
    • Inventory and Lenses
    • Measurement Templates
    • Inviting Members
    • Infrastructure Assets and Crypto Configurations
    • Network Spaces Feature
    • Operational Context
    • Page-local Export
    • PCAP File Ingestion
    • Remediation
    • Scopes
    • Enhanced Sensor Registration & Management Guide
    • Spreadsheet Import
    • Third-Party Systems and External Connections
    • Unified Crypto Inventory
  • Guides
    • Audit Logging User Guide
    • Cloud and Device Management Separation – Migration Guide
    • Device Auto-Discovery Troubleshooting Guide
    • Device Interrogation User Guide
    • Tenant Administrator Guide
    • Tenant User Guide
  • Operating VistaPlatform
    • Container runtime images (source of truth)
    • Platform Administrator Guide
    • Releases & Versioning
    • Service Startup and Shutdown Procedures
    • Configuration
      • Platform Integrations Configuration Guide
    • Deployment Documentation
      • Database Deployment Readiness – Sensor Management Enhancements
      • Database Migration Guide
      • Device Agent Deployment Guide
      • Managed vs In-Cluster Data Services (EKS)
      • Deployment Migration Checklist
      • Production Deployment Checklist
      • Deployment Propagation Guide
      • Vista RKE2 v1 — Customer Documentation
        • Vista — RKE2 Cluster Provisioning Guide
        • Vista Deployment Guide — RKE2 v1
        • Vista RKE2 Deployment — Pre-Flight Checklist
        • Vista Security Overview — RKE2 v1
        • Vista Support Bundle
    • Monitoring
      • Compliance Engine Event Processing Alerts
      • Compliance Log Management & Retention
      • Production Monitoring & Alerting Setup
      • System Monitoring & Alerting Guide
    • Operations
      • Notification Provider Integration Guide
    • Security
      • 🔒 Security Architecture for Cloud-Hosted Control Plane
      • Bootstrap Certificate Management
      • Certificate Management Operations Guide
      • Secrets Management Guide
    • Troubleshooting
      • Asset Approval Workflow Issues – Resolution Documentation
      • Troubleshooting Guide
      • Runbooks
        • Gateway Runbook
        • Recovery and Resume After Reboot
Vista/Docs

Fortinet Device Interrogation

Direct interrogation of Fortinet FortiGate devices to collect cryptographic configurations.

Overview

Fortinet Device Interrogation enables direct collection of cryptographic configurations from FortiGate firewalls via the FortiGate REST API, providing comprehensive visibility into SSL VPN, IPSec, and certificate configurations.

Supported FortiGate Features

✅ Fully Implemented

SSL VPN Interrogation

  • Endpoint: /api/v2/cmdb/vpn/ssl/settings
  • Data Collected:
    • SSL VPN server configurations
    • Cipher suites and TLS versions
    • Key sizes (extracted from cipher names)
    • Hash algorithms (extracted from cipher suites)
    • Server hostnames and IP addresses
    • Port configurations

IPSec Tunnel Interrogation

  • Endpoint: /api/v2/cmdb/vpn/ipsec/phase1-interface
  • Data Collected:
    • Phase 1 interface configurations
    • Encryption algorithms and key sizes
    • Authentication algorithms and hash algorithms
    • DH (Diffie-Hellman) groups for key exchange
    • Remote gateway information
    • Proposal details

Certificate Store

  • Endpoint: /api/v2/cmdb/certificate/local
  • Data Collected:
    • Local certificate store
    • Certificate metadata
    • Certificate usage information

System Information

  • Endpoint: /api/v2/cmdb/system/status
  • Data Collected:
    • Device firmware version
    • System status
    • Device metadata

Workflow

1. Register Fortinet Device

Register a Fortinet device with the platform:

UI: Navigate to Devices → Add Device

API: POST /api/v1/device-interrogation-service/devices

Request Body:

{
  "device_type": "fortinet",
  "vendor": "Fortinet",
  "model": "FortiGate-100F",
  "hostname": "fw01.example.com",
  "ip_address": "10.0.1.1",
  "management_url": "https://fw01.example.com",
  "firmware_version": "7.4.0",
  "discovery_method": "device_interrogation",
  "credential_id": "uuid-of-platform-integration"
}

2. Configure Credentials

Store Fortinet credentials in platform integrations:

UI: Navigate to Settings → Integrations → Add Integration

Required Fields:

  • Integration Type: fortinet (or generic device type)
  • Username: FortiGate admin username
  • Password: FortiGate admin password
  • URL: Management URL (optional, uses device management_url if not provided)
  • Insecure Skip Verify: Boolean (for self-signed certificates)

Credentials are encrypted at rest and decrypted only when needed.

3. Interrogate Device

Initiate device interrogation:

UI: Navigate to Devices → Select Device → Interrogate

API: POST /api/v1/device-interrogation-service/devices/:id/interrogate

The service automatically:

  1. Creates a discovery job
  2. Retrieves and decrypts device credentials
  3. Connects to FortiGate via REST API
  4. Interrogates SSL VPN, IPSec, and certificate configurations
  5. Parses crypto details from configurations
  6. Creates discovery findings for each discovered asset

4. Review Results

Review discovery findings:

UI: Navigate to Assets → Discovery Jobs → View Results

Findings Include:

  • SSL VPN configurations with detailed crypto parameters
  • IPSec tunnel configurations with encryption/authentication details
  • Certificate information
  • Device metadata

5. Import to Inventory

Import findings as infrastructure assets:

UI: Select findings → Import Selected

Imported assets are:

  • Linked to parent device via device_id
  • Created with discovery_method = 'device_interrogation'
  • Set to pending_approval status

Crypto Parameter Extraction

SSL VPN Crypto Details

The service extracts detailed crypto parameters from SSL VPN configurations:

Cipher Suite Parsing:

  • Extracts cipher names (e.g., AES256-SHA256)
  • Determines key sizes (128, 256) from cipher names
  • Extracts hash algorithms (SHA1, SHA256, SHA384, SHA512) from cipher names

TLS Version Extraction:

  • Reads tls_version or min_tls_version from configuration
  • Defaults to TLS 1.2 if not specified

Example Extracted Data:

{
  "protocol": "SSL VPN",
  "protocol_version": "TLS 1.2",
  "cipher_suite": "AES256-SHA256",
  "key_size": 256,
  "hash_algorithm": "SHA256",
  "port": 443,
  "hostname": "vpn.example.com",
  "ip_address": "10.0.1.1"
}

IPSec Crypto Details

The service extracts detailed crypto parameters from IPSec configurations:

Encryption Algorithm Parsing:

  • Extracts encryption algorithms (AES, 3DES, etc.)
  • Determines key sizes from algorithm names
  • Extracts authentication algorithms

Hash Algorithm Extraction:

  • Parses hash algorithms from proposal names
  • Extracts from authentication algorithm fields

DH Group Information:

  • Extracts Diffie-Hellman group information
  • Stores in metadata for key exchange analysis

Example Extracted Data:

{
  "protocol": "IPSec",
  "cipher_suite": "aes256-sha256",
  "key_size": 256,
  "hash_algorithm": "SHA256",
  "port": 500,
  "hostname": "tunnel-to-remote-site",
  "ip_address": "192.168.1.1",
  "metadata": {
    "encryption_algorithm": "aes256",
    "authentication_algorithm": "sha256",
    "dh_group": "14"
  }
}

Example Discovery Result

{
  "job_id": "uuid",
  "assets": [
    {
      "hostname": "vpn.example.com",
      "ip_address": "10.0.1.1",
      "port": 443,
      "protocol": "SSL VPN",
      "protocol_version": "TLS 1.2",
      "cipher_suite": "AES256-SHA256",
      "key_size": 256,
      "hash_algorithm": "SHA256",
      "metadata": {
        "server_hostname": "vpn.example.com",
        "server_ip": "10.0.1.1",
        "port": 443,
        "cipher": "AES256-SHA256"
      }
    },
    {
      "hostname": "tunnel-to-datacenter",
      "ip_address": "192.168.1.1",
      "port": 500,
      "protocol": "IPSec",
      "cipher_suite": "aes256-sha256",
      "key_size": 256,
      "hash_algorithm": "SHA256",
      "metadata": {
        "name": "tunnel-to-datacenter",
        "remote-gw": "192.168.1.1",
        "proposal": "aes256-sha256",
        "encryption": "aes256",
        "authentication": "sha256",
        "dhgrp": "14"
      }
    }
  ],
  "device_info": {
    "version": "v7.4.0",
    "serial": "FG100FTK12345678",
    "hostname": "fw01"
  }
}

Error Handling

Connection Errors

  • Authentication Failures: Stored in device.interrogation_error
  • Connection Timeouts: Device connection_status set to error
  • API Errors: Logged and reported in job status

Status Updates

  • Success: connection_status = 'connected', last_interrogated_at updated
  • Failure: connection_status = 'error', interrogation_error populated
  • Errors Cleared: On successful subsequent interrogation

Security Considerations

Credential Management

  • Credentials encrypted at rest in platform_integrations table
  • Decrypted only when needed for API calls
  • Never logged or exposed in responses
  • Credentials cleared from memory after use

API Authentication

  • FortiGate REST API uses HTTP Basic Authentication
  • Supports self-signed certificates (configurable via insecure_skip_verify)
  • All communication over HTTPS

Network Security

  • Device must be reachable from platform service
  • For on-premises devices, consider deploying device-agent binary
  • Agent uses outbound-only communication (no inbound ports required)

FortiGate API Requirements

Required Permissions

  • Read access to SSL VPN settings
  • Read access to IPSec phase1-interface configurations
  • Read access to certificate store
  • Read access to system status

API Version

  • FortiGate REST API v2 (/api/v2/)
  • Compatible with FortiOS 6.0 and later

Limitations

Current Implementation

  • ✅ SSL VPN interrogation fully implemented
  • ✅ IPSec tunnel interrogation fully implemented
  • ✅ Certificate store retrieval fully implemented
  • ✅ Crypto parameter extraction fully implemented
  • 🚧 Additional FortiGate features (SSL inspection policies, etc.) – framework ready

API Limitations

  • Requires FortiGate REST API access
  • Some configurations may require specific FortiOS versions
  • Rate limiting may apply for large configurations

Related Documentation

  • Device Interrogation Feature
  • Platform Integrations
  • Discovery Feature
← Discovery Feature Viewing Frameworks, Controls & Measurements →

View source on GitHub · Published from 470d8ee

On this page
  • Overview
  • Supported FortiGate Features
  • ✅ Fully Implemented
  • SSL VPN Interrogation
  • IPSec Tunnel Interrogation
  • Certificate Store
  • System Information
  • Workflow
  • 1. Register Fortinet Device
  • 2. Configure Credentials
  • 3. Interrogate Device
  • 4. Review Results
  • 5. Import to Inventory
  • Crypto Parameter Extraction
  • SSL VPN Crypto Details
  • IPSec Crypto Details
  • Example Discovery Result
  • Error Handling
  • Connection Errors
  • Status Updates
  • Security Considerations
  • Credential Management
  • API Authentication
  • Network Security
  • FortiGate API Requirements
  • Required Permissions
  • API Version
  • Limitations
  • Current Implementation
  • API Limitations
  • Related Documentation
VISTASecurity

Vista Platform is a self-hosted cryptographic system of record for continuous discovery, evaluation, action, and proof.

Vista Platform

How it works
Governance
Post-Quantum
Core, Enterprise & MSP
Try Core

Resources

About
Insights
Documentation
Release status
GitHub ↗
info@vistasecurity.io
Join the mailing list

© 2026 Lakeshore Labs LLC. Vista Security is a brand of Lakeshore Labs LLC. All rights reserved.