【问题标题】:Virus in Subversion repository, what to do?Subversion 存储库中的病毒,怎么办?
【发布时间】:2011-02-24 17:01:39
【问题描述】:

想象以下情况:

  1. 病毒感染文件已提交到 Subversion 存储库。
  2. 反病毒扫描程序在服务器上运行,同时扫描 Subversion 存储库。

防病毒扫描程序将删除受影响的修订版或将其移至隔离区。结果是存储库损坏。

如果修订文件是可恢复的(从隔离区),如何解决这个问题?
我有一些目标要实现:

  1. 不允许从目录中禁用或排除 AV。
  2. 病毒感染文件不得存储在存储库中
  3. 存储库必须一致且可用。

这个小问题最好的解决方案是什么?

【问题讨论】:

  • 你能从源代码重建被感染的文件吗?如果可以,请从 repo 中删除病毒,重建并重新提交。
  • qor72:我不知道被感染的文件,这就是问题所在。伯特:扫描仪检测到它,这是我的问题。我也没想到 :)
  • 1.暂时禁用 AV。 2. Dump-Filter-Load 存储库以删除受感染的文件。 3. 重新激活病毒扫描程序。 4. 解雇签入受感染文件的 in-duh-vidual。
  • Amardeep:这是一个误报。转储过滤器加载将不起作用,因为文件已被清除。至少进入了一个幸福的结局:文件被隔离,病毒扫描程序得到了签名更新。一切顺利。

标签: svn antivirus


【解决方案1】:

来自FAQ

在某些特殊情况下,您 可能想销毁所有证据 文件或提交。 (也许有人 不小心犯了机密 文件。)这并不容易,因为 颠覆是故意设计的 永远不会丢失信息。修订是 以一棵树为基础的不可变树 其他。从中删除修订 历史会造成多米诺骨牌效应, 在随后的一切中制造混乱 修订和可能无效 所有工作副本。

但是,该项目有计划 有一天实现一个svnadmin 抹杀命令 完成永久任务 删除信息。 (见issue 516。)

与此同时,您唯一的办法是 svnadmin 转储您的存储库,然后 通过管道传输转储文件 svndumpfilter(不包括坏路径) 进入 svnadmin 加载命令。看 chapter 5 的 Subversion 书籍 有关此的详细信息。

【讨论】:

  • svndumpfilter 是唯一没有从备份恢复的答案。 +1
【解决方案2】:

最简单的?从病毒提交之前的备份中恢复...

【讨论】:

  • 修订已超过一年。或者更好地说:> 6000 个旧版本。备份不行。
  • 我有很多备份。如果我在提交之前恢复备份,我会丢失 > 6000 个修订。这是不可行的。
  • 为什么不能将那个文件恢复到病毒感染前的状态?
【解决方案3】:

如果您以文件模式创建存储库(每个源文件一个 repo 文件),那么您可能可以修复/编辑/替换受感染的文件。
如果你在 DB 模式下创建它,那就更难了——你可以 svndump 然后 svncreate 一个新的 repo,但是从病毒扫描中排除 SVN 存储库可能更容易

【讨论】:

  • 修订文件已被感染,因此无法替换/编辑。
【解决方案4】:

"不允许禁用或从目录中排除 AV。"

与您的 IT 部门协商,将您的存储库添加到排除项中。最好,如果 AV 支持“仅信息模式”,请使其在仅信息模式下与您的存储库一起使用。大多数时候,这些旧病毒只是误报。添加预提交挂钩以对任何文件进行病毒扫描,如果文件被病毒标记,则拒绝提交。

如果 AV 报告旧文件被感染,请检查是否误报。如果不是,并且文件确实是旧病毒,只需将其删除并完全忽略它在您的历史记录中的存在。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-07-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-15
    • 2023-03-28
    • 2019-04-17
    • 2023-03-18
    相关资源
    最近更新 更多