标注的博客| 安全研究| 渗透测试| APT

首页

google的安全机制

作者 baumes 时间 2020-03-15
all

        题记:当我想着Google安全机制这个话题该如何向大家陈述时,脑海里自然地跳出了一段话——“你有权保持沉默,但你说的每一句话都将作为呈堂供词”,这是司法领域著名的“米兰达警告”,我想把它修改成一句话作为本文的开篇语:“你有权不上网,但你在网上的每个动作都将成为机器的学习对象”。         在网络安全领域,gmail邮箱的双因子认证被业内奉为第一大难题,它让多少网络安全从业者捶胸顿足,垂头丧气。Google的安全机制也被全世界的网络安全研究者专门研究,下面我将结合个人的经历谈谈我眼中的Google的安全机制,因本人水平有限,若有不对之处,敬请斧正。         一、千呼万唤始出来,犹抱谷歌半遮面         从2014年以后,我开始接触谷歌邮箱——Gmail。当时的难题和现在一样,当你拥有Gmail的正确密码,却被Gmail要求输入手机短信验证码,无奈手机非你所有,只好望而却步。         我们发现Gmail会记录登陆用户的用户设备与登录IP地址,我们也发现Gmail判断是否本人登录的依据也正是它记录下的上述两个条件。那么这两个条件的优先级是什么?能否通过模拟条件绕过双因子验证?         (一)经过四年的不断尝试登录,我们得出了两个结论:         1、Gmail账户陆续都要求Gmail用户同时绑定援助手机号和援助邮箱         2、Gmail对于安全策略是分等级的,安全等级从高至低依次为:         (1)从移动终端登陆过的Gmail个人或企业账户;         (2)未从移动终端登陆过但设置了密保问题的Gmail个人或企业账户;         (3)未从移动终端登陆过也未设置密保问题的Gmail个人或企业账户;         (二)针对上面的四种安全等级的账户,都有一些策略绕过:         1、针对“未从移动终端登陆过也未设置密保问题的Gmail个人或企业账户”的绕过策略——调研该账户用户的手机号或其他邮箱         登录未从移动终端登陆过也未设置密保问题的Gmail个人账户,当密码正确时,Gmail要求提供该账户的绑定援助手机号或绑定援助邮箱,当我们填充了正确的手机号或者邮箱账户之后,我们即可进入该类邮箱。         因此,我们只要对该类邮箱的用户事前做好充分的网络调研,掌握它的其他邮箱账户或手机号,即可进入。         但是进入后,Gmail会同时向本Gmail邮箱和绑定援助邮箱发一封提醒邮件,告诉本人,该Gmail邮箱被一个未曾登陆过的新设备登陆了。         2、针对“未从移动终端登陆过但设置密保问题的Gmail个人或企业账户”的绕过策略——充分的网络调研         登录未从移动终端登陆过但设置密保问题的Gmail个人账户,当密码正确时,Gmail要求首先回答该账户设置的密保问题,一般有两到三个,当我们回答的答案完全匹配(大小写不敏感),我们就可进入该类邮箱。这就需要我们掌握邮箱账户的出生城市、工作城市、生日、妻子姓名、小孩生日等尽可能多的信息。如果实在遇到变态的问题,请参照下点绕过。         3、针对上述三者的超级绕过策略——模拟用户的完全匹配Ip或使用相同归属国的ip与完全匹配的用户终端设备标识         ·从移动终端登陆过的Gmail账户,一定要通过模拟用户的精准使用过的完全匹配上的公网ip地址,方可直接跳过谷歌双因子认证;或者使用与用户使用过的ip相同的归属国家的ip,并且与用户使用过的移动终端设备标识完全匹配的终端标识。         未曾从移动终端登陆过的gmail用户,一是要模拟用户精准使用过的公网ip地址,或者与用户使用过的ip相同的归属国家的ip,并且与用户使用过的操作系统、默认语言完全匹配的终端标识。         需要注意的是,浏览器的版本、型号并不重要,不是匹配的因素!         (三)2019之前的漏洞——可直接获取gmail账户的移动终端设备名称         在2019年之前,我们通过第一步输入Gmail账户,第二步点击忘记密码,第三步点击不记得常用密码,跳过,第四步即使通过手机短信验证码直接恢复密码,在这第四步,我们可以直接获取到该Gmail用户使用过的所有的移动终端设备名称,诸如华为nova4,小米note4。(只可惜,在截至笔者发稿前,通过上述步骤,已经无法获取Gmail用户的移动终端设备名称。)

        再根据这些设备名称,我们在互联网寻找该国使用该设备名称的具体版本标识,接着通过修改http request的useragent信息,尝试获取的若干个具体设备名字版本的标识,一旦正确,即可绕过Gmail双因子认证,绕过后进入的是Gmail的移动终端界面,若看不习惯,我们可以再把useragent切换回来,此时Gmail版面也会切换回电脑版界面,但是依旧是登录成功。         二、梦里寻他千百度,慕然回首,竟在灯火谷歌处         谷歌总是能及时发现攻击者使用的技巧,这到底是什么机制?如果第一段是笔者通过实践带来的感性认识,那么笔者开始了理性探索之旅。         笔者通过搜索Gmail内部员工参与各大会议的文章,终于在https://ai.googleblog.com/2016/03/lessons-learned-while-protecting-gmail.html看到了Gmail员工Elie Bursztein曾与2016年3月29日在enigma2016发布了一个讲解Gmail内部防范安全措施的pdf,但是上述网址提供的url已经404,笔者并且有放弃,最后通过谷歌搜素引擎,找到了互联网上唯一保留的最后一个url,https://elie.net/static/files/lessons-learned-while-protecting-gmail/lessons-learned-while-protecting-gmail.pdf。         笔者开始阅读这篇pdf,这个pdf的风格很IT,pdf没有文字,都是图表化,简练而又形象。         三、谷歌也有涯,而知也无涯。以有涯随无涯,殆已                 如果说反腐没有结束,一直在路上,那么我想说,谷歌对于安全的学习和提升,一直在路上。         Gmail诞生于2004年,到2016年时,已经拥有了9亿的Gmail用户。Gmail提出了五大威胁:钓鱼邮件、恶意代码(附件识别)、账户劫持、网页攻击(XSS)与垃圾邮件。         (一)垃圾邮件处理         针对垃圾邮件识别,谷歌首先使用机器学习算法之大型线性分类模型,这使Gmail的垃圾邮件识别率达到了91.7%,然后加上基于规则的识别系统,又增加了4.7%的识别率,近年来又尝试使用了深度学习算法,在上述基础上又增加了3.5%的准确率,使Gmail目前的垃圾邮件准确率达到了99.9%。(可以看出,谷歌与时俱进,总是用最新的IT技术武装自己的产品。)         Gmail使用Content Security Policy (CSP)——又称内容安全策略,CSP是W3C制定的一个Web标准,主要是通过限制网页对外部档案的存取,用于防止在受信任的网页上下文中执行恶意内容导致的跨站点脚本(XSS),点击劫持和其他代码注入攻击。         Gmail通过CSP违规事件发现了源代码中45.7%潜在的脚本XSS与54.3%的框架XSS。         总之,为了保证Gmail的安全,Gmail团队用上了安全审计、线性分类、静态分析、反病毒、加密、深度学习、模糊测试、分布式拒绝服务防御、动态执行、内容安全策略、自动转义。还有最后一招,奖励机制,通过奖励最优秀的黑客、最优秀的漏洞,来弥补自身。(it's worth [email protected]!)           笔者认为:Gmail已经开始,通过学习Gmail用户登录、使用等在谷歌网站上的一切网络行为,来捕捉、探测、感知、学习、防御,而利用深度学习技术,这些行为都将是自动化的,也就是说,谷歌的安全策略是:一切从用户中来,一切到用户中去,一切都是自动化转变的过程。         风起于青萍之末,舞于松柏之下,止于草莽之间,信息革命正蓬勃发展,智能革命又方兴未艾,科技作为第一是生产力,带来的科技革命应了那句话——运动是绝对的,变化是世界永恒的主题。人类只有不断地深度学习,才能够永立潮头。不学习本身是个伪命题,每个人都在用脑,用脑就是在学习,当代社会,人与人之间比的不是谁学得更多,而是谁学的更深,谁学的效率更高。在这个信息爆炸的年代,填鸭式的学习只会令人反感,取而代之的将是主动式、引导式、思考式的深度学习方式。