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

Site isolation #2409

Open
Sjord opened this issue Nov 25, 2024 · 12 comments
Open

Site isolation #2409

Sjord opened this issue Nov 25, 2024 · 12 comments
Assignees
Labels
2) Awaiting response Awaiting a response from the original poster V50 Group issues related to Web Frontend _5.0 - Not blocker This issue does not block 5.0 so if it gets addressed then great, if not then fine.

Comments

@Sjord
Copy link
Contributor

Sjord commented Nov 25, 2024

Sites can set headers to ensure that they never share a browser process with another site. This prevents an attacker from loading sensitive data into memory and then reading it with a side-channel attack or browser exploit.

I propose to add a set of requirements that have the effect of enforcing site isolation, such as requiring Cross-Orgin-Resource-Policy (CORP), Cross-Origin-Opener-Policy (COOP), Cross-Origin-Embedder-Policy (COEP) response headers.

@elarlang elarlang added V51 Group issues related to OAuth V50 Group issues related to Web Frontend and removed V51 Group issues related to OAuth labels Nov 25, 2024
@elarlang
Copy link
Collaborator

It feels very much like a follow-up for issue #1602.

We discussed and closed it, #1602 (comment). If you think that provided arguments are not valid and we need to have new requirements, then I would like to see opposite arguments.

@elarlang elarlang added 2) Awaiting response Awaiting a response from the original poster _5.0 - prep This needs to be addressed to prepare 5.0 labels Nov 25, 2024
@randomstuff
Copy link
Contributor

So I've started looking at this topic and I'm currently deep down the XS leaks rabbit hole… 😨

@tghosth
Copy link
Collaborator

tghosth commented Nov 25, 2024

I's be interested to see strong arguments for this but I am going to mark it as nonblocker for now

@tghosth tghosth added _5.0 - Not blocker This issue does not block 5.0 so if it gets addressed then great, if not then fine. and removed _5.0 - prep This needs to be addressed to prepare 5.0 labels Nov 25, 2024
@elarlang
Copy link
Collaborator

ping @Sjord

@randomstuff
Copy link
Contributor

randomstuff commented Nov 28, 2024

but I am going to mark it as nonblocker for now

Would it make sense to include of list of topics not (yet) covered somewhere in the document?

"Hey, we didn't say anything on this topic yet so you're on your own for that but that does not mean it's not relevant."

@elarlang
Copy link
Collaborator

but I am going to mark it as nonblocker for now

Would it make sense to include of list of topics not (yet) covered somewhere in the document?

"Hey, we didn't say anything on this topic yet so you're on your own for that but that does not mean it's not relevant."

My personal feeling is that it is not a widespread problem to have a separate solution for that. We can reference to opened or closed issues if it is already discussed somewhere, this is the case also here.

@Sjord
Copy link
Contributor Author

Sjord commented Nov 29, 2024

If you think that provided arguments are not valid and we need to have new requirements, then I would like to see opposite arguments.

I pretty much agree with that comment by @ryarmst you linked. That issue was about tabnabbing though, not about site isolation or XS-leaks in general.

@elarlang
Copy link
Collaborator

Do you have more precise attack scenario(s) in mind? Then I could validate, is it already covered by requirements or not.

Related requirements most likely are located in V50.

@ryarmst
Copy link
Collaborator

ryarmst commented Dec 4, 2024

I think if there is a practical attack scenario, it can probably found in the XS leak content that @randomstuff is looking into, but it is indeed a rabbit hole.

@elarlang
Copy link
Collaborator

elarlang commented Dec 8, 2024

Do you have more precise attack scenario(s) in mind? Then I could validate, is it already covered by requirements or not.

Related requirements most likely are located in V50.

ping @Sjord

@Sjord
Copy link
Contributor Author

Sjord commented Dec 9, 2024

I think the sites I linked do a good job of explaining the attack scenarios:

  1. the attacker's site loads some sensitive content from the victim's site.
  2. they read this with a browser exploit or side channel attack.

The first step can often be prevented with same-site cookies. With lax samesite, it is still possible to perform authenticated cross-site GET requests, which is often sufficient to request sensitive information. With strict samesite cookies this is not possible. Also, there can be cases where same-site cookies don't help:

  • the attacker has control over a domain that is same-site but not same-origin, or
  • the sensitive resource is not protected by cookies, but by basic auth or firewall.

@elarlang
Copy link
Collaborator

elarlang commented Dec 9, 2024

I asked:

Do you have more precise attack scenario(s) in mind? Then I could validate, is it already covered by requirements or not.

Related requirements most likely are located in V50.

And I still have the same question - what scenario is not covered by requirement below?

  • V50.3.6 Verify that the Cross-Origin Resource Sharing (CORS) Access-Control-Allow-Origin header field is validated against an allowlist of trusted origins. When "Access-Control-Allow-Origin: *" needs to be used, verify that the responses do not include any sensitive information.
  • V50.4.3 Verify that the Origin header field is validated against a defined list of allowed origins to match the desired Cross-Origin Resource Sharing (CORS) policy.
  • V50.5.1 Verify that JSONP functionality is not enabled anywhere across the application to avoid Cross-Site Script Inclusion (XSSI) attacks.
  • V50.5.2 Verify that data requiring authorization is not included in script resource responses, like JavaScript files, to prevent Cross-Site Script Inclusion (XSSI) attacks.

they read this with a browser exploit or side channel attack.

browser exploit I consider to be out of scope for ASVS.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
2) Awaiting response Awaiting a response from the original poster V50 Group issues related to Web Frontend _5.0 - Not blocker This issue does not block 5.0 so if it gets addressed then great, if not then fine.
Projects
None yet
Development

No branches or pull requests

5 participants