Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[For Improvement] Add flag/mark if an ASVS requirement is Pentestable or not #840

Closed
csfreak92 opened this issue Sep 16, 2020 · 5 comments
Closed

Comments

@csfreak92
Copy link
Collaborator

csfreak92 commented Sep 16, 2020

I have observed that there are some verification requirements in ASVS L1 that are not pentestable. In our practice, we mark them as security design review related verification requirements and then verify these through documentation, source code, etc with a whitebox approach. In my understanding, ASVS L1 requirements are supposed to be fully pentestable in a blackbox perspective.

I propose for us to add a flag/mark of ASVS requirements whether they are pentestable/testable, and design review for non-testable items if we cannot move those requirements to ASVS L2.

For illustration, ASVS 2.1.10 - Verify that there are no periodic credential rotation or password history requirements.
This requirement has two parts, check if there are periodic credential rotation (forcing users to change passwords every 30, 60, 90 days, etc) and the other one checking for password history requirements (not allowing users to re-use the last 5-10 passwords, etc). The first part is almost untestable in a blackbox perspective, while the second part is totally testable without any help from the organization to tweak things in the backend, etc.

Another examples are ASVS 7.1.1 - Verify that the application does not log credentials or payment details. Session tokens should only be stored in logs in an irreversible, hashed form. and ASVS 7.1.2 - Verify that the application does not log other sensitive data as defined under local privacy laws or relevant security policy. which are both L1 requirements but it needs a whitebox/graybox approach to see those application logs.

@csfreak92 csfreak92 changed the title [For Improvement] Removal of " in 2.1.7 [For Improvement] Add flag/mark if an ASVS requirement is Pentestable or not Sep 16, 2020
@elarlang
Copy link
Collaborator

I try to make this issue alive.

So - proposal is to mark/flag all blackbox pentestable requirements. But is it always that clear? With blackbox you may not reach to that part of application (like some admin interfaces) and you can not perform any test there. Maybe it's more test-scope question.

But I agree with example like 7.1.1 it's confusing - with marked L1 ASVS says you need to test it even with blackbox, but you can not (without having vulnerabilities which gives you access to logs). If to "fix" this issue with moving 7.1.1 to level 2, then ASVS could send message: "storing plain-text credentials to logs with level 1 application is ok" which is clearly incorrect as well.

To make everyone's life easier I leave link to levels description here:
https://github.com/OWASP/ASVS/blob/master/4.0/en/0x03-Using-ASVS.md

@jmanico
Copy link
Member

jmanico commented Mar 30, 2021

I think the issue of wether a issue is testable and by what method is too confusion and is a bit out of scope of ASVS's intention. I prefer to see our levels to be more like NIST SP800-63 levels based on risk and not on "testability". So I'm not a fan of marking items as testable or not, respectfully.

@ThunderSon
Copy link
Contributor

The part about marking things as testable is done by ASVS. It's even mentioned in the link provided by Elar on levels:

ASVS Level 1 is for low assurance levels, and is completely penetration testable

So the question comes, if someone doesn't have a low level of security but isn't penetration testable, is that actually considered L2, or L1 but not testable?

I love the part that ASVS tried to make all L1 testable, but it gives back issues for people doing a design review to actually have a minimum level of assurance.
So then the question would be: If ASVS should be based on risk and testability, why is section 2.4 given a paragraph saying that this of huge importance but not testable, thus is L2?

The above question isn't made to trigger aggressiveness, there's just a misunderstanding in the terms being used and the focus.

@jmanico
Copy link
Member

jmanico commented Apr 13, 2021 via email

@danielcuthbert
Copy link
Collaborator

This is a great issue. We know the levels are going to change with the push towards 5.0, and this is something we are taking into account. I'm closing the issue for now and we will revisit this with 5.0 dev work.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants