業務邏輯攻擊是什么,如何有效進行防護

想象一下:您的開發團隊剛推出了一款令人驚嘆的全新應用程序,它具有頂級的API安全性,通過客戶端保護對其進行了強化,甚至還設置了針對機器人攻擊的防御措施。你感到這款產品很有安全保障,自己的團隊出色地完成了工作。

但有一點要特別之處的是,盡管您付出了很多努力,但您的應用程序仍然可能面臨受到攻擊的風險。事實上攻擊甚至可能不會觸發單個安全警報,這種攻擊風險來自于業務邏輯。如果您尚未將業務邏輯攻擊 (BLA) 作為威脅建模的一部分進行評估,那么您應該立即重新評估您的產品。

隨著各類前后端框架的成熟和完善,傳統的SQL注入、XSS等常規漏洞在Web系統里逐步減少,而攻擊者更傾向于使用業務邏輯漏洞來進行突破。業務邏輯漏洞,具有攻擊特征少、自動化脆弱性工具無法掃出等特點,也為檢測和軟件的安全性保障帶來了一定的難度。

什么是業務邏輯?

業務邏輯通常由一組規則或者算法來描述業務流程,涉及到數據的處理、存儲、分析和展示等方面,它是一個抽象的概念,在軟件開發中占據著重要的地位。在面向對象編程中,業務邏輯通常被封裝在對象的方法中,以此來實現對數據的操作和處理。在Web應用程序中,業務邏輯通常會包含在Controller層中,用于處理用戶請求和響應結果。因此,業務邏輯是程序中最核心的部分,決定了整個程序的運行流程和結果。

業務邏輯本質上就是對真實業務的映射與抽象,實際上,我們口口聲聲的業務邏輯,只是用代碼實現的真實業務的規則映射。

什么是業務邏輯漏洞?

業務邏輯漏洞是一類特殊的安全漏洞,業務邏輯漏洞屬于設計漏洞而非實現漏洞,是業務邏輯設計不嚴謹導致的漏洞。

業務邏輯漏洞通常是由于無法預期可能發生的異常應用程序狀態,因此無法安全處理它們所導致的。這些缺陷通常對那些沒有明確尋找它們的人來說是不可見的,因為它們通常不會在應用程序的正常使用中暴露出來。但是,攻擊者可以通過開發人員從未想過的方式與應用程序進行交互來利用這些漏洞。常見的業務邏輯漏洞如:參數篡改、重放攻擊、流程漏洞等。


什么是業務邏輯攻擊

業務邏輯攻擊是一種網絡攻擊,網絡攻擊者利用應用程序的預期功能和流程,而不是其技術漏洞。他們操縱工作流程,繞過傳統安全措施,并濫用合法功能來獲得未經授權的訪問或造成損害,而不觸發安全警報。


業務邏輯漏洞產生的核心原因:

編程時,只考慮了常規的操作流程(如在A情況下,就會出現B,此時執行C即可)沒有考慮當用戶執行了意料之外的X時會發生什么。這種對于異常情況的欠考慮,最終導致了安全漏洞的產生。

業務邏輯漏洞的主要特點:

獨特性:通常與特定應用程序的業務流程密切相關。
難以檢測:由于它們與應用程序的正常功能密切相關,因此使用常規的自動化工具難以發現。
非技術性:往往與邏輯流程和業務決策有關,而不是技術實現。


邏輯漏洞主要產生的位置

①.登錄處 ? ?
②.業務辦理處 ? ?
③.驗證碼處 ? ?
④.支付處 ? ?

登錄處存在的邏輯漏洞

1.可以暴力破解用戶名或密碼

沒有驗證碼機制,沒有根據用戶名限制失敗次數,沒有根據ip限制失敗次數等等

2.session沒有清空

登出后服務器端的session內容沒有清除,因此客戶端重新帶回登出前的session,也能夠達到重新登錄


業務辦理處存在的邏輯漏洞

1.水平越權

通常說的越權一般是修改get或者post參數,導致的查看到他人的業務信息,一般看訂單處,個人信息處等位置的參數

2.篡改手機號

在需要手機號的短信驗證處,抓包修改手機號,可能做到非本賬號手機號獲取能夠編輯本賬號的驗證碼


驗證碼處存在的邏輯漏洞

1.登錄驗證碼未刷新

沒有清空session中的驗證碼信息

2.手機或郵箱驗證碼可爆破

沒有對應的手機號或郵箱,但如果驗證碼純數字4,5位左右,沒有次數校驗,可以爆破

3.手機或郵箱驗證碼回顯到客戶端

在發送給手機或者郵箱驗證碼時,會在response包中有驗證碼,因此不需要手機和郵箱就可以獲取驗證碼


支付處存在的邏輯漏洞

1.修改商品編號?

如果業務是通過商品編號來判斷價格的話,可能存在只修改A商品編號為B商品編號,做到以A商品的價格購買B商品

2.金額修改

金額直接寫在了post或者get請求中,對其進行修改達到修改了商品金額的效果

3.商品數量修改

在購買時,如果一個商品為負數,那么它的價格則會是負數,如果購買多種商品,將其中一個設為負數,降低整體的價格


邏輯漏洞的特殊性與重要性

常見的OWASP漏洞,比如SQL注入漏洞,或多或少都具有某些識別特征,都是可以被漏洞掃描工具給自動或半自動化地掃描出來的,但是這樣的工具卻很難準確捕捉業務邏輯漏洞----這是因為業務邏輯漏洞本質上屬于設計漏洞,是結構上的而不是實現上的,每一個業務邏輯漏洞都有它的獨特性,很難復制或通過腳本捕獲,因此邏輯漏洞大多需要配合代碼審計和手工測試才能被發現---邏輯漏洞是工具無法替代手工的一類漏洞。


為什么要重視業務邏輯攻擊

1、傳統的安全措施還不夠

雖然Web應用程序防火墻 (WAF) 對于保護應用程序至關重要,但它無法完全防范業務邏輯攻擊。由于 BLA的特質,典型的安全解決方案通常無法檢測和阻止這些威脅。

2、數據丟失和財務損失的風險

成功的業務邏輯攻擊可能會導致敏感數據被盜,包括個人詳細信息和財務信息,從而導致代價高昂的數據泄露甚至財務損失。比較典型的例子是身份驗證繞過,攻擊者繞過身份驗證過程,并可以通過升級權限或訪問敏感信息來濫用應用程序內的業務邏輯,這可能會導致關鍵數據丟失并損害公司聲譽。

3、聲譽受損的可能性

數據丟失或成功的業務邏輯攻擊可能會導致公司的聲譽受損。在消費者對其在線安全越來越謹慎的時代,任何攻擊都可能迅速損害您的業務,導致客戶流失、收入減少或品牌玷污,甚至帶來法律后果。解決 BLA 對于維持公眾信任和讓客戶滿意至關重要。

4、應用程序和API的復雜性增加

隨著應用程序和API變得越來越復雜,與保護它們相關的風險和困難也隨之增加。分布式微服務、多云架構以及API使用的快速增長使得理解和解決業務邏輯攻擊帶來的獨特安全挑戰變得至關重要。


如何保護應用程序免受 BLA 的侵害

可以采取以下步驟來保護應用程序免受它們的侵害:

1、了解業務邏輯:了解應用程序的工作流程、流程和預期的用戶行為,以識別潛在的弱點和漏洞。

2、實施高級應用程序安全性:投資專門用于管理和保護API的高級安全解決方案,例如應用程序安全平臺。這將有助于識別破壞授權、機器人攻擊等威脅,并防御業務邏輯攻擊。

3、監控和分析用戶行為:采用可以分析用戶行為(包括應用程序使用模式)并檢測可能表明潛在BLA的可疑活動的工具和技術。

4、分段和控制訪問:限制API的范圍并根據用戶角色實施訪問控制,最大程度地減少攻擊成功時的潛在損害。

5.使用代碼審計產品:幫助企業從安全角度對應用系統的所有邏輯路徑進行測試,通過分析源代碼,充分挖掘代碼中存在的安全缺陷以及規范性缺陷。找到普通安全測試所無法發現的如二次注入、反序列化、xml實體注入等安全漏洞。主要的內容在于:

1.系統所用開源框架,包含java反序列化漏洞,導致遠程代碼執行。Spring、Struts2的相關安全。

2.應用代碼關注要素,日志偽造漏洞,密碼明文存儲,資源管理,調試程序殘留,二次注入,反序列化。

3.API濫用,不安全的數據庫調用、隨機數創建、內存管理調用、字符串操作,危險的系統方法調用。

4.源代碼設計,不安全的域、方法、類修飾符未使用的外部引用、代碼。

5.錯誤處理不當,程序異常處理、返回值用法、空指針、日志記錄。

6.直接對象引用,直接引用數據庫中的數據、文件系統、內存空間。

7.資源濫用,不安全的文件創建/修改/刪除,競爭沖突,內存泄露。

8.業務邏輯錯誤,欺騙密碼找回功能,規避交易限制,越權缺陷Cookies和session的問題。

9.規范性權限配置,數據庫配置規范,Web服務的權限配置SQL語句編寫規范。

業務邏輯攻擊變得越來越普遍,對應用程序和API的安全構成了重大威脅。為了保護數據、聲譽和客戶免受潛在損害,多層安全方法至關重要,不要因業務邏輯攻擊而措手不及,花時間投資應用程序安全性,才能領先網絡攻擊者一步來保障自己。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/12077.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/12077.shtml
英文地址,請注明出處:http://en.pswp.cn/web/12077.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

解決Java Web應用中下載文件無法打開的問題

在Java Web應用中,文件下載是一個常見的功能。但有時候,即使代碼看起來正確,下載的文件卻無法正確打開。 問題描述 假設我們有以下代碼用于下載文件: response.addHeader("Content-Disposition", "attachment;fi…

服務器通的遠程桌面連接不上,關于服務器通暢但遠程桌面連接不上問題的專業分析

在日常的企業IT管理中,服務器遠程桌面連接是一個重要的操作功能。然而,有時會出現服務器網絡通暢,但遠程桌面無法連接的情況。 問題分析 1. 防火墻或安全組設置問題:服務器的防火墻或安全組可能阻止了遠程桌面連接的端口&#xf…

adobe安裝“Error:SyntaxError:JSON Parse error:Unexpec

mac電腦安裝Adobe時,會提示錯誤“Error:SyntaxError:JSON Parse error:Unexpected EOF”,這是怎么回事兒的,不管您是安裝AI、PS、PR還是LR,如果也遇到相同的問題,可以參考一下方法解決: 「adobe安裝提示錯誤…

Java RMI反序列化總結篇-01

1.java rmi反序列化 RMI 允許一個應用程序訪問另外一個服務器或虛擬機上的對象,方法和服務,它使遠程方法調用就像在本地調用一樣簡單。它為用戶屏蔽了底層的網絡傳輸細節,使用的時候只需適當處理異常即可。所以 RMI 是非常容易使用的&#x…

Kubernetes集群安裝

Kubernetes集群安裝 環境準備 192.168.1.53 k8s-master 192.168.1.52 k8s-node-1 192.168.1.51 k8s-node-2 設置三臺機器的主機名: Master上執行: [rootlocalhost ~]# hostnamectl --static set-hostname k8s-masterNode1上執行: [ro…

vue3+vite項目部署服務器,選擇非根目錄訪問

背景 vue3vite項目,需要部署服務器。 但是根目錄已經部署了另外一個項目A了,這個時候要在部署另外一個項目B。 問題 比如你的地址是http://test.com 之前直接輸入http://test.com即可訪問A項目 如果B項目也這么干的話就沖突了 訪問A:http…

哪款骨傳導耳機最值得入手?精選5款頂尖配置的骨傳導耳機,閉眼入也不踩雷!

作為一名有著多年工作經驗的數碼博主,我見證了無數因盲目追求新穎而引發的聽力問題。在此,我必須鄭重提醒大家,雖然市面上充斥著眾多聲稱能提供卓越音質和佩戴舒適度的骨傳導耳機品牌,但它們之間存在大量劣質產品,這類…

centos7安裝zabbix-server

zabbixan-server安裝 環境安裝zabbix安裝zabbix配置apachezabbix-UI前端配置修改zabbix為中文語言 環境 準備: centos7系統、mysql數據庫/MariaDB數據庫 mysql數據庫可參照:https://blog.csdn.net/weixin_61367575/article/details/138774428?spm1001.…

算法-卡爾曼濾波之卡爾曼濾波的第二個方程:預測方程(狀態外推方程)

在上一節中,使用了靜態模型,我們推導出了卡爾曼濾波的狀態更新方程,但是在實際情況下,系統都是動態,預測階段,前后時刻的狀態是改變的,此時我們引入預測方程,也叫狀態外推方程&#…

企業為什么進行大數據遷移以及注意事項

在當今數字化時代,數據的遷移成為了企業優化其數據架構、提高數據處理能力、確保業務連續性和數據安全的關鍵步驟。企業可能出于多種原因,如成本效益、性能提升、系統升級、數據集中管理或云服務集成等,選擇將數據從一個存儲系統遷移到另一個…

Spring Boot 整合訊飛星火3.5通過接口Api接口實現聊天功能(首發)復制粘貼即可使用,后續更新WebSocket實現聊天功能

程序員必備網站&#xff1a; 天夢星服務平臺 (tmxkj.top)https://tmxkj.top/#/ 1.pom.xml <dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.72</version></dependency><depen…

html5關于WebSocket的一些特點與用例

WebSocket通信機制是一種在單個TCP連接上進行全雙工通信的協議&#xff0c;它允許服務器主動向客戶端推送數據&#xff0c;而無需等待客戶端的請求。以下是WebSocket通信的主要機制&#xff1a; 握手協議&#xff1a;WebSocket通信的第一步是通過HTTP協議進行握手。當客戶端發…

C++ QT設計模式:訪問者模式

基本概念 訪問者模式&#xff08;Visitor Pattern&#xff09;是一種行為型設計模式&#xff0c;它允許你在不改變被訪問類的前提下&#xff0c;定義對其進行操作的新操作。 實現的模塊有&#xff1a; ObjectStructure&#xff08;對象結構&#xff09;&#xff1a;用于存儲…

輕松拿下指針(5)

文章目錄 一、回調函數是什么二、qsort使用舉例三、qsort函數的模擬實現 一、回調函數是什么 回調函數就是?個通過函數指針調?的函數。 如果你把函數的指針&#xff08;地址&#xff09;作為參數傳遞給另?個函數&#xff0c;當這個指針被?來調?其所指向的函數 時&#x…

計算模型的邊界

https://github.com/libigl/libigl.git 這是幾何計算庫&#xff0c;可以計算出模型的邊界 #define _CRT_SECURE_NO_WARNINGS#include <iostream>#include <igl/boundary_loop.h>#include <igl/list_to_matrix.h>int main(){std::vector<std::vector<…

肺部營養“救星”,讓每次呼吸更自由

?#肺科營養#朗格力#班古營養#復合營養素#肺部營養# 正常的健康人,每天自由幸福的呼吸。但是對于肺病患者來說,特別是慢阻肺人群,每一次呼吸都可能是一場挑戰,每一口氣都顯得彌足珍貴。 肺病患者號稱沉默的“呼吸殺手”,它雖然沉默,但不代表它沒能力,除了引起肺功能下降,氧氣…

云商店如何讓更多企業摘到技術普惠的“果實”?

文 | 智能相對論 作者 | 沈浪 現階段&#xff0c;越是工業體系發達的地區&#xff0c;越需要加速技術普惠的步伐。比如&#xff0c;在蘇州&#xff0c;華為云就在聯合當地政府、企業伙伴打造以華為云云商店為重要鏈接的智能化商業增長底座。 華為云云商店以“電商式”的購物…

Git學習——遷移單一倉庫至其他代碼托管平臺

Git學習——遷移單一倉庫至其他代碼托管平臺 簡介流程總結 簡介 因需遷移單一代碼倉庫至其他代碼托管平臺&#xff0c;要遷移的包括倉庫內容以及所有歷史記錄和推送日志。 本文中的方法同樣適用于在同一代碼托管平臺中克隆倉庫。 流程 1. 創建新倉庫&#xff1a; 在目的平臺…

軟件需求規格文檔 (SRS) 模版

文章目錄 軟件需求規格文檔 (SRS) - 范例1. 引言1.1 目的1.2 范圍1.3 定義、縮寫和術語1.4 參考文獻1.5 總體描述 2. 系統概述2.1 系統環境2.2 系統功能概述2.3 用戶特性2.4 假設與約束 3. 功能需求3.1 用戶身份驗證模塊3.1.1 總體概述3.1.2 具體需求3.1.2.1 登錄功能描述3.1.2…

OpenAI春季發布會-免費多模態GPT4O-簡介

前言 2024.5.14&#xff0c;OpenAI宣布即將發布一款性能更為強大的大模型GPT4o&#xff0c;雖然沒有爆出些超級酷炫無敵吊炸天的新玩意&#xff0c;但是這次的多模態模型&#xff0c;大家可以免費用了~~&#xff08;但是&#xff09; 雖然是免費使用&#xff0c;但官方發布會上…