IP Library › Granted Patent US 11,003,430
Granted Patent B2
US 11,003,430 · App. 16/376,579 · Granted May 11, 2021

Method of enforcing control flow integrity in a monolithic binary using static analysis

Inventors: Vladimir Portela Parente (Campinas, BR); Alexandre Prado Teles (Campinas, BR)
Assignee: SAMSUNG ELETRÔNICA DA AMAZÔNIA LTDA.
G06F8/52G06F8/41G06F8/433G06F8/54G06F9/322G06F16/9024G06F21/52G06F21/577
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,003,430
App. No.
16/376,579
Granted
May 11, 2021
Kind
B2
Abstract

Method of enforcing control flow integrity (CFI) for a monolithic binary using static analysis by: marking evaluated functions as core functions by a chosen heuristic or empirically; generating a binary call graph; merging all function nodes of core functions as a node of highest privilege (set 0); merging all leaf functions in one node without privilege (set n); merging all nodes without privilege that reach functions of privilege i and setting the merged node privilege to i+1; checking if there is a node without privilege besides a trivial function; in a positive case, returning to merging all nodes without privilege and setting the merged node privilege to i+1; and in a negative case, setting the privilege of trivial functions as i+2.

Claims (17)

1. A method of enforcing control flow integrity (CFI) for a monolithic binary using static analysis, the method comprising:

performing, by at least one processor, operations to enforce the CFI while protecting essential functions and maintaining a behavior and a performance of the monolithic binary, the operations including:

marking some evaluated functions as core functions by a chosen heuristic or empirically;

generating a binary call graph;

when the generated binary call graph is incomplete, then:

creating a call graph from static analysis;

setting a privilege 2 for functions with incomplete estimation;

setting an ad hoc privilege for specific functions; and

generating a policy;

merging all function nodes of core functions as a node of highest privilege (set 0);

merging all leaf functions in one node without privilege (set n);

merging all nodes without privilege that reach functions of privilege i and setting the merged node privilege to i+1;

checking whether there is a node without privilege besides a trivial function; and

based on a result of the checking:

in a positive case, returning to merging all nodes without privilege and setting the merged node privilege to i+1; and

in a negative case, setting the privilege of trivial functions as i+2,

wherein the privilege of each function is put before an entry point of each function.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 8, 2019
From: PORTELA PARENTE, VLADIMIR; PRADO TELES, ALEXANDRE
To: SAMSUNG ELETRÔNICA DA AMAZÔNIA LTDA.
Reel/Frame 048819/0192 →
Priority Claims (1)
BR 10 2018 077436 0 · Dec 28, 2018 · national
Continuity (1)
Related Publication 20200210161A1 · Jul 2, 2020