SecureTmp — различия между версиями

Материал из ALT Linux Wiki
Перейти к: навигация, поиск
(Import from freesource.info)
 
Строка 3: Строка 3:
  
 
== Безопасность и временные файлы ==
 
== Безопасность и временные файлы ==
 
+
<pre>
 
Date: Wed, 17 Aug 2005 03:38:02 +0400
 
Date: Wed, 17 Aug 2005 03:38:02 +0400
 
From: "Dmitry V. Levin" <ldv@>
 
From: "Dmitry V. Levin" <ldv@>
Строка 9: Строка 9:
 
Subject: [http://lists.altlinux.ru/pipermail/devel/2005-August/023451.html Re: [devel] Re: suid/sgid programs and temporary files]
 
Subject: [http://lists.altlinux.ru/pipermail/devel/2005-August/023451.html Re: [devel] Re: suid/sgid programs and temporary files]
  
On Wed, Aug 17, 2005 at 03:33:43AM +0400, Alexey Tourbin wrote: &gt; On Wed, Aug 17, 2005 at 02:50:56AM +0400, Dmitry V. Levin wrote: &gt; > > Можно в двух словах, почему небезопасно передовать временный файл по  &gt; > > имени?  Ведь если потенциальный злоумышленник не может ни читать/писать, &gt; > > ни удалить временный файл, то в чем страдает безопасность? &gt; >  &gt; > Это разновидность TOCTOU: с момента проверки до момента использования &gt; > ситуация может измениться.  Например, временный файл, созданный в /tmp, &gt; > может быть удалён, если он не используется, каким-нибудь stmpclean'ом. &gt; > Даже права на каталог могут измениться с момента последней проверки.    &gt; > Если представить себе, что привилегированная программа получила SIGSTOP и &gt; > отправилась отдыхать на недельку-другую, то окно становится вполне &gt; > пригодным для атаки. &gt;  &gt; То есть "навредить" нам может либо root, либо мы сами себе. &gt; Потенциальному злоумышленнику остается только ждать наступления более &gt; благоприятной ситуации, которая, по идее, наступить не должна. &gt;  &gt; То есть проверка каталога по этой схеме перед созданием временного файла &gt; практически гарантирует, что все остальные операции с временным файлом &gt; пройдут безопасно.
+
On Wed, Aug 17, 2005 at 03:33:43AM +0400, Alexey Tourbin wrote:  
 +
&gt; On Wed, Aug 17, 2005 at 02:50:56AM +0400, Dmitry V. Levin wrote:  
 +
&gt; > > Можно в двух словах, почему небезопасно передовать временный файл по   
 +
&gt; > > имени?  Ведь если потенциальный злоумышленник не может ни читать/писать,  
 +
&gt; > > ни удалить временный файл, то в чем страдает безопасность?  
 +
&gt; >   
 +
&gt; > Это разновидность TOCTOU: с момента проверки до момента использования  
 +
&gt; > ситуация может измениться.  Например, временный файл, созданный в /tmp,  
 +
&gt; > может быть удалён, если он не используется, каким-нибудь stmpclean'ом.  
 +
&gt; > Даже права на каталог могут измениться с момента последней проверки.     
 +
&gt; > Если представить себе, что привилегированная программа получила SIGSTOP и  
 +
&gt; > отправилась отдыхать на недельку-другую, то окно становится вполне  
 +
&gt; > пригодным для атаки. &gt;  &gt; То есть "навредить" нам может либо root, либо мы сами себе.  
 +
&gt; Потенциальному злоумышленнику остается только ждать наступления более  
 +
&gt; благоприятной ситуации, которая, по идее, наступить не должна.  
 +
&gt;   
 +
&gt; То есть проверка каталога по этой схеме перед созданием временного файла  
 +
&gt; практически гарантирует, что все остальные операции с временным файлом  
 +
&gt; пройдут безопасно.
  
 
В случае с привилегированными программами такая гарантия появляется только
 
В случае с привилегированными программами такая гарантия появляется только
Строка 18: Строка 36:
 
--  
 
--  
 
ldv
 
ldv
 
+
</pre>
 
----
 
----
 
+
<pre>
 
Date: Wed, 17 Aug 2005 10:37:30 +0400
 
Date: Wed, 17 Aug 2005 10:37:30 +0400
 
From: Alexey Tourbin <at@>
 
From: Alexey Tourbin <at@>
Строка 26: Строка 44:
 
Subject: [http://lists.altlinux.ru/pipermail/devel/2005-August/023458.html [devel] Re: suid/sgid programs and temporary files]
 
Subject: [http://lists.altlinux.ru/pipermail/devel/2005-August/023458.html [devel] Re: suid/sgid programs and temporary files]
  
On Wed, Aug 17, 2005 at 09:02:44AM +0600, Andrey Rahmatullin wrote: &gt; On Wed, Aug 17, 2005 at 02:55:07AM +0400, Dmitry V. Levin wrote: &gt; > Да, tmpfile(3) удаляет созданный файл сразу, &gt; Почему об этом нет в мане?
+
On Wed, Aug 17, 2005 at 09:02:44AM +0600, Andrey Rahmatullin wrote:  
 +
&gt; On Wed, Aug 17, 2005 at 02:55:07AM +0400, Dmitry V. Levin wrote:  
 +
&gt; > Да, tmpfile(3) удаляет созданный файл сразу,  
 +
&gt; Почему об этом нет в мане?
  
 
В K&amp;R тоже написано, что временный файл "автоматически удаляется при его
 
В K&amp;R тоже написано, что временный файл "автоматически удаляется при его
Строка 38: Строка 59:
 
возвращается?  Лучше удалить сразу (на тех платформах, которые это
 
возвращается?  Лучше удалить сразу (на тех платформах, которые это
 
поддерживают).
 
поддерживают).
 +
</pre>

Версия 12:20, 18 октября 2015

Freesource-logo.png Blue Glass Arrow.svg MediaWiki logo.png
Эта страница была перемещена с freesource.info.
Эта страница наверняка требует чистки и улучшения — смело правьте разметку и ссылки.
Просьба по окончанию убрать этот шаблон со страницы.


Безопасность и временные файлы

Date: Wed, 17 Aug 2005 03:38:02 +0400
From: "Dmitry V. Levin" <ldv@>
To: ALT Devel discussion list <devel@>
Subject: [http://lists.altlinux.ru/pipermail/devel/2005-August/023451.html Re: [devel] Re: suid/sgid programs and temporary files]

On Wed, Aug 17, 2005 at 03:33:43AM +0400, Alexey Tourbin wrote: 
> On Wed, Aug 17, 2005 at 02:50:56AM +0400, Dmitry V. Levin wrote: 
> > > Можно в двух словах, почему небезопасно передовать временный файл по   
> > > имени?  Ведь если потенциальный злоумышленник не может ни читать/писать, 
> > > ни удалить временный файл, то в чем страдает безопасность? 
> >  
> > Это разновидность TOCTOU: с момента проверки до момента использования 
> > ситуация может измениться.  Например, временный файл, созданный в /tmp, 
> > может быть удалён, если он не используется, каким-нибудь stmpclean'ом. 
> > Даже права на каталог могут измениться с момента последней проверки.    
> > Если представить себе, что привилегированная программа получила SIGSTOP и 
> > отправилась отдыхать на недельку-другую, то окно становится вполне 
> > пригодным для атаки. >  > То есть "навредить" нам может либо root, либо мы сами себе. 
> Потенциальному злоумышленнику остается только ждать наступления более 
> благоприятной ситуации, которая, по идее, наступить не должна. 
>  
> То есть проверка каталога по этой схеме перед созданием временного файла 
> практически гарантирует, что все остальные операции с временным файлом 
> пройдут безопасно.

В случае с привилегированными программами такая гарантия появляется только
в случае проверки на euid, иначе запускающий такую программу может
попробовать через неё добыть себе права через манипуляции с каталогом.


-- 
ldv

Date: Wed, 17 Aug 2005 10:37:30 +0400
From: Alexey Tourbin <at@>
To: devel@
Subject: [http://lists.altlinux.ru/pipermail/devel/2005-August/023458.html [devel] Re: suid/sgid programs and temporary files]

On Wed, Aug 17, 2005 at 09:02:44AM +0600, Andrey Rahmatullin wrote: 
> On Wed, Aug 17, 2005 at 02:55:07AM +0400, Dmitry V. Levin wrote: 
> > Да, tmpfile(3) удаляет созданный файл сразу, 
> Почему об этом нет в мане?

В K&R тоже написано, что временный файл "автоматически удаляется при его
закрытии или обычном завершении программы своей работы" (стр.311).
Видимо, такая формулировка в K&R/~ANSI C используется из-за соображений
портабельности, т.к. не на всех платформах можно удалить файл и  
продолжать работать с дескриптором.  А ман, скорее всего, просто
пересказывает ANSI C.

В сущности, какая разница, когда удалить файл, если его имя не
возвращается?  Лучше удалить сразу (на тех платформах, которые это
поддерживают).