2013-10-09 57 views
0

3個字母的政府機構能否通過他們的git存儲庫爲項目添加一個後門,而沒有人注意到這些更改?git是否可以防止未經授權的存儲庫修改?

例如,如果一個惡意黑客得到了貢獻者對Ruby's git的訪問權限,那麼他們是否會以這樣一種方式搞砸提交歷史記錄:拉扯惡意代碼可能會被忽視?

+1

「沒有人注意到變化」是什麼意思?如果有人在從遠程存儲庫提取代碼時沒有看到他們正在拉取的內容,當然他們可能正在下載惡意代碼。但是你可以看到每次拉動的變化。 (你的意思是,如果遠程所有者添加了惡意代碼,或者如果有人正在盜用它來添加代碼?) –

+0

@DavidRobinson在我的原始問題中添加了一個示例。 –

回答

1

就修改項目變更歷史而言,這將是困難的; git使用可以被視爲變化的'文件系統快照'的東西。 git用來區分這些更改快照的標識符是一個160位SHA1散列。

儘管密碼安全,但git中並未使用此功能來防止惡意重寫存儲庫,而是爲了保證基本的數據完整性。如果以前的提交發生更改,則SHA1提交標識符將發生更改,但理論上可能發現碰撞。

在Git中,SHA1哈希的密碼性質是不是一種安全機制本身,但獎金

你的問題已經出現在參考Linux內核之前被惡意修改。你可以閱讀它here

+0

謝謝你的文章。我的問題是由一篇關於[2003 linux後門嘗試]的文章引發的(https://freedom-to-tinker.com/blog/felten/the-linux-backdoor-attempt-of-2003/)。我知道git使用了sha標識符,但是我想知道如果你發現了一種進入遠程倉庫的方法,隱藏不好的代碼是多麼的容易。 –

+1

從馬的嘴巴:http://lwn.net/Articles/457142/鏈接到:http://www.linux.com/news/featured-blogs/171-jonathan-corbet/491001-the-cracking-的-kernelorg – ldrumm

2

git不會自動從遠程拉出,用戶需要從遠程調用git pull來獲取新的代碼,這不是「沒有人注意到這些變化」。

此外,用戶可以通過git log <remote-name>git show <remote-name>查看遠程以查看這些更改。如果他們發現惡意變化,他們可以隨時恢復。

+0

是否有可能被拉動的更改破壞更改歷史記錄,以致惡意更改不會出現在'git log'中? <3個字母的政府機構>是否可以通過他們的git存儲庫爲項目添加一個後門,而沒有人注意到這些更改? –