一.网络安全概念
网络安全(网络空间安全--Cyberspace)从其本质上讲就是网络上的信息安全,指网络系统的硬件、软件及数据受到保护。不遭受破坏、更改、泄露,系统可靠正常地运行,网络服务不中断。
信息安全:防止任何对数据进行未授权访问的措施,或者防止造成信息有意无意泄漏、破坏、丢失等问题的发生,让数据处于远离危险、免于威胁的状态或特性。
二. 网络安全的现状以及面临挑战
1.网络空间安全市场在中国,潜力无穷
未来三年网络安全市场的规模将达到百亿美元
2.数字划时代威胁升级
攻击频发:勒索病毒、数据泄露、黑客入侵等网络安全事件呈现上升趋势
3.传统安全防护逐步失效
传统防火墙、IPS、杀毒软件等基于特征库的安全检测,无法过滤:变种僵/木/蠕、U盘带入、恶意内部用户、BYOD带入、零日漏洞、APT攻击。
4.安全风险能见度不足
看不清资产:
看不见的新型威胁:
看不见的内网潜藏风险:
5.缺乏自动化防御手段
6.网络安全监管标准愈发严苛
法律、法规、标准、监管的要求逐步加强。
网络安全工作已经上升到法律层面,网络安全等级保护2.0制度明确要求安全工作对政府、企事业各类组织全社会覆盖,对云、移动互联、物联网、工业互联、大数据平台全技术场景覆盖。
各级监管机构、主管机构、上级部门也会对组织的网络安全工作开展大量的检查。
组织的一把手永远是网络安全工作的第一责任人,组织对网络安全风险的忽视在合规监管的角度基本是零容忍,全国也有很多因为甲方没有履行网络安全义务而产生的案件。
三.常用的网络术语
漏洞
漏洞是指信息系统中的软件、硬件或通信协议中存在的缺陷或不适当的配置,
从而可使攻击者在未授权的情况下访问或破坏系统,导致信息系统面临安全风险。
常见漏洞有SQL注入漏洞、弱口令漏洞、远程命令执行漏洞、权限绕过漏洞等。入侵与攻击
入侵与攻击是直接相关的,入侵是目的,攻击是手段,攻击存在于整个入侵过程之中。在现实生活中,要进行入侵的人可能是攻击者本人,也可能是幕后操纵者。入侵者的目的就是抢夺和占有别人的资源,但他不一定具有攻击能力,他可以雇用攻击者来达到入侵的目的。显而易见,攻击是由入侵者发起并由攻击者实现的一种"非法"行为。无论是入侵,还是攻击,仅仅是在形式上和概念描述上有所区别而已。对计算机系统和网络而言,入侵与攻击没有什么本质区别,入侵伴随着攻击,攻击的结果就是入侵。例如,在入侵者没有侵入目标网络之前,他想方设法利用各种手段对目标网络进行攻击(这是在目标网络外的主动攻击行为)。当攻击得手而侵入目标网络之后,入侵者利用各种手段掠夺和破坏别人的资源(这是在目标网络内的主动攻击行为)。
从网络安全角度看,入侵和攻击的结果都是一样的。一般情况下,入侵者或攻击者可能是黑客、破坏者、间谍、内部人员、被雇用者、计算机犯罪者或恐怖主义者。攻击时,所使用的工具(或方法)可能是电磁泄漏、搭线窃听、程序或脚本、软件工具包、自治主体(能独立工作的小软件)、分布式工具、用户命令或特殊操作等。什么是0day漏洞?
0day漏洞是指负责应用程序的程序员或供应商所未知的软件缺陷。因为该漏洞未知,所以没有可用的补丁程序。
换句话说,该漏洞是由不直接参与项目的人员发现的。术语“0day”是指从发现漏洞到对其进行首次攻击之间的天数。0day漏洞公开后,便称为nday漏洞。
0day时间表的工作原理如下:
一个人或一个公司创建了一个软件,其中包含一个漏洞,但涉及编程或发行的人员却不知道。
在开发人员有机会定位或解决问题之前,有人(除负责软件的人员之外)发现了漏洞。
发现该漏洞的人会创建恶意代码来利用该漏洞。
该漏洞被释放。
负责人员将被告知漏洞利用并打补丁。
该漏洞不再被视为0day。
补丁发布。
大多数情况下,针对0day漏洞的攻击很少立即被发现。发现这些缺陷通常可能需要几天或几个月的时间,这才使这类漏洞如此危险。
后门
后门是一种用于获得对程序或在线服务访问权限的秘密方式。
是由程序的开发者内置于程序中,通过它可以对特定的功能进行特殊的访问。例如,内置于操作系统中的某个后门可能会允许运行该操作系统的任何计算机进行不受限制的访问,如果后门被其他人知道,或者在发布软件之前没有删除,那么它就成了安全隐患。
webshell
webshell就是一种可以在web服务器上执行的后台脚本或者命令执行环境。
没明白?
简单来说
webshell是网站入侵的脚本攻击工具
黑客通过入侵网站上传webshell后获得服务器的执行操作权限,比如执行系统命令、窃取用户数据、删除web页面、修改主页等,其危害不言而喻。
Webshell攻击的特点有哪些?
1.持续远程访问
入侵者可以利用webshell从而达到长期控制网站服务器的目的。若攻击者自行修复了漏洞,以确保没有其他人会利用该漏洞,攻击者可以低调的随时控制服务器。一些流行的webshell使用密码验证和其他技术来确保只有上传webshell的攻击者才能访问它。
2.权限提升
在服务器没有配置错误的情况下,webshell将在web服务器的用户权限下运行,该用户权限是有限的。通过使用webshell,攻击者可以尝试通过利用系统上的本地漏洞来执行权限提升,常见的有查找敏感配置文件、通过内核漏洞提权、利用低权限用户目录下可被Root权限用户调用的脚本提权、任务计划等。
3.极强的隐蔽性
有些恶意网页脚本可以嵌套在正常网页中运行,且不容易被查杀。webshell还可以穿越服务器防火墙,由于与被控制的服务器或远程主机交互的数据都是通过80端口传递,因此不会被防火墙拦截,在没有记录流量的情况下,webshell使用post包发送,也不会被记录在系统日志中,只会在web日志中记录一些数据提交的记录。
网站如何防御webshell攻击?
从根本上解决动态网页脚本的安全问题,要做到防注入、防暴库、防COOKIES欺骗、防跨站攻击等等,务必配置好服务器FSO权限。
1、建议用户通过ftp来上传、维护网页,尽量不安装上传程序。
2、对上传程序的调用一定要进行身份认证,并只允许信任的人使用上传程序。
3、程序管理员的用户名和密码要有一定复杂性,不能过于简单,还要注意定期更换。
4、到正规网站下载程序,要对数据库名称和存放路径进行修改,数据库名称要有一定复杂性。
5、尽量保持程序是最新版本。
6、不要在网页上加注后台管理程序登陆页面的链接。
7、为防止程序有未知漏洞,可以在维护后删除后台管理程序的登陆页面,下次维护时再上传。
8、时常备份数据库等重要文件。
9、日常多维护,并注意空间中是否有来历不明的asp文件。
10、尽量关闭网站搜索功能,利用外部搜索工具,以防爆出数据。
11、利用白名单上传文件,不在白名单内的一律禁止上传,上传目录权限遵循最小权限原则。
社会工程学
信息安全在众多的人眼中是个神奇的东西,笔者觉的信息安全可以分为Soft Security和Hard Security 两个部分。所谓的“硬安全”,主要就是具体的安全IT 技术(比如:防火墙、入侵检测、漏洞扫描、抗拒绝服务……),这些东西都是专家安全公司在搞,离绝大多数的读者可能比较遥远。而“软安全”主要涉及管理、心理学、文化、人际交往等方面,与具体的IT 技术可能没有关系。今天所说的“社会工程学”,实际上就是“软安全”,如果你看过电影《没有绝对的安全》的话,电影中主人公没有花一分钱搞到了肯德基的一份午餐就是利用社会工程学的典型例子。
通俗地讲,社会工程学就是:利用人性之中的弱点(贪婪、恐惧、性欲……)等心理学上的弱点来影响别人,最终达到自己不可告人的目的。
Exploit
Exploit 的英文意思就是利用,它在黑客眼里就是漏洞利用。有漏洞不一定就有Exploit(利用),有Exploit就肯定有漏洞。
我们几乎每隔几天就能听到最近有一个新发现的可以被利用(exploit)的漏洞(vulnerability),然后给这个漏洞打上补丁。而事实上,这里面的内容比你想象的要多,因为你不可能知道所有软件的漏洞,而且那些可利用的漏洞也只是被少数人所了解。
漏洞是存在于一个程序、算法或者协议中的错误,可能带来一定的安全问题。但不是所有的漏洞都是能够被利用来攻击(exploitable)的,理论上存在的漏洞,并不代表这个漏洞足以让攻击者去威胁你的系统。一个漏洞不能攻击一个系统,并不代表两个或多个漏洞组合就不能攻击一个系统。例如:空指针对象引用(null-pointer dereferencing)漏洞可以导致系统崩溃(如果想做拒绝服务攻击就足够了),但是如果组合另外一个漏洞,将空指针指向一个你存放数据的地址并执行,那么你可能就利用此来控制这个系统了。
一个利用程序(An exploit)就是一段通过触发一个漏洞(或者几个漏洞)进而控制目标系统的代码。攻击代码通常会释放攻击载荷(payload),里面包含了攻击者想要执行的代码。exploits利用代码可以在本地也可在远程进行。一个远程攻击利用允许攻击者远程操纵计算机,理想状态下能够执行任意代码。远程攻击对攻击者非常重 要,因为攻击者可以远程控制他/她的主机,不需要通过其它手段(让受害者访问网站,点击一个可执行文件,打开一个邮件附件等等),而本地攻击一般都是用来提升权限 [1]
APT攻击
APT是黑客以窃取核心资料为目的,针对客户所发动的网络攻击和侵袭行为,是一种蓄谋已久的“恶意商业间谍威胁”。这种行为往往经过长期的经营与策划,并具备高度的隐蔽性。APT的攻击手法,在于隐匿自己,针对特定对象,长期、有计划性和组织性地窃取数据,这种发生在数字空间的偷窃资料、搜集情报的行为,就是一种“网络间谍”的行为。
APT攻击是一个集合了多种常见攻击方式的综合攻击。综合多种攻击途径来尝试突破网络防御,通常是通过Web或电子邮件传递,利用应用程序或操作系统的漏洞,利用传统的网络保护机制无法提供统一的防御。除了使用多种途径,高级定向攻击还采用多个阶段穿透一个网络,然后提取有价值的信息,这使得它的攻击更不容易被发现。
四.网络安全的脆弱性以及常见的安全攻击
1.协议栈自身的脆弱性
- •缺乏数据源验证机制
- •缺乏完整性验证机制
- •缺乏机密性保障机制
随着互联网的不断发展,TCP/IP协议族成为使用最广泛的网络互连协议。但由于协议在设计之初对安全考虑的不够,导致协议存在着一些安全风险问题。Internet首先应用于研究环境,针对少量、可信的的用户群体,网络安全问题不是主要的考虑因素。因此,在TCP/IP协议栈中,绝大多数协议没有提供必要的安全机制,例如:
1. 不提供认证服务2. 明码传输,不提供保密性服务,不提供数据保密性服务3. 不提供数据完整性保护4. 不提供抗抵赖服务5. 不保证可用性——服务质量( QoS )
2.常见安全风险
TCP/IP协议栈中各层都有自己的协议。由于这些协议在开发之初并未重点考虑安全因素,缺乏必要的安全机制。因此,针对这些协议的安全威胁及攻击行为越来越频繁,TCP/IP协议栈的安全问题也越来越凸显。
3.网络的基本攻击模式
4.物理层--物理攻击
•物理设备破坏
- 指攻击者直接破坏网络的各种物理设施,比如服务器设施,或者网络的传输通信设施等
- 设备破坏攻击的目的主要是为了中断网络服务
•物理设备窃听
- 光纤监听
- 红外监听
设备破坏攻击一般不会容易造成信息的泄密,但通常会造成网络通信服务的中断,通常是一种暴力的攻击手段。在日益强调网络服务的高可靠性的今天,设备破坏攻击是需要重点关注的。当然即使不是人为的故意破坏,针对各种自然条件下的物理损坏也是需要考虑的,比如中美海底通信光缆的被渔船挂断事故,台湾地震导致的海底光缆中断事故等。
5.链路层-- MAC洪泛攻击
•交换机中存在着一张记录着MAC地址的表,为了完成数据的快速转发,该表具有自动学习机制;
•泛洪攻击即是攻击者利用这种学习机制不断发送不同的MAC地址给交换机,填满整个MAC表,此时交换机只能进行数据广播,攻击者凭此获得信息。
通常情况下,交换机的每个端口只会连接一台主机,因而在MAC地址表中每个端口只会对应1个MAC地址。但由于交换机还要用于级联其它的交换机,因而在相应的级联端口上就会对应多个MAC地址,从而在地址表产生大量记录。
由于交换机的缓存有限,因此它所能够记忆的MAC地址数量也是有限的,所以交换机不会永久地记住所有的端口与MAC地址的对应关系。在端口/MAC地址映射表中每一项记录都被设定了一个自动老化时间,若某MAC地址在一定时间内(默认为300秒)不再出现,那么交换机将自动把该MAC地址从地址表中清除。当下一次该MAC地址重新出现时,将会被当作新地址处理,从而使交换机可以维护一个精确、有用的MAC地址表。交换机档次越低,交换机的缓存就越小,它能记住的MAC地址数也就越少。
6.链路层--ARP欺骗
当A与B需要通讯时:
A发送ARP Request询问B的MAC地址
Hacker冒充B持续发送ARP Reply给A(此时,A会以为接收到的MAC地址是B的,但是实际上是Hacker的)
之后A发送给B的正常数据包都会发给Hacker
二层的缺陷:
缺乏认证,不知道源地址是否合法
采用广播,任何人都可以拦截
不得不处理,这是硬伤
前面讲到MAC泛洪,使用这个方法会为网络带来大量垃圾数据报文,对于监听者来说也不是什么好事,很容易被发现,而且设计了端口保护的交换机可能会在超负荷时强行关闭所有端口造成网络中断。所以现在攻击者都偏向于使用地址解析协议ARP进行的欺骗性攻击。
ARP实现机制只考虑业务的正常交互,对非正常业务交互或恶意行为不做任何验证。比如当主机收到ARP响应包后,它并不会去验证自己是否发送过这个ARP请求,而是直接将应答包里的MAC地址与IP对应的关系替换掉原有的ARP缓存表。
在网络监听过程中,攻击者抢先合法主机B应答主机A发起的ARP请求;主机A被误导建立一个错误的映射并保存一段时间,在这段时间内,主机A发送给主机B的信息被误导致攻击者。如果攻击者持续抢先应答ARP请求,数据流就可能被一直误导下去。如果攻击者模拟网络出口路由器发动ARP攻击,内部网络的所有出口信息都将被接管。如果攻击者将出口路由器IP和一个不存在的MAC地址进行映射,即可以导致发送方受到拒绝服务的攻击
ARP欺骗不仅仅可以通过ARP请求来实现,通过ARP响应也可以实现。
使用静态ARP缓存
使用三层交换设备
IP 与MAC地址绑定
ARP防御工具
防范:
DAI:Dynamic ARP Inspenction动态ARP检查,检查主动式和非主动式ARP,确定是否来自真正的ARP所有者
DHCP Snooping:监听绑定表,IP、MAC、与特定的交换机端口相关联
静态绑定关键主机的IP地址与MAC地址映射关系
网关/关键服务器
"arp -s IP地址 MAC地址 类型"
使用VLAN虚拟子网细分网络拓扑
加密传输数据以降低ARP欺骗攻击的危害后果
使用相应的ARP防范工具: ARP防火墙
探测出网络中欺骗的ARP包
并保护主机的ARP缓存不受欺骗
7.网络层--ICMP攻击
ICMP重定向攻击
ICMP重定向报文是ICMP控制报文中的一种。在特定的情况下,当路由器检测到一台机器使用非优化路由的时候,它会向该主机发送一个ICMP重定向报文,请求主机改变路由,路由器也会把初始数据报向它的目的地转发。ICMP虽然不是路由协议,但是有时它也可以指导数据包的流向(使数据流向正确的网关)。ICMP协议通过ICMP重定向数据包(类型5、代码0:网络重定向)达到这个目的。
ICMP重定向攻击是攻击机主动向受害人主机发送ICMP重定向数据包,使受害人主机数据包发送到不正确的网关,达到攻击的目的。ICMP重定向攻击既可以从局域网内发起,也可以从广域网上发起。
针对ICMP重定向报文攻击,简单的办法就是通过修改注册表关闭主机的ICMP重定向报文处理功能。
ICMP不可达报文攻击
不同的系统对ICMP不可达报文(类型为3)的处理不同,有的系统在收到网络(代码为0)或主机(代码为1)不可达的ICMP报文后,对于后续发往此目的地的报文直接认为不可达,好像切断了目的地与主机的连接,造成攻击。
针对ICMP不可达攻击,简单的办法就是通过修改注册表关闭主机的ICMP不可达报文处理功能。
8.传输层--TCP SYN Flood攻击
SYN报文是TCP连接的第一个报文,攻击者通过大量发送SYN报文,造成大量未完全建立的TCP连接,占用被攻击者的资源。----拒绝服务攻击
SYN FLOODING攻击特点:
p 攻击者用带有 SYN 标志位的数据片断启动握手p 受害者用 SYN-ACK 应答;p 攻击者保持沉默 ,不进行回应;p 由于主机只能支持数量有限的 TCP 连接处于 half-open 的状态,超过该数目后,新的连接就都会被拒绝 ;目前的解决方法:关闭处于 Half Open 状态的连接 。什么是拒绝服务?
拒绝服务式攻击(Denial of Service),顾名思义就是让被攻击的系统无法正常进行服务的攻击方式。
拒绝服务攻击方式
利用系统、协议或服务的漏洞
利用TCP协议实现缺陷
利用操作系统或应用软件的漏洞
目标系统服务资源能力
利用大量数据挤占网络带宽
利用大量请求消耗系统性能
混合型
9.分布式拒绝服务攻击(DDoS)
10.DDoS攻击风险防护方案
- 网络设备性能充裕:防火墙、路由器、交换机性能必须有富余防火墙、路由器、交换机性能必须有富余
- 网络带宽资源充裕:保持一定比例的网络带宽余量
- 异常流量清洗:通过抗D设备清洗异常流量
- 通过CDN分流:多节点分担DDoS攻击流量(cdn,我理解其本质就是为了解决距离远产生的速度问题,使用就近的服务。)
- 分布式集群:每个节点分配足够资源数据回发瘫痪攻击源
11.应用层--DNS欺骗攻击
五.操作系统的脆弱性及常见的攻击
1.操作系统自身的漏洞
人为原因
在程序编写过程中,为实现不可告人的目的,在程序代码的隐藏处保留后门。
客观原因
受编程人员的能力,经验和当时安全技术所限,在程序中难免会有不足之处,轻则影响程序效率,重则导致非授权用户的权限提升。
硬件原因
由于硬件原因,使编程人员无法弥补硬件的漏洞,从而使硬件的问题通过软件表现。
操作系统是硬件和软件应用程序之间的接口的模块,它是整个网络信息系统的核心控制软件.系统的安全性体现在整个操作系统之中.对于一个设计上不够安全的操作系统,事后采用增加安全特性或打补丁的办法是一项很艰巨的任务.
n 计算机科学与工程的发展相比于其它行业还处于非常原始的阶段。大型的软件工程,像是用火柴棍搭摩天大楼。即使耗费大量人力物力,用各种手段进行验证与测试,也很难保证其可靠性和稳定性。发展和进步需要时间的。n
2.缓冲区溢出攻击
缓冲区溢出攻击原理
缓冲区溢出攻击利用编写不够严谨的程序,通过向程序的缓冲区写入超过预定长度的数据,造成缓存的溢出,从而破坏程序的堆栈,导致程序执行流程的改变
缓冲区溢出的危害
最大数量的漏洞类型
漏洞危害等级高
缓冲区是内存中存放数据的地方。在程序试图将数据放到机器内存中的某一个位置的时候,因为没有足够的空间就会发生缓冲区溢出。而人为的溢出则是有一定企图的,攻击者写一个超过缓冲区长度的字符串,植入到缓冲区,然后再向一个有限空间的缓冲区中植入超长的字符串,这时可能会出现两个结果:一是过长的字符串覆盖了相邻的存储单元,引起程序运行失败,严重的可导致系统崩溃;另一个结果就是利用这种漏洞可以执行任意指令,甚至可以取得系统root特级权限。
攻击软件系统的行为中,最常见的一种方法
可以从本地实施,也可以从远端实施
利用软件系统(操作系统,网络服务,应用程序)实现中对内存操作的缺陷,以高操作权限运行攻击代码
漏洞与操作系统和体系结构相关,需要攻击者有较高的知识/技巧
3.缓冲区溢出攻击过程及防御
如果可精确控制内存跳转地址,就可以执行指定代码,获得权限或破坏系统
六.信息安全的要素
1.信息安全的五要素
• 保密性—confidentiality对抗对手的被动攻击,保证信息不泄漏给未经授权的人,或者即便数据被截获,其所表达的信息也不被非授权者所理解。确保信息不暴露给未授权的实体或进程。加密机制。防泄密
• 完整性—integrity对抗对手主动攻击,防止信息被未经授权的篡改。只有得到允许的人才能修改实体或进程,并且能够判别出实体或进程是否已被修改。完整性鉴别机制,保证只有得到允许的人才能修改数据 。防篡改
• 可用性—availability确保信息及信息系统能够为授权使用者所正常使用,得到授权的实体可获得服务,攻击者不能占用所有的资源而阻碍授权者的工作。用访问控制机制,阻止非授权用户进入网络 。使静态信息可见,动态信息可操作。 防中断
以上三个重要的基本属性被国外学者称为“信息安全金三角”(CIA,Confidentiality-Integrity-Availability)
• 可控性—controllability可控性主要指对危害国家信息(包括利用加密的非法通信活动)的监视审计。控制授权范围内的信息流向及行为方式。使用授权机制,控制信息传播范围、内容,必要时能恢复密钥,实现对网络资源及信息的可控性。• 不可否认性—Non-repudiation对出现的安全问题提供调查的依据和手段。使用审计、监控、防抵赖等安全机制,使得攻击者、破坏者、抵赖者“逃不脱",并进一步对网络出现的安全问题提供调查依据和手段,实现信息安全的可审查性。
七.恶意程序具备的特性
1,非法性
2,隐蔽性3,潜伏性4,可触发性5,表现性6,破坏性7,传染性 --- 蠕虫病毒的典型特点8,针对性9,变异性10,不可预见性