当前位置:网站首页 > 云计算与后端部署 > 正文

oracle1521端口(oracle1521端口如何攻击)



此实验申请地址在这里,时间为30分钟。

本实验会用到2个虚机:

  • dbsec-hol-* :本虚机上安装了HR应用,可以通过http://<dbsec-hol-*>:8080/hr_prod_pdb1访问。用户名为hradmin,口令为Oracle123。
  • db23ai-hol-*:是安装23ai的数据库服务器,可以通过dbsec-hol-*管理,不必直接访问。

简介

本研讨会介绍了 Oracle SQL 防火墙的功能。如何配置 SQL 防火墙以防范常见的数据库风险,例如 SQL 注入攻击和账户被盗。SQL 防火墙确保只有来自受信任数据库连接的授权 SQL 语句才允许在 Oracle 数据库内执行,同时阻止和记录未经授权的 SQL 或数据库连接。

目标

  • 训练 SQL 防火墙以了解正常活动
  • 使用允许列表部署和执行防火墙策略
  • 使用 SQL 防火墙防范常见的数据库风险,例如 SQL 注入攻击和账户被盗
  • 以两种方式管理 SQL 防火墙:
    • Oracle Data Safe 使您能够集中管理数据库的 SQL 防火墙,并全面了解整个 Oracle 数据库群中的 SQL 防火墙违规情况。
    • 如果您希望在每个数据库实例中管理 SQL 防火墙,请使用 SYS.DBMS_SQL_FIREWALL 包中的 PL/SQL 过程。

注意:

  • 要了解如何使用 Oracle Data Safe 管理 SQL 防火墙,请继续执行任务 1,跳过任务 2。
  • 要了解如何使用 PL/SQL 过程管理 SQL 防火墙,请继续执行任务 2,跳过任务 1。

任务 1: Use SQL Firewall with Data Safe

使用 Data Safe,您可以集中管理多个 SQL 防火墙,并全面了解 Oracle 数据库中的 SQL 防火墙违规情况。SQL 防火墙管理员可以使用 Data Safe 收集数据库用户的 SQL 活动及其关联的数据库连接路径(IP 地址、操作系统程序、操作系统用户),并监控收集进度。Data Safe 可让您根据收集的 SQL 流量生成并启用 SQL 防火墙策略。Data Safe 会自动收集 SQL 防火墙违规日志,并允许您分析和报告违规情况。

注意:

  • 在 VM 的初始部署期间,我们已在本实验室中使用专用端点在 Data Safe 中注册了 Glassfish App 的免费 Oracle Database 23ai(DBSeclabs_DB23ai-freepdb1)
  • 您现在可以继续配置 SQL 防火墙的保护

下略,我们将使用第2种方法。

任务 2: 使用PL/SQL API 管理 SQL 防火墙

使用 SYS.DBMS_SQL_FIREWALL 包中的 PL/SQL 过程,您可以在每个数据库实例中管理 SQL 防火墙。

任务 2a: 启用 SQL 防火墙来保护 Glassfish HR 应用程序

在本实验中,您将了解管理员如何训练系统以了解人力资源应用程序的授权 SQL 语句和可信连接路径。使用代表授权 SQL 连接和语句的允许列表生成 SQL 防火墙策略,并将其部署到目标。

设置 SQL 防火墙环境
 
  

脚本sqlfw_crea_admin-user.sh的核心是创建用户和授权:

 
  

此脚本的核心是PL/SQL过程和查询状态:

 
  

查询结果为:

 
  

DBA_SQL_FIREWALL_STATUS.EXCLUDE_JOBS的含义为:

Indicates whether the SQL Firewall will capture or enforce allow-lists for database connections and SQL executions of Oracle scheduler job sessions (Y) or not (N)

启用 SQL 防火墙以了解 HR 应用程序用户的授权 SQL 流量

开启捕获应用程序用户 EMPLOYEESEARCH_PROD 的 SQL 工作负载:

 
  

此脚本的核心是PL/SQL过程和查询状态:

 
  

输出为:

 
  

列DBA_SQL_FIREWALL_CAPTURES.TOP_LEVEL_ONLY的含义为:

Indicates whether SQL Firewall should capture only top-level SQL commands, that is, SQL commands issued directly from the user (Y) or all SQL commands, including top-level SQL commands and SQL commands from PL/SQL units (N)

使用Glassfish 应用在您数据库上生成活动。
在这里插入图片描述

确认负载已捕获:

 
  

此脚本的核心是PL/SQL过程和查询状态:

 
  

建议修改原脚本并加入格式语句:

 
  

输出为:

 
  

停止负载捕获:

 
  

此脚本的核心是PL/SQL过程:

 
  
为 HR 应用程序用户生成并启用允许列表规则

生成允许列表规则:

 
  

此脚本的核心是PL/SQL过程和查询状态:

 
  

输出为:

 
  

检查 SQL 防火墙允许列表规则以获取受信任的数据库连接和 SQL 语句:

 
  

脚本核心为:

 
  

输出为:

 
  

设置 SQL 防火墙违规行为的审核策略:

 
  

此脚本的核心为:

 
  

输出为:

 
  

在观察模式下启用 EMPLOYEESEARCH_PROD 的允许列表规则:

 
  

此脚本核心为:

 
  

输出为:

 
  

任务 2b: 使用 SQL 防火墙检测被盗凭据访问的内部威胁

假设有一个恶意的内部人员可以访问 HR Apps 用户 EMPLOYEESEARCH_PROD 的被盗凭证,并且为了绕过 HR 应用程序授权,他使用 SQL Developer 来访问敏感的员工数据。

首先,让我们验证数据库是否允许正常的应用程序 SQL 工作负载。此步骤略。

现在,返回终端会话检查违规日志和审计记录。

 
  

未找到任何记录,因为这些查询已被列为允许进入数据库的 SQL 语句。

 
  

现在,内部人员使用被盗凭证,通过SQL*Plus访问数据库:

 
  

再次检查违规日志和审计记录:

 
  

由于 SQL*Plus 不在允许的操作系统程序允许列表中,因此引发了 SQL 防火墙上下文违规,安全管理员可以发现此内部威胁。

任务 2c: 使用 SQL 防火墙强制执行允许的 SQL 和访问模式,以减轻 SQL 注入攻击的风险

当遇到可疑的恶意内部人员时,管理员会启用 SQL 防火墙的阻止模式,以禁止任何未经授权的访问敏感员工信息的尝试。了解 SQL 防火墙如何强制执行允许的模式,包括已批准的 SQL 语句和数据库连接路径,并对潜在的 SQL 注入攻击和 HR 应用程序数据库的异常访问发出警报。

在这里,我们将启用 SQL 防火墙来阻止未经授权的 SQL 连接/语句。

将允许列表规则实施更新为阻止模式:

 
  

输出如下,注意输出中的STATUS和BLOCK列,表明SQL 防火墙现在可以阻止 SQL 注入尝试:

 
  

再次使用SQL Plus访问数据库:

 
  

此SQL被阻止,因为其来自于非法的路径访问:

 
  

再次检查违规日志和审计记录:

 
  

输出如下:

 
  

现在,黑客登录 Glassfish 应用程序执行 SQL 注入攻击。

进入Search Employees界面,选中Debug复选框,可以看到实际执行的SQL语句:

 
  

基于此信息,您可以创建“基于 UNION”的 SQL 注入查询,以显示您想要直接从表单中提取的所有敏感数据。在这里,我们将使用此查询从 DEMO_HR_SUPPLEMENTAL_DATA 表中提取 USER_ID、MEMBER_ID、PAYMENT_ACCT_NO 和 ROUTING_NUMBER列。

将以下的SQL粘贴到Position输入框:

 
  

注意:

  • 不要忘记在 UNION 关键字前加上“'”来关闭 SQL 子句“LIKE”
  • 不要忘记在末尾加上“–”来禁用(注释)查询的其余部分

单机Search。

SQL防火墙检测到SQL 注入,输出返回 ORA 错误。

检查违规日志和审计记录:

 
  

任务 2d: 重置 PL/SQL API 的 SQL 防火墙实验室环境

熟悉 SQL 防火墙概念后,您可以重置环境:

 
  

附录:关于产品

SQL 防火墙是 Oracle 数据库内核中内置的数据库安全功能,可检查所有传入的 SQL 语句,并可记录或阻止不属于 SQL 防火墙允许列表策略的 SQL 语句/连接。SQL 防火墙可确保仅执行明确授权的 SQL。它提供一流的保护,可防范常见的数据库风险,例如 SQL 注入攻击和账户被盗。

SQL 注入是数据驱动型 Web 应用程序的常见数据库攻击模式。攻击者利用 Web 应用程序中的漏洞和安全漏洞,可以修改数据库信息、访问敏感数据、在数据库上执行管理任务、窃取凭据并横向移动以访问其他敏感系统。

虽然 Oracle 数据库中嵌入的其他数据库安全功能提供了不同的安全控制来监控/防止此类 Web 应用程序攻击,但 SQL 防火墙是唯一检查所有传入 SQL 语句并仅允许授权 SQL 的防火墙。它记录并阻止未经授权的 SQL 查询在数据库中执行。

SQL 防火墙在 Oracle 数据库内核中运行,与所有传入的 SQL 语句保持一致,无论其来源如何。当 SQL 防火墙检测到违反其规则的行为时,它可以允许、记录并选择性地阻止 SQL 流量。
在这里插入图片描述

图 1:Oracle SQL 防火墙内置于 Oracle 数据库内核

Oracle SQL 防火墙策略在数据库帐户级别起作用,无论是应用程序服务帐户还是直接数据库用户(例如报告用户或数据库管理员)。每个数据库帐户的 SQL 防火墙策略都包含授权 SQL 语句和相关受信任数据库连接路径的允许列表。允许列表方法提供了更高级别的保护,可防范 SQL 注入攻击和受损帐户等风险。它确保只有来自受信任数据库连接的授权 SQL 语句才被允许在 Oracle 数据库内执行,同时警告/阻止任何未经授权访问存储在其中的敏感数据的尝试。与基于签名的保护机制不同,SQL 防火墙无法通过编码 SQL 语句或引用同义词或动态生成的对象名称来欺骗。

SYS.DBMS_SQL_FIREWALL 包中的 PL/SQL 过程允许您管理 Oracle 数据库中的 SQL 防火墙配置。Oracle SQL 防火墙仅适用于 Oracle Database Enterprise Edition(版本 23.1 及更高版本)。Oracle SQL 防火墙必须获得许可才能使用。有两种途径可获得其许可证:

  • Oracle SQL 防火墙包含在 Oracle Database Vault 中。Database Vault 是额外付费选项。
  • Oracle SQL 防火墙包含在 Oracle Audit Vault 和 Database Firewall (AVDF) 中。AVDF 是单独的产品,需要许可证。

使用 Oracle SQL 防火墙的优势

  • 通过将数据库访问限制为仅授权的 SQL 语句/连接,提供针对常见数据库攻击的实时保护。
  • 减轻 SQL 注入攻击、异常访问和凭证盗窃/滥用的风险。
  • 强制执行受信任的数据库连接路径。

更多信息参见技术文档:Oracle SQL Firewall

到此这篇oracle1521端口(oracle1521端口如何攻击)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • oracle 端口(oracle 端口无法远程连接)2025-11-15 21:45:11
  • Redis端口号(redis端口号及其占用的主要资源是什么)2025-11-15 21:45:11
  • windows nfs客户端(windows2012 nfs客户端)2025-11-15 21:45:11
  • 服务器部署docker后桌面无法显示(服务器部署docker后桌面无法显示图标)2025-11-15 21:45:11
  • 华为模拟器ensp的安装过程(华为模拟器ensp怎么端口划分vlan)2025-11-15 21:45:11
  • onnx模型部署到手机(onnx安卓部署)2025-11-15 21:45:11
  • 服务器的部署(服务器的部署和搭建)2025-11-15 21:45:11
  • 模型部署到服务器(模型训练服务器)2025-11-15 21:45:11
  • 苹果软件后缀名是啥(苹果手机软件的后缀名是什么)2025-11-15 21:45:11
  • onnx模型部署(onnx模型部署到手机)2025-11-15 21:45:11
  • 全屏图片