前几天,我在 PyPI 上投放了 20+ 个 evil package,用于统计随意安装 package 同学的信息。
提一下我是怎么被 PyPI 官方发现的,原因非常简单, 我之前每个 evil package 都是用同一个 cookiecutter 模版生成, 而每个模版的 short desc 都是 just for fun : ),所以在 PyPI 首页 刷了一排 just for fun : )。 就是因为这样简单的理由被发现。
但是如果,我为每个 evil package 准备不同模版,为每个 evil package 准备文档, 为每个 evil package 准备不同的 PyPI account 上传,每次上传使用不同 ip,在 PyPI 没有审核机制的情况下, 是很难将所有的 evil package 一网打尽,只能靠别人 report。
所以防御方案就完全不可能期待 PyPI 会做什么,只能提升自我对信息安全意识,对 PyPI 上不熟悉的项目一律采取不可信的态度, 意识到随意 pip install 就和随意的执行 exe 一样危险。
另外觉得名字被抢的同学,如果你的项目非常厉害,然后发现别人已经在 PyPI 上注册了个和你一样的名字占坑,你是可以直接找 PyPI 管理员去要回 package 名字,前提是你的项目非常厉害。其实 PyPI 里占坑的项目远远要比 Node.js 之类的要少非常多。
至于 ip 信息,之前我一直都觉得 username 和 hostname 才是比较敏感的信息...
ip 不隐藏是因为:
至于说要收集 evil package 列表的同学,我只能说加油,我支持你。
1
ic3z 2017-06-01 22:30:19 +08:00
如何防范?
|
2
sobigfish 2017-06-01 22:49:46 +08:00
除非每个新 package 新上 pypi 时大家 review vote (或者专人审核)
|
3
Kilerd 2017-06-01 22:52:11 +08:00 11
原来都是你们这些人把好名字都注册了。
浪费。 (这里就不骂人了,简直污染社区 |
4
nujabse 2017-06-01 23:50:53 +08:00 via Android
想起了 Arch Linux AUR 仓库的 vote 和 comment 机制
|
5
voocel 2017-06-01 23:50:57 +08:00
会玩
|
6
0915240 2017-06-01 23:53:53 +08:00
前几页看到了 baidu \ stanford \ jd 的 ?
|
7
66CCFF 2017-06-02 00:17:42 +08:00
不如提供一下完整的数据包?大家爬起来也很费事啊。
|
8
Shura 2017-06-02 00:24:18 +08:00 via Android
npm 应该也有类似的问题吧?
|
9
RqPS6rhmP3Nyn3Tm 2017-06-02 00:35:40 +08:00 via iPhone
@Kilerd 删除会释放名字
|
10
Kirscheis 2017-06-02 01:57:26 +08:00
好奇有没有人测试过 homebrew cask
|
11
anoymoux 2017-06-02 02:21:16 +08:00 1
@66CCFF
apt-get install jq for i in `seq 0 20 10685`; do curl -s 'http://evilpackage.fatezero.org/json?order=asc&offset='$i |jq -r '.rows|map([.ip,.username,.hostname,.language,.package]|join(","))|join("\r\n")'; done |
12
Trim21 2017-06-02 03:26:46 +08:00 via iPad
暴露 ip 有点过了。。
|
13
zhangneww 2017-06-02 07:13:02 +08:00 via Android
希望可以引起官方和用户的重视
|
14
laike9m 2017-06-02 08:24:33 +08:00 via Android
之前写了两个库,结果最开始想的名字全都被占了,不过好歹别人先来的也就不说啥了,不过楼主这种做法确定不是恶意扰乱社区?
|
15
wormcy 2017-06-02 08:36:52 +08:00 via Android
有意思
|
16
xiaket 2017-06-02 08:39:31 +08:00
之前就觉得 PyPI 这种放任上传的方式有点太懒散了,可能会出事. 个人觉得这个锅作者背一半, PyPI 也应该背一半.
|
17
imlonghao673 2017-06-02 09:27:52 +08:00 via Android
那大概就是网络实名制和专人审核制的原因?
光荣榜列出 pypi 的用户名和 ip ?你是会玩的 |
18
prasanta 2017-06-02 09:36:59 +08:00
这些 ip 可以利用起来
|
19
7654 2017-06-02 09:48:09 +08:00
让我想起最近知乎上看到的,还有这种操作的帖子
只想说楼主会玩 pypi 已经发生过这样的事了,为什么不补救 |
22
yzmm 2017-06-02 10:03:50 +08:00
我给你讲,宝宝 你会被打的~
|
24
bertonzh 2017-06-02 10:29:04 +08:00
楼主域名不错
|
25
recall704 2017-06-02 10:31:17 +08:00
我感到很惊讶, 原来可以不用审核就可以上线啊?
|
27
wujunze 2017-06-02 11:53:29 +08:00
楼主会玩儿 666
|
28
jhsea3do 2017-06-02 12:17:10 +08:00
不错,pip / npm / gem 都可以搞起来
|
29
xcodebuild 2017-06-02 12:27:56 +08:00
把 ip 都放出来过分了吧。。真正该上榜的是你们这些 evil package
|
30
icedx 2017-06-02 12:46:43 +08:00
搞事情也是有所为有所不为的
你这样的分分中被社区 dalao 吊打 |
31
HGladIator 2017-06-02 12:56:32 +08:00
域名赞
|
32
xiongbiao 2017-06-02 13:15:40 +08:00
真是个大胆的想 /做法
|
33
wizardoz 2017-06-02 13:20:53 +08:00
用户名频率最高的果然是 root
|
34
aifreedom 2017-06-03 02:37:56 +08:00
IP 属于 PII, 在公司数据库里都是非常敏感的数据. 建议楼主不要这样公布这些数据.
|
35
Damnever 2017-06-03 10:14:31 +08:00
初略的统计了下 PyPI 上的数据:
import names: 94465 package names: 83129 命名真的是个很蛋碎的事情,楼主这。。 |
36
arischow 2017-06-08 19:15:03 +08:00 via iPhone
Guido 要回一个名字都要和 pypi 那边扯皮很久,还是那个名字的项目已经很久没维护了
|