Printer Security via CPU Stack Execution Restrictions

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Image forming apparatuses and printers are vulnerable to malicious software attacks through stack overflow, which can bypass security features and allow unauthorized access and data manipulation, posing risks such as unauthorized printing and high-quality counterfeit document production.

Innovation Solution

Implementing a method to prevent the execution of machine code from task stacks by managing the central processing unit to ensure that it does not execute instructions from task stacks, thereby securing the device against malicious code insertion during a stack overflow attack.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If stack overflow protection is not implemented, then software complexity is reduced and development is easier, but security against malicious code execution deteriorates

Engineering Contradiction:
Improvesecurity against malicious codeVSAvoidsoftware complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent segments the memory space into different regions with distinct execution permissions. Specifically, it separates the stack memory region from the code execution region, allowing the stack to be used for data storage while preventing machine code execution from stack-based buffers. This segmentation resolves the contradiction by providing targeted security without requiring complete system redesign.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent applies different execution permissions to different memory regions. The stack region is configured to allow data storage but explicitly disallows machine code execution, while other memory regions maintain their normal execution permissions. This local differentiation provides security where needed without impacting overall software functionality or requiring universal complexity increases.

Inventive Principle:
Principle #3Local quality

2Object-affected harmful factors

If stack overflow attacks are allowed to proceed, then attack complexity is reduced for the attacker, but the impact of malicious code execution increases

Engineering Contradiction:
Improveimpact of malicious code executionVSAvoidsecurity mechanism complexity
Core Design Contradiction:
Object-affected harmful factorsVSDevice complexity

Solution Approach 1:

The patent implements preliminary protective measures by configuring the stack region with execute-disallow permissions before any attack can occur. This preemptive security feature prevents malicious code execution from stack buffers without requiring detection or response mechanisms, thereby reducing the impact of successful attacks while adding minimal complexity to the security architecture.

Inventive Principle:
Principle #9Preliminary anti-action

3Reliability

If security features are added to prevent stack overflow attacks, then security against unauthorized access improves, but device complexity increases

Engineering Contradiction:
Improvesecurity against unauthorized accessVSAvoiddevice complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent implements self-service security by enabling the processor itself to automatically enforce execution permissions based on memory region configuration. The CPU inherently prevents machine code execution from the stack region without requiring external security software, additional hardware, or complex control logic. This approach improves security while minimizing added complexity by leveraging the processor's built-in capabilities.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS8508782B2Method of securing printers against malicious software
Publication Date: 2013.08.13 KONICA MINOLTA SYSTEMS LABORATORY INC
  • US8508782B2 patent drawing
  • US8508782B2 patent drawing
  • US8508782B2 patent drawing

AI summary

A method for securing a computer device against malicious code, the method including the steps of: executing a computer program on the computer device, the computer device having a central processing unit, which carries out instructions of the computer program, and wherein at least a portion of the computer program is executed by one or more tasks, each of the one or more tasks having a task stack associated therewith; and managing the central processing unit such that the central processing unit does not execute machine code from the task stacks associated with each of the one or more task so as to secure the computer device against malicious code from the task stack.