Skip to content

# 入侵防御的检测技术

更新: 5/3/2025 字数: 0 字 时长: 0 分钟

  • 什么是入侵防御?入侵防御如何工作? - 华为 (huawei.com)
  • 基于签名的检测技术:该方法将网络流量与已知威胁的签名进行匹配。签名代表了入侵行为的特征,如果该流量匹配了签名则判定为入侵行为的恶意流量。但该方法只能识别出已有签名的入侵,而无法识别新的入侵。
  • 基于异常的检测技术:该方法通过采集网络活动的随机样本,并与基线标准进行比较,来判断是否为入侵行为。基于异常的检测技术比基于签名的检测技术识别范围更广,但也增加了误报的风险。
  • 基于安全策略的检测技术:该方法使用频率低于前两种,网络管理员会在设备上配置安全策略。任何违反这些策略的访问行为会被阻止。
  • 入侵检测与防护技术属于主动防御技术,主要有两种:入侵检测系统(lntrusion Detection System,IDS)和入侵防护系统( Intrusion Prevention System,IPS)。
  • 入侵检测系统(IDS)注重的是网络安全状况的监管,通过监视网络或系统资源,寻找违反安全策略的行为或攻击迹缘,并发出报警入侵防护系统(IPS)则倾向于提供主动防护,注重对入侵行为的控制。其设计宗旨是预先对入侵活动和攻击性网络流量进行拦截,避免其造成损失。

数据库开源审计工具

更新: 5/3/2025 字数: 0 字 时长: 0 分钟

mcafee

B友自制

GitHUb

Yearning实践

更新: 5/3/2025 字数: 0 字 时长: 0 分钟

开源数据库审计Yearning部署安装(centos7) - 知乎 (zhihu.com)https://next.yearning.io/guide/install.htmlyearning搭建及使用_yearning 使用_跨行菜鸟运维的博客-CSDN博客

详解开源数据库审计平台Yearning-阿里云开发者社区 (aliyun.com)

开源数据库审计平台Yearning

Yearning是一个轻量级的Web端的MySQL SQL语句审核平台,提供查询审计,SQL审核,SQL回滚,自定义工作流等多种功能。Yearning的前端是基于Vue.js构建的,它还提供SQL语法高亮、自动补全和智能提示、可视化等。

Yearning自身包含了一套通常适用的审核规范,基本上能满足日常需要,同时规范了日常开发需求所涉及到的SQL变动,在Yearning平台的辅助下,日常的SQL变动也更加贴近SQL使用的规范化、标准化的要求,同时100%基于GO语言研发的Yearning也可以通过自定义二次开发(遵循AGPL协议)增加一些符合自己审核策略。

Yearning的安装十分简单,它只依赖一个mysql数据库用于存储工单的数据。官方提供了安装手册用于在linux上安装Yearning。除此之外,Yearning还支持容器化部署,安装包内置了Dockerfile,方便快捷。同时Yearning还支持二次开发,二次开发的同学可以自己构建发布。

mysql安装

root密码:P,.4p(ukqdq, Yearning Secrekey = 1234567812345678

登录Mysql

![[Pasted image 20230626111041.png]] ![[Pasted image 20230626111113.png]]

配置数据库远程访问

![[Pasted image 20230626112844.png]] ![[Pasted image 20230626112857.png]] ![[Pasted image 20230626111633.png]]

OpenRASP

更新: 5/3/2025 字数: 0 字 时长: 0 分钟

​OpenRASP v1.3.0 正式发布 | 数据泄露检测、类库版本查询、检测能力加强 (qq.com)

数据泄露检测

  • 在最新的官方插件里,我们增加了对身份证手机号银行卡三类数据的识别,当接口返回了此类数据,且没有打码时,我们会发出报警:![[Pasted image 20230607153106.png]]
  • 另外一个常见数据泄露来源是Web根目录的敏感文件。在公司成立早期,业务线发布流程不规范,将全站源代码,SQL文件,或者业务日志放在可下载的目录,是很常见的事情。因此,我们在PHP版本里加入了Web根目录扫描,若存在 .git/.tar/.sql/.log 等敏感文件(正则可配置),我们将会发出报警。为了保证性能,我们默认每隔6小时扫描一遍,最多检测100个文件:

背景介绍

Gartner 在2014年提出了『运⾏时应⽤⾃我保护』技术的概念,即 对应⽤服务的保护,不应该依赖于外部系统;应⽤应该具备自我保护的能⼒。OpenRASP 是该技术的开源实现,它改变了防火墙依赖请求特征来拦截攻击的模式。对于注⼊类的漏洞,我们可以识别⽤户输⼊的部分,并检查程序逻辑是否被修改。由于不依赖请求特征,我们每条报警都是成功的攻击

  • RASP技术是指:对于应用服务的保护,应⽤程序不应该依赖外部组件进⾏运⾏时保护,⽽应该具备⾃我保护的能⼒,也即建⽴应⽤运⾏时环境保护机制。
  • RASP技术是指:对于应用服务的保护,应用程序不应该依赖外部组件进行运行时保护,而应该具备自我保护的能力,即建立应用运行时环境保护机制。OpenRASP是该技术的开源实现,它改变了防火墙依赖请求特征来拦截攻击的模式。对于注入类的漏洞,可以识别用户输入的部分,并检查程序逻辑是否被修改。 ![[Pasted image 20230619142910.png]]
  • RASP技术的优点
    • RASP⼏乎没有误报情况。边界设备基于请求特征检测攻击,通常⽆法得知攻击是否成功。对于扫描器的踩点⾏为、nday 扫描,⼀般会产⽣⼤量报警。RASP 运⾏在应⽤内部,失败的攻击不会触发检测逻辑,所以每条攻击都是成功的报警。
    • RASP 可以发现更多攻击。以SQL注⼊为例,边界设备只能看到请求信息。RASP 不但能够 看到请求信息,还能看到完整的SQL语句,并进⾏关联。如果SQL注⼊让服务器产⽣了语法错误或 者其他异常,RASP引擎也能够识别和处理。
    • RASP 可以对抗未知漏洞。发⽣攻击时,边界防护设备⽆法掌握应⽤下⼀步的动向。RASP 技术可以识别出异常的程序逻辑,⽐如反序列化漏洞导致的命令执⾏,因此可以对抗未知漏洞。

安装后台管理

![[Pasted image 20230627092405.png]] 本地主机安装实践:OpenRASP 安装流程_初心者|的博客-CSDN博客 配置完成后登录:用户名固定为 openrasp,初始密码为 admin@123 ![[Pasted image 20230628105207.png]] ![[Pasted image 20230628105300.png]]

docker相关

  • 查看docker的ip:docker inspect 容器名称![[Pasted image 20230628100520.png]]
  • 重启docker:systemctl restart docker
  • 进入容器![[Pasted image 20230628102147.png]]
  • 退出容器内部:![[Pasted image 20230628102256.png]]

注意事项

  • mongo的版本不能太高,最新版本的mongo有安全机制静止连接,要在mongo内部进行用户创建和授权
  • Linux中退出程序:![[Pasted image 20230628105454.png]]

测试用例部署(客户端部署)

springboot部署

OpenRASP 初探(二)之项目部署_openrasp 部署_黑锅侠的博客-CSDN博客springboot中使用jsp - 仰望星空的脚踏实地 - 博客园 (cnblogs.com)安装测试用例 - OpenRASP 官方文档 - 开源自适应安全产品 (baidu.com)

配置本地java IDE环境

本地maven采用了3.9.3版本,Eclipse采用最新版本![[Pasted image 20230703150502.png]]

创建Springboot web项目

  1. 下载Eclipse后,在其中的marketplace中下载sts插件(spring tools 4)
  2. 创建springboot Web项目![[Pasted image 20230703210700.png]]![[Pasted image 20230703210729.png]]![[Pasted image 20230703210744.png]]
  3. 运行测试![[Pasted image 20230703210816.png]]![[Pasted image 20230703210833.png]]配置好pom后进行Maven install打包成jar包,将jar文件上传至测试服务器,java -jar xxxx.jar运行jar包。出现如下错误,发现出错原因是8080端口被占用,因此对占用该端口的程序进行清理![[Pasted image 20230703214311.png]]运行成功![[Pasted image 20230703214826.png]]

数据库审计

更新: 5/3/2025 字数: 0 字 时长: 0 分钟

![[Pasted image 20230608145951.png]] ![[Pasted image 20230608150110.png]] ![[Pasted image 20230608151959.png]]

相关链接

技术介绍

Web1

数据安全视角下的数据库审计技术进化-腾讯云开发者社区-腾讯云 (tencent.com)

Web2

科普|什么是数据库审计? - 知乎 (zhihu.com)

摘要
  1. 数据库审计是什么? 数据库审计是对数据库访问行为进行监管的系统,一般采用旁路部署的方式,通过镜像或探针的方式采集所有数据库的访问流量,并基于SQL语法、语义的解析技术,记录下数据库的所有访问和操作行为,例如访问数据的用户(IP、账号、时间),操作(增、删、改、查)、对象(表、字段)等。数据库审计系统的主要价值有两点,一是:在发生数据库安全事件(例如数据篡改、泄露)后为事件的追责定责提供依据;二是:针对数据库操作的风险行为进行时时告警。
  2. 数据库审计怎么审?
    1. 数据库访问流量采集:镜像方式、探针方式
    2. 语法语义解析

Web3

Oracle数据审计基本知识 oracle数据库审计 - seasonzone - 博客园 (cnblogs.com)oracle审计详解_show parameter audit_luminer的博客-CSDN博客

基本概念

  • 数据库审计(简称DBAudit)能够实时记录网络上的数据库活动,对数据库操作进行细粒度审计的合规性管理,对数据库遭受到的风险行为进行告警,对攻击行为进行阻断。它通过对用户访问数据库行为的记录、分析和汇报,用来帮助用户事后生成合规报告、事故追根溯源,同时加强内外部数据库网络行为记录,提高数据资产安全。
  • 现有的依赖于数据库日志文件的审计方法,存在诸多的弊端,比如:数据库审计功能的开启会影响数据库本身的性能、数据库日志文件本身存在被篡改的风险,难于体现审计信息的有效性和公正性。此外,对于审计数据的挖掘和迅速定位也是任何审计系统必须面对和解决的一个核心问题之一。

实施方案

更新: 5/3/2025 字数: 0 字 时长: 0 分钟

Mysql数据库审计——yearning

[[1.2 数据库审计]]

Oracle数据库审计

[[Linux日常学习积累#Oracle数据库的安装与操作]]

付费

  • 腾讯T-Sec 数据安全审计
  • 华为DAS1500系列数据库审计系统

Oracle内开启审计

官方文档:使用审核验证安全访问 (oracle.com)

Oracle AVDF

关于avdf运行模式的ppt:deep-understanding-of-oracle-avdf-zhs.pdf

Oracle审计实验

更新: 5/3/2025 字数: 0 字 时长: 0 分钟

实例

系统账户: ![[Pasted image 20230915164201.png]] 修改系统中的系统管理员sys和默认管理员system的密码 Oracle 修改SYS、system用户密码 - 授客 - 博客园 (cnblogs.com)

ad-info
所有密码都设置为Oracle

使用PLSQL远程连接Linux上的Oracle

攻击链记录

更新: 5/3/2025 字数: 0 字 时长: 0 分钟

攻击链一

攻击

利用Web端账号信息泄露的问题,破解一个账号,然后通过该账号登陆后,爬取整个数据库的信息。

防护

开启Oracle数据库审计,对这种爬取整个数据库信息的行为进行设置和预警。

方案一

审 计 类 型说    明
语句审计按照语句类型审计SQL语句,而不论访问何种特定的模式对象。也可以在数据库中指定一个或多个用户,针对特定的语句审计这些用户
权限审计审计系统权限,例如CREATE TABLE或ALTER INDEX。和语句审计一样,权限审计可以指定一个或多个特定的用户作为审计的目标
模式对象审计审计特定模式对象上运行的特定语句(例如,DEPARTMENTS表上的UPDATE语句)。模式对象审计总是应用于数据库中的所有用户
细粒度的审计根据访问对象的内容来审计表访问和权限。使用程序包DBMS_FGA来建立特定表上的策略
使用语句审计
SQL
AUDIT sql_statement_clause BY {SESSION | ACCESS}
WHENEVER [NOT] SUCCESSFUL;
使用模式对象审计
sql
AUDIT schema_object_clause BY {SESSION | ACCESS}
WHENEVER [NOT] SUCCESSFUL;

![[Pasted image 20230919095301.png]] 如果希望审计HR.JOBS表上的所有insert和update命令,而不管谁正在进行更新,则每次该动作发生时,都可以使用如下所示的audit命令:

sql
SQL> audit insert, update on hr.jobs by access whenever successful;
Audit successful.

用户KSHELTON决定向HR.JOBS表添加两个新行:

sql
SQL> insert into hr.jobs (job_id, job_title, min_salary, max_salary)
2  values ('IN_CFO','Internet Chief Fun Officer', 7500, 50000);
1 row created.

SQL> insert into hr.jobs (job_id, job_title, min_salary, max_salary)
2  values ('OE_VLD','Order Entry CC Validation', 5500, 20000);
1 row created.

查看DBA_AUDIT_TRAIL视图,可以看到KSHELTON会话中的两个insert命令: ![[Pasted image 20230919095822.png]]

使用审计策略

使用标准的审计,可以轻松发现访问了哪些对象以及由谁访问,但无法知道访问了哪些行或列。细粒度的审计可解决这个问题,它不仅为需要访问的行指定谓词(或where子句),还指定了表中访问的列。通过只在访问某些行和列时审计对表的访问,可以极大地减少审计表条目的数量。 ![[Pasted image 20230919100227.png]] 审计任何经理对SALARY列的任何访问

sql
begin
dbms_fga.add_policy(
object_schema =>   'HR',
object_name =>     'EMPLOYEES',
policy_name =>     'SAL_SELECT_AUDIT',
audit_condition => 'instr(job_id,''_MAN'') > 0',
audit_column =>    'SALARY'
);
end;

![[Pasted image 20230919100319.png]] 第一个查询访问经理信息,但没有访问SALARY列。第二个查询与第一个查询相同,但是访问了SALARY列,因此触发了FGA策略,从而在审计跟踪中生成了一行: ![[Pasted image 20230919100431.png]]

攻击链二

攻击

利用Elasticsearch中间件在设置时存在的漏洞,直接爬取数据库信息。

防护

方案一

采用OpenRASP[[1.3 OpenRASP]]

方案二

[[2023-09-25#Elasticsearch漏洞防御与检测]]:Elasticsearch漏洞防御与检测 [[2023-09-26#elasticsearch-guard]]:Elasticesearch-gard

菜就多练

本站访客数 人次 本站总访问量