什么是参数篡改网络攻击?
<p>参数篡改是对应用程序业务逻辑的一种简单攻击。这种攻击利用了许多程序员如何使用隐藏或固定字段作为特定操作的唯一安全保护(例如表单中的隐藏标签或 URL 中的参数)。攻击者可以轻松更改这些设置以绕过依赖于它们的安全性系统。</p><h2>Web 参数篡改</h2><p>Web 参数篡改漏洞可能是最常见的已知威胁。篡改参数通常可以通过以下方式进行:</p><ul class="list"><li><p>URL 中的查询字符串</p></li><li><p>HTTP 中的标头</p></li><li><p>表单中的字段</p></li><li><p>Cookie</p></li></ul><p>Web 参数篡改攻击基于通过操纵客户端和服务器之间传输的参数来修改应用程序数据,例如用户凭据和权限、商品价格和数量等。这些数据通常存储在 Cookie、隐藏表单字段或 URL 查询字符串中,并用于增强程序功能和控制。</p><p>这种攻击可以由希望利用程序为自己谋利的恶意用户执行,也可以由希望对第三方发起中间人攻击的攻击者执行。Webscarab 和 Paros 代理通常在这两种情况下使用。攻击的成功取决于完整性和逻辑验证机制的失败,并且其利用可能导致 XSS、SQL 注入和其他问题。</p><p>如果满足以下条件,参数篡改攻击应该是可行的:</p><ul class="list"><li><p>可以控制查询字符串中的参数。</p></li><li><p>使用插件查看数据。</p></li><li><p>尝试攻击代理。</p></li><li><p>使用 Burp 套件阻止数据。</p></li></ul><h2>参数篡改是如何工作的?</h2><p>Web 服务器的主要功能是提供文件服务。在 Web 会话期间,Web 浏览器和 Web 应用程序之间传输参数以跟踪客户端的会话,从而避免在服务器端使用复杂的数据库。URL 查询字符串、表单字段和 Cookie 都用于传递参数。</p><p>更改表单字段中的参数是参数篡改的一个经典示例。当用户在 HTML 页面上进行选择时,表单字段的值通常会保存并作为 HTTP 请求传递给 Web 应用程序。这些选项包括预选选项(组合框、复选框、单选按钮等)、自由文本和隐藏。攻击者可以修改任何这些值。</p><h2>如何防止参数篡改攻击?</h2><p>以下是一些可以采取的措施来避免篡改攻击的可能性:</p><p><strong>实施数据静态加密和数据传输加密</strong></p><p>数据篡改是通过未经授权的方法对数据进行故意更改(编辑、修改或删除)。数据有两种类型:<em>静态数据</em>和<em>传输数据</em>。这两种情况下,数据都可能被篡改,并通过数字通信被拦截。</p><p>无论是在传输中还是在静态状态下,未经保护的数据都会使公司面临数据篡改和其他风险。加密是确保数据在传输和静态状态下安全的最有效方法之一。简单来说,数据加密是将数据从一种形式转换为另一种形式的过程,未经授权的用户无法对其进行解密。</p><p>如果您将客户的信用卡信息保存在数据库中,则对静态数据进行加密可以有效地将客户的敏感信息转换为加密格式,而无需解密密钥就无法对其进行解码或读取。攻击者可能会以某些方式篡改加密数据,但无法以有意义的方式篡改。</p><p><strong>使用写时复制文件系统 (COPW)</strong></p><p>COPW 是一种文件系统,允许数据库服务器维护即时快照。它还可以帮助防止数据篡改。COW 也有助于保护数据免受勒索软件加密尝试等攻击。因此,将文件系统恢复到攻击前的状态,并将数据恢复到其原始状态、检索丢失的数据以及避免任何停机时间变得更容易。</p><p><strong>使用基于散列的消息认证码 (HMAC)</strong></p><p>HMAC 用于确保数据完整性。它由一个密码散列函数和一个秘密密码密钥组成。在使用安全文件传输协议在两个或多个参与方之间发送数据时,数据会附带 HMAC,而不是基本散列。</p><p>此外,可以使用以下方法来避免参数篡改:</p><ul class="list"><li><p>对应用程序的输入使用白名单格式。</p></li><li><p>使用 Web 应用防火墙以获得最大安全性。</p></li><li><p>加密会话 Cookie 以防止篡改。</p></li><li><p>不应使用来自客户端的 Cookie(例如推荐来源)来进行安全决策。</p></li><li><p>参数不应包含在查询字符串中。</p></li><li><p>网站的表单应具有一些内置安全性。</p></li><li><p>使用正则表达式验证或限制数据。</p></li><li><p>所有输入都与服务器端验证进行比较。</p></li><li><p>远离任何隐藏或不需要的数据。</p></li><li><p>尽可能避免干扰。</p></li></ul><p>篡改检测是指设备能够识别正在尝试破坏其安全性的工作尝试。检测到威胁可能使设备能够启动适当的保护措施。</p>