<?xml version="1.0" encoding="koi8-r"?>
<rss version="0.91">
<channel>
    <title>OpenForum RSS: Проблемы с некорректной очисткой остаточных данных в клиенте...</title>
    <link>https://opennet.ru/openforum/vsluhforumID3/87203.html</link>
    <description>В процессе анализа исходных текстов клиента для работы в анонимной сети Tor обнаружена (http://www.viva64.com/ru/b/0178/) необычная уязвимость, которая может привести к оседанию в системной памяти остаточных данных, которые могут содержать конфиденциальную информацию, например, введённые пароли. Интерес представляет то, что формально код Tor не содержит ошибок и уязвимость является следствием особенностей работы некоторых компиляторов. &lt;br&gt;&lt;br&gt;&lt;br&gt;Проблема связана с тем, что Tor использует для очистки кэша функцию memset(), которая игнорируется в результате работы оптимизаторов некоторых компиляторов, что может привести к появлению неочищенных областей памяти после закрытия приложения. Например, при выборе режима оптимизации на скорость (-O2) Microsoft Visual Studio 2010 просто удаляет вызов memset при обнулении данных, если буфер в дальнейшем не используется в коде.&lt;br&gt;&lt;br&gt;&lt;br&gt;В качестве примера корректного подхода к очистке буферов приводится OpenSSL, в котором для очистки создана специальная функция, затирающая содержим</description>

<item>
    <title>Проблемы с некорректной очисткой остаточных данных в клиенте... (XPEH)</title>
    <link>https://opennet.ru/openforum/vsluhforumID3/87203.html#76</link>
    <pubDate>Sat, 10 Nov 2012 14:56:53 GMT</pubDate>
    <description>&amp;gt; Ну да, конечно, операционка сидит и протирает сотни мегов нулями после завершения &lt;br&gt;&amp;gt; процесса. Заняться ей нечем, ага.&lt;br&gt;&lt;br&gt;Учите матчасть.&lt;br&gt;</description>
</item>

<item>
    <title>Проблемы с некорректной очисткой остаточных данных в клиенте... (ваноним)</title>
    <link>https://opennet.ru/openforum/vsluhforumID3/87203.html#75</link>
    <pubDate>Sat, 10 Nov 2012 14:45:03 GMT</pubDate>
    <description>м... никак?&lt;br&gt;вообще, у них (внезапно!) может быть другая реализация, на которой их компилятор так себя не ведет. либо, они обложили этот кусок кода прагмами с отключением оптимизации&lt;br&gt;</description>
</item>

<item>
    <title>Проблемы с некорректной очисткой остаточных данных в клиенте... (ваноним)</title>
    <link>https://opennet.ru/openforum/vsluhforumID3/87203.html#74</link>
    <pubDate>Sat, 10 Nov 2012 14:40:43 GMT</pubDate>
    <description>&amp;gt; *(volatile int *)0xDEADBEAF = 0; &lt;br&gt;&amp;gt; *(volatile int *)0xDEADBEAF = 0; &lt;br&gt;&lt;br&gt;звездочки забыл&lt;br&gt;</description>
</item>

<item>
    <title>Проблемы с некорректной очисткой остаточных данных в клиенте... (ваноним)</title>
    <link>https://opennet.ru/openforum/vsluhforumID3/87203.html#73</link>
    <pubDate>Sat, 10 Nov 2012 14:39:21 GMT</pubDate>
    <description>&amp;gt; &apos;volatile&apos; придумали НЕ для этого: volatile придумали для того, чтобы компилятор не пытался помещать в регистр переменную, которую изменяют из другого места&lt;br&gt;&lt;br&gt;... и, кроме этого, количество записей в volatile-переменную после оптимизации строго совпадало с тем, что было до нее. иными словами, компилятор не имеет права выкинуть одну из повторяющихся строк:&lt;br&gt;(volatile int *)0xDEADBEAF = 0;&lt;br&gt;(volatile int *)0xDEADBEAF = 0;&lt;br&gt;ровно как и:&lt;br&gt;i = *(const volatile int *)0xDEADBEAF;&lt;br&gt;i = *(const volatile int *)0xDEADBEAF;&lt;br&gt;</description>
</item>

<item>
    <title>Проблемы с некорректной очисткой остаточных данных в клиенте... (Аноним)</title>
    <link>https://opennet.ru/openforum/vsluhforumID3/87203.html#72</link>
    <pubDate>Sat, 10 Nov 2012 12:11:12 GMT</pubDate>
    <description>Интересно как подобная проблема безопасности решается в той же реализации ssl у самих М$&lt;br&gt;</description>
</item>

<item>
    <title>Проблемы с некорректной очисткой остаточных данных в клиенте... (Аноним)</title>
    <link>https://opennet.ru/openforum/vsluhforumID3/87203.html#71</link>
    <pubDate>Sat, 10 Nov 2012 11:41:48 GMT</pubDate>
    <description>&amp;gt;&amp;gt; тогда весь смысл оптимизации теряется если компилятор не вправе изменять код.&lt;br&gt;&amp;gt; Он его в праве изменять только таким образом который не меняет результат &lt;br&gt;&amp;gt; выполнения программы. Разное содержимое памяти после работы программы как видим может &lt;br&gt;&amp;gt; являть собой проблему.&lt;br&gt;&lt;br&gt;=&amp;gt; Все программы сложнее хелловорлда проблемны.&lt;br&gt;&lt;br&gt;Сейчас же вот всё надо бросить и ради разработчиков одной программы, не способных освоить опции компилятора, переписать весь компилятор. А на остальных пофиг, пускай у них код тормозит.&lt;br&gt;</description>
</item>

<item>
    <title>Проблемы с некорректной очисткой остаточных данных в клиенте... (Аноним)</title>
    <link>https://opennet.ru/openforum/vsluhforumID3/87203.html#70</link>
    <pubDate>Sat, 10 Nov 2012 11:33:16 GMT</pubDate>
    <description>Как ни странно, компилятор работал, как его просили.&lt;br&gt;</description>
</item>

<item>
    <title>Проблемы с некорректной очисткой остаточных данных в клиенте... (ваноним)</title>
    <link>https://opennet.ru/openforum/vsluhforumID3/87203.html#69</link>
    <pubDate>Sat, 10 Nov 2012 09:49:55 GMT</pubDate>
    <description>тест содержал буфер из 4 байт? )&lt;br&gt;</description>
</item>

<item>
    <title>Проблемы с некорректной очисткой остаточных данных в клиенте... (pavlinux)</title>
    <link>https://opennet.ru/openforum/vsluhforumID3/87203.html#68</link>
    <pubDate>Sat, 10 Nov 2012 09:44:44 GMT</pubDate>
    <description>&amp;gt;&amp;gt;  /* Handle error */ &lt;br&gt;&amp;gt; Хорошая обработка ошибок :). При том в 50&#037; программ оно так и &lt;br&gt;&amp;gt; остается :) &lt;br&gt;&lt;br&gt;ну минимум туда можно всунуть return -1, для полного феншуя,&lt;br&gt;обработать errno и свалить всё в лог. &lt;br&gt;&lt;br&gt;Кстати, а чё будет с системой, если mlock прошел, а unlock не смог или его прибили киллом 9  ?&lt;br&gt;</description>
</item>

</channel>
</rss>
