Git中.gitconfig 文件的漏洞

原文发表地址: Git vulnerability with .git\config 原文发表时间: 2014-12-18 1:47 PM 今天Git社区披露了Git的一个问题,即就是:在最坏的情况下,允许开发人员接管机器。这个问题出现在Git的整个系统, 而不仅仅出现在微软的Git实现或窗口中。我将会在下文来描述这个问题和问题的解决措施,以确保我们的客户使用Git存储库来防止这个问题。 首先,我想感谢Hg(Mercurial)社区的帮助。Hg(Mercurial)社区发现了一个类似的问题。他们在研究Git时,发现存在同样的问题。他们谨慎地通知了社区中相应的人,并在披露之前做好共享信息和控制信息来减轻这个问题的影响。这是社区合作中的一个很好的例子。 问题 Git中有一个叫config的文件, 它存储在本地Git 存储库 的git文件夹里。这个文件包含大量的个人/选项设置, 其中有关于git命令的替换名。几乎所有git命令都可以通过执行替换名来做任何你想要的事情。 通常情况下,git客户端要避免重写该文件。即使你提交.git \config 文件并把它发送到一个共享的邮箱, 其他人的git客户端也不能将其放在自己的私人邮箱内。然而,在重命名.git 文件夹时, 发现了一个bug, (如大小写混合, gIT, GiT 等等, Windows文件名缩短.git ~ 123,可忽略的Unicode codepoints .g \ u200cit \config, 等) 一个不能被Git客户端逻辑过滤的问题。这样,如果有人发送一个有上述一种情况的恶意config文件,其他人的Git客户端就会检查出来,覆盖他们的个人配置文件并且改变他们的Git命令。至少,这会影响Windows NTFS和Mac OS X HFS +文件系统,而这两者都是区分大小写的文件系统 风险 风险并不像听起来那么糟糕。当有人要向你做一些有风险的事情时,他们必须向你申请获取信息的邮箱的权限。在一个公司,风险可能就会是内部攻击。最可能的(不是唯一,但最有可能) 场景是在一些小的OSS项目里。大公司通常有知名的/可以信任的提交者。接下来,您将看到已经采取的措施来缓解这个问题。 修复 我们和Git社区的其他成员一起工作准备将这个问题公布出来。我没有对别人说,但是我知道Git核心和GitHub已经在减轻这个问题的影响。我将具体说一下我们(微软) 已经采取的一些步骤。         1. 大概一周之前,,我们在VS Online和Codeplex上应用了一个补丁,防止服务器接受推送的.git \config文件。这个bug其实不是在服务器上(它是在客户端上的),但通过这样做,我们可以减少从我们正在开发的服务器上获取任何更新的客户端的可能性。        …


一个新的Visual Studio Online和Team Foundation Server特性时间表

[原文发表地址] A new Visual Studio Online and Team Foundation Server Features Timeline [原文发表时间] 2014-12-17 10:00 AM 我们一直寻找跟客户更有效的交流方式,有关我们所做的,人们喜欢的、不喜欢的、他们想要的、我们正在计划的、等等。一年前,我们在visualstudio.com的新闻部分添加了特性时间表页面作为这个旅程的第一步。 在新闻部分中,宣布了我们每个开发冲刺阶段所发布的新特性,尤其是VS Online特性时间表将新特性映射到内部部署的TFS版本上,你可以在VS Online里面找到它。以下是摘录的示例: 同时,它们都是反向链接—我们都已经做好了,你可以直接访问。我们所拥有的最好的听取建议的工具就是UserVoice。用它来提交建议和投票给其他的工具非常方便,但是对我们所计划或从事的事情有清晰的蓝图就有点难。我们所做的许多事情都来自于UserVoice中的建议,但也有一些不是。 现在我们用一个新的正在开发的特性”部分更新了我们的特性时间表页面。添加这个部分的目的是为了让你了解我们正在做的一些事情。 无论如何,也还算详尽--起码最初还没有,它提供了关于一些关键投入的不错并简明的视图...这些关键投资可以链接到UserVoice或博客,等等,你可以了解更多有关产品实际的改进,并且给你提供了一个在它还没有发布之前去评论它的机会。 以下是我写这篇博客的一个简介, 我猜测当你读到这篇文章的时候它会有一些不同,因为我们会经常更新它。 为了给你提供一些我们所从事的工作的一些信息,我们同样尝试着给一些有关何时要求它的想法。左边的这一列展示了在VS Online中可用的粗略时间估计。右边的大多数列显示了TFS内部部署的版本和我们期待的新特性的关系。当我们没有足够的自信给出特定的时间段时,我们将会使用TBD。“–”表示与发布的工具无关-或者它已经是可用的了(TFS中的流程模版定制就是一个很好的例子)或者因为不在发布的工具中(TFS的ISO27001证书就是个例子)。 当然,做这项工作的一个风险就是计划的改变。譬如,当我们决定取消我们正在做的事的时候,或简单地改变交付日期,都会有一些风险。当风险发生的时候,我希望你们能够跟我们一起承担。我们目前还没有找出如何应对这些改变的办法,但是,当它一旦发生,我们会找出解决它的办法。 希望这篇文章能给你提供一些有用的信息。由于我们还处于刚开始的试验阶段,如果您有任何有助于我们产品做得更好的反馈和意见,我将非常感谢。 谢谢, Brian