Indirect Call Devirtualization for Control Flow Security

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing methods to protect against control flow attacks, such as Use-After-Free, are limited to source codes written in object-oriented programming languages and require annotations, failing to effectively safeguard source codes in other programming languages like kernel, application, and RPC layers.

Innovation Solution

An electronic apparatus and control method that identify structures with function pointers in source code, modify indirect calls using unmodifiable variables to direct calls, preventing control flow attacks across various programming languages without the need for annotations.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If conventional devirtualization technique is used to replace indirect calls with direct calls, then security against control flow attacks is improved, but applicability is limited to object-oriented programming languages and requires annotations

Engineering Contradiction:
Improvesecurity against control flow attacksVSAvoidapplicability to programming languages
Core Design Contradiction:
ReliabilityVSAdaptability or versatility

Solution Approach 1:

The patent extends the devirtualization technique to work with multiple programming language paradigms including object-oriented, procedural, and functional languages. The system identifies and transforms indirect calls across different language types without requiring language-specific annotations, making the security solution universally applicable to diverse codebases

Inventive Principle:
Principle #6Universality (Multi-functionality)

Solution Approach 2:

The patent extracts the language-specific constraints and annotation requirements from the devirtualization process. By removing the dependency on object-oriented syntax and optional annotations, the core transformation logic can be applied universally across different programming languages through automatic identification of indirect call patterns

Inventive Principle:
Principle #2Taking out (Extraction)

2Reliability

If source code is modified to change indirect calls to direct calls, then security is improved, but code structure and flexibility may be worsened

Engineering Contradiction:
Improvesecurity against memory corruptionVSAvoidcode structure complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent applies devirtualization selectively at the local level rather than globally. It identifies specific indirect call sites that can be safely transformed and modifies only those locations, preserving the overall code structure and flexibility while improving security at critical points. The transformation is applied locally where beneficial rather than forcing global structural changes

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS11249733B2Electronic apparatus and control method thereof
Publication Date: 2022.02.15 SAMSUNG ELECTRONICS CO LTD
  • US11249733B2 patent drawing
  • US11249733B2 patent drawing
  • US11249733B2 patent drawing

AI summary

An electronic apparatus and a control method of the electronic apparatus is provided. The method includes acquiring source code written in a programing language, identifying a structure including a function pointer from the source code, identifying a plurality of initialized variables as a plurality first variables among variables of the function pointer included in the identified structure, and modifying the source code by changing an indirect call using an unmodifiable variable among the plurality of first variables to a direct call.