Вирус в хранилище Subversion, что делать? - PullRequest
16 голосов
/ 27 мая 2010

Представьте себе следующую ситуацию:

  1. Файл, зараженный вирусом, был передан в хранилище Subversion.
  2. На сервере работает антивирусный сканер, а также сканируется хранилище Subversion.

Сканер Антивируса удалит затронутую ревизию или переместит ее в карантин. Следствием этого является сломанный репозиторий.

Если файл ревизии можно восстановить (из карантина), как решить эту проблему?
У меня есть несколько целей для достижения:

  1. AV нельзя отключать или исключать из каталогов.
  2. Файл, зараженный вирусом, не должен храниться в хранилище
  3. Хранилище должно быть согласованным и пригодным для использования.

Какое самое лучшее решение для этой маленькой проблемы?

Ответы [ 4 ]

16 голосов
/ 27 мая 2010

Из FAQ :

Есть особые случаи, когда вы может захотеть уничтожить все доказательства файл или коммит. (Возможно кто-то случайно совершил конфиденциальную документ.) Это не так просто, потому что Subversion специально разработана для никогда не теряй информацию. Редакции неизменные деревья, которые опираются на один другой. Удаление ревизии из история вызовет эффект домино, создавая хаос во всем последующем пересмотры и, возможно, аннулирование все рабочие копии.

Однако у проекта есть планы когда-нибудь внедрить свнадмин уничтожить команду, которая будет выполнить задачу навсегда удаление информации. (См. выпуск 516 .)

Между тем, ваш единственный выход свадьми дамп своего репозитория, тогда передать свалку svndumpfilter (исключая неверный путь) в команду загрузки svnadmin. Увидеть глава 5 книги Subversion для подробности об этом.

3 голосов
/ 27 мая 2010

Самый простой? Восстановление из резервной копии перед фиксацией вирусом ...

0 голосов
/ 05 августа 2017

"AV нельзя отключать или исключать из каталогов."

Сразитесь с вашим ИТ-отделом, чтобы добавить свои репозитории в исключения. ЛУЧШИЙ, если AV поддерживает «Информационный режим только», сделайте так, чтобы он работал с вашими репо в информационном режиме. В большинстве случаев такие старые вирусы являются просто ложными срабатываниями. Добавьте precommit hooks для антивирусной проверки любого файла и отклоните коммит, если он помечен вирусом.

Если AV сообщает, что старый файл заражен, проверьте, не ложно ли положительный результат. Если это не так, а файл действительно старый вирус, просто зафиксируйте его удаление и полностью игнорируйте его существование в вашей истории.

0 голосов
/ 27 мая 2010

Если вы создали хранилище в файловом режиме (по одному файлу репо на исходный файл), вы, вероятно, сможете исправить / отредактировать / заменить зараженный файл.
Если вы создали его в режиме БД, то это сложнее - вы можете svndump, а затем создать новый репозиторий svn, но, вероятно, проще исключить репозиторий SVN из проверки на вирусы

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...