244 research outputs found
Defense against buffer overflow attack by software design diversity
A buffer overflow occurs during program execution when a fixed-size buffer has had too much data copied into it. This causes the data to overwrite into adjacent memory locations, and, depending on what is stored there, the behavior of the program itself might be affected; Attackers can select the value to place in the location in order to redirect execution to the location of their choice. If it contains machine code, the attacker causes the program to execute any arbitrary set of instructions---essentially taking control of the process. Successfully modifying the function return address allows the attacker to execute instructions with the same privileges as that of the attacked program; In this thesis, we propose to design software with multiple variants of the modules/functions. It can provide strong defense against the buffer overflow attack. A way can be provided to select a particular variant (implementation) of the module randomly when software is executed. This proves to be useful when an attacker designs the attack for a particular variant/implementation which may not be chosen in the random selection process during execution. It would be much difficult for the attacker to design an attack because of the different memory (stack-frame) layout the software could have every time it is executed
ACFA: Secure Runtime Auditing & Guaranteed Device Healing via Active Control Flow Attestation
Low-end embedded devices are increasingly used in various smart applications
and spaces. They are implemented under strict cost and energy budgets, using
microcontroller units (MCUs) that lack security features available in
general-purpose processors. In this context, Remote Attestation (RA) was
proposed as an inexpensive security service to enable a verifier (Vrf) to
remotely detect illegal modifications to a software binary installed on a
low-end prover MCU (Prv). Since attacks that hijack the software's control flow
can evade RA, Control Flow Attestation (CFA) augments RA with information about
the exact order in which instructions in the binary are executed, enabling
detection of control flow attacks. We observe that current CFA architectures
can not guarantee that Vrf ever receives control flow reports in case of
attacks. In turn, while they support exploit detection, they provide no means
to pinpoint the exploit origin. Furthermore, existing CFA requires either
binary instrumentation, incurring significant runtime overhead and code size
increase, or relatively expensive hardware support, such as hash engines. In
addition, current techniques are neither continuous (only meant to attest
self-contained operations) nor active (offer no secure means to remotely
remediate detected compromises). To jointly address these challenges, we
propose ACFA: a hybrid (hardware/software) architecture for Active CFA. ACFA
enables continuous monitoring of all control flow transfers in the MCU and does
not require binary instrumentation. It also leverages the recently proposed
concept of Active Roots-of-Trust to enable secure auditing of vulnerability
sources and guaranteed remediation when a compromise is detected. We provide an
open-source reference implementation of ACFA on top of a commodity low-end MCU
(TI MSP430) and evaluate it to demonstrate its security and cost-effectiveness
Fuzzing the Internet of Things: A Review on the Techniques and Challenges for Efficient Vulnerability Discovery in Embedded Systems
With a growing number of embedded devices that create, transform and send data autonomously at its core, the Internet-of-Things (IoT) is a reality in different sectors such as manufacturing, healthcare or transportation. With this expansion, the IoT is becoming more present in critical environments, where security is paramount. Infamous attacks such as Mirai have shown the insecurity of the devices that power the IoT, as well as the potential of such large-scale attacks. Therefore, it is important to secure these embedded systems that form the backbone of the IoT. However, the particular nature of these devices and their resource constraints mean that the most cost-effective manner of securing these devices is to secure them before they are deployed, by minimizing the number of vulnerabilities they ship. To this end, fuzzing has proved itself as a valuable technique for automated vulnerability finding, where specially crafted inputs are fed to programs in order to trigger vulnerabilities and crash the system. In this survey, we link the world of embedded IoT devices and fuzzing. For this end, we list the particularities of the embedded world as far as security is concerned, we perform a literature review on fuzzing techniques
and proposals, studying their applicability to embedded IoT devices and, finally, we present future research directions by pointing out the gaps identified in the review
- …