<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Linux Forum &mdash; В OpenBSD добавлена новая защита от атак на основе заимствования кусков кода]]></title>
		<link>https://linuxforum.ru/viewtopic.php?id=39319</link>
		<atom:link href="https://linuxforum.ru/extern.php?action=feed&amp;tid=39319&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «В OpenBSD добавлена новая защита от атак на основе заимствования кусков кода».]]></description>
		<lastBuildDate>Sun, 25 Jun 2017 03:34:29 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[В OpenBSD добавлена новая защита от атак на основе заимствования кусков кода]]></title>
			<link>https://linuxforum.ru/viewtopic.php?pid=456003#p456003</link>
			<description><![CDATA[<p><br />&nbsp; &nbsp; В состав OpenBSD принят набор патчей с реализацией технологии Trapsleds, позволяющей усложнить выполнение эксплоитов, использующих технику заимствования кусков кода, основанную на приёмах возвратно-ориентированного программирования (ROP, Return-Oriented Programming).&nbsp; &nbsp; &nbsp;Суть добавленного в OpenBSD метода защиты в применении для заполнения добавочных областей (используются для выравнивания блоков с кодом функций по 16-байтовой границе) инструкций INT3 вместо NOP на системах с архитектурой AMD64. Любые последовательности NOP длиннее двух байт заменяются на&nbsp; двухбайтовый короткий переход JMP поверх набора инструкций INT3, используемых для заполнения. Таким образом, при штатном выполнении программа&nbsp; перепрыгнет набор инструкций INT3 вместо холостого выполнения серии инструкций NOP.&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;В случае осуществления атаки, при переходе на код гаджта (составляющий эксплоит блок заимствованных машинных инструкций) попадание на область заполнения на базе INT3 вместо NOP приведёт к возникновению исключения и остановке выполнения (SIGTRAP) атакованной программы. При вызове гаджета создатели эксплоита должны будут точно рассчитать адрес перехода, что значительно труднее, чем организовать переход на предшествующую гаджету область заполнения из NOP-инструкций. Разница в производительности при использование JMP-перехода при проведении синтетических тестов почти не заметна и составляет менее&nbsp; 1%, что может рассматриваться как погрешность измерения.&nbsp; &nbsp; &nbsp; <br />Напомним, что техника заимствования кусков кода&nbsp; используется для эксплуатации переполнений буфера в условиях, когда в страницах памяти стека и буфера установлен запрет на исполнение кода. Для организации выполнения кода атакующего в таких условиях логика выполнения shell-кода формируется с использованием методов возвратно-ориентированного программирования (ROP) -&nbsp; атакующий не пытается разместить свой код в памяти, а оперирует уже имеющимися в загруженных библиотеках кусками машинных инструкций, завершающихся инструкцией возврата управления (как правило, это окончания библиотечных функций).&nbsp; Работа эксплоита сводится к построению цепочки вызовов подобных блоков (&quot;гаджетов&quot;) для получения нужной функциональности. Для автоматизации выявления гаджетов применяются специальные инструменты. Используя готовые блоки&nbsp; машинных инструкций (гаджеты) можно организовать достаточно сложные операции, в том числе организовать работу условных операторов и циклов.&nbsp; &nbsp; &nbsp; &nbsp;<br />&nbsp; &nbsp; Источник: <strong>http://www.opennet.ru/opennews/art.shtml?num=46759</strong><br />&nbsp; &nbsp; <br /><a href="http://www.opennet.ru/opennews/art.shtml?num=46759">_источник</a></p>]]></description>
			<author><![CDATA[null@example.com (R2-D2)]]></author>
			<pubDate>Sun, 25 Jun 2017 03:34:29 +0000</pubDate>
			<guid>https://linuxforum.ru/viewtopic.php?pid=456003#p456003</guid>
		</item>
	</channel>
</rss>
