Подтвердить что ты не робот

Вирус в репозитории Subversion, что делать?

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

  • Файл, зараженный вирусом, был занесен в репозиторий Subversion.
  • Антивирусный сканер работает на сервере, а также сканирует репозиторий Subversion.

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

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

  • AV не разрешается отключать или исключать из каталогов.
  • Вирус-инфицированный файл не должен храниться в репозитории
  • Репозиторий должен быть совместим и использоваться.

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

4b9b3361

Ответ 1

Из FAQ:

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

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

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

Ответ 2

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

Ответ 3

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

Ответ 4

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

Борьба с вашим ИТ-отделом, чтобы добавить ваши репозитории в исключения. BEST, если AV поддерживает "Информативный режим только", заставьте его работать с вашими репозиториями только в информативном режиме. В большинстве случаев такие старые вирусы являются ложными срабатываниями. Добавьте precommit hooks для проверки на вирусы любого файла и отклоните фиксацию, если она помечена вирусом.

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