内容简介:我从事网络安全多年的角度来看,总结一些常见的网络安全对应策略分析,当然如果有一些概念错误或其他误导。欢迎大家指正。先说一些错误的概念:
我从事网络安全多年的角度来看,总结一些常见的网络安全对应策略分析,当然如果有一些概念错误或其他误导。欢迎大家指正。
先说一些错误的概念:
1. 对于企业而言,信息安全是技术人员的工作。
普通员工如果不注重安全很容易被突破。内网安全往往是由非技术人员的疏忽造成的。
- 某巨头互联网公司内网曾因某员工不安全的电脑导致ARP欺骗,导致内网dns解析遭受感染,在内网正常电脑的正常用户的访问本公司网址居然被转移到木马网址。.
- 某信息安全上市公司因销售人员安全意识淡泊个人电脑被入侵,导致内网穿透,信息泄露很久后被发现。 全员信息安全意识培训非常重要。
2. 良好的上网习惯,不乱下文件,不点开奇怪的文件,不上奇怪的网站,个人电脑就不会中病毒。
裸奔有理的论调特别流行,15年前,从尼姆达病毒起,病毒和木马就已经具有了主动攻击性,他们根本不需要你点击和打开,会主动在网段内扫描和入侵有缺陷的主机。
3. 装好杀毒软件,打好补丁,就不会被入侵被黑掉。
0day攻击可以轻松穿透杀毒软件和打好最新补丁的系统。
解释一下 0day:
我们知道每隔一段时间,微软,苹果或其他系统厂商都会公布安全漏洞,发布安全补丁,然后用户就会及时打补丁防止被入侵,那么我们想一个简单的问题,
- 这个漏洞是系统厂商公布的时候才出现的么?
- 在漏洞被系统厂商发现之前请问谁能防止基于这个漏洞的攻击? .
很遗憾,事实,就是,没有,所以,在安全漏洞没有被系统厂商发现,或者被发现但安全补丁没有发布之前,这段时间,基于这个安全漏洞的攻击,就统称为0day,所以0day实际上不是一种技术形式,而是一种时间的概念,未公开的漏洞是广泛的,长期存在的。
有一种说法叫做长老漏洞,什么是长老漏洞呢?比如说有款微软的操作系统漏洞,当微软发现这个漏洞的时候,其存在时间已经超过了10年。那么,这十年是否一直没有被人发现呢?很遗憾,只是没有被微软发现而已,在某些技术高手手里,这是一个通杀的入侵工具,想想可怕不。
那么,谁手里有0day呢,第一,各国军方,美国有,中国也有,俄罗斯有,以色列有,韩国有,日本也会有。第二,各大安全公司。
有人会说,安全公司不是要讲操守,发现漏洞不是应该公告么? 有些会公告,有些不会,为什么不会呢? 因为有时候需要,比如说,两个安全公司去抢一个军方的订单,军方说了,你来检测一下我的系统,给我一个报告吧,如果你手里没有0day,你可能就竞争不过手里有0day的同行。
你对手拿到了人家服务器的权限你没拿到,你不就丢单了么,你说其实你漏洞挖掘比对手强,不过你都公告了(你公告了系统厂商就有补丁了,有补丁了人家军方的运维也不是吃闲饭的,早就补了,明白这个逻辑不。),你看微软,google给你一沓感谢信呢,你想想军方领导人怎么想,尼玛另一家随时可以入侵我,而你不能,你让我跟你合作,我傻啊。
第三,很不幸,一些个人高手和黑产手里也有,存在0day交易的地下黑市,简单说个数字概念,比如微软给TK教主发现的漏洞和利用方法发奖金,10万美元,大家觉得了不起,这是TK教主比较有操守,如果这个漏洞放到黑产的地下黑市里,100万美金都可以卖掉你信不信。
一个高危漏洞,在黑产手里的话,其价值是极为巨大的,很多人让我写写黑产,但我不敢,实话说,我惹不起他们。我不敢写黑产。写黑产我互联网的业务不要碰了。
那么问题来了,为什么系统厂商不给很高的奖金去奖励安全专家呢?而让漏洞流向黑产?这里还真不是钱的问题,而是存在一个悖论,如果系统厂商,对漏洞的奖励过高,会存在一个管理风险,如果奖金激励太大,那么系统厂商的开发工程师真有可能会故意留一些看上去很不小心的问题点,然后将这个问题点泄露给第三方的安全专家,分享奖金。所以,很多时候,利弊权衡,并不能只看一面。
解释一下,漏洞挖掘什么叫漏洞挖掘,就是针对某个系统,某个应用,去分析其弱点并挖掘其可被利用的漏洞,其结果又分为高危漏洞和低危漏洞,高危一般是可以取得系统控制权,或者利用系统执行一些危险的操作。低危往往是可能导致系统不稳定,或者存在一些非机密信息泄露的可能。
发现漏洞和找到漏洞利用方法是两个步骤。
有的时候安全专家发现一个可能严重的漏洞,比如一个权限很高系统服务在一个偏僻的系统调用处存在一个溢出点。但这时只能说这可能是一个高危漏洞,有时候系统厂商会认为这个漏洞无法利用,当作低危漏洞来处理,这种情况以前很常见,但一旦找到漏洞利用方法,
这才是实现一个完美的漏洞挖掘。所以微软很多对安全专家的重奖不是因为发现了一个漏洞,而是提供了一个非常巧妙的漏洞利用方法。所以公众可能理解黑客是黑掉一个网站,或者黑掉一个账户,而漏洞挖掘不是这样的概念,一旦发现一个高危漏洞,比如说,发现微软操作系统的高危漏洞,可能所有这个版本的用户的电脑都可以被入侵,比如说发现 mysql 数据库的一个高危漏洞,可能所有使用mysql数据库服务并且存在外网访问接口的都可能被入侵。
. 所以漏洞挖掘的高手,他们并不是针对特定网站,特别目标去分析,他们的目标是主流的系统和应用。然后一旦有所成就,几乎就等于手里掌握了可以横扫互联网的核武器。 在这种情况下,你去说黑掉几个网站了不起,人家就只能呵呵了。
攻击应对策略:暂无 。不过也不用过于紧张,如果你不是特别特别有价值的目标,一般人不会用0day对付你。互联网上有一次经典的0day攻击事件,被一个商业安全公司捅出来的,目标直指伊朗核设施,实施者是谁你猜猜看?
4. 我输入可信的网站地址,访问的网站一定是安全的
错,DNS劫持可能让你即便输入了正确的网址,也会进入错误的网站。
DNS劫持是一种常见网络安全风险,但其实这里并不只有一种攻击途径,有很多途径可以劫持
从你的主机开始,病毒木马可能会改写你的电脑的host文件,或者改写浏览器的钩子,导致你访问的目标网址被导向其控制者的手里。
如果你的主机是安全的,不能保证你邻居会不会用arp欺骗来干扰你。
这里说句公道话,arp欺骗曾经猖獗一时,对网民上网带来的伤害特别大,改写host和浏览器挂钩子也曾是中国互联网常见的毒瘤,360崛起后这些东西从某种角度基本上没有了(其实还有,一会说),我知道很多人讨厌360,但这个事实还是必须承认的,
当然,3721是浏览器钩子的鼻祖。你的邻居也安全,你访问的就安全了?你上网是不是默认配置dns的,电信接入商耍流氓在中国太普遍了。 那么你强设了可信任的dns,你访问网址就安全了? GFW的能力相信大部分人并不真正了解,为了本站的合法运营,此处忽略多个案例。
刚才说道,某种程度上,浏览器钩子和劫持不常见了,但不是真的没有了,只是特别恶意的基本被遏制了,但是依然有一种常见的,而且极具中国特色的,大家见怪不怪早就习惯的劫持行为,你们如果使用ie浏览器,输入错误网址或文字的时候,按照正常逻辑,应该是跳转到bing的搜索页,早前应该是msn的搜索页,但是很遗憾,在中国你几乎不可能看到这一幕,各种安全 工具 设置的浏览器钩子早将这个访问劫持了,侥幸没有劫持,也会被电信运营商劫持。
这就是我们最常见而又最麻木的dns劫持,这个原因是因为利益链,因为对用户体验来说不是危害,所以没人觉得不对,不展开了。
移动互联网还存在假基站的问题,假基站在国内目前也很猖獗,能不能劫持DNS我不是很明确,但是伪造来电号码是稳稳的,今天我还看到朋友圈有人说亲戚收到移动官方发来短信,点过去链接操作结果被诈骗了几千元,投诉移动没有效果云云,我一看就是中了假基站的骗子短信。所以误以为信息是官方发送的。移动上网其实也是存在风险的。
此外,蹭免费wifi也存在dns劫持风险。
5. 百度,新浪这种公司是安全的,所以我在这里的帐号也是安全的。
错误:彩虹库和撞库攻击屡屡突破巨头防线。
(1) 解释一下彩虹库,社工库
还记得csdn爆库事件么,很多很多很多论坛社区的用户库都被黑客入侵并拿到过,有些是明文密码的被黑客100%拿到帐号密码,有些仅仅做了md5的被80%拿到,有些做了md5+md5的也差不多被80%拿到,除了做随机salt的几乎都被破的七七八八。(密码加密时的加盐(salt)是什么)
黑客们将彼此拿到的数据库里的用户名和密码,合并在一起,就是社工库,也叫彩虹库。 这个库的规模特别大,而且一直还在激增,实际上,社工库的历史特别的悠久,当你从媒体上看到的时候,已经流行了很多年了
(2) 解释一下,撞库攻击
由于很多用户习惯在多个网站用同样的帐号和密码,所以一旦A网站的用户密码透露,有经验的黑客会去尝试用同样的帐号密码去b网站尝试,这就是所谓撞库攻击,新浪也好,百度也好,很多巨头都饱受撞库攻击的侵扰,而且很多帐号密码因此被泄露。
我在大约七八年前的时候一个安全圈的朋友曾把我百度的帐号密码发给我,让我赶紧去改密码,我大吃一惊,以为百度的帐号系统被入侵,后来询问才知道是因为对方通过社工库拿了我的帐号密码,随便一试就发现其实我在很多网站用的同样的密码,包括百度。
应对策略:不同网站密码保持不同;或者对高安全需求的网站强化密码。
6. 我的密码很复杂,别人一定不会破解
错误,获取你的权限,其实未必需要你的密码,通过找回密码来暴力破解的以前非常常见。
- 以前很多邮局都是有通过生日和回答问题来重设密码,通过程序暴力破解生日(最多5分钟)+猜测问题,是攻破很多小姑娘邮箱的绝招。
- 腾讯出过一个案例,以手机短信验证码来重设密码,但短信密码只有4位数字,暴力破解只需要9999次,程序员轻松搞定。
应对策略:验证码,而且是变态的验证码是防止程序暴力测试的重要方案。
SQL注入和跨站脚本是获取用户权限非常常见的攻击方式,流行超过15年,至今仍然广泛可用。)
其原理是 程序员 在编写程序中对用户输入或浏览器传递参数校验不够严谨,黑客可以将可执行代码植入到正常的输入或参数中,导致程序员的代码被改写,其中 SQL 注入是改写数据库查询脚本,跨站脚本是改写浏览器的可执行脚本,但均可未授权获得用户身份并执行危险操作。很多巨头在此跌过跟头,至今不绝。
某知名安全论坛管理员曾因为论坛程序不够严谨,被人用跨站脚本发帖拿走权限。
2000年左右的时候,SQL注入几乎可以入侵一切用户登录系统。现在情况好多了,但并未绝迹。
7. 其他概念:
(1) 嗅探侦听
互联网数据传输会经过很多设备,通过特定软件截获传输的数据,可能会包括很多的敏感信息,包括不限于网站登录的帐号密码,邮件帐号密码等等。
应对策略:http是明文传输,https是加密传输, telnet是明文传输,ssh是加密传输,很多明文传输的协议还有对应加密传输的协议,敏感的浏览和登录行为尽可能使用加密传输方式。
当然,加密传输也存在证书风险,中间人攻击,这是另外一个话题,所以还是要装好的浏览器和安全工具,如果提示证书可能有问题,还是要小心一点。(提示证书有问题不代表一定有问题,评估一下自己操作的敏感程度)
世界上最大的嗅探侦听都在政府手里,美国有棱镜,中国有敏感词。
(2) 权限绕过
系统对权限的授权判断不严谨,被人绕过验证获得权限。
说个例子,好像是windows98吧,具体版本不记得了,出了一个中文输入法权限绕过漏洞,理论上你必须输入帐号和密码才能进入系统,但是输入帐号的时候可以调用输入法,输入法有个帮助选项,打开帮助找词条可以点击进入浏览器,进入浏览器后就可以直接输入c: 了,后面就一马平川,你可以通过浏览器点开cmd命令,然后命令行执行任何操作,系统就完全在你掌控了。
从整个操作流程而言,几乎没什么技术含量,就是一个设计漏洞,系统验证就被绕过了。
(3) 分布式拒绝服务攻击
用超过系统承受能力的请求,流量导致目标系统无法正常响应,实现攻击效果。
这里也包括非常多类型:
- 针对协议弱点的攻击,比如syn flood。实施成本特别低,追溯难度极高,曾经特别流行。
- 针对流量带宽的攻击 针对应用程序的计算资源的攻击 针对域名解析的攻击, 六省断网事件就不用解释了。 ; 有段时间网易也被人打挂了半天,至今也没个啥说法出来。你去看梦幻西游苹果市场的畅销榜,从冲榜到第一名开始,梦幻西游连续几个多月一直是第一名,其中只有一天是第二名,就是那天,被人打挂了几个小时。
目前黑产这个领域规模特别大,以攻击威胁收保护费是常见手段,据说很多p2p金融公司都交过保护费了。这个我也只能说这么多,理由很简单,我真惹不起。
(4) 缓冲区溢出
漏洞挖掘的一个重要几乎领域,原理是因为程序中对数据段的长度判断不够严谨,导致数据段超出内存数据区间,从而覆盖代码执行区间,如果数据中在溢出点处编写了精心设计的代码,黑客的这部分代码就会以相关服务程序的权限执行,从而实现黑客目的。
大部分系统级别的高危漏洞来自于缓冲区溢出,苹果越狱的某些版本技术似乎也来自于缓冲区溢出技术的实现。但因为这个太技术化,可能普通用户理解起来会比较困难。
黑客入侵更多是一种思维方式,正常的程序员写程序是认为用户会正常请求和访问他的系统,对异常的处理都是非常简单的,而黑客的想法是伪造各种不正常的请求,欺骗系统,导致系统脱离其正常的执行流程,从而获得黑客所期望的结果,比如获取权限,或获取资料。
今天讲这些以科普为主,面向感兴趣的人员,技术名词不展开,有兴趣的可以去自行搜索。 其他一些名词如APT,我自己也不是能解释得很清楚,也建议自行搜索。
电影里那些啪啦啪啦敲键盘试密码的,都不是黑客,黑客没那么SB。大部分入侵不需要去试密码。需要试的人家用程序去撞库。其他安全理念 基于社交网络和公开信息,进行诈骗的行为越来越常见,
个人建议如下:
- 不要太频繁暴露个人行踪,特别是有钱阶级。
- 不要过于频繁暴露个人隐私。
- 对一些可疑的信息要做多次验证,特别是借钱信息,不是说不信任朋友,而是你要小心你朋友可能被盗号了。 很多人不在乎这个,觉得自己安全意识很高,不怕人骗,你的亲戚朋友呢?你的父母呢?
举个例子:如果一个骗子,通过微博或微信朋友圈,知道你的行程,上飞机了,又知道航班晚点了,又知道你所在的公司和出行的目的,给你父母打电话,说是你同事,和你一起出差去哪里做什么,现在你出了车祸急需用钱进手术室,你父母第一时间反应,给你打电话,你在飞机上收不到,你父母又不知道航班晚点了,他们什么感觉?是不是会迫不及待的去给骗子付款!不要以为这样的事情不会发生。 我之前没少在朋友圈得瑟商务舱的旅程,但是我绝对不会在飞机出发前发这些照片,而一定是落地后甚至一两天后。如果你想炫耀一些行程,我建议,留一些时间差。
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- 一文熟悉 Presto
- 你可能不熟悉的JS总结
- “区块链”熟悉却又陌生的词语!
- Flutter学习指南:熟悉Dart语言
- 我的这套VuePress主题你熟悉吧
- 几句话熟悉Laravel/Symfony 事件系统
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
The C Programming Language
Brian W. Kernighan、Dennis M. Ritchie / Prentice Hall / 1988-4-1 / USD 67.00
Presents a complete guide to ANSI standard C language programming. Written by the developers of C, this new version helps readers keep up with the finalized ANSI standard for C while showing how to ta......一起来看看 《The C Programming Language》 这本书的介绍吧!