SVN для веб-сайтов – осторожно

17.02.2010
Olexandr Savchuk

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

В каждой папке, которая контроллируется SVN, создается подпапка .svn. В ней находятся, помимо прочего, список всех файлов в данной директории, а также последние версии этих файлов. Файл .svn/entries содержит имена файлов и папок и техническую информацию о них, а директория .svn/text-base состоит из всех файлов (с добавленным к их расширению .svn-base).

project
  |- index.php
  |- config.php
  |- dir
  |    |- .svn
  |    |    |- entries
  |    |    '- text-base
  |    |         '- file.ext.svn-base
  |    '- file.ext
  |- .svn
  |    |- entries
  |    |- text-base
  |    |    |- index.php.svn-base
  |    |    '- config.php.svn-base
  |    '- ...
  '- ...

Обычно эта директория скрыта, и о ней мало кто заботится. Однако при стандартной конфигурации большинство серверов будут отдавать файлы из нее как и из любой другой – и кроме того, поскольку расширения в text-base изменены на .svn-base, то скрипты не будут выполняться, а будут просто отданы клиенту в виде исходного кода.

Эта уязвимость была обнаружена группой русских программистов некоторое время назад. Они провели скан многих сайтов в зонах .ru, .com и .de, и результаты были ошеломительными. Сотни владельцев крупных сайтов были оповещены об уязвимости их проектов. После того, как дыра была закрыта на большинстве сайтов, информация была опубликована на Хабре.

Существуют множество способов защититься от этой уязвимости. Вот самые простые и действенные:

  • Закрыть доступ к .svn (с помощью .htaccess (Apache) или других настроек)
  • Использовать svn export вместо svn checkout – тогда директория .svn вообще не будет создана.

Эти способы могут казаться очевидными (да они и есть). Но я сильно удивился, проверив ради интереса несколько сайтов из моих закладок. Так что если вы вебмастер, и не знали об этом – знайте.

Пока нет комментариев.

Leave a Reply