Gør som tusindvis af andre bogelskere
Tilmeld dig nyhedsbrevet og få gode tilbud og inspiration til din næste læsning.
Ved tilmelding accepterer du vores persondatapolitik.Du kan altid afmelde dig igen.
Este livro aborda o problema da geração automática de exploits para vulnerabilidades de software. No Capítulo 2 será dada uma definição formal para o termo "exploit", mas, informalmente, descreve-se um exploit como uma entrada de programa que resulta na execução de código malicioso1. Definimos código malicioso como uma sequência de bytes injectada por um atacante no programa que subverte a segurança do sistema visado. Este código é normalmente designado por shellcode. As explorações deste tipo tiram frequentemente partido de erros de programação relacionados com a gestão da memória ou a tipagem de variáveis em aplicações desenvolvidas em C e C++. Estes erros podem levar a transbordos de memória (buffer overflows) em que demasiados dados são escritos numa memória intermédia, resultando na corrupção de localizações de memória não pretendidas. Um exploit aproveitará esta corrupção para manipular localizações de memória sensíveis com o objetivo de desviar o fluxo de controlo da aplicação.
Dieses Buch befasst sich mit dem Problem der automatischen Generierung von Exploits für Softwareschwachstellen. Eine formale Definition des Begriffs "Exploit" wird in Kapitel 2 gegeben, aber informell wird ein Exploit als eine Programmeingabe beschrieben, die zur Ausführung von bösartigem Code1 führt. Wir definieren bösartigen Code als eine Folge von Bytes, die von einem Angreifer in das Programm eingeschleust wird und die Sicherheit des Zielsystems untergräbt. Dies wird üblicherweise als Shellcode bezeichnet. Exploits dieser Art nutzen häufig Programmierfehler im Zusammenhang mit der Speicherverwaltung oder der Variablentypisierung in Anwendungen, die in C und C++ entwickelt wurden, aus. Diese Fehler können zu Pufferüberläufen führen, bei denen zu viele Daten in einen Speicherpuffer geschrieben werden, was zu einer Beschädigung von unbeabsichtigten Speicherplätzen führt. Ein Exploit nutzt diese Beschädigung aus, um sensible Speicherplätze zu manipulieren und so den Kontrollfluss der Anwendung zu unterwandern.
Questo libro considera il problema della generazione automatica di exploit per le vulnerabilità del software. Una definizione formale del termine "exploit" verrà fornita nel Capitolo 2 ma, in modo informale, si descrive un exploit come un input di programma che porta all'esecuzione di codice maligno1. Per codice dannoso si intende una sequenza di byte iniettata da un aggressore nel programma che sovverte la sicurezza del sistema preso di mira. Questo codice è tipicamente chiamato shellcode. Gli exploit di questo tipo spesso sfruttano gli errori dei programmatori relativi alla gestione della memoria o alla tipizzazione delle variabili nelle applicazioni sviluppate in C e C++. Questi errori possono portare a buffer overflow, in cui vengono scritti troppi dati in un buffer di memoria, con conseguente corruzione di posizioni di memoria non volute. Un exploit sfrutterà questa corruzione per manipolare posizioni di memoria sensibili con l'obiettivo di dirottare il flusso di controllo dell'applicazione.
Ce livre traite du problème de la génération automatique d'exploits pour les vulnérabilités des logiciels. Une définition formelle du terme "exploit" sera fournie au chapitre 2 mais, de manière informelle, un exploit est décrit comme une entrée de programme qui entraîne l'exécution d'un code malveillant1. Nous définissons le code malveillant comme une séquence d'octets injectée par un attaquant dans le programme qui porte atteinte à la sécurité du système ciblé. C'est ce que l'on appelle généralement le shellcode. Les exploits de ce type tirent souvent parti d'erreurs de programmation liées à la gestion de la mémoire ou au typage des variables dans les applications développées en C et C++. Ces erreurs peuvent entraîner des débordements de mémoire tampon, dans lesquels une trop grande quantité de données est écrite dans une mémoire tampon, ce qui entraîne la corruption d'emplacements de mémoire non voulus. Un exploit tirera parti de cette corruption pour manipuler des emplacements de mémoire sensibles dans le but de détourner le flux de contrôle de l'application.
This book considers the problem of automatic generation of exploits for software vulnerabilities. A formal definition will be provided for the term ¿exploit¿ in Chapter 2 but, informally, it describes an exploit as a program input that results in the execution of malicious code1. We define malicious code as a sequence of bytes injected by an attacker into the program that subverts the security of the targeted system. This is typically called shellcode. Exploits of this kind often take advantage of programmer errors relating to memory management or variable typing in applications developed in C and C++. These errors can lead to buffer overflows in which too much data is written to a memory buffer, resulting in the corruption of unintended memory locations. An exploit will leverage this corruption to manipulate sensitive memory locations with the aim of hijacking the control flow of the application.
Tilmeld dig nyhedsbrevet og få gode tilbud og inspiration til din næste læsning.
Ved tilmelding accepterer du vores persondatapolitik.