SCW 아이콘
영웅 배경, 구분선 없음
블로그

程序员征服安全:分享与学习系列-业务逻辑问题

야프 카란 싱
게시일 : 2019년 3월 28일
마지막 업데이트: 2026년 3월 10일

与我们在本Share & Learn系列中介绍的大多数其他漏洞不同,业务逻辑问题与编码错误没有直接关系。尽管编码问题可能是问题的一部分,但业务逻辑错误通常是由首次创建应用程序时的设计缺陷或错误的逻辑假设造成的。

如果用户在使用应用程序时采取了意想不到的操作,则可能会出现业务逻辑问题。这几乎可以是任何事情——从意外取消订单、使用优惠券代码的次数过多,或者干脆跳过预期的步骤并采取应用程序不知道如何处理的操作。利用业务逻辑缺陷甚至不需要任何培训,只需要一个心怀好奇心并愿意跳出框框思考的恶意用户即可。

在本集中,我们将学习:

  • 攻击者如何利用业务逻辑中的缺陷
  • 为什么存在业务逻辑缺陷的应用程序很危险
  • 可以防止业务逻辑错误的技术。

攻击者如何利用业务逻辑问题?

与大多数漏洞不同,我们无法指出可能导致此漏洞的特定代码串。相反,这取决于用户采取意想不到的操作,以及哪些程序不知道如何处理。举个例子,假设银行应用程序允许用户将钱转入其他账户。但是,恶意用户不是汇款,而是尝试向另一个账户汇款负数。银行应用程序将如何反应?它会崩溃吗?它会拒绝转移吗?或者它实际上会向发起转账的用户退款以平衡负数吗?

电子商务网站特别容易受到业务逻辑缺陷的影响,尽管不是独一无二的,因为它们是为许多用户互动而设计的,并且包含许多组件。用户意外取消订单、多次尝试使用单张优惠券,甚至超载购物车的用户,可能会给申请带来意想不到的条件。实际上,没有办法知道程序在遇到未知情况时会如何反应。最好的情况可能是生成错误消息,但不能保证应用程序不会采取更糟糕的操作,例如免费提供商品。

为什么业务逻辑问题很危险?

业务逻辑问题可能极其危险,因为任何人都可以利用这些问题,即使是没有经过编程或黑客培训的人也是如此。实际上,它只需要实验和时间,四处点击并尝试发现应用程序设计响应方式中的缺陷。而且,一旦恶意用户发现网站业务逻辑中的漏洞,你可以打赌他们会尽可能地利用这个漏洞。

最大的危险通常是经济上的,让用户在不付费的情况下购买20台大屏幕电视或类似的东西。但是业务逻辑缺陷也可能导致其他问题。例如,如果保护网站的密码功能不知道如果用户不断点击 “取消” 该怎么做,则可能会让他们完全绕过登录过程。

实际上无法预测业务逻辑问题可能造成多大的损害。通常,问题的第一个迹象是在用户利用问题很久之后才出现的。

修复业务逻辑问题

不幸的是,使用漏洞扫描器等常用工具无助于识别或修复业务逻辑问题,因为业务逻辑问题的测试不容易自动化。避免它们的最佳方法是在开发应用程序时对负面测试用例进行良好的规划、错误处理和测试。这首先需要一组明确定义的业务规则,其中包括应用程序设计要采取的所有可能和预期的操作。

有了业务规则计划,防止业务逻辑缺陷蔓延的最佳方法之一是创建流程图,显示数据和交易应在应用程序内流动的所有可能方式。这包括用户能够做出选择或输入数据的每个实例的建模行为。不断检查以确保流程图中可能的操作与业务规则计划中的功能相匹配。

最后,使用威胁建模来帮助识别设计、实施和测试阶段业务逻辑中的缺陷。作为万无一失的保障,创建程序在遇到任何未特别预期的情况时应采取的操作。这可能很简单,比如拒绝该操作并提醒管理员注意遇到的问题。

有关业务逻辑问题的更多信息

要进一步阅读,你可以看看上的 OWASP 页面 业务逻辑问题。你还可以使用以下方法来测试你新获得的防御知识 免费演示 Secure Code Warrior 平台,该平台培训网络安全团队成为终极网络战士。要了解有关克服此漏洞以及其他恶棍威胁的更多信息,请访问 安全代码勇士博客

准备好立即寻找和摧毁业务逻辑漏洞了吗?前往平台测试你的技能: [从这里开始]

리소스 보기
리소스 보기

尽管编码问题可能是问题的一部分,但业务逻辑错误通常是由首次创建应用程序时的设计缺陷或错误的逻辑假设造成的。

더 많은 것에 관심이 있으신가요?

야프 카란 싱은 보안 코딩 전도자, 수석 싱 및 공동 설립자입니다 Secure Code Warrior .

더 알아보세요

Secure Code Warrior는 조직이 소프트웨어 개발 생명주기 전반에 걸쳐 코드를 보호하고 사이버 보안을 최우선으로 하는 문화를 조성하도록 지원합니다. 앱 보안 관리자, 개발자, 최고정보보안책임자(CISO) 또는 보안 관련 업무를 수행하는 모든 분들에게, 저희는 조직이 안전하지 않은 코드와 관련된 위험을 줄일 수 있도록 돕습니다.

데모 예약
공유하기:
링크드인 브랜드사회적x 로고
저자
야프 카란 싱
게시일: 2019년 3월 28일

야프 카란 싱은 보안 코딩 전도자, 수석 싱 및 공동 설립자입니다 Secure Code Warrior .

공유하기:
링크드인 브랜드사회적x 로고

与我们在本Share & Learn系列中介绍的大多数其他漏洞不同,业务逻辑问题与编码错误没有直接关系。尽管编码问题可能是问题的一部分,但业务逻辑错误通常是由首次创建应用程序时的设计缺陷或错误的逻辑假设造成的。

如果用户在使用应用程序时采取了意想不到的操作,则可能会出现业务逻辑问题。这几乎可以是任何事情——从意外取消订单、使用优惠券代码的次数过多,或者干脆跳过预期的步骤并采取应用程序不知道如何处理的操作。利用业务逻辑缺陷甚至不需要任何培训,只需要一个心怀好奇心并愿意跳出框框思考的恶意用户即可。

在本集中,我们将学习:

  • 攻击者如何利用业务逻辑中的缺陷
  • 为什么存在业务逻辑缺陷的应用程序很危险
  • 可以防止业务逻辑错误的技术。

攻击者如何利用业务逻辑问题?

与大多数漏洞不同,我们无法指出可能导致此漏洞的特定代码串。相反,这取决于用户采取意想不到的操作,以及哪些程序不知道如何处理。举个例子,假设银行应用程序允许用户将钱转入其他账户。但是,恶意用户不是汇款,而是尝试向另一个账户汇款负数。银行应用程序将如何反应?它会崩溃吗?它会拒绝转移吗?或者它实际上会向发起转账的用户退款以平衡负数吗?

电子商务网站特别容易受到业务逻辑缺陷的影响,尽管不是独一无二的,因为它们是为许多用户互动而设计的,并且包含许多组件。用户意外取消订单、多次尝试使用单张优惠券,甚至超载购物车的用户,可能会给申请带来意想不到的条件。实际上,没有办法知道程序在遇到未知情况时会如何反应。最好的情况可能是生成错误消息,但不能保证应用程序不会采取更糟糕的操作,例如免费提供商品。

为什么业务逻辑问题很危险?

业务逻辑问题可能极其危险,因为任何人都可以利用这些问题,即使是没有经过编程或黑客培训的人也是如此。实际上,它只需要实验和时间,四处点击并尝试发现应用程序设计响应方式中的缺陷。而且,一旦恶意用户发现网站业务逻辑中的漏洞,你可以打赌他们会尽可能地利用这个漏洞。

最大的危险通常是经济上的,让用户在不付费的情况下购买20台大屏幕电视或类似的东西。但是业务逻辑缺陷也可能导致其他问题。例如,如果保护网站的密码功能不知道如果用户不断点击 “取消” 该怎么做,则可能会让他们完全绕过登录过程。

实际上无法预测业务逻辑问题可能造成多大的损害。通常,问题的第一个迹象是在用户利用问题很久之后才出现的。

修复业务逻辑问题

不幸的是,使用漏洞扫描器等常用工具无助于识别或修复业务逻辑问题,因为业务逻辑问题的测试不容易自动化。避免它们的最佳方法是在开发应用程序时对负面测试用例进行良好的规划、错误处理和测试。这首先需要一组明确定义的业务规则,其中包括应用程序设计要采取的所有可能和预期的操作。

有了业务规则计划,防止业务逻辑缺陷蔓延的最佳方法之一是创建流程图,显示数据和交易应在应用程序内流动的所有可能方式。这包括用户能够做出选择或输入数据的每个实例的建模行为。不断检查以确保流程图中可能的操作与业务规则计划中的功能相匹配。

最后,使用威胁建模来帮助识别设计、实施和测试阶段业务逻辑中的缺陷。作为万无一失的保障,创建程序在遇到任何未特别预期的情况时应采取的操作。这可能很简单,比如拒绝该操作并提醒管理员注意遇到的问题。

有关业务逻辑问题的更多信息

要进一步阅读,你可以看看上的 OWASP 页面 业务逻辑问题。你还可以使用以下方法来测试你新获得的防御知识 免费演示 Secure Code Warrior 平台,该平台培训网络安全团队成为终极网络战士。要了解有关克服此漏洞以及其他恶棍威胁的更多信息,请访问 安全代码勇士博客

准备好立即寻找和摧毁业务逻辑漏洞了吗?前往平台测试你的技能: [从这里开始]

리소스 보기
리소스 보기

아래 양식을 작성하여 보고서를 다운로드하세요

귀하의 허락을 받아 저희 제품 및/또는 관련 보안 코딩 주제에 관한 정보를 보내드리고자 합니다. 귀하의 개인정보는 항상 매우 신중하게 취급되며, 마케팅 목적으로 타사에 판매하지 않을 것을 약속드립니다.

제출
scw 성공 아이콘
scw 오류 아이콘
양식을 제출하려면 "분석" 쿠키를 활성화하십시오. 완료 후에는 원할 때 다시 비활성화할 수 있습니다.

与我们在本Share & Learn系列中介绍的大多数其他漏洞不同,业务逻辑问题与编码错误没有直接关系。尽管编码问题可能是问题的一部分,但业务逻辑错误通常是由首次创建应用程序时的设计缺陷或错误的逻辑假设造成的。

如果用户在使用应用程序时采取了意想不到的操作,则可能会出现业务逻辑问题。这几乎可以是任何事情——从意外取消订单、使用优惠券代码的次数过多,或者干脆跳过预期的步骤并采取应用程序不知道如何处理的操作。利用业务逻辑缺陷甚至不需要任何培训,只需要一个心怀好奇心并愿意跳出框框思考的恶意用户即可。

在本集中,我们将学习:

  • 攻击者如何利用业务逻辑中的缺陷
  • 为什么存在业务逻辑缺陷的应用程序很危险
  • 可以防止业务逻辑错误的技术。

攻击者如何利用业务逻辑问题?

与大多数漏洞不同,我们无法指出可能导致此漏洞的特定代码串。相反,这取决于用户采取意想不到的操作,以及哪些程序不知道如何处理。举个例子,假设银行应用程序允许用户将钱转入其他账户。但是,恶意用户不是汇款,而是尝试向另一个账户汇款负数。银行应用程序将如何反应?它会崩溃吗?它会拒绝转移吗?或者它实际上会向发起转账的用户退款以平衡负数吗?

电子商务网站特别容易受到业务逻辑缺陷的影响,尽管不是独一无二的,因为它们是为许多用户互动而设计的,并且包含许多组件。用户意外取消订单、多次尝试使用单张优惠券,甚至超载购物车的用户,可能会给申请带来意想不到的条件。实际上,没有办法知道程序在遇到未知情况时会如何反应。最好的情况可能是生成错误消息,但不能保证应用程序不会采取更糟糕的操作,例如免费提供商品。

为什么业务逻辑问题很危险?

业务逻辑问题可能极其危险,因为任何人都可以利用这些问题,即使是没有经过编程或黑客培训的人也是如此。实际上,它只需要实验和时间,四处点击并尝试发现应用程序设计响应方式中的缺陷。而且,一旦恶意用户发现网站业务逻辑中的漏洞,你可以打赌他们会尽可能地利用这个漏洞。

最大的危险通常是经济上的,让用户在不付费的情况下购买20台大屏幕电视或类似的东西。但是业务逻辑缺陷也可能导致其他问题。例如,如果保护网站的密码功能不知道如果用户不断点击 “取消” 该怎么做,则可能会让他们完全绕过登录过程。

实际上无法预测业务逻辑问题可能造成多大的损害。通常,问题的第一个迹象是在用户利用问题很久之后才出现的。

修复业务逻辑问题

不幸的是,使用漏洞扫描器等常用工具无助于识别或修复业务逻辑问题,因为业务逻辑问题的测试不容易自动化。避免它们的最佳方法是在开发应用程序时对负面测试用例进行良好的规划、错误处理和测试。这首先需要一组明确定义的业务规则,其中包括应用程序设计要采取的所有可能和预期的操作。

有了业务规则计划,防止业务逻辑缺陷蔓延的最佳方法之一是创建流程图,显示数据和交易应在应用程序内流动的所有可能方式。这包括用户能够做出选择或输入数据的每个实例的建模行为。不断检查以确保流程图中可能的操作与业务规则计划中的功能相匹配。

最后,使用威胁建模来帮助识别设计、实施和测试阶段业务逻辑中的缺陷。作为万无一失的保障,创建程序在遇到任何未特别预期的情况时应采取的操作。这可能很简单,比如拒绝该操作并提醒管理员注意遇到的问题。

有关业务逻辑问题的更多信息

要进一步阅读,你可以看看上的 OWASP 页面 业务逻辑问题。你还可以使用以下方法来测试你新获得的防御知识 免费演示 Secure Code Warrior 平台,该平台培训网络安全团队成为终极网络战士。要了解有关克服此漏洞以及其他恶棍威胁的更多信息,请访问 安全代码勇士博客

准备好立即寻找和摧毁业务逻辑漏洞了吗?前往平台测试你的技能: [从这里开始]

웹 세미나 시청
시작하자
더 알아보세요

아래 링크를 클릭하고 이 자료의 PDF를 다운로드하세요.

Secure Code Warrior는 조직이 소프트웨어 개발 생명주기 전반에 걸쳐 코드를 보호하고 사이버 보안을 최우선으로 하는 문화를 조성하도록 지원합니다. 앱 보안 관리자, 개발자, 최고정보보안책임자(CISO) 또는 보안 관련 업무를 수행하는 모든 분들에게, 저희는 조직이 안전하지 않은 코드와 관련된 위험을 줄일 수 있도록 돕습니다.

보고서 보기데모 예약
리소스 보기
공유하기:
링크드인 브랜드사회적x 로고
더 많은 것에 관심이 있으신가요?

공유하기:
링크드인 브랜드사회적x 로고
저자
야프 카란 싱
게시일: 2019년 3월 28일

야프 카란 싱은 보안 코딩 전도자, 수석 싱 및 공동 설립자입니다 Secure Code Warrior .

공유하기:
링크드인 브랜드사회적x 로고

与我们在本Share & Learn系列中介绍的大多数其他漏洞不同,业务逻辑问题与编码错误没有直接关系。尽管编码问题可能是问题的一部分,但业务逻辑错误通常是由首次创建应用程序时的设计缺陷或错误的逻辑假设造成的。

如果用户在使用应用程序时采取了意想不到的操作,则可能会出现业务逻辑问题。这几乎可以是任何事情——从意外取消订单、使用优惠券代码的次数过多,或者干脆跳过预期的步骤并采取应用程序不知道如何处理的操作。利用业务逻辑缺陷甚至不需要任何培训,只需要一个心怀好奇心并愿意跳出框框思考的恶意用户即可。

在本集中,我们将学习:

  • 攻击者如何利用业务逻辑中的缺陷
  • 为什么存在业务逻辑缺陷的应用程序很危险
  • 可以防止业务逻辑错误的技术。

攻击者如何利用业务逻辑问题?

与大多数漏洞不同,我们无法指出可能导致此漏洞的特定代码串。相反,这取决于用户采取意想不到的操作,以及哪些程序不知道如何处理。举个例子,假设银行应用程序允许用户将钱转入其他账户。但是,恶意用户不是汇款,而是尝试向另一个账户汇款负数。银行应用程序将如何反应?它会崩溃吗?它会拒绝转移吗?或者它实际上会向发起转账的用户退款以平衡负数吗?

电子商务网站特别容易受到业务逻辑缺陷的影响,尽管不是独一无二的,因为它们是为许多用户互动而设计的,并且包含许多组件。用户意外取消订单、多次尝试使用单张优惠券,甚至超载购物车的用户,可能会给申请带来意想不到的条件。实际上,没有办法知道程序在遇到未知情况时会如何反应。最好的情况可能是生成错误消息,但不能保证应用程序不会采取更糟糕的操作,例如免费提供商品。

为什么业务逻辑问题很危险?

业务逻辑问题可能极其危险,因为任何人都可以利用这些问题,即使是没有经过编程或黑客培训的人也是如此。实际上,它只需要实验和时间,四处点击并尝试发现应用程序设计响应方式中的缺陷。而且,一旦恶意用户发现网站业务逻辑中的漏洞,你可以打赌他们会尽可能地利用这个漏洞。

最大的危险通常是经济上的,让用户在不付费的情况下购买20台大屏幕电视或类似的东西。但是业务逻辑缺陷也可能导致其他问题。例如,如果保护网站的密码功能不知道如果用户不断点击 “取消” 该怎么做,则可能会让他们完全绕过登录过程。

实际上无法预测业务逻辑问题可能造成多大的损害。通常,问题的第一个迹象是在用户利用问题很久之后才出现的。

修复业务逻辑问题

不幸的是,使用漏洞扫描器等常用工具无助于识别或修复业务逻辑问题,因为业务逻辑问题的测试不容易自动化。避免它们的最佳方法是在开发应用程序时对负面测试用例进行良好的规划、错误处理和测试。这首先需要一组明确定义的业务规则,其中包括应用程序设计要采取的所有可能和预期的操作。

有了业务规则计划,防止业务逻辑缺陷蔓延的最佳方法之一是创建流程图,显示数据和交易应在应用程序内流动的所有可能方式。这包括用户能够做出选择或输入数据的每个实例的建模行为。不断检查以确保流程图中可能的操作与业务规则计划中的功能相匹配。

最后,使用威胁建模来帮助识别设计、实施和测试阶段业务逻辑中的缺陷。作为万无一失的保障,创建程序在遇到任何未特别预期的情况时应采取的操作。这可能很简单,比如拒绝该操作并提醒管理员注意遇到的问题。

有关业务逻辑问题的更多信息

要进一步阅读,你可以看看上的 OWASP 页面 业务逻辑问题。你还可以使用以下方法来测试你新获得的防御知识 免费演示 Secure Code Warrior 平台,该平台培训网络安全团队成为终极网络战士。要了解有关克服此漏洞以及其他恶棍威胁的更多信息,请访问 安全代码勇士博客

准备好立即寻找和摧毁业务逻辑漏洞了吗?前往平台测试你的技能: [从这里开始]

목록

PDF 다운로드
리소스 보기
더 많은 것에 관심이 있으신가요?

야프 카란 싱은 보안 코딩 전도자, 수석 싱 및 공동 설립자입니다 Secure Code Warrior .

더 알아보세요

Secure Code Warrior는 조직이 소프트웨어 개발 생명주기 전반에 걸쳐 코드를 보호하고 사이버 보안을 최우선으로 하는 문화를 조성하도록 지원합니다. 앱 보안 관리자, 개발자, 최고정보보안책임자(CISO) 또는 보안 관련 업무를 수행하는 모든 분들에게, 저희는 조직이 안전하지 않은 코드와 관련된 위험을 줄일 수 있도록 돕습니다.

데모 예약다운로드
공유하기:
링크드인 브랜드사회적x 로고
자원 센터

시작하는 데 도움이 되는 자료

더 많은 게시물
자원 센터

시작하는 데 도움이 되는 자료

더 많은 게시물