307
According to SOAR, the following detection techniques may be useful: Cost effective for partial
coverage: Web Application Scanner Web Services Scanner Database Scanners
Effectiveness = SOAR Partial
Dynamic Analysis with Manual Results Interpretation
According to SOAR, the following detection techniques may be useful: Cost effective for partial
coverage: Fuzz Tester Framework-based Fuzzer
Effectiveness = SOAR Partial
Manual Static Analysis - Source Code
According to SOAR, the following detection techniques may be useful: Cost effective for partial
coverage: Focused Manual Spotcheck - Focused manual analysis of source Manual Source
Code Review (not inspections)
Effectiveness = SOAR Partial
Automated Static Analysis - Source Code
According to SOAR, the following detection techniques may be useful: Highly cost effective:
Source code Weakness Analyzer Context-configured Source Code Weakness Analyzer
Effectiveness = High
Architecture or Design Review
According to SOAR, the following detection techniques may be useful: Highly cost effective:
Formal Methods / Correct-By-Construction Cost effective for partial coverage: Inspection (IEEE
1028 standard) (can apply to requirements, design, source code, etc.)
Effectiveness = High
Potential Mitigations
Phase: Requirements
Strategy = Language Selection
Use a language that does not allow this weakness to occur or provides constructs that make
this weakness easier to avoid. For example, many languages that perform their own memory
management, such as Java and Perl, are not subject to buffer overflows. Other languages, such
as Ada and C#, typically provide overflow protection, but the protection can be disabled by the
programmer. Be wary that a language's interface to native code may still be subject to overflows,
even if the language itself is theoretically safe.
Phase: Architecture and Design
Strategy = Libraries or Frameworks
Use a vetted library or framework that does not allow this weakness to occur or provides
constructs that make this weakness easier to avoid. Examples include the Safe C String Library
(SafeStr) by Messier and Viega [REF-57], and the Strsafe.h library from Microsoft [REF-56].
These libraries provide safer versions of overflow-prone string-handling functions.
Phase: Operation
Phase: Build and Compilation
Strategy = Environment Hardening
Use automatic buffer overflow detection mechanisms that are offered by certain compilers or
compiler extensions. Examples include: the Microsoft Visual Studio /GS flag, Fedora/Red Hat
FORTIFY_SOURCE GCC flag, StackGuard, and ProPolice, which provide various mechanisms
including canary-based detection and range/index checking. D3-SFCV (Stack Frame Canary
Validation) from D3FEND [REF-1334] discusses canary-based detection in detail.
Effectiveness = Defense in Depth
CWE Version 4.14
CWE-120: Buffer Copy without Checking Size of Input ('Classic Buffer Overflow')
CWE-120: Buffer Copy without Checking Size of Input ('Classic Buffer Overflow')