最近阅读,程序员杂志。
在上面读多这样的一篇文章, 感觉收获颇丰,特此记录一下,以便后期查阅。
常见的安全误区
黑客、网络安全只存在于虚拟世界
如果我说以后黑客不但可以控制你的汽车开窗、刹车,甚至还能远程“强奸”,你信吗?
许多初创公司,有基于互联网的Sex应用。杜蕾斯公司也有一款Sex over Internet产品叫做Fundawear。如果这个产品出了安全问题或者协议缺陷,被黑客劫持了连接,实现中间人攻击,会出现什么样的后果?
360公司最近发现了时下最火的电动汽车Tesla Model S的安全漏洞。根据资料,该漏洞存在于汽车的应用程序流程中,黑客利用这个漏洞,可远程控制车辆,实现开锁、鸣笛、闪灯等操作,甚至可以使行驶中的车辆开启天窗。也许在不久的将来,Tesla会被破解得更完全,攻击者可以远程获取到更大的权限,做更多事情。
类似的场景会越来越多,把你的热水器远程调到80度,把家中的煤气阀门打开,关掉身上的某些医疗器械。在不久的未来,安全会渗透到生活的各个方面,甚至直接威胁生命,需要引起足够的重视。
我的程序部署在内网,没事儿
有人会说,我这个网站是部署在办公网内部的,完全不提供对Internet的访问,而且在办公网入口还有防火墙,完全不需要对这些系统做保护,也不需要修补漏洞,因为它根本就不会被访问,更不会被入侵。我只能说,太天真——攻击者的猥琐是无法形容的。
前不久支付宝举办的“天下无贼”安全大会,著名网络安全研究员superhei做了名为“走向内网的邪恶之路”的主题演讲,直接在外网盲打入侵内网获取权限。基本原理是使用JRE或者WebRTC获取私网IP地址段,然后通过CSRF(跨站请求伪造)让内网的用户在访问网站时遍历内网IP段,发起POST请求,直接入侵反弹出Shell给入侵者。
可见,在内网并不足以保证自身的安全。入侵者甚至不需要知道你的应用的具体位置,暴力盲打即可。
我的系统打上了所有的补丁,不会被入侵
这一点是最不可思议的,系统打了所有的补丁,还会被轻易入侵?是的!
一般的家庭都使用无线路由器让多个设备共享网络。这些无线路由器,多多少少都有一些安全问题,如弱密码、CSRF漏洞之类,攻击者可以通过这些漏洞修改路由器的DNS设置,让上网的终端在解析域名时访问恶意网站。也许有人会说,恶意网站最多挂马或是钓鱼,我打上了所有的补丁,智商也高,你黑客能奈我何?天真,黑客的智商也很高。
有个黑客工具叫EvilGrade。顾名思义,就是一个专门用来欺骗客户端的软件,让人以为自己有新版本或补丁可以升级的框架,它支持自定义插件,以及数百种客户端程序,如VMware、JRE、EditPlus、Flash等。当黑客劫持了DNS,你使用着打全了补丁的操作系统打开EditPlus准备编码时,它突然提示你有新版本要升级,点一下确定,就开始下载安装木马,再然后……
密码用MD5加密了,拖了库也没关系
MD5是最常见的单向Hash算法之一,为了安全起见,某些机密数据,例如用户密码会使用MD5加密后存储。由于MD5算法不可逆,有些人就认为MD5加密后的数据绝对安全。其实完全不是这样。早在几年前,攻击者就通过使用彩虹表的方式,以空间换时间,增加对MD5、SHA之类算法的破解能力。
结合GPU运算,对MD5之类Hash算法的破解时间,已缩减到非常短了。大约1000万条MD5加密后的密码,在24小时之内就可以破解90%左右,甚至达到96%以上。为了解决这些问题,一般使用SALT的方式增强安全性。但可惜的是,增强之后的算法依旧风险多多,有攻击者直接使用云计算提供的GPU计算能力,构建集群来破解。
另外,撞库的情况越来越多。最近几年非常多的大型网站用户库被黑客窃取,有的黑客拥有几十亿条数据的庞大信息库。他们通过手机号码、邮件地址等信息,直接在这个库中检索,再去其他网站登录。一般的人常用密码就那么几个,这种撞库攻击非常难以防范,加密算法根本无能为力。
交易使用了短信验证码,绝对可靠
在涉及修改密码、金钱交易的场合,大家喜欢使用短信验证码认证身份。其实,这并不是一个非常可靠的方式。
首先,现在的智能手机操作系统复杂,本身就存在植入木马的风险。短信等信息,直接就在木马的监控之下,攻击者可以直接完成操作,甚至通过截取的方式让短信只有木马能看到,直接在后台偷偷完成了操作,机主都不知情。其次,有的短信验证码长度不够,只有3、4个数字。攻击者甚至通过暴力破解的方式,尝试1万次,就能成功完成操作。以现在的网速,1万次网络提交根本花不了多少时间。
对于类似的系统,一定要有专业的风控手段配合,单一的手机验证码维度不足以保证系统安全。
主流攻击方式
黑客攻击,最开始是单纯地入侵服务器,篡改网页。近些年,攻击目的逐步向偷取数据、抓取信息、敲诈勒索等方面转移,以赚钱为主。攻击的目标也从服务器转移了相当大的一部分到手机等移动设备,或者个人电脑甚至是家用路由器。
入侵方面,我们分析了相当多的案例,也对整个互联网做过扫描统计,发现绝大多数的入侵行为还是由非常简单的攻击方式发起的,即系统弱口令和Web攻击。系统弱口令主要是指Linux服务器的SSH弱口令、Windows的终端服务弱口令,还包括一些第三方软件,例如MySQL数据库、SQL Server数据库等。Web攻击则以SQL注入和远程文件包含、任意文件上传漏洞为主。除此之外,攻击者也使用类似CSRF这样的手段,攻击家用无线路由器,篡改DNS信息。攻击者自己实现完整的入侵框架,对互联网做大范围的扫描实现全自动入侵,为后续的劫持流量展示广告、赚取交易佣金做准备。
大范围入侵的另一方面是所谓APT(高级持续性威胁)攻击,它与大范围的入侵相反,注重目标的专一性以及隐蔽性。攻击者接到任务后盯住一个目标,尽可能全面地收集所有数据,如系统版本、应用类型、邮件地址等,每爆发一个与目标应用相关的新漏洞时,攻击者马上就会尝试是否可以利用。社会工程学、邮件钓鱼、直接上门攻击无线网络,无所不用其极。
在入侵的同时,也有一部分人专注于非入侵式攻击,直接抓取数据就可以卖钱。在这个领域,主要是自动化的爬虫抓取,也有的利用应用的水平权限漏洞获取更多机密资料。随着攻防双方的对抗,爬虫也由简单的Socket、HttpClient库爬虫,逐步进化到WebKit内核爬虫、V8引擎爬虫之类的高端形态,以绕过防御方使用的JavaScript等策略。
敲诈勒索方面的攻击,主要是DDoS。攻击者挑选游戏私服、页游、手游等挣钱行业,以DDoS拒绝服务为手段发起要挟。这些攻击,有的是依靠大范围入侵获取的傀儡机,有的是使用NTP反射放大之类灵巧的手段。