web安全
浏览器安全
同源策略
同host,端口,协议。
<scrpit> <ifamr> <link>等标签,通过src加载夸源资源,而xmlHttpReqeust不可发起,除非有http header 的"Access-control-Allow-Origin"来授权
浏览器沙箱
隔离网页代码域内核,操作系统的通信
恶意网址拦截
XSS
XSS
原理
诱导用户点击链接,执行恶意的javaScript脚本,窃取隐私信息,仿冒用户
分类
反射型:浏览器->后端->浏览器
dom型:URL->浏览器
存储型:浏览器->数据库->浏览器
危害
窃取cookie:在javascript脚本中通过document.cookie获取脚本
未授权操作:代替用户在HTML进行各类操作
按键记录和钓鱼:记录用户操作,伪造登录框获取用户名密码
防护
验证输入、输出
编码 转义编码特殊字符
检查和过滤 白名单过滤
CSP:限制对外部script文件访问
cookie字段设置http only
注入
xml注入,sql注入,代码注入,命令注入,脚本注入,crlf注入
sql注入
原理:构造恶意参数,修改正常sql逻辑
攻击:
- 修改where条件
- 执行任意语句
- union查询
危害:
- 绕过验证
- 篡改数据
- 窃取数据
- 影响可用性
防护
- 使用预编译
- 严格校验输入
CSRF
原理:诱导用户访问某个网站,让用户浏览器发送一个伪造的请求到目标网站
危害:绕过身份认证,执行未授权的操作
防护:
- CSRF token:利用跨域无法获取cookie
- 二次验证
SSRF
原理:黑客输入一个内网url,让服务端发起一个定义的内网请求,从而获取内网数据
危害:内网探测,文件读取
防护:白名单限制,协议和资源类型限制,请求端限制
文件上传下载
恶意文件,路径穿越
防护
- 文件上传目录不可执行
- 随机数改写文件名和路径
- 单独设置文件服务器的域名
- 校验文件的类型
反序列化漏洞
原理:在数据中,嵌入自定义代码,让引用在反序列化过程中执行该代码
危害:执行任意命令、影响可用性
防护:
- 认证和签名
- 限制序列化,和反序列化类的范围
- RASP检测:检测非正常代码的执行
信息泄露
注释信息泄露
错误信息
返回信息
版本管理工具的隐藏文件
上传代码到外网
权限提升和持久化
权限提升和持久化
权限提升
原理:获取到其他用户的权限,以新用户的身份进行窃取和篡改数据
分类:水平提升,垂直提升
提升方式:弱秘钥,无认证,漏洞
权限持久化
原理:获取到高级别权限后,留下隐藏进程,以便下次直接进入
工作原理:木马,rootkit,webshell
植入系统的方式
权限提升
文件上传漏洞
保持持久化:伴随定时任务,开机启动,系统常驻进程
防护
最小权限原则
IDS:分析网络层,主机层的行为
dos攻击
网络层:tcp半链接
应用层:http慢速攻击,发生不完整的http报文
\[ReDos\]
防护
限制访问频率
验证码
点击劫持
视觉上的欺骗手段,用一个透明的不可见的iframe,诱使用户在网页上进行操作
linux系统和应用安全
linux安全模型
- 内核层防护 -更新最新的镜像文件
- 用户层防护-确保正确配置用户权限
网络安全
最小安全原则
- 对内网进行水平划分,划分不同的身份和权限
- 对内网进行垂直划分:内外网隔离
有线网络与无线网络
无线:使用安全协议wap2,认证技术("强制门户"),未知网络扫描
优先:防止ARP协议劫持
DDOS攻击
原理:通过漏洞攻击,导致无法提供服务,巨量垃圾流量挤占带宽
防护:理论上不可防护,只能增加网络带宽,提升耐受力
docker
- docker服务安全 :nameSpace,capabilities,cGroup
- docker守护进程:证书防护守护进程api不需要认证的问题
- docker镜像安全:使用精简的镜像
数据库安全
| 数据库 | 危害 | 认证 | 访问控制 | 审计 | 加密 |
|---|---|---|---|---|---|
| redis | 数据CIA破坏,写文件,命令执行 | 不区分用户 | 可通过重命名指令,模拟访问控制 | 简单日志 | 不提供 |
| mysql | 数据CIA破坏,读写文件,命令执行 | 多用户体系,提供密码挂你功能 | 基于用户名,秘密,ip的访问控制 | 简单日志,可以引入审计日志插件 | ssl传输加密,存储加密 |
分布式安全
Hadoop缺乏安全保护措施,那么其中的数据就会受到威胁。黑客可以通过伪装成用户、伪装成节点或者窃听网络的方式破坏数据的CIA。
在防护上,我们可以通过认证、授权、审计和加密的方式,对Hadoop进行保护。除此之外,Hadoop作为成熟的开源框架,有很多公司为其打造了增强安全能力的辅助工具。Apache Knox和Apache Ranger的组合。
安全防御攻击
防火墙
保护系统漏洞,阻止非法的信息流动,限制可访问的服务和审计
| 类型 | 原理 | 特点 | 缺点 |
|---|---|---|---|
| 包过滤防火墙 | 工作在网络层传输层。通过检测并拦截所有的TCP,UDP包对系统提供保护 | 不要额外采购设备,只需要对网络边界的路由器进行设置 | 防护能力弱,只能提供最基础的能力 |
| 应用网关防火墙 | 以代理的模式工作在应用层 | 能处理的信息最多,防火能力最强 | 对网络的性能,系统可用性有影响;无法有效追踪请求来源 |
| 状态检查防火墙 | 工作在传输层,以连接的形式看待upd,tcp数据包 | 能获得更优的性能 |
盲区:
- 已授权服务的恶意攻击
- 不通过防火墙的访问
- 防火墙自身的缺陷
WAF
web Application Firewall:专注于web http安全的防火墙
功能:
- http解析能力
- web安全防护
- 审计告警
- 数据保护和虚拟补丁
| 工作模式 | 原理 | 优点 | 缺点 |
|---|---|---|---|
| 透明模式 | 与传统防火墙类似;需要同步https秘钥 | 容易部署 | 处理方式只有拦截,不能进行修改 |
| 反向代理 | 本质是一个web服务,可以直接部署https证书 | 功能丰富,容易部署 | 性能相对较低; |
| 插件模式 | 本质是一个切片;和服务端耦合 | 部署简单 | 对服务端性能产生影响,升级流程和服务端耦合 |
IDS
Intrusion Detection System入侵检测系统,分2种类型,网络入侵检测系统NIDS,主机型入侵网络系统HIDS;IPS内网或者服务器异常行为进行拦截
蜜罐:钓鱼服务,获取黑客攻击模式
RASP
原理:
监控应用底层,从根本上发现攻击行为
优势:
基本不会误报、漏报
能防范未知的攻击
不用维护规则
劣势:
增加了检测逻辑,必然影响应用的正常运行,推广难度大
解决方案不通用,每一种开发语言,不同开发框架,都可能需要独立的RASP产品
性能问题
业务安全
黑产:基于正常的业务产品逻辑,采取非正常或者批量的操作,来获利
业务安全:通过对黑产的识别和拦截,保障业务的正常运行
黑产的特点:
- 产业化:上游提供技术支持,中游提供注册账号所需的信息,工具,下游利用工具和账号实现获利
- 看重资源的对抗
防护: 增加黑产的资源的成本
- 用户资源:黑名单防护
- ip资源:很难
- 设备资源:设备指纹技术
- 操作资源:使用验证码等方式,避免自动化操作,增加其成本
安全方案
评价标准
- 能够有效解决问题
- 用户体验好
- 高性能
- 低耦合
- 易扩展和升级
设计原则
-
secure by default:白名单比黑名单更安全
-
最小权限原则
-
纵深防御原则
不同的层面,不同的角度(web,os,数据库,网络环境)
正确的地方做正确的是,防御要在最合适的地方
-
数据域代码分离原则
用户数据不能被当做代码执行
-
不可预测性原则
提高攻击门槛
需要用到加密算法,随机数算法,哈希算法