Auditing Program Calls via Static-Dynamic Analysis

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current methods for auditing program calls in computer systems are inefficient, as they either require extensive workloads or miss infrequent calls, and existing tools are not capable of detecting all security threats, especially when dealing with dynamic link libraries (DLLs) and shared libraries.

Innovation Solution

A method that combines static and dynamic analysis to identify call relationships, using similarity analysis to supplement dynamic analysis results, reducing the workload and improving detection of all callers by organizing related programs and applying access control policies.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If dynamic analysis is used to identify callers of a designated program, then detection capability is improved, but workload increases and infrequent calls are missed

Engineering Contradiction:
Improvedetection capabilityVSAvoidworkload
Core Design Contradiction:
Measurement precisionVSProductivity

Solution Approach 1:

The patent performs static analysis beforehand to build a comprehensive caller list from program code, import/export tables, and call graphs. This preliminary action captures all potential callers including those that make infrequent calls, eliminating the need for prolonged dynamic analysis and reducing overall workload while maintaining complete detection capability.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent combines static analysis results (caller list) with dynamic analysis results (authorized caller list) to produce a complete security audit. This merging allows the system to leverage the comprehensive detection of static analysis while incorporating the runtime accuracy of dynamic analysis, resolving the contradiction between detection completeness and workload.

Inventive Principle:
Principle #5Merging (Combining)

2Productivity

If static analysis is used to identify callers, then workload is reduced, but detection completeness deteriorates

Engineering Contradiction:
ImproveworkloadVSAvoiddetection completeness
Core Design Contradiction:
ProductivityVSMeasurement precision

Solution Approach 1:

Static analysis is performed as a preliminary step to generate a comprehensive caller list that includes all potential callers. This preliminary action ensures complete detection coverage before the actual security audit, allowing the system to maintain low workload during the main audit process while preserving detection completeness.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent merges static analysis results (which provide complete caller identification) with dynamic analysis results (which provide authorized caller verification). This combination ensures that no callers are missed while maintaining efficient workload management throughout the audit process.

Inventive Principle:
Principle #5Merging (Combining)

3Ease of operation

If access control is not implemented on DLL calls, then ease of operation is improved, but security deteriorates

Engineering Contradiction:
Improveease of operationVSAvoidsecurity
Core Design Contradiction:
Ease of operationVSReliability

Solution Approach 1:

The patent implements an automated feedback mechanism where the system generates an authorized caller list, compares it against the complete caller list, and automatically identifies unauthorized calls. This feedback loop provides security verification without manual intervention, maintaining ease of operation while ensuring robust security through automated policy enforcement.

Inventive Principle:
Principle #23Feedback

4Reliability

If comprehensive caller identification is performed, then security is improved, but device complexity increases

Engineering Contradiction:
ImprovesecurityVSAvoidsystem complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent segments the security audit process into distinct phases: static analysis to generate caller list, dynamic analysis to generate authorized caller list, and comparison to identify unauthorized calls. This segmentation reduces system complexity by breaking down the comprehensive security task into manageable, independent components that can be executed separately and combined.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS20240095359A1Auditing and securing program calls
Publication Date: 2024.03.21 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US20240095359A1 patent drawing
  • US20240095359A1 patent drawing
  • US20240095359A1 patent drawing

AI summary

An embodiment includes generating a caller list of callers that issue requests for calling a designated program at runtime. The embodiment also includes generating an authorized caller list of authorized callers allowed to call the designated program, wherein the authorized callers are selected from among callers on the caller list. The embodiment also includes generating an authorization key for each of the authorized callers that the designated program will require as a condition for completing call requests.