I just want to make a quick comment on the use of "proximity and
location information". I used the device flow to authorize my son's
device by having him text me the code so I could login on my device (in
a different state) and provide his device access. If we close the door
too much we will potentially impact good users :)
I agree that consent can be socially engineered... but think that it
would be useful to improve that information so that the user
authenticating to provide authorization could know where the device
their authorizing is located. That could help users detecting that they
are authorizing a device in a location that doesn't make sense to them.
Thanks,
George
On 3/18/22 8:21 AM, Pieter Kasselman wrote:
Hi Brock
Great point, and I would agree that better consent screens could help,
but I don’t think it is sufficient.
One of the challenges with consent screens is that it makes
assumptions about the users abilities when they are being asked to
make decisions about things they do not fully appreciate or
understand. In addition, they are in a rush, are often trying to be
helpful and prone to grant consent (the framing in these social
engineering attacks can be very persuasive). Even users who are aware
of these exploits and understand the systems they interact with are
prone to be misled. Better guidance on the consent screen is
definitely something we should provide.
I do think there is a defence in depth strategy that can reduce risk
by (1) avoiding asking the user for a decision by making back-end risk
decisions (2) augmenting the information presented to the user when
making the decisions and (3) mitigating against a decision made in error.
Proximity and location information can for instance be used to bind
user codes to specific locations or inform the user on where the user
code was first presented, device status and/or location may be used to
make decisions on whether to allow device code flows to be used in the
first place and use of token binding (e.g. DPoP) may help defend
against attackers who are able to exfiltrate tokens from a device and
make lateral attacks.
Anything we can do to encourage implementor to ask users to make fewer
decision, help them make better decisions and then protecting them in
case of a bad decision will help drive down risk.
Cheers
Pieter
*From:*Brock Allen <brockal...@gmail.com>
*Sent:* Thursday 17 March 2022 21:25
*To:* Pieter Kasselman <pieter.kassel...@microsoft.com>; oauth@ietf.org
*Subject:* [EXTERNAL] Re: [OAUTH-WG] Device Authorization Grant and
Illicit Consent Exploits
I watched one of those videos and it seems to be that a proper consent
screen would have been the best and easiest line of defense. Is there
something more to the attacks where a better consent page (or any
consent page for that matter) would not have been sufficient?
-Brock
On 3/17/2022 5:10:35 PM, Pieter Kasselman
<pieter.kasselman=40microsoft....@dmarc.ietf.org> wrote:
Hi All
One of the agenda items for IETF 113 is the device authorization
grant flow (aka device code flow), scheduled for Thursday 24 March
2022. Before the meeting, I wanted to share a bit more
information for those interested in the topic and also give those
who are unable to attend in person an opportunity to participate
in the conversation.
The Device Authorization Grant Flow (RFC 8682)
<https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fdatatracker.ietf.org%2Fdoc%2Fhtml%2Frfc8628&data=04%7C01%7Cpieter.kasselman%40microsoft.com%7Cdab129df96fb4fe03c7908da085c8dae%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637831490884440262%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C2000&sdata=EswcNYKNZWEAWLBuOvQytd8TMlgpgUxIk0E%2FlfKkRIk%3D&reserved=0>solves
an important problem by enabling authorization flows on devices
that are unable to support a browsers or have limited input
capabilities. However, looking back over the past 18-24 months,
there have been a number of practical exploits published that use
social engineering techniques applied to the device authorization
grant flow.
The goal of the session at IETF 113 is to discuss the patterns of
the exploits that are known and start a conversation on what (if
anything) we should do, based on what we are learning.
These exploits follow a general man-in-the-middle (MITM) pattern,
where the attacker:
1. Initiates the Device Authorization Grant flow on a device
under their control,
2. Presents the user code in a context that the end-user is
likely to act on (using social engineering techniques), and
3. Once the user grants access, retrieves the access and refresh
tokens and uses them to access the user’s resources.
Some of the exploits are described here for those interested in
more detail:
1. The Art of the Device Code Phish - Boku (0xboku.com)
<https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2F0xboku.com%2F2021%2F07%2F12%2FArtOfDeviceCodePhish.html&data=04%7C01%7Cpieter.kasselman%40microsoft.com%7Cdab129df96fb4fe03c7908da085c8dae%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637831490884440262%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C2000&sdata=%2B71AMxS1m4aBTrX8e76UiXs%2Fa%2F22dfxen1pI9Ln17Ig%3D&reserved=0>
2. Microsoft 365 OAuth Device Code Flow and Phishing | Optiv
<https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.optiv.com%2Finsights%2Fsource-zero%2Fblog%2Fmicrosoft-365-oauth-device-code-flow-and-phishing&data=04%7C01%7Cpieter.kasselman%40microsoft.com%7Cdab129df96fb4fe03c7908da085c8dae%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637831490884440262%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C2000&sdata=I6tnZsOgj6fl9aYbfXe98wKf%2B5M7X%2FHEu8Umn3cui7Q%3D&reserved=0>
1. optiv/Microsoft365_devicePhish: A proof-of-concept script
to conduct a phishing attack abusing Microsoft 365 OAuth
Authorization Flow (github.com)
<https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Foptiv%2FMicrosoft365_devicePhish&data=04%7C01%7Cpieter.kasselman%40microsoft.com%7Cdab129df96fb4fe03c7908da085c8dae%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637831490884440262%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C2000&sdata=hVXdTbLAkdBXAepI26qG5J3poSzquok1sgUwdLGPNTg%3D&reserved=0>
3. Introducing a new phishing technique for compromising Office
365 accounts (o365blog.com)
<https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fo365blog.com%2Fpost%2Fphishing%2F%23new-phishing-technique-device-code-authentication&data=04%7C01%7Cpieter.kasselman%40microsoft.com%7Cdab129df96fb4fe03c7908da085c8dae%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637831490884490234%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C2000&sdata=KXDXJ8dDBdKxT72jIl8pa2BksAXiKc8N0%2F0NThYiN5Q%3D&reserved=0>
4. DEF CON 29 - Jenko Hwong - New Phishing Attacks Exploiting
OAuth Authentication Flows - YouTube
<https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3D9slRYvpKHp4&data=04%7C01%7Cpieter.kasselman%40microsoft.com%7Cdab129df96fb4fe03c7908da085c8dae%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637831490884490234%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C2000&sdata=KWmBAf3pYGdVzT6LeNhgT7t%2BybfnFdGMVJxLbDrD5vo%3D&reserved=0>
In terms of a response, there are a few options that come to mind
(these are not exhaustive, I would love to see what others have in
mind as well):
1. Do nothing: We can choose to leave everything as is. The
downside of this is that the lessons we are learning are not
getting disseminated or resulting in reduced risks.
2. Update the recommendations: We can document the social
engineering exploits and recommend some additional mitigations
as well as recommendations in terms of use cases. Although
these types of "phishing"/social engineering attacks are
called out in the security considerations in RFC 8628 - OAuth
2.0 Device Authorization Grant
<https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fdatatracker.ietf.org%2Fdoc%2Fhtml%2Frfc8628&data=04%7C01%7Cpieter.kasselman%40microsoft.com%7Cdab129df96fb4fe03c7908da085c8dae%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637831490884490234%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C2000&sdata=6YYkNcG2GC32KSDdWU792bkXnr6GQaRen%2F02560aSRA%3D&reserved=0>,
we can add further mitigations to create greater defence in
depth. This will help future implementers and may even be
useful for future protocols that rely on a similar
cross-device authentication and authorization flows.
3. Explore alternatives: Develop, adopt, or evolve new protocols
that address the scenario while mitigating or avoiding the risks.
Option A does not do much to improve the state of the art. Option
B feels like something we can do now, and we may learn something
along the way that can help inform Option C, which may be much
further down the road and require more research. What other
options come to mind?
I’m looking forward to the conversation and hearing what others
are thinking about this topic.
Cheers,
Pieter
_______________________________________________
OAuth mailing list
OAuth@ietf.org
https://www.ietf.org/mailman/listinfo/oauth
_______________________________________________
OAuth mailing list
OAuth@ietf.org
https://www.ietf.org/mailman/listinfo/oauth