Return-oriented programming (ROP) is a computer security exploit technique that allows an attacker to execute code in the presence of security defenses such as non-executable memory and code signing. In this technique, an attacker gains control of the call stack to hijack program control flow and then executes carefully chosen machine instruction sequences, called "gadgets". Each gadget typically ends in a return instruction and is located in a subroutine within the existing program and/or shared library code. Chained together, these gadgets allow an attacker to perform arbitrary operations on a machine employing defenses that thwart simpler attacks.

Property Value
dbo:abstract
  • Return Oriented Programming (ROP; deutsch rücksprungorientierte Programmierung) ist eine Technik zur Ausnutzung einer Sicherheitslücke, bei der der Angreifer den Aufrufstack so manipuliert, dass nach dem nächsten Rücksprungbefehl indirekt ausgesuchter Maschinencode ausgeführt wird. Weil der ausgesuchte Maschinencode direkt aus dem ausführbaren Speicher stammt, ist kein Schutz über die Datenausführungsverhinderung (DEP) möglich. Die Return-into-libc-Technik ist eine spezielle Implementierung des Return Oriented Programmings. (de)
  • La ROP, return-oriented programming, est une technique d'exploitation avancée de type dépassement de pile (stack overflow) permettant l'exécution de code par un attaquant et ce en s'affranchissant plus ou moins efficacement des mécanismes de protection tels que l'utilisation de zones mémoires non-exécutables (cf. bit NX pour Data Execution Prevention, DEP), l'utilisation d'un espace d'adressage aléatoire (Address Space Layout Randomization, ASLR) ou encore la signature de code. Cette technique permet à un attaquant d'obtenir le contrôle de la pile d'exécution (call stack) d'un programme, d'en rediriger les flux et, in fine, exécuter une suite de courtes instructions situées en zone mémoire exécutable, appelées « gadgets ». Chaque gadget est typiquement suivi d'une instruction ret et localisé dans une routine d'un autre programme ou dans le code d'une bibliothèque dynamique chargée en mémoire. Une fois assemblés, ces gadgets forment une chaîne généralement appelée ROP chain et permettent à un attaquant d'effectuer des opérations arbitraires sur une machine employant pourtant des mécanismes de protection, là où une attaque simple aurait été déjouée. (fr)
  • Il Return-oriented programming (ROP) o Programmazione orientata al Ritorno è un exploit di sicurezza informatica che permette ad un attaccante di eseguire codice alla presenza di difese di sicurezza come memoria non eseguibile e firma del codice. (it)
  • Return-oriented programming, cuja sigla é R.O.P, em Língua portuguesa programação orientada ao retorno é uma técnica que se incorpora ao retorno de uma função, alterando a saída da instrução RET (return). O ROP pode ser aplicado sem que haja nenhuma injeção de código, na verdade, ele subscreve um trecho de código já existente. A programação orientada ao retorno age gerando um algoritmo que ao ser injetado numa máquina vulnerável constitui um código binário, ou gadget, que se acopla a partes já existentes de qualquer tipo de programa, como por exemplo .XLS, .DOC, .PPT ou mesmo funcionalidades do próprio sistema operacional. O worm se posiciona junto a uma instrução RET duma função e é colocado dentro da área de execução. Tarefas bem definidas são realizadas quando um binário malicioso é inserido na pilha e utiliza os ponteiros para sequenciar as instruções RET. O atacante pode realizar qualquer comportamento que desejar, uma vez que posiciona o worm na pilha de execução. O nome dado a esta prática é subversão; É quando o atacante consegue mudar o fluxo dum programa fazendo uso das credenciais do usuário. Alterar o retorno de uma função significa desvirtuar sua saída, isto é, sua resposta pode não ter nada a ver com os dados de entrada que foram inseridos; É como se ao realizar uma subtração o retorno fosse uma adição. (pt)
  • 返回导向编程(英语:Return-Oriented Programming, ROP)是计算机安全漏洞利用技术,该技术允许攻击者在安全防御的情况下执行代码,如不可执行的内存和代码签名。攻击者控制堆栈调用以劫持程序控制流并执行针对性的机器语言指令序列(称为Gadgets)。 每一段 gadget 通常结束于 return 指令,并位于共享库代码中的子程序。系列调用这些代码,攻击者可以在拥有更简单攻击防范的程序内执行任意操作。 (zh)
  • Возвра́тно-ориенти́рованное программи́рование (англ. return oriented programming, ROP) — метод эксплуатации уязвимостей в программном обеспечении, используя который атакующий может выполнить необходимый ему код при наличии в системе защитных технологий, например, технологии, запрещающей исполнение кода с определённых страниц памяти. Метод заключается в том, что атакующий может получить контроль над стеком вызовов, найти в коде последовательности инструкций, выполняющие нужные действия и называемые «гаджетами», выполнить «гаджеты» в нужной последовательности. «Гаджет», обычно, заканчивается инструкцией возврата и располагается в оперативной памяти в существующем коде (в коде программы или в коде разделяемой библиотеки). Атакующий добивается последовательного выполнения гаджетов с помощью инструкций возврата, составляет последовательность гаджетов так, чтобы выполнить желаемые операции. Атака реализуема даже на системах, имеющих механизмы для предотвращения более простых атак. (ru)
  • Return-oriented programming (ROP) is a computer security exploit technique that allows an attacker to execute code in the presence of security defenses such as non-executable memory and code signing. In this technique, an attacker gains control of the call stack to hijack program control flow and then executes carefully chosen machine instruction sequences, called "gadgets". Each gadget typically ends in a return instruction and is located in a subroutine within the existing program and/or shared library code. Chained together, these gadgets allow an attacker to perform arbitrary operations on a machine employing defenses that thwart simpler attacks. (en)
dbo:thumbnail
dbo:wikiPageExternalLink
dbo:wikiPageID
  • 23956711 (xsd:integer)
dbo:wikiPageRevisionID
  • 743972926 (xsd:integer)
dct:subject
http://purl.org/linguistics/gold/hypernym
rdf:type
rdfs:comment
  • Return Oriented Programming (ROP; deutsch rücksprungorientierte Programmierung) ist eine Technik zur Ausnutzung einer Sicherheitslücke, bei der der Angreifer den Aufrufstack so manipuliert, dass nach dem nächsten Rücksprungbefehl indirekt ausgesuchter Maschinencode ausgeführt wird. Weil der ausgesuchte Maschinencode direkt aus dem ausführbaren Speicher stammt, ist kein Schutz über die Datenausführungsverhinderung (DEP) möglich. Die Return-into-libc-Technik ist eine spezielle Implementierung des Return Oriented Programmings. (de)
  • Il Return-oriented programming (ROP) o Programmazione orientata al Ritorno è un exploit di sicurezza informatica che permette ad un attaccante di eseguire codice alla presenza di difese di sicurezza come memoria non eseguibile e firma del codice. (it)
  • 返回导向编程(英语:Return-Oriented Programming, ROP)是计算机安全漏洞利用技术,该技术允许攻击者在安全防御的情况下执行代码,如不可执行的内存和代码签名。攻击者控制堆栈调用以劫持程序控制流并执行针对性的机器语言指令序列(称为Gadgets)。 每一段 gadget 通常结束于 return 指令,并位于共享库代码中的子程序。系列调用这些代码,攻击者可以在拥有更简单攻击防范的程序内执行任意操作。 (zh)
  • Return-oriented programming (ROP) is a computer security exploit technique that allows an attacker to execute code in the presence of security defenses such as non-executable memory and code signing. In this technique, an attacker gains control of the call stack to hijack program control flow and then executes carefully chosen machine instruction sequences, called "gadgets". Each gadget typically ends in a return instruction and is located in a subroutine within the existing program and/or shared library code. Chained together, these gadgets allow an attacker to perform arbitrary operations on a machine employing defenses that thwart simpler attacks. (en)
  • La ROP, return-oriented programming, est une technique d'exploitation avancée de type dépassement de pile (stack overflow) permettant l'exécution de code par un attaquant et ce en s'affranchissant plus ou moins efficacement des mécanismes de protection tels que l'utilisation de zones mémoires non-exécutables (cf. bit NX pour Data Execution Prevention, DEP), l'utilisation d'un espace d'adressage aléatoire (Address Space Layout Randomization, ASLR) ou encore la signature de code. (fr)
  • Return-oriented programming, cuja sigla é R.O.P, em Língua portuguesa programação orientada ao retorno é uma técnica que se incorpora ao retorno de uma função, alterando a saída da instrução RET (return). O ROP pode ser aplicado sem que haja nenhuma injeção de código, na verdade, ele subscreve um trecho de código já existente. Alterar o retorno de uma função significa desvirtuar sua saída, isto é, sua resposta pode não ter nada a ver com os dados de entrada que foram inseridos; É como se ao realizar uma subtração o retorno fosse uma adição. (pt)
  • Возвра́тно-ориенти́рованное программи́рование (англ. return oriented programming, ROP) — метод эксплуатации уязвимостей в программном обеспечении, используя который атакующий может выполнить необходимый ему код при наличии в системе защитных технологий, например, технологии, запрещающей исполнение кода с определённых страниц памяти. Метод заключается в том, что атакующий может получить контроль над стеком вызовов, найти в коде последовательности инструкций, выполняющие нужные действия и называемые «гаджетами», выполнить «гаджеты» в нужной последовательности. «Гаджет», обычно, заканчивается инструкцией возврата и располагается в оперативной памяти в существующем коде (в коде программы или в коде разделяемой библиотеки). Атакующий добивается последовательного выполнения гаджетов с помощью ин (ru)
rdfs:label
  • Return Oriented Programming (de)
  • Return-oriented programming (it)
  • Return-oriented programming (fr)
  • Return-oriented programming (pt)
  • Возвратно-ориентированное программирование (ru)
  • 返回导向编程 (zh)
  • Return-oriented programming (en)
rdfs:seeAlso
owl:sameAs
prov:wasDerivedFrom
foaf:depiction
foaf:isPrimaryTopicOf
is dbo:wikiPageDisambiguates of
is dbo:wikiPageRedirects of
is foaf:primaryTopic of