<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"></head><body dir="auto"><div>Ive written about this a little. I also find the best exploits and simulated fraud i have done have been by breaking business logic. :)</div><div><br></div><div><br></div><div>Business logic vulns is very much about breaking a finite state machine. Breaking the logic is breaking transition criterion to move to a new "state" and also breaking state transition order.</div><div><br></div><div>A documented process needs to show how to map transitions between states and understand the criterion upon moving to the next state.</div><div><br></div><div><br></div><div><br>Eoin Keary<div>Owasp Global Board</div><div>+353 87 977 2988</div><div><br></div></div><div><br>On 24 Oct 2013, at 19:27, Jeff Williams <<a href="mailto:jeff.williams@owasp.org">jeff.williams@owasp.org</a>> wrote:<br><br></div><blockquote type="cite"><div><div dir="ltr">As requested, I took a quick shot at removing information related to simple validation, parameter tampering, object references, and access control.  I suggested a few categories of business logic issues that are more in line with the types of flaws that I think of in this widely misunderstood category.  There's a lot more work to fill in and explain these areas. I'm not at all tied to any of the material or categories here, so please feel free to change whatever you like.<div>
<br></div><div>--Jeff</div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Thu, Oct 24, 2013 at 11:37 AM, Jim Manico <span dir="ltr"><<a href="mailto:jim.manico@owasp.org" target="_blank">jim.manico@owasp.org</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Sounds good, Eric and Jeff.<br>
<br>
Can you both jump in and help edit the cheat sheet then?<br>
<br>
<a href="https://www.owasp.org/index.php/Business_Logic_Security_Cheat_Sheet" target="_blank">https://www.owasp.org/index.php/Business_Logic_Security_Cheat_Sheet</a><br>
<br>
Cheers,<br>
Jim<br>
<div class="HOEnZb"><div class="h5"><br>
<br>
> I agree with Jeff in principle on this one. The term "business logic<br>
> flaw" is often used to encompass, dare I say this, anything an automated<br>
> tool cannot find. When, more correctly, it focuses on those issues with<br>
> strong business context that do not tie directly to a commonly excepted<br>
> vulnerability class/CVE/etc... unless the referenced taxonomy consists<br>
> of insanely broad definitions ;)<br>
><br>
> -Eric<br>
><br>
> On 10/24/13 10:46 AM, Jim Manico wrote:<br>
>> Let me try that again, Jeff. I do not agree that 90% of the cheatsheet<br>
>> should be removed, but adding your suggestions below is useful. I'll<br>
>> send an updated CS to the list when done.<br>
>><br>
>> Regards,<br>
>> --<br>
>> Jim Manico<br>
>> @Manicode<br>
>> <a href="tel:%28808%29%20652-3805" value="+18086523805">(808) 652-3805</a><br>
>><br>
>> On Oct 24, 2013, at 9:38 AM, Jeff Williams <<a href="mailto:jeff.williams@owasp.org">jeff.williams@owasp.org</a><br>
>> <mailto:<a href="mailto:jeff.williams@owasp.org">jeff.williams@owasp.org</a>>> wrote:<br>
>><br>
>>> Hi,<br>
>>><br>
>>> I think this is a worthy and important effort, and I appreciate the<br>
>>> work so far, but this draft mostly focuses on problems that are better<br>
>>> suited to remain in other categories. I apologize for the severe<br>
>>> comment, but I would delete 90% of what is in this cheatsheet and<br>
>>> focus on the core problem and solutions.<br>
>>><br>
>>> To me, it's only a business logic problem if you have to know the<br>
>>> business rules in order to identify it.  A business rule is like "only<br>
>>> IRA holders over age 55 can trade index funds."  Notice that it's not<br>
>>> about any security mechanism.  Instead, business logic vulnerabilities<br>
>>> represent a mismatch between business expectations and the<br>
>>> application's code.  You can't find a business logic problem without<br>
>>> first talking to the business about their rules and understanding<br>
>>> their business.  Almost nothing in the article really talks about this<br>
>>> kind of problem.<br>
>>><br>
>>><br>
>>> I think it might help to quote the "Business Logic Vulnerability" page<br>
>>> from OWASP (2008) --<br>
>>><br>
>>>         Most security problems are weaknesses in an application that<br>
>>>         result from a broken or missing security control<br>
>>>         (authentication, access control, input validation, etc...). By<br>
>>>         contrast, business logic vulnerabilities are ways of using the<br>
>>>         legitimate processing flow of an application in a way that<br>
>>>         results in a negative consequence to the organization. For<br>
>>>         example:<br>
>>><br>
>>>           + Purchase orders are not processed before midnight<br>
>>>           + Written authorization is not on file before web access is<br>
>>>             granted<br>
>>>           + Transactions in excess of $2000 are not reviewed by a person<br>
>>><br>
>>>         Many articles that describe business logic problems simply<br>
>>>         take an existing and well understood web application security<br>
>>>         problem and discuss the business consequence of the<br>
>>>         vulnerability. True business logic problems are actually<br>
>>>         different from the typical security vulnerability. Here are<br>
>>>         some examples of problems that are not business logic<br>
>>>         vulnerabilities:<br>
>>><br>
>>>           + Performing a denial of service by locking an auction<br>
>>>             user's account<br>
>>>           + Posting unvalidated input publically<br>
>>>           + Cracking MD5 hashes<br>
>>>           + Brute forcing a password recovery scheme<br>
>>><br>
>>>         Too often, the business logic category is used for<br>
>>>         vulnerabilities that can't be scanned for automatically. This<br>
>>>         makes it very difficult to apply any kind of categorization<br>
>>>         scheme. Business logic problems are different from<br>
>>>         authentication problems and every other category. There are<br>
>>>         many signficant business logic vulnerabilities, but they are<br>
>>>         far less common than the type of items in the OWASP Top Ten<br>
>>>         for example.<br>
>>><br>
>>>         A nice rule-of-thumb to use is that if you need to truly<br>
>>>         understand the business to understand the vulnerability, you<br>
>>>         might have a business-logic problem on your hands. If you<br>
>>>         don't understand the business, you can't see business logic flaws.<br>
>>><br>
>>><br>
>>> Again, I apologize for the harsh comment.  I think this is important<br>
>>> and we should get it as good as we can.<br>
>>><br>
>>> --Jeff<br>
>>><br>
>>><br>
>>> On Wed, Oct 23, 2013 at 1:20 PM, Jim Manico <<a href="mailto:jim.manico@owasp.org">jim.manico@owasp.org</a><br>
>>> <mailto:<a href="mailto:jim.manico@owasp.org">jim.manico@owasp.org</a>>> wrote:<br>
>>><br>
>>>     Hello folks,<br>
>>><br>
>>>     We just released a new cheatsheet, the business logic cheatsheet<br>
>>>     for developers. Kudos to Ashish Rao and David Fern for working on<br>
>>>     this together.<br>
>>><br>
>>>     <a href="https://www.owasp.org/index.php/Business_Logic_Security_Cheat_Sheet" target="_blank">https://www.owasp.org/index.php/Business_Logic_Security_Cheat_Sheet</a><br>
>>><br>
>>>     Feedback is always appreciated.<br>
>>><br>
>>>     Aloha,<br>
>>>     Jim Manico<br>
>>>     OWASP Board Member<br>
>>>     _______________________________________________<br>
>>>     OWASP-Leaders mailing list<br>
>>>     <a href="mailto:OWASP-Leaders@lists.owasp.org">OWASP-Leaders@lists.owasp.org</a> <mailto:<a href="mailto:OWASP-Leaders@lists.owasp.org">OWASP-Leaders@lists.owasp.org</a>><br>
>>>     <a href="https://lists.owasp.org/mailman/listinfo/owasp-leaders" target="_blank">https://lists.owasp.org/mailman/listinfo/owasp-leaders</a><br>
>>><br>
>>><br>
>><br>
>><br>
>> _______________________________________________<br>
>> OWASP-Leaders mailing list<br>
>> <a href="mailto:OWASP-Leaders@lists.owasp.org">OWASP-Leaders@lists.owasp.org</a><br>
>> <a href="https://lists.owasp.org/mailman/listinfo/owasp-leaders" target="_blank">https://lists.owasp.org/mailman/listinfo/owasp-leaders</a><br>
>><br>
<br>
</div></div></blockquote></div><br></div>
</div></blockquote><blockquote type="cite"><div><span>_______________________________________________</span><br><span>OWASP-Leaders mailing list</span><br><span><a href="mailto:OWASP-Leaders@lists.owasp.org">OWASP-Leaders@lists.owasp.org</a></span><br><span><a href="https://lists.owasp.org/mailman/listinfo/owasp-leaders">https://lists.owasp.org/mailman/listinfo/owasp-leaders</a></span><br></div></blockquote></body></html>