网络安全 – 常见的攻击方式和防守

一 . 网页中出现黑链

特点: 隐藏,不易发现,字体大小是0,表面上看不出来,代码层面可以查出来,也可能极限偏移,颜色一致
表现: 多表现为非法植入链接,一般点击会跳转至其他网页

例如:
1.澳门新葡京等赌博网站,获取流量,有人甚至会充钱参与赌博,背后有其完善的产业链
2.网贷页面,一般缺钱,着急用钱的人可能会上当受骗
3.色情网站,充会员看视频,直播,下载视频
4.盗版电影网站,充会员可以看视频,选择清晰度,甚至下载视频
5.纯广告,一般用于网盘/私服/游戏/客户端等,其中下载客户端可能包含木马等病毒
6.区块链,可以利用你的机器进行挖矿,消耗你的CPU和GPU

挖矿原理:挖矿也就是解密的过程,每种货币的加密方式不一样,用芯片的能力,不断进行哈希碰撞,赢取记账权,从而获得奖励的比特币(一旦中病毒,会导致CPU 100%)

** 挖矿 **

挖矿:在比特币世界里,“矿”是比特币,所以“挖矿”是指挖比特币,“矿工”是指运用挖矿设备(比特币矿机)参与挖比特币的人挖矿就是利用芯片进行一个与随机数相关的计算,得出答案后以此换取一个虚拟币。虚拟币则可以通过某种途经换取各个国家的货币。运算能力越强的芯片就能越快找到这个随机答案,理论上单位时间内能产出越多的虚拟币。由于关系到随机数,只有恰巧找到答案才能获取奖励。有可能一块芯片下一秒就找到答案,也有可能十块芯片一个星期都没找到答案。越多芯片同时计算就越容易找到答案,内置多芯片的矿机就出现了。而多台矿机组成一个“矿场”同时挖矿更是提高效率。而矿池则是由多个“个体户”加入一个组织一起挖矿,无论谁找到答案挖出虚拟币,所有人同时按贡献的计算能力获得相应的报酬,这种方式能使“个体户”收入更稳定。

二 . 网站的根目录出现大量的植入网页

1.网页长时间不维护或维护不到位
2.上传下载漏洞
3.网站流量较大,访问人数较多,可以植入黑链,广告页等

压缩炸弹:
“压缩炸弹” 就是一个高压缩比的zip文件,它本身可能只有几M或几十M的大小,但是解压缩之后会产生巨大的数据量,会解压到几十G的大小甚至更大,这种zip文件会对解压缩的系统造成严重的资源负担,影响目标系统业务甚至达到使系统崩溃的结果 。

三 . 网站网页挂木马病毒

1.私服网页登录点击,可能获取你信息,姓名,邮箱,密码,生日等,可以利用这些信息破解你的邮箱密码等等,获取其他信息的用户例如账单,客户信息,邮件等
2.通过JS的一些脚本alert(“hey”)盗号,挖矿,XSS,获取权限
XSS:跨站脚本攻击 (攻击者往Web页面里插入恶意Script代码,当用户浏览该页之时,嵌入其中Web里面的Script代码会被执行,从而达到恶意攻击用户的目的)
– . 盗取cookie并利用js发送网络请求
– . 获取内网IP,可能攻击内网
– . 获取用户的登录信息
– . 劫持流量实现恶意跳转
3.虚拟货币交易所
4.下载类网站 – 电影/ISO系统镜像

XSS攻击大致上分为两类:

反射型XSS,又称非持久型XSS:
攻击相对于访问者而言是一次性的,具体表现在我们把我们的恶意脚本通过url的方式传递给了服务器,而服务器则只是不加处理的把脚本“反射”回访问者的浏览器而使访问者的浏览器执行相应的脚本。

储存型XSS,也就是持久型XSS:
它与反射型XSS最大的不同就是服务器再接收到我们的恶意脚本时会将其做一些处理。
如储存到数据库中,然后当我们再次访问相同页面时,将恶意脚本从数据库中取出并返回给浏览器执行。这就意味着只要访问了这个页面的访客,都有可能会执行这段恶意脚本,因此储存型XSS的危害会更大。

CSRF攻击

CSRF(Cross-site request forgery)全称“跨站请求伪造”
CSRF攻击:攻击者盗用了你的身份,以你的名义进行某些非法操作。CSRF能够使用你的账户发送邮件,获取你的敏感信息,甚至盗走你的账户。

CSRF攻击攻击原理及过程如下:

  1. 用户打开浏览器,访问受信任银行网站A,输入用户名和密码请求登录网站;
    2.在用户信息通过验证后,网站产生Cookie信息并返回给浏览器,此时用户登录网站成功,可以正常发送请求到网站;
  2. 用户未退出银行网站之前,在同一浏览器中,打开一个TAB页访问其他网站B;
  3. 这时候网站B 已被黑客注入诱导信息,假如是一张图片,图片地址指向黑客构造的恶意url,该url能完成黑客想干的某件事,比如修改用户的密码;
  4. 多数情况下,浏览器接收到这个url 请求会失败,因为它要求用户的认证信息。但是,如果用户还未退出网站A,或者当时恰巧刚访问网站A不久,他的浏览器与网站A之间的session 尚未过期,浏览器的cookie 之中含有用户的认证信息。这时,悲剧发生了,这个url 请求就会得到响应,黑客就能以用户的权限修改密码,且用户毫不知情。

CSRF特点:

➢ 攻击一般发起在第三方网站,而不是被攻击的网站。被攻击的网站无法防止攻击发生。

➢ 攻击利用受害者在被攻击网站的登录凭证,冒充受害者提交操作;而不是直接窃取数据。

➢ 整个过程攻击者并不能获取到受害者的登录凭证,仅仅是“冒用”。

➢ 跨站请求可以用各种方式:图片URL、超链接、CORS、Form提交等等。部分请求方式可以直接嵌入在第三方论坛、文章中,难以进行追踪。

CSRF通常是跨域的,因为外域通常更容易被攻击者掌控。但是如果本域下有容易被利用的功能,比如可以发图和链接的论坛和评论区,攻击可以直接在本域下进行,而且这种攻击更加危险。

四 . 蠕虫病毒

1.服务器运行缓慢,可能被植入了蠕虫病毒等
蠕虫病毒是一种常见的计算机病毒,是无须计算机使用者干预即可运行的独立程序,它通过不停的获得网络中存在漏洞的计算机上的部分或全部控制权来进行传播。计算机病毒是指编制或者在计算机程序中插入的破坏计算机功能或者破坏数据和恶意篡改系统.影响计算机使用并且能够自我复制的一组计算机指令或者程序代码。
– 打开网页异常缓慢,可能下载的软件不是从官方下载的
– 后台监控 (cpu占用率高,挖矿,炸弹,进程等)
– 定时任务(周期任务定期检查是否还活着,也就是一个脚本,检查进程是否还活着)
– 挖矿脚本
– 网站漏洞 – 肉鸡(肉鸡也称傀儡机,是指可以被黑客远程控制的机器,肉鸡通常被用作DDOS攻击可以是各种系统,如windows、linux、unix等,更可以是一家公司、企业、学校甚至是政府军队的服务器。)

原理

 根据蠕虫病毒的程序其工作流程可以分为漏洞扫描、攻击、传染、现场处理四个阶段,首先蠕虫程序随机(或在某种倾向性策略下)选取某一段IP地址,接着对这一地址段的主机扫描,当扫描到有漏洞的计算机系统后,将蠕虫主体迁移到目标主机。然后,蠕虫程序进入被感染的系统,对目标主机进行现场处理。同时,蠕虫程序生成多个副本,重复上述流程。各个步骤的繁简程度也不同,有的十分复杂,有的则非常简单。

传播途径 :
1、利用漏洞
这种方式是网络蠕虫最主要的破坏方式,也是网络蠕虫的一个最显著的特点。网络蠕虫攻击时,首先探测目标计算机存在的漏洞,然后根据探测到的漏洞建立传播路径,最后实施攻击。
2、依赖Email传播
以电子邮件附件的形式进行传播是网络蠕虫采用的主要传播方式,蠕虫编写者通过向用户发送电子邮件,用户在点击电子邮件附件时,网络蠕虫就会感染此计算机。
3、依赖网络共享
网络共享是网络蠕虫传播的重要途径之一,网络蠕虫利用共享网络资源进行传播。
4、弱密码攻击
若用户的密码很容易猜测,网络蠕虫则会在攻克了用户密码后进入计算机并获得其控制权。所以用户应该设置复杂的密码,增加破解难度。

五 . 网站域名DNS劫持

 在上网过程中都有遇到过网页莫名跳转这些情况,打开的目标网站不是原来的内容,反而跳转到了未知的页面,即使终端用户输入正确的网址也会被指向跳转至那些恶意网站,或者本来能正常访问的页面,突然就打不开了,这就是DNS劫持,亦可称域名劫持。 正常网站会无法打开,甚至你访问A网站的地址,打开的却是B网站的页面。如果黑客利用DNS劫持,即便访问的是正确的网银或购物网站网址,也会进入假冒的钓鱼网站。最后的结果就是您的重要信息泄露。 对域名持有者而言,遭遇DNS劫持也是件非常严重的问题。它会导致持有者失去对域名的控制,站点无法被用户访问,使域名积累的流量被引导至恶意IP上,给域名持有者造成严重的经济损失,甚至可能由于恶意IP的违法经营,为域名持有者带来不必要的法律风险

六 . 网站数据库被植入内容

 - 是数据库SQL注入 - 数据库锁表,锁库,交钱解锁 (银行/学校/政府等) SQL注入会造成以下严重后果:1. 盗取用户数据和隐私,这些数据被打包贩卖,或用于非法目的后,轻则损害企业品牌形象,重则将面临法律法规风险。2. 攻击者可对目标数据库进行“增删改查”,一旦攻击者删库,企业整个业务将陷于瘫痪,极难恢复。3. 植入网页木马程序,对网页进行篡改,发布一些违法犯罪信息。4. 攻击者添加管理员帐号。即便漏洞被修复,如果企业未及时察觉账号被添加,则攻击者可通过管理员帐号,进入网站后台。

** SQL注入原理:**

 SQL注入攻击指的是通过构建特殊的输入作为参数传入Web应用程序,而这些输入大都是SQL语法里的一些组合,通过执行SQL语句进而执行攻击者所要的操作,其主要原因是程序没有细致地过滤用户输入的数据,致使非法数据侵入系统。SQL注入可以分为平台层注入和代码层注入。前者由不安全的数据库配置或数据库平台的漏洞所致;后者主要是由于程序员对输入未进行细致地过滤,从而执行了非法的数据查询。

基于此,SQL注入的产生原因通常表现在以下几方面:
①不当的类型处理;
②不安全的数据库配置;
③不合理的查询集处理;
④不当的错误处理;
⑤转义字符处理不合适;
⑥多个提交处理不当。

七 . DDos攻击

DDos全称是分布式拒绝服务攻击(Distributed(分布式) Denial of Service停止服务),属于是最没技术含量但攻击起来最让人头疼的一种。攻击者不断地提出服务请求,让合法用户的请求无法及时处理,这是 Dos 攻击。而DDos 攻击是攻击者使用多台计算机或者计算机集群进行
Dos 攻击说简单点,就是一个人去饭店吃饭,点了99999999999+个菜,然后这个人跑了,厨师还在忙活着,结果厨师累死了。
– 常见的是游戏行业攻击,不同厂商之间DDos
– 网页打不开 (下载服务器,登录服务器)
– 麻将博彩类,政务民生类
– 恶性竞争 商业互怼
– 金融领域可以说是DDoS攻击的高发行业,资金充裕的金融部门更容易受到攻击,攻击会使金融系统无法访问。黑客一般是为了赎金和敲诈勒索,容易给企业造成声誉影响和经济损失。

八 . 非法桥页,网站打开后跳转到指定页面

- 网站中植入的有JS相关恶意代码,强制跳转,例如301重定向- 目的在于黑客进行一些非法广告性或网站权重转移而从中获益。被攻击的对象往往是一些有权重、有流量的网站

网络安全 – 常见的防守

黑链防御

  1. “查看源代码”,看下是否有不是我们自己添加的陌生外链
  2. 利用“网站死链检测”或友链检测站长工具
  3. 服务器FTP密码不得过于简单,网站增加验证码等
  4. 选择稳定、安全的服务器

XSS防御

➢ 对插入的文本进行 HTML 编码,转义,对敏感字符转义,把 > 字符转为 ‘>’ < 转为‘<’ 。

➢ 给关键的Cookie设置HttpOnly属性,这样能够避免js读取Cookie信息。

➢ 除了富文本输出之外,在变量输出到HTML页面时,可以使用编码或者转义的方式来防御XSS攻击。

➢ 不要信任用户输入的内容,对表单内容需要进行特殊字符过滤校验或转义

➢ 内容安全策略(Content Security Policy),白名单制度,开发者明确告诉客户端,哪些外部资源可以加载和执行,大大增强了网页的安全性。一种是通过 HTTP 头信息的 Content-Security-Policy 的字段。另一种是通过网页的 标签。

CSRF防御

➢ 检验HTTP Referer来源。在 HTTP 头中有一个字段叫 Referer,它记录了该 HTTP 请求的来源地址。

➢ 在请求地址中添加 token 并验证。

➢ 在 HTTP 头中自定义属性并验证。例如请求加上csrftoken,把token值放入其中

➢ 设置验证码。在发送请求前先需要输入基于服务端判断的验证码,强制用户必须与应用进行交互,才能完成最终请求。在通常情况下,验证码能很好遏制CSRF攻击。

➢ 尽量使用POST接口,限制GET接口。降低攻击风险。

DNS劫持防御

➢ 域名注册商和注册用邮箱设置复杂密码且经常更换。不要在多个重要注册地使用相同的用户名和密码。

➢ 定期检查域名帐户信息、域名whois信息,査看事件管理器,清理Web网点中存在的可疑文件。

➢ 加强网站的防SQL注入功能,SQL注入是利用SQL语句的特点向数据库写内容,从而获取到权限的方法。

➢ 配置Web站点文件夹及文件操作权限

➢ 在网络外围和DNS服务器上使用防火墙服务。将访问限制在那些DNS功能需要的端口/服务上。

➢ 删除运行在DNS服务器上的不必要服务

SQL注入防御

➢ 定制黑白名单:将常用请求定制为白名单,一些攻击频繁的攻击限制其为黑名单,可以通过针对攻击类型把对方ip进行封禁处理,也可也对常用ip进行加白名单。

➢ 限制查询长度和类型:由于SQL注入过程中需要构造较长的SQL语句,同时有些不常用的查询类型我们可以进行限制,凡是不符合该类请求的都归结于非法请求予以限制。

➢ 数据库用户的权限配置:根据程序要求为特定的表设置特定的权限,如:某段程序对某表只需具备select权限即可,这样即使程序存在问题,恶意用户也无法对表进行update或insert等写入操作。

➢ 限制目录权限:WEB目录应至少遵循“可写目录不可执行,可执行目录不可写”的原则,在次基础上,对各目录进行必要的权限细化。

➢不论客户端是否做过数据校验,在服务端必须要有数据校验(长度、格式、是否必填等等)

DDos防御

➢ 采用高性能的网络设备,当大量攻击发生的时候请他们在网络接点处做一下流量限制来对抗某种类的DDOS攻击。

➢ 尽量避免NAT(Network Address Translation)网络地址转换,转换过程中需要对网络包得校验和进行计算,因此会耗费很多CPU的时间。

➢ 充足的网络带宽保证,网络带宽直接决定了能抗受攻击的能力,假若仅仅有10M带宽的话,无论采取什么措施都很难对抗攻击。

➢ 部署CDN,CDN指的是网站的静态内容分布到多个服务器,用户就近访问,提高速度。因此,CDN也是带宽扩容的一种方法,可以用来防御DDOS攻击。

➢ HTTP请求拦截,有恶意请求或频繁攻击的,可限制IP,拒绝访问。例如nginx配置 location / {deny 1.2.3.4; }

➢ 网站页面尽可能的减少资源的请求,部分HTTP请求可浏览器的强缓存和协商缓存。