git 协议可能被中间人攻击吗?
source link: https://www.v2ex.com/t/882664
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
今天看到个项目用到 git clone git://git.busybox.net/busybox ,不太了解 git 协议,这有被中间人攻击的风险吗?
kkeep 7 小时 59 分钟前 via Android 有意思,你这个是基于 ssh 的?
|
yankebupt 7 小时 59 分钟前 The downside of the Git protocol is the lack of authentication.
应该是有的 |
dem0ns 7 小时 37 分钟前 git:// 就是基于 ssh 协议的,中间人攻击 /防御和 ssh 是一致的,首次连接的时候会进行指纹确认,指纹信息会保存到 known_hosts 文件,下次连接的时候系统会对比指纹的,只有指纹一致才会进行数据传输
|
Trim21 7 小时 36 分钟前 会,git 协议是没加密的 tcp ,作为本地和服务器 git 命令之间的 pipe 进行远程代码同步。所以是有可能被中间人的。
|
moen 7 小时 31 分钟前 看 https://git-scm.com/book/en/v2/Git-on-the-Server-The-Protocols 就知道,git 协议是为「公开的大型项目」而设计的,它不需要 HTTP 协议的各种限制,也不需要 SSH 的加密和认证机制,git 协议和 SSH 都是建立在同一层的。简单说 git 协议就是明文传输的,可以被中间人攻击
|
dem0ns 7 小时 28 分钟前 @x199ian 你可以检查下你的 known_hosts 文件是否有 git.busybox.net
|
dem0ns 7 小时 12 分钟前 1 抓了个包,发现就是明文的,我在前面说的错了,误以为是 ssh
部分流量 003dgit-upload-pack /busybox.host=<请不要在每一个回复中都包括外链,这看起来像是在 spamming>.version=2.000eversion 2 0015agent=git/2.31.1 0013ls-refs=unborn 0012fetch=shallow 0012server-option 0017object-format=sha1 00000014command=ls-refs 0024agent=git/2.37.0.(Apple.Git-136)0016object-format=sha100010009peel 000csymrefs 000bunborn 0014ref-prefix HEAD 001bref-prefix refs/heads/ 001aref-prefix refs/tags/ 00000052c8c1fcdba163f264a503380bc63485aacd09214c HEAD symref-target:refs/heads/master 0044267b925bb46d53472d28e88edc7d837c5918612b refs/heads/0_60_stable 00442f8880d2333c0ff9229a2b386eb652952010d7e6 refs/heads/1_00_stable 004a1fb759908f0cc38fd0b763fb7908eef515f4af33 refs/heads/1_00_stable_10817 0044e9f8b2f830bf0273d0d51f56d24da84b955e0df5 refs/heads/1_10_stable 00444a81fe4173bf5029058253cf0be194c23a5ad369 refs/heads/1_11_stable 00449b8f810d38a720bca94af864e2960de91aae3a29 refs/heads/1_12_stable 00448f0c89e05a7b52f8c5ae7b451de6fd50732aeb45 refs/heads/1_13_stable 0044757e46252c004c9170dfc748a78f42abd416cf50 refs/heads/1_14_stable 004475919134e1fbd0c4dc60cab8fb5a7746c241123b refs/heads/1_15_stable 00446b5656e9bbc8c202dc323aecf54592185f9e129a refs/heads/1_16_stable 0044db4171d842e9bdc1c2903a9d5cfea053aceb35a2 refs/heads/1_17_stable 00442e79bc6c77560d4460847a459857039774de004a refs/heads/1_18_stable 0044f99811908419608e3ab81393d0177cc456101e4b refs/heads/1_19_stable 0043bdea7807b1f045a230a2efab8d85fa21a9aa3e48 refs/heads/1_1_stable 0044b1cec5003b73080a8aa7ea277621bf1c71c3e8d6 refs/heads/1_20_stable 0044e73f3c1d3d83699b723251f7e6a981021ce75475 refs/heads/1_21_stable 004428dd64a0e1a9cffcde7799f2849b66c0e16bb9cc refs/heads/1_22_stable 0044be947c4d97c0dacb703a6f24dd813ff6dd3a33b6 refs/heads/1_23_stable |
dem0ns 7 小时 10 分钟前 002d.Compressing objects: 100% (28643/28643)
0034.Compressing objects: 100% (28643/28643), done. [email protected]{h.x.'..b. ....qj.........Hl....1.O!"y.-.l..&.lFD..A28.y....m.:[email protected]".>Q...<.8;.....kEG......;|V....^.......m.Y*.T.9.. .s.Y...O.h.~.Zz..!..........J/.v.M.... DI..Jm.]...4N'.........L.l..-x..R.j.0...+tl .%...J.....k.Kc[D..$g..:IO=%..0.Yx.a&.D*.......]7..F..U......!AK.j.....RH).N.9.....U). ..e.....q$0...........n...A...7.........Q~z.|!.EU....`.,....."!........F38Hs.-.....)R<%[email protected]\.F...f{ .z.P..."...aQ^q.%...!..r8+..nX5?D......h.....[.2F...Y..q....0.3..nI..=......K.v......b...........7...h..x....n. .D{....Z...j.m.2J.)....d...I...6.Rmy..3.."0\.R;g..};z.........j..J"J.... .+C.w..F...T^89..G.v...h..m}...7..&x.j...x.&..Z.J..G.. :.uZ....3..%.+.x..Wx.X).........}.r."-.bs..%ZI#.? ..Z{....uE7CH...b..c.T...SNqg.5L........]._.......}S..x...Mj.0...:....lG.TJ..7(t.B.I#[T..-7..k.BW.....x..0e".. .dm......;a.kC. o.ip..v..p.T..l.rBH-P........;......Q..2. ^(]gx.8Sz....p.CZ..} PACK 开始是压缩信息 |
agagega 6 小时 51 分钟前 Git 存数据的方式有点像区块链,一环套一环,所以即使被中间人攻击了,发现 hash 对不上很容易就发现了
|
keith1126 6 小时 45 分钟前 |
keith1126 5 小时 54 分钟前 @timpaik #20
并没有吧,反正据我观察,用 GPG 签名的人并不多。 而且另一方面,由于 GPG 签名不是强制的+普及度不高,当你遇到一个没有签名的 commit ,大概率只会觉得是对方没签名,而不是被篡改了。 |
Tobias747 5 小时 1 分钟前 GitHub 官方八月份已经支持显示 SSH commit verification, 建议开启[SSH commit verification now supported | GitHub Changelog]( https://github.blog/changelog/2022-08-23-ssh-commit-verification-now-supported/)
|
Greenm 4 小时 54 分钟前 git 不关注应用层的安全性,所以原则上是有风险的。
主流的 SaaS 服务商部署的 git 都是走的 SSH 或者 https ,这两个协议能够较好的防止中间人,如 github, gitlab 等。 但你如果自建 git 服务器,那就无法避免被中间人。 |
zk8802 29 分钟前 via iPhone Git 被中间人攻击之后可能被用来直接攻击客户端,而不仅仅是修改 commit 历史。参见 CVE-2018-11233 和 CVE-2018-11235 。
不应该在不安全的网络环境下使用 Git (尤其很多人习惯性忽略 SSH host key 不匹配的提示)。 |
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK