<?xml version="1.0" encoding="koi8-r"?>
<rss version="0.91">
<channel>
    <title>OpenForum RSS: Безопасность средств IPC sysv, posix</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID9/6863.html</link>
    <description>существует ли относительно универсальный способ БЕЗОПАСНОГО межпроцессорного взаимодействия? то есть, мне необходимо наладить связь между двумя процессами таким образом, чтобы никакой любой третий процесс не смог получить доступ к передаваемым данным, при условии, что третий процесс вполне может быть запущен от пользователей как первого так и второго процессов. естественно, необходимо добиться максимальной скорости передачи данных, поэтому лучше защита на уровне системы, а не приложения, например шифрования.&lt;br&gt;&lt;br&gt;зы безопасность понимается не только в смысле чтения, но и невозможности недоверенным процессам писать в канал или предложенный вами вид ipc.&lt;br&gt;</description>

<item>
    <title>Безопасность средств IPC sysv, posix (ZaCo)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID9/6863.html#20</link>
    <pubDate>Wed, 24 Oct 2007 12:36:13 GMT</pubDate>
    <description>&amp;gt;&amp;gt;не совсем, демон запускается от рута, идет fork()+setuid&lt;br&gt;&amp;gt;&lt;br&gt;&amp;gt;Зачем тогда махинации с пересылкой pid? Всю &quot;договоренность&quot;(например генерацию подтверждающего ключа) сделайте &lt;br&gt;&amp;gt;до fork &lt;br&gt;&lt;br&gt;по pid я определяю доверенный это процесс или нет, и тем более управление начинается после fork()&lt;br&gt;</description>
</item>

<item>
    <title>Безопасность средств IPC sysv, posix (DeadMustdie)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID9/6863.html#19</link>
    <pubDate>Wed, 24 Oct 2007 05:44:38 GMT</pubDate>
    <description>Механизмы разграничения прав доступа в UNIX-системах основаны на идентификации пользователей. В описанном виде задача заключается в создании дополнительного механизма, ограничивающего взаимодействие между процессами одного пользователя. Такой механизм должен включать в себя некие средства классификации на уровне кому можно - кому нельзя, плюс механизм отказа во взаимодействии тем, кому нельзя. Стандартного, а тем более переносимого механизма такого вида попросту нет.&lt;br&gt;&lt;br&gt;По моим ощущениям, исходная задача некорректно сформулирована: в нее добавлены избыточные технические ограничения. Что мешает запускать &quot;доверенные&quot; процессы в едином контексте безопасности (организованного на базе механизма пользователей и групп), исключив тем самым все существенные угрозы по &quot;вклиниванию&quot; действий злоумышленников во взаимодействие???&lt;br&gt;</description>
</item>

<item>
    <title>Безопасность средств IPC sysv, posix (angra)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID9/6863.html#18</link>
    <pubDate>Tue, 23 Oct 2007 20:29:34 GMT</pubDate>
    <description>&amp;gt;не совсем, демон запускается от рута, идет fork()+setuid&lt;br&gt;&lt;br&gt;Зачем тогда махинации с пересылкой pid? Всю &quot;договоренность&quot;(например генерацию подтверждающего ключа) сделайте до fork&lt;br&gt;</description>
</item>

<item>
    <title>Безопасность средств IPC sysv, posix (ZaCo)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID9/6863.html#17</link>
    <pubDate>Mon, 22 Oct 2007 06:21:42 GMT</pubDate>
    <description>&amp;gt;&amp;gt;дело в том, что запустить приложение в дочернем процессе конечно же будет &lt;br&gt;&amp;gt;&amp;gt;можно, но в таком случае, в моей конкретной задаче (на уровне &lt;br&gt;&amp;gt;&amp;gt;реализации) uid процесса будет НЕдоверительным, а это отследиться перед отправкой данных:)&lt;br&gt;&amp;gt;&lt;br&gt;&amp;gt;Вы просто в начале сказали, что атакующий может запускать программы от uid &lt;br&gt;&amp;gt;процесса-клиента. &lt;br&gt;&lt;br&gt;не совсем, демон запускается от рута, идет fork()+setuid и тут уже дочерний процесс-клиент в распоряжении злоумышленника. более того, из процесса нельзя будет вызвать другую программу, линк на исполняемый файл процесса проверяется сервером. мне кажется, что это не позволит отладить процесс.&lt;br&gt;</description>
</item>

<item>
    <title>Безопасность средств IPC sysv, posix (anonymous)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID9/6863.html#16</link>
    <pubDate>Sun, 21 Oct 2007 23:29:01 GMT</pubDate>
    <description>&amp;gt;дело в том, что запустить приложение в дочернем процессе конечно же будет &lt;br&gt;&amp;gt;можно, но в таком случае, в моей конкретной задаче (на уровне &lt;br&gt;&amp;gt;реализации) uid процесса будет НЕдоверительным, а это отследиться перед отправкой данных:)&lt;br&gt;&lt;br&gt;Вы просто в начале сказали, что атакующий может запускать программы от uid процесса-клиента.&lt;br&gt;</description>
</item>

<item>
    <title>Безопасность средств IPC sysv, posix (ZaCo)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID9/6863.html#15</link>
    <pubDate>Sun, 21 Oct 2007 20:16:38 GMT</pubDate>
    <description>дело в том, что запустить приложение в дочернем процессе конечно же будет можно, но в таком случае, в моей конкретной задаче (на уровне реализации) uid процесса будет НЕдоверительным, а это отследиться перед отправкой данных:) естественно я не говорю про отладку от привилегированного пользователя, например root&apos;а, но от него и защищаться не стоит.&lt;br&gt;</description>
</item>

<item>
    <title>Безопасность средств IPC sysv, posix (anonymous)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID9/6863.html#14</link>
    <pubDate>Sun, 21 Oct 2007 20:03:48 GMT</pubDate>
    <description>&amp;gt;а откуда права на запись в адресное пространство возьмутся? &lt;br&gt;&lt;br&gt;Объясню подробнее:&lt;br&gt;1. запускаем вашу программу под ptrace() в спящем состоянии.  Она не выполняется.&lt;br&gt;2. забиваем ей NOP-ами её вызов ptrace() при помощи ptrace(PTRACE_POKEDATA, ...):&lt;br&gt;man ptrace&lt;br&gt;PTRACE_POKETEXT, PTRACE_POKEDATA&lt;br&gt;              Copies the word data to location addr in the child&apos;s memory.  As above, the two requests are currently equivalent.&lt;br&gt;&lt;br&gt;3. запускаем программу дальше -- она ptrace() не вызывает&lt;br&gt;4. ставим ей breakpoint в нужных местах, и в те моменты считываем данные, полученные из другого процесса&lt;br&gt;</description>
</item>

<item>
    <title>Безопасность средств IPC sysv, posix (ZaCo)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID9/6863.html#13</link>
    <pubDate>Sun, 21 Oct 2007 19:42:59 GMT</pubDate>
    <description>а откуда права на запись в адресное пространство возьмутся?&lt;br&gt;</description>
</item>

<item>
    <title>Безопасность средств IPC sysv, posix (anonymous)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID9/6863.html#12</link>
    <pubDate>Sun, 21 Oct 2007 19:03:28 GMT</pubDate>
    <description>&amp;gt;&amp;gt;&amp;gt;процесс-злоумышленника может быть вполне запущен от пользователя процесса-клиента&lt;br&gt;&amp;gt;&amp;gt;&lt;br&gt;&amp;gt;&amp;gt;Тогда он сможет использовать ptrace() и ему любые защиты будут &quot;по барабану&quot;, &lt;br&gt;&amp;gt;&amp;gt;так как он сможет читать готовые полученные (и даже расшифрованные) данные &lt;br&gt;&amp;gt;&amp;gt;прямо из адресного пространства процесса-клиента. &lt;br&gt;&amp;gt;&lt;br&gt;&amp;gt;крис касперски писал, что можно вызвать ptrace самому себе, тем самым блокировав &lt;br&gt;&amp;gt;все остальные подобные вызовы к этому процессу. отладчики уровня ядра естественно &lt;br&gt;&amp;gt;не в счет. &lt;br&gt;&lt;br&gt;Можно запустить процесс в &quot;спящем&quot; состоянии под ptrace(), а потом забить вызов ptrace() исследуемой программы NOP-ами и запустить процесс дальше.&lt;br&gt;</description>
</item>

</channel>
</rss>
