Application Fingerprinting
Overview
Application Fingerprinting is a feature that reduces false positive alerts in Ransomware Defender by identifying and suppressing alerts triggered by known, normal application behavior patterns. The system uses pattern matching to compare new ransomware events against a database of known application fingerprints.
Purpose
Application Fingerprinting improves ransomware detection accuracy by:
- Reducing alert fatigue: Automatically suppresses alerts from known safe applications
- Improving detection accuracy: Focuses security teams on genuine threats rather than false positives
- Maintaining security posture: Continues to monitor and log all activity while filtering noise
- Streamlining operations: Reduces manual triage and investigation time
The Application Fingerprinting system continuously learns from validated safe application behavior. When Ransomware Defender detects a suspicious event, the system:
- Extracts behavioral characteristics from the event
- Compares these characteristics against known application fingerprints
- Calculates a confidence score indicating the likelihood that the event represents normal application behavior
- Automatically suppresses the alert if the confidence score exceeds the configured threshold
This process ensures that legitimate application activity does not trigger unnecessary security alerts while maintaining vigilance against actual threats.
How Application Fingerprinting Works
Application Fingerprinting uses a multi-stage verification process to distinguish between normal application behavior and potentially malicious activity.
Event Detection and Verification Workflow
When Ransomware Defender detects a suspicious event, the following workflow executes:
-
Event Capture: Ransomware Defender identifies suspicious file activity based on configured detection thresholds
-
Fingerprint Comparison: The system analyzes the event and compares it against the application fingerprint database using:
- Behavioral pattern matching
- Threat Detector (TD) set validation
- Path and file operation analysis
-
Confidence Scoring: A confidence score is calculated based on:
- Similarity to known application patterns
- Exact match of Threat Detector characteristics
- Historical behavior consistency
-
Alert Decision: Based on the confidence score:
- Score Above Threshold: Event enters the THREAT_ASSESSMENT state while waiting for the event expiration timer (the same timer used in monitor mode).
- Score Below Threshold: Event is moved from Pending Events to Active Events
Event Outcomes
Application Fingerprinting classifies events into different categories based on their similarity to known application patterns:
High Confidence Events (Known Application Behavior)
When the confidence score exceeds the configured threshold:
- Event enters the THREAT_ASSESSMENT state while waiting for the event expiration timer (the same timer used for events in monitor mode)
- After the timer expires, the event is stored in Historical Alerts with the state KNOWN_BEHAVIOR-Historical
- No snapshot is created
- No user lockout occurs
- Event remains logged for audit and analysis purposes
- No alert is sent to the security team
Active Events (Partial or No Match)
When the confidence score falls below the threshold:
- Event is moved from Pending Events to Active Events
- Standard snapshot and lockout policies apply
- Alert is sent to security team for investigation
- Full incident response workflow is triggered
Manual Actions for Pending Events
When an event remains in the Pending Events tab after the server verification check, administrators can still perform several manual actions using the Actions menu.
These actions allow security teams to classify or respond to the event while the automatic verification process is still in progress.
The following options are available:
-
Archive as False Positive: Marks the event as a false positive. The Learned Thresholds tab is updated and the fingerprint database is updated with this behavior. The event appears in Events History with the state False Positive.
-
Archive as Known Behavior: Marks the event as a known safe behavior. The event appears in Events History with the state Known Behavior.
-
Archive as Unsolved: Marks the event as unresolved. The event appears in Events History with the state Unsolved.
-
Create Snapshots: Creates snapshots on the affected OneFS resources for further investigation or recovery.
-
Mark as Warning or Monitor: Moves the event from Pending Events to the Active Events tab. The state depends on whether monitor mode is enabled in the configured thresholds.
-
Add Comment: Adds a comment to the event while keeping it in the Pending Events tab. The comment will be visible when the Actions menu is opened again.
Pattern Learning
Application Fingerprinting continuously builds its knowledge base of normal application behavior through:
- Analysis of validated safe events
- Correlation of file operation patterns
- User and application behavioral profiling
- Ongoing refinement of fingerprint accuracy
The system uses the paraphrase-multilingual-MiniLM-L12-v2 model from sentence-transformers, which supports multiple languages including: ar, bg, ca, cs, da, de, el, en, es, et, fa, fi, fr, fr-ca, gl, gu, he, hi, hr, hu, hy, id, it, ja, ka, ko, ku, lt, lv, mk, mn, mr, ms, my, nb, nl, pl, pt, pt-br, ro, ru, sk, sl, sq, sr, sv, th, tr, uk, ur, vi, zh-cn, zh-tw.
Installation and Deployment
Application Fingerprinting is integrated directly into the Superna Eyeglass appliance. No separate virtual machine or additional hardware is required.
Deployment Architecture
- Integrated Service: Application Fingerprinting runs as part of the Eyeglass system
- No Additional VM: The feature is deployed within the existing Eyeglass infrastructure
- Default Configuration: Pre-configured with recommended settings for immediate use
- Network Service: Operates on port 50000 (configurable)
System Files and Directories
Application Fingerprinting configuration and data files are located in the following directories:
| Path | Purpose |
|---|---|
/opt/superna/sca/conf/system.xml | Default configuration file containing Application Fingerprinting client parameters (updated during Eyeglass installation) |
/opt/superna/sca/data/system.xml | Active configuration file for client parameters - all customer changes must be made here |
/opt/superna/sca/conf/appfingerprinting/ | Default server configuration files (updated during Eyeglass installation) |
/opt/superna/sca/data/appfingerprinting/ | Active server configuration files and operational data - all customer changes must be made here |
Configuration File Management
Application Fingerprinting uses two types of configuration files:
- Client Configuration (
system.xml): Controls how the Ransomware Defender client sends events to the fingerprinting service - Server Configuration (
app_fingerprinting_config.jsoninappfingerprinting/directory): Controls how the fingerprinting service processes events
All configuration changes MUST be made in the /opt/superna/sca/data/ directory, not in /opt/superna/sca/conf/. The conf/ directory contains default configurations that are overwritten during Eyeglass upgrades. Any changes made to files in conf/ will be lost during the next installation.
Eyeglass loads configuration files from both the conf and data directories.
During startup, the system merges both configurations. If the same parameter exists in both files, the value from the data directory takes precedence.
This mechanism ensures that customer configuration changes are preserved during upgrades, even when the default configuration in the conf directory is replaced.
- Client changes: Edit
/opt/superna/sca/data/system.xml - Server changes: Edit
/opt/superna/sca/data/appfingerprinting/app_fingerprinting_config.json
Restart Requirements
- Client configuration changes (system.xml): Require an SCA restart
- Server configuration changes (app_fingerprinting_config.json): Require a service restart using
sudo systemctl restart app-fingerprinting
Enabling and Disabling Application Fingerprinting
Application Fingerprinting is controlled through the enableAppFingerprinting parameter in the system.xml configuration file.
Application Fingerprinting is enabled by default in the /opt/superna/sca/conf/system.xml file. It remains active unless explicitly disabled in /opt/superna/sca/data/system.xml.
Enable Application Fingerprinting
To enable the feature (if previously disabled):
-
Open the active configuration file:
/opt/superna/sca/data/system.xml -
Locate or add the
enableAppFingerprintingparameter:<enableAppFingerprinting>true</enableAppFingerprinting> -
Save the file
-
Restart the SCA service
Disable Application Fingerprinting
To disable the feature:
-
Open the active configuration file:
/opt/superna/sca/data/system.xml -
Set the
enableAppFingerprintingparameter to false:<enableAppFingerprinting>false</enableAppFingerprinting> -
Save the file
-
Restart the SCA service
When Application Fingerprinting is disabled, all events are processed through the standard Ransomware Defender workflow without fingerprint verification.
Configuration Options
Application Fingerprinting provides multiple configuration parameters to fine-tune detection behavior and system performance.
Client Configuration Parameters
All client parameters are configured in /opt/superna/sca/data/system.xml.
| Parameter | Description | Default Value | Restart Required |
|---|---|---|---|
enableAppFingerprinting | Enables or disables the Application Fingerprinting feature | true | Yes (SCA) |
appFingerprintingPendingTimerSec | Time in seconds to wait for fingerprint verification before continuing normal processing | 120 | Yes (SCA) |
appFingerprintingTailThreshold | Similarity threshold for the tail index, which matches the deepest components of a path (the final subdirectories and, unless dropped, the file name) | 0.7 | Yes (SCA) |
appFingerprintingHigherThreshold | Similarity threshold for the higher index, which matches the path components directly above the tail | 0.7 | Yes (SCA) |
appFingerprintingPathsThreshold | Minimum similarity score required for path pattern matching | 0.7 | Yes (SCA) |
appFingerprintingServerConnectTimeoutSec | Maximum time in seconds to wait for connection to the fingerprinting service | 5 | Yes (SCA) |
appFingerprintingServerRequestTimeoutSec | Maximum time to wait for a response from the fingerprinting service | 60 | Yes (SCA) |
appFingerprintingServerPort | TCP port used by the fingerprinting service | 50000 | Yes (SCA) |
appFingerprintingIgnoreTDs | When set to true, Application Fingerprinting bypasses Threat Detector evaluation. TD signals are ignored during fingerprint matching | false | Yes (SCA) |
If you change the appFingerprintingServerPort parameter, you must update both the client configuration (data/system.xml) and the server configuration (data/appfingerprinting/app_fingerprinting_config.json) to ensure the client sends data on the new port and the server listens on the new port. Changing only one file will result in communication failure.
Server Configuration Parameters
Server parameters are configured in /opt/superna/sca/data/appfingerprinting/app_fingerprinting_config.json.
| Parameter | Description | Restart Required |
|---|---|---|
blacklisted_threat_detectors | Comma-separated list of Threat Detector (TD) identifiers to exclude from fingerprint matching. Events matching these TDs will bypass fingerprint verification and always generate alerts | Yes (service) |
port | TCP port on which the fingerprinting service listens (must match client configuration) | Yes (service) |
Server Configuration Example
app_fingerprinting_config.json
{
"server": {
"host": "127.0.0.1",
"port": 50000,
"workers": 1,
"log_level": "INFO"
},
"model": {
"name": "//opt//models//paraphrase-multilingual-MiniLM-L12-v2",
"dimensions": 384,
"batch_size": 128
},
"database": {
"path": "./faiss_db",
"tail_k": 4,
"higher_k": 4,
"drop_filename": true
},
"search": {
"tail_similarity_threshold": 0.7,
"higher_similarity_threshold": 0.7,
"min_similar_paths": 0.7,
"max_workers": 8,
"max_partitions_in_memory": 50,
"embedding_cache_size": 10000,
"blacklisted_threat_detectors": [
"THREAT_DETECTOR_06",
"THREAT_DETECTOR_11",
"THREAT_DETECTOR_07"
]
}
}
When the same parameter exists in both client and server configuration files, the client parameter takes precedence for client-side behavior (such as thresholds and timeouts), while the server parameter controls server-side behavior (such as port listening and TD exclusions).