--
-- 来自USTC LUG
请使用gmail订阅,不要灌水。
更多信息more info:http://groups.google.com/group/ustc_lug?hl=en?hl=en
---
You received this message because you are subscribed to the Google Groups "USTC_LUG" group.
To unsubscribe from this group and stop receiving emails from it, send an email to ustc_lug+u...@googlegroups.com.
To post to this group, send email to ustc...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
Yifan Gao 已经修好了 lug 服务器(重启大法),现在 lug 主页已经能正常访问了。
blog 还在抢修中。
非常抱歉得通知大家,从今天凌晨2:00开始,blog数据库无法响应部分查询请求。今天早晨发现数据库损坏。因此我们暂时关闭了blog的访问。
受到黑客入侵影响,尚未完全恢复的:
受到黑客入侵影响,暂时关闭的:
暂未受到黑客入侵影响的:
由于考试周快到了,大家都要复习,技术组已经为修复服务忙碌一周了。我们准备借这个机会对我留下的一些烂摊子进行重构,因此可能要到期末考试后才能继续修复。非常抱歉我的账号被入侵给技术组和各位用户带来这么多麻烦,也希望大家能给予我们理解与支持!
作为vpn用户刚想反应情况。。关注事态。
在 2015年6月1日星期一 UTC+8下午8:44:44,Bojie Li写道:
You received this message because you are subscribed to a topic in the Google Groups "USTC_LUG" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/ustc_lug/tEOZ3NZPJLM/unsubscribe.
To unsubscribe from this group and all its topics, send an email to ustc_lug+u...@googlegroups.com.
初步调查,cracker 通过某种未知方式,替换了我 Windows 8.1 里的 cygwin1.dll。这个 dll 篡改了 PTY handler 部分的源码,监控 PTY slave 的读操作,把用户输入的键盘序列加以混淆并打上时间戳后存储在当前目录的 .stackdump 隐藏文件中。经过对此文件的逆向,恢复出了我近几天在 Cygwin 里输入的命令、密码、服务器上的操作等。由于我装的杀毒软件版本较低(学校版 ESET NOD32 4.0),没有报毒(学校版 NOD32 5.0 报毒了)。这个 dll 声称编译时间为5月24日,如果没有伪造,则入侵时间应该在此之后。cracker 通过某种未知方式取走并删除了 .stackdump 文件,还窃取了我的 SSH private key。
5月29日,blog 服务器上我的账号开始出现异常登录,并收集系统信息,由于没有登录提醒机制,日志又被破坏,不能完全确认 cracker 做了什么。5月31日凌晨2点左右,黑客通过 LUG VPN 和窃取到的密钥、密码登录各个服务器,再使用公共账号密码获取 root 权限(我4月底已经主动放弃了 sudo 权限,需要先进入公共账号才能做特权操作)。5月31日中午12点,黑客利用从 blog 服务器上窃取的 freeshell 控制 API 私钥和控制 API 中的命令注入漏洞,在 freeshell 计算节点上实现提权。
黑客在各个服务器里悄悄插入一个名叫 ext4progs.ko 的内核模块。该内核模块具有自我隐身功能,lsmod 和 /sys 里看不到。尽管我们没能查获该内核模块的样本,但通过内核调试,确认该恶意模块 hook 了网络 socket 关闭路径,每当一个网络 socket 关闭时,就向磁盘的某个分区随机写入一个字节。该模块似乎还有限速功能,避免给磁盘带来过高的写负载而被发现。硬盘上的文件系统就这样被悄悄破坏了。但这个恶意模块似乎有些 bug,偶尔会爆出内核栈,这给我们留下了查它的线索。基本上都是当文件被大量破坏、服务停止运行,或者恶意模块自身的 bug 导致内核崩溃后,才发现又一台服务器沦陷了。
--
听着惊心动魄的,该不是被白帽子比赛引过来的吧……
初步调查,cracker 通过某种未知方式,替换了我 Windows 8.1 里的 cygwin1.dll。这个 dll 篡改了 PTY handler 部分的源码,监控 PTY slave 的读操作,把用户输入的键盘序列加以混淆并打上时间戳后存储在当前目录的 .stackdump 隐藏文件中。经过对此文件的逆向,恢复出了我近几天在 Cygwin 里输入的命令、密码、服务器上的操作等。由于我装的杀毒软件版本较低(学校版 ESET NOD32 4.0),没有报毒(学校版 NOD32 5.0 报毒了)。
--
-- 来自USTC LUG
请使用gmail订阅,不要灌水。
更多信息more info:http://groups.google.com/group/ustc_lug?hl=en?hl=en
---
You received this message because you are subscribed to a topic in the Google Groups "USTC_LUG" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/ustc_lug/tEOZ3NZPJLM/unsubscribe.
To unsubscribe from this group and all its topics, send an email to ustc_lug+u...@googlegroups.com.
You received this message because you are subscribed to the Google Groups "USTC_LUG" group.
To unsubscribe from this group and stop receiving emails from it, send an email to ustc_lug+u...@googlegroups.com.
很奇怪是怎么中上这个dll的?难道是某同学手工拷进去的?还是win的某个未知漏洞?
vpn 有人管么 没有vpn 不幸福啊
2015-06-08 20:24 GMT+08:00 Zhuoyun Wei <wzyb...@gmail.com>:
2015-06-08 20:23 GMT+08:00 old9 <qi.j...@gmail.com>:
听 着惊心动魄的,该不是被白帽子比赛引过来的吧……
白帽子不会干破坏文件系统这么恶劣的事情吧……
之前不是有人说可能是 LUG VPN 引来的么……(阴谋论:GFW 御用 cracker)
这个事情感觉是蛮蹊跷的,我们已经找 jameszhang 聊过了。基本上一手搭建了科大整个校园网络,把大半辈子都奉献给了科大校园网和安徽省教育网的 james 老师说,没见过影响这么恶劣的入侵事件。按照常理,黑客要么是悄悄地来,偷走了敏感数据又悄悄地走;要么是改首页挂个黑页,或者通过其他途径公布 “战果” 来炫耀;要么是植入木马,悄悄地感染访问者(例如篡改 mirrors 上的软件包)。把数据都破坏掉又不留名的黑客还没见过。我本人和 LUG 也没有招惹什么人,不应该是出于 “报仇”。大概是一个想锻炼技术、获得成就感的黑客,又不讲道德,不懂道上的规矩,进来之后就大搞破坏。
这个入侵过程大致梳理如下:
- 入侵妹子电脑(猜的)
- 在 U 盘里植入木马(猜的)
- 木马感染我的电脑(猜的)
- 5.20 晚,浏览器中 webshell
- 5.21 凌晨,用浏览器作为跳板攻陷学校两个网站,并在白帽子大赛报漏洞
- 5.24 晚,在 cygwin 里放键盘记录器
- 取走键盘记录和 SSH key
- 5.29 至 5.30,登录服务器搜集信息
- 5.31 凌晨,用窃取的密码密钥登录各服务器,并用公共账号密码提权
- 5.31 凌晨,在 mirrors 服务器上修改另一用户的密码,并从国外登录
- 5.31 中午,找到 freeshell 控制 API 的注入漏洞,从控制节点获取计算节点 root 权限
- 在获取到 root 的各服务器上插入隐藏的内核模块,一有网络连接就随机破坏硬盘数据(其中搞 mirrors 的时候搞挂重启了一次)
- 破坏部分日志,走人
- 服务恢复过程中,利用没来得及 revoke 的密码密钥登录服务器(猜的),再次插入恶意内核模块,形成内核模块会开机自启动的假象(事实上该恶意模块并没有保存在硬盘上,重启即失)
- 服务恢复后仍然念念不忘,又发起漏洞扫描,导致 blog 服务器日志填满硬盘
如果攻击路径真的是这样,可以算得上 APT 攻击了吧……(当然,黑客是不是还干了其他坏事,只有天知道)其中 cygwin 键盘记录器和服务器上的恶意内核模块都应该是没有大范围传播的,有可能是该黑客自用的工具,甚至为了此次攻击专门写的工具。不知道这次成功的入侵背后有多 少次失败的尝试,这个攻击的成本我估计至少是六位数了吧。
能被作为 APT 攻击的目标,我感觉还是蛮 “荣幸” 的,原来我有这么高的入侵价值(是不是想多了)。大多数小伙伴甚至公司,恐怕从来没有遇到这么高级和针对性的入侵吧。这也让我们刷新了三观,什么 Win8 裸奔也很难中毒,Chrome 浏览器很安全,Win8 很难放键盘记录器(人家是放到了 cygwin 里),公共密码只有内部知道无所谓,开了 AppArmor 就可以阻止大部分入侵,内部 API 没有人会注入,都是没有见过真正黑客的人的心理安慰。安全一定要纵深防御:
- 技术人员的个人电脑(退 Windows 保平安、用靠谱的杀软)
- 服务器账号认证和授权体系(两步验证?限制内网访问?)
- 服务器上的监控和日志机制
- 内核模块签名
- 内部 API 也要防注入
- 数据完整性校验(在恶意模块被插入后的一小时内,MySQL 就崩溃了,因为它检测到数据表文件 CRC 不一致。而其他应用都开心地运行着)
我对防御中第二条 “服务器账号认证和授权体系(两步验证?限制内网访问?)” 有兴趣,这种情况下如果把服务器登陆限制在一个专用 vpn 网络内,并且登陆 vpn 网络本身需要来源于不同设备的多因素认证(比如电脑上的证书+手机上的验证码),会有多大帮助?
此外,我有个建议。恢复 freeshell 后,能不能在网页控制台上增加用 ssh key 新建服务器的功能?最好把密码登录默认禁止掉。。。
厉害,受教了。还有我觉得重要的日志连续的提交到一个权限控制细致,并且带版本控制的系统比较好。比如 amazon s3,可以保存所有的历史版本,并且可以控制访问权限,使得用户不能更改过去的版本。这样就可以防止入侵后日志被破坏。
发件人: ustc...@googlegroups.com [mailto:ustc...@googlegroups.com] 代表 Bojie Li
发送时间: 2015年6月14日 21:47
收件人: USTC_LUG
主题: Re: [USTC-LUG] BLOG和FREESHELL出现故障,正在抢修中
因此我赞成采取大多数公司的做法,把服务器登录限制在一个专用 VPN 网络里。同时也不要给这个 VPN 网络太多信任,VPN 只是一种辅助手段,还是要加固客户端和服务器端的安全。比如:
- 给每个客户端颁发证书,仅有受信的证书才能登录 Web 内部系统,这比用户名密码方便又安全;
- SSH 只允许 key 登录,禁用密码登录,或者密码登录必须开启两步验证;
- 建立专门的日志服务器,各服务器把登录、sudo 等日志实时发送到日志服务器;
- 登录操作发邮件通知登录者;
- 每天把各服务器的登录、sudo、内核信息等发一封汇总邮件到管理员组。
The commonly agreed upon tenants of strong security is that it requires a combination of "something you know, something you have, and something you are." Two factor authentication includes both of those - usually something you know and something you have.
在日常生活中还有一些简单易行的方案可以提高安全性。举例来说,不要将ssh key保存在电脑上,而是保存在U盘中。专门用一个U盘存放key,这个U盘可以随身携带,U盘本身加密存储。当要使用key时,插一下U盘用完就立刻拔掉,在自己常用的机器上,也可以插上U盘将key添加到ssh agent里面就把盘拔掉,这样在下一次重启之前都不需要再次插U盘了。这样,即使黑客入侵了电脑,除非蹲点很难获得你的key。这个U盘,建议选择支持物理只读锁的,日常使用时都物理只读,避免中毒。U盘里存放的东西也都要加密,ssh key本身支持加密,带有密码的key黑客拿到了也无法使用。
这倒提醒我了,我觉得我们可以试试基于时间的动态令牌。银行是早就在用了,一些重视安全的互联网公司(如 DNSPod)也在推行自己的实体动态令牌。比起 Google Authenticator 之类,不必担心手机刷机后令牌丢失,或者手机感染木马后令牌被盗;缺点是要随身带着个实体的令牌,比较麻烦,而且这个小东西也可能会丢。
这种令牌有贵的也有便宜的,我找了一个比较便宜的,可以买来试试。
这种令牌有贵的也有便宜的,我找了一个比较便宜的,可以买来试试。原来有这么便宜的解决方案。我前两年在公司还在讨论要不要使用基于硬件key的安全方案,不过当时只是讨论,没有实际去调研,以为这类方案成本会比较高。这种价格应该不错。
我工作的公司里现在用的那套硬件令版 2FA 是我搭的,用的 RSA Labs 的产品 RSA SecurID,大概长这样:
https://upload.wikimedia.org/wikipedia/commons/8/8f/SecureID_token_new.JPG
这几天更新了两次 Debian testing,昨天还更了一次,用的就是科大源,需要做什么处理吗?
2015年6月15日 15:11于 "SJ Zhu" <zsj9...@gmail.com>写道:
>
> 并不需要,debian自带包检验的,所以并不怕被篡改。
>
棒,Debian 真是适合我这样的懒人用啊。
--
抱歉,我表达的不清楚。我指的验证码方案,就是类似 google authenticator 这样的令牌提供的两步验证方案。比如在一个没有保存服务器 host keys 的计算机上,首次登录时不知道服务器 host keys 的指纹, 用 密码+google authenticator 两步验证登录,就不能防止中间人攻击。
那个脚本主要是用来设置 ssh 登录时采用的加密算法组合,还有 dhparam 的参数长度等。类似于设置 ssl 的加密算法组合,root 目录下是备份的 /etc/ssh 目录,我当时主要是写了自己用,没有加什么注释,读起来确实不好。不过读
https://stribika.github.io/2015/01/04/secure-secure-shell.html
这篇文章就好。
再请教一个问题,邮件服务器反垃圾反病毒有什么好办法么?
发件人: ustc...@googlegroups.com [mailto:ustc...@googlegroups.com] 代表 Zhang Cheng
发送时间: 2015年6月16日 18:58
收件人: USTC LUG
主题: Re: 答复: [USTC-LUG] BLOG和FREESHELL出现故障,正在抢修中
--
-- 来自USTC LUG
抱歉,我表达的不清楚。我指的验证码方案,就是类似 google authenticator 这样的令牌提供的两步验证方案。比如在一个没有保存服务器 host keys 的计算机上,首次登录时不知道服务器 host keys 的指纹, 用 密码+google authenticator 两步验证登录,就不能防止中间人攻击。
那个脚本主要是用来设置 ssh 登录时采用的加密算法组合,还有 dhparam 的参数长度等。类似于设置 ssl 的加密算法组合,root 目录下是备份的 /etc/ssh 目录,我当时主要是写了自己用,没有加什么注释,读起来确实不好。不过读
https://stribika.github.io/2015/01/04/secure-secure-shell.html
这篇文章就好。
再请教一个问题,邮件服务器反垃圾反病毒有什么好办法么?
应该只要1)服务器知道客户端的 ssh public key;2)客户端知道服务器的 host keys,两者之一就可以避免中间人了。所以如果使用 usb-key 进行 rsa authorization登录,即便在一台新的计算机上首次登陆,也不存在中间人攻击的风险。
我自己应用的情况来说,服务器上运行的任务简单,而且可以限制服务器只开放与应用有关的端口,并限制只允许 publickey 的方式登录,经常更新的情况下,这边的风险相对可控,所以风险主要在客户端计算机上。
基于以上考虑,我认为1)对抵抗中间人攻击来说,客户端认证风险要小于服务器端认证,因为客户端文件(例如 known_hosts)被修改的风险更大;2)因为多个服务器共用一个 ssh-key 登陆,私钥被盗是最不能接受的,密码并不能有效保护私钥,因为已经入侵客户端计算机的黑客完全可以安装键盘记录器,把私钥保存在 U盘里并全盘加密确实有一定作用,但不能完全防御这一风险;3)不同于通常中间人攻击难以实施的情况,对于已经被入侵的客户端,实施中间人或类似中间人的攻击是容易的,而且如果不能获得登录凭证(比如使用了两步认证),这种攻击说不定会被考虑。所以这又回到第1)条。
以上就是为什么我对利用 usb-key 这种客户端认证方式登录非常感兴趣的原因。我前两年拿到的工行的 U盾还有显示屏,在确认之前能看到自己到底授权了什么信息,我觉得这个更好,即便电脑中病毒了,电脑显示的信息被篡改,也仍然能看到自己到底是付了多少钱,付给了谁。
PS:那个脚本确实是加固 ssh 通讯协议本身的,我觉得就像配置 ssl 一样,正确的使用加密组合也很重要,而且之前 ssl 系算法爆出的有些漏洞似乎并不需要很高的成本。。。不管怎么说,加固一下也不是很麻烦,所以我就做了:)
发件人: ustc...@googlegroups.com [mailto:ustc...@googlegroups.com] 代表 Zhang Cheng
发送时间: 2015年6月16日 23:32
收件人: USTC LUG
主题: Re: 答复: 答复: [USTC-LUG] BLOG和FREESHELL出现故障,正在抢修中
--
-- 来自USTC LUG
应该只要1)服务器知道客户端的 ssh public key;2)客户端知道服务器的 host keys,两者之一就可以避免中间人了。所以如果使用 usb-key 进行 rsa authorization登录,即便在一台新的计算机上首次登陆,也不存在中间人攻击的风险。
PS:那个脚本确实是加固 ssh 通讯协议本身的,我觉得就像配置 ssl 一样,正确的使用加密组合也很重要,而且之前 ssl 系算法爆出的有些漏洞似乎并不需要很高的成本。。。不管怎么说,加固一下也不是很麻烦,所以我就做了:)
我觉得针对协议本身的攻击是不能掉以轻心的。不能以为自己没有价值,没有招惹黑客,就不会遭到入侵。协议分析和密码破译确实成本很高(主要是时间成本),但如果一个有这方面技术的人凭兴趣去做,当成一种挑战,那么就不能按成本来算了。
一个加密通信系统,出问题的地方很少是加密算法本身,而一般是错误的使用方法(协议)和有漏洞的实现。
比如二战时期的 Enigma,以当时的计算能力来说暴力破解和词频分析都是很难的;但它在使用的时候有一些致命的缺陷,比如密钥发送两遍造成了重复(密钥不是加密发送的吗,重复发送也没问题吧?)一些看似是加固安全的措施,比如一个字母永远不能被加密成自身,反而为解密者提供了信息(这个的现代版是 Debian OpenSSL 为了优化性能,引入了 shortcut,导致 timing attack)。
今天的 OpenSSL 也许就像二战时期的 Enigma,看起来固若金汤,或者有点小纰漏也不致引起严重后果。但专业的密码分析者手上有比我们先进得多的理论和工具,一点小纰漏就可能导致整个密码体系被攻破。二战的时候,恐怕大家都只知道词频分析,选择明文攻击、两次加密攻击还不为大众所知。现在,如果我要攻击一个加密的 SSH 连接,也不会挖空心思去解密消息,而更可能从数据包的发送间隔和大小的角度去分析(能知道哪一段是你输入的密码,输入的是哪个密码,尽管不知道这个密码具体是什么)。
加密仅仅是安全的第一步。既然已经有了安全建议,如果不致带来太多的麻烦,采用这些安全加固措施总是没错的。不要像我一样,人家攻进来造成了严重的破坏,才惊讶 “这么高级的攻击手段也会用在我身上啊”。
--
计算机显示服务器的 host keys 的 fingerprint 应该只是为了让人来确认接收到的 host keys 的正确性。知道服务器的完整 host keys 后,客户端确认服务器身份应该是1)利用服务器的公钥加密一个密钥,然后用这个密钥与客户端对称加密通讯,并利用 HMAC确保信息完整,或者2)用服务器的公钥签名一个 DH 参数,做密钥交换然后加密通讯(题外:现在应该采用后者,因为向前安全)。
反过来的过程是一样的,如果服务器已经知道了客户端的公钥,也可以利用客户端的公钥1)加密一个随机密钥,发送给客户端,然后双方利用这个密钥对称加密通讯。2)与客户端交换一个 DH 参数,然后加密通讯。
无论以上两者哪一种,客户端都可以确保中间没有人能解密通讯,而且因为可以使用 HMAC 来确保信息完整性,中间人伪装也是不可能的。对授权的情形,如果服务器端知道客户端的公钥,完全可以 challenge 客户端来确保授权对象持有私钥。
用 usb-key 登录,与把ssh-key 存储在电脑上的 publickey 登录是一回事,只不过私钥存储在不同的位置,加密签名运算不是由电脑 CPU 完成的而已。属于服务器知道客户端公钥的情形。
发件人: ustc...@googlegroups.com [mailto:ustc...@googlegroups.com] 代表 Zhang Cheng
发送时间: 2015年6月17日 12:08
收件人: USTC LUG
主题: Re: 答复: 答复: 答复: [USTC-LUG] BLOG和FREESHELL出现故障,正在抢修中
--
-- 来自USTC LUG
抱歉,刚才说的有问题。客户端持有服务器公钥以后交换 DH 参数的过程应该是:
1、 服务器用私钥签名一个 DH 参数
2、 客户端用服务器公钥确认 DH 参数
3、 交换密钥加密通讯
服务器持有客户端公钥时,过程是类似的。
发件人: ustc...@googlegroups.com [mailto:ustc...@googlegroups.com] 代表 hugo
发送时间: 2015年6月17日 15:04
收件人: ustc...@googlegroups.com
主题: 答复: 答复: 答复: 答复: [USTC-LUG] BLOG和FREESHELL出现故障,正在抢修中