一、插件漏洞
- 统计使用了哪些插件
- 这些插件有版本更新嘛
- 检测这些插件是否存在已知漏洞
二、权限提升和持久化
SSRF(Server-Side Request Forgery,服务器端请求伪造)
想象一下,你是一个公司的内部员工(服务器),你有权访问公司内部的一些机密文件(内部资源),这些文件对外部的人(攻击者)是不可见的。某天,一个外部的陌生人(攻击者)让你帮忙发送一封信(请求)到一个特定地址(目标资源),你不知道这个地址的内容机密,你便照做了,结果他通过你的帮助(服务器)获得了机密文件。这就是SSRF漏洞的基本原理。
后门
后门(Backdoor)是指绕过正常认证机制的隐藏方法,允许攻击者或未授权用户秘密访问计算机系统、网络或应用程序。后门通常被用于非法访问,但在某些情况下,开发人员可能会在系统中留有后门用于调试或维护。
想象一下,你家的前门有锁,只有你和家人有钥匙,但某个技工在修理时偷偷在后院的围墙上开了一个小门,这个门没有锁,只有他知道。每当你不在时,他就可以通过这个小门进入你的家。这就是后门的概念。
一些黑客才知道的账号密码的管理员权限登录进来。
三、Linux系统安全:多人共用服务器,如何防止别人干“坏事”?
弱密码和定期修改密码
linux安全威胁就是权限问题
不要随便把root用户权限给别人。运行Redis和MySql也不要用root用户,黑客可以通过具备ROOT权限的进程漏洞,来实现权限提升的
想象一下,你有一个公司,公司的老板(Root用户)拥有公司的所有权限,包括访问所有机密文件和进行任何操作。现在,你有一项任务需要外包给外部人员(服务),你不希望这个外部人员有权访问公司的所有资源。因此,你创建了一个权限受限的账户,只允许他访问和操作必要的文件,而不是所有的文件。这样,即使他有恶意企图,也只能对有限的资源造成影响。
想你推荐两种日志分析工具ELK和Zabbix
四、网络安全:和别人共用Wi-Fi时,你的信息会被窃取吗?
最小权限
1. 水平划分VLAN
就是交换机划分出的子网。不同VLAN之间的访问,交换机可以阻止
2. 垂直划分
内网可以访问外网,但反过来不行。这个通过路由器实现
想象一下,你家里有一台电脑(内网设备),但你在外出时需要访问这台电脑上的文件。由于家庭路由器的网络地址转换(NAT)功能,你的电脑隐藏在内网中,外面的世界无法直接找到它。这时,你可以使用内网穿透技术来解决这个问题。
公司wifi 安全
强制门户
一般连入公司wifi内网后,员工还需要通过公司e-mail 和 passwd,进行一次额外的验证。这样公司就知道谁连了进来
伪造热点
设备一般自动连接之前连接过的wifi。黑客如果伪造了和之前连接wifi相同的ID,就能劫持你的流量
解决方案就是对办公网络中的未知热点进行扫描
有线网络安全
有线网络不存在强制门户的必要。都插上网线了。说明授权这台服务器接入内网了
对于劫持流量问题。黑客伪造(基于ARP协议和DNS协议来寻址的MAC地址和ip地址)ARP包和DNS包,从而期盼目标设备将数据包发送到黑客的设备上。
解决方式就是定期检测,还有合理规划,避免黑客进入内网
DDoS攻击
黑客由外网发起大量请求,占满带宽。让内网无法响应用户的正常请求。
黑客会通过大量的“肉鸡”(被黑客远程控制的机器)来向目标网络发起请求。
只要你提供服务,就基本无法避免被攻击
但云提供商提供的解决方式是比如卖给你一个40G的防DDos服务。只要DDoS的流量小于 40G,云服务商就会保障你服务的可用性。
五、Docker安全
黑客突破了Docker服务的隔离保护,就是“Docker 逃逸”
如何应对,看下面
1. Namespace
linux内核会对不同Namespace之间的进程做隔离,每个docker容器都有一个单独的Namespace空间
但是Namespace的伪隔离机制让容器和宿主机共享某些目录。这是不是意味着可以利用这些目录来实现docker逃逸呢?docker使用Capabilities来限制容器的操作
2. Capabilities
只允许docker容器拥有几个默认的能力
如果给容器完全的特权(称为“特权模式”),它将拥有与主机相同的权限,这会带来很大的安全风险。例如,如果容器被黑客攻破,黑客可以对主机系统做任何事情。
想象一下,你是一位家庭管理员,你可以给家里的每个人发放不同的权限:有人只能在厨房做饭,有人只能在花园浇水,有人可以进入所有的房间。类似地,Docker中的Capabilities就是给容器分配不同权限的方式,让它们只能做特定的事情,而不是给它们所有的权限。
常见Capabilities示例
CAP_SYS_ADMIN:允许执行许多系统级的操作,如挂载文件系统等。
CAP_NET_BIND_SERVICE:允许绑定到低于1024的端口。
CAP_SYS_TIME:允许更改系统时间。
3. CGroups
利用CGroups 机制来实现对容器内存、CPU和 IO 等的限制。
例如
docker run -it --cpus=2 --memory="100m" ubuntu:latest /bin/bash
Docker守护进程
Daemon具备操控Docker的所有权限。黑客可以通过守护进程的远程API接口来获得Daemon的控制权。
我们是否要开启这个远程API接口,如果开启就要配置API接口的密钥这样才安全
Docker 镜像安全
系统镜像包含很多漏洞。因为很多系统功能都用不到,去正好给了黑客可乘之机
解决方案就是
- 用精简版的基础镜像,如 slim 或者 alpine结尾的
- 用较低权限的用户,比如node的基础镜像自带node用户
FROM node:10-alpine
…
USER node
如果镜像不自带这种最小权限用户。可以自己创建一个
六、数据库安全
redis
黑客可以连入redis,然后将KV中的value落盘在cron目录下面,进而生成定时程序
redis加上密码后,性能下降20%左右,这和它主打的高性能冲突
可以通过重命名CONFIG,黑客不知道你重命名成什么了,就无法执行CONFIG功能,get和set一些服务器的参数
尽量使用非ROOT权限,这样黑客就不能进入到写入Crontab
最好是在可信的网络中使用redis。
MySQL
黑客除了对数据库“增删改查”,就是控制服务器
mysql本身就提供和本地文件交互的功能。黑客连入mysql后,可以读取到/etc/passwd 和应用源代码。也可以往Crontab里写入。
不过mysql本身提供安全机制,只需要配置好,就能获得较高的安全保障
- 具有这些功能:密码过期,重用限制,强度评估,失败太多次锁定账户
- 授权机制包括主体(用户名,ip,passwd),客体(数据库和表)和请求(增删改查)
- 审计通过第三方插件
- 还提供传输过程中的SSL 加密。也提供存储过程中的硬盘加密
- mysql默认提供了非ROOT 权限用户mysql
七、分布式安全:上百个分布式节点,不会出现内奸嘛?
Hadoop用的很少。
八、安全标准和框架
在国内,就是等级保护制度
九、防火墙
黑客在网络攻击时,第一步会扫描系统对外开放的端口
1. 包过滤防火墙
功能:检查每个数据包的基本信息,决定是否允许数据通过。
通俗解释:就像一个大楼的保安,只检查进出人员的身份证和行李箱,但不打开行李箱看里面有什么。
例子:保安会检查进入大楼的人的身份,如果不是员工或者访客登记的身份,就不让进入,但不会检查员工包里有什么。
2. 应用网关防火墙
功能:在应用层上工作,通过代理的方式检查和过滤数据流量。
通俗解释:就像一个专业的审查员,不仅检查来访者的身份,还会查看他们带来的文件和资料,确保内容安全。
例子:审查员不仅检查进大楼的人的身份证,还会审查带进来的文件,确保里面没有敏感或危险的信息。
3. 状态检测防火墙
功能:跟踪和分析数据包的状态,确保连接是合法的。
通俗解释:就像一个智能保安系统,不仅检查身份证和行李,还会跟踪进入大楼的人的行踪,确保他们行为正常。
例子:智能保安系统会记录每个人进入大楼后的活动,如果有人试图进入未经授权的区域,系统会发出警报并阻止他们的行动。
这些防火墙的区别主要在于检查的深度和方式:
- 包过滤防火墙:简单快速,检查数据包的表面信息。
- 应用网关防火墙:深入检查数据内容,确保应用层面的安全。
- 状态检测防火墙:智能跟踪数据连接的状态,确保整个通信过程的安全。
Windows 自带的防火墙和 Linux 的 firewalld 都属于状态检测防火墙,但 firewalld 同时结合了一些高级功能,如区(zone)管理和丰富的规则设置。
十、WAF (Web Application Firewall, Web 应用防护系统)
-
透明代理:你在公司使用互联网时,公司配置的透明代理会自动过滤和监控你的网络流量,你不用对浏览器做任何设置,但访问某些网站时会被限制或记录。
-
反向代理:你访问一个大型网站时,反向代理会先接收你的请求,再决定将其发送到哪台后端服务器,以分担负载,提高效率和安全性。
-
插件模式:你在浏览器中安装了一个广告拦截插件,这个插件会在你浏览网页时自动屏蔽广告,为你提供一个更清洁的浏览体验。服务端通过AOP技术引入即可。AOP让你能够在不改变核心业务逻辑代码的情况下,添加或改变某些功能或行为。