Re: Upcoming Cache Work

Jason Duell <[email protected]>
Newsgroups gmane.comp.mozilla.devel.netlib
Message-ID <[email protected]>
I think delaying every single cached load the browser does to mitigate 
this attack is a poor first line of defense.   To be practical, the 
approach requires a fair amount of browser-specific DOM-foolery®:  see 
the comments in the source at 
http://lcamtuf.coredump.cx/cachetime/firefox.html.   Perhaps we can go 
after the hack to sidestep timer resolution clamping, or some of the 
other browser-specific stuff.    Most attacks are also likely to 
request, then cancel w/o rendering, a lot of URIs from domains that are 
otherwise not represented on the page: if we detect that's going on, we 
could take countermeasures (delaying cache loads just for that page, 
warning user, etc).

Also, this attack is a variation on an issue that's been known since at 
least 2000, with the main difference that this version is 
non-destructive (i.e. doesn't change the cache, so it can be repeated 
without messing up its own results).  If we can change our code so that 
changing src= mid-load calls some new form of Cancel that either causes 
the URI to be loaded and cached anyway, we can make this attack 
cache-destructive once again, and be back to the status quo of the past 
10 years.    I'm not sure how urgent even that level of mitigation is, 
though:  it seems to me that most users in the world who have real 
reason to fear consequential implications of their browser history being 
exposed are being tracked by other means (their ISP/government is spying 
on them).  Perhaps I'm under-reacting.

Jason


On 02/29/2012 05:35 AM, Patrick McManus wrote:
> I'm going to suggest dev-tech-network is the wrong level to be making
> this decision. (Ironic, I know - I'm always pushing stuff at d.t.n).
>
> But in this case this should be decision driven, imo, by the product
> teams (performance regression!) and the privacy teams. They are in the
> position to manage the tradeoff. If they come to a conclusion that this
> should be done if the hit is within some cost boundary then d.t.n seems
> like the right place to work on making that happen, fill out a product
> feature, etc.. I would ask those teams to really consider, at least in
> the initial pass, the question of "how much of a performance hit is this
> worth to you upfront" rather than punting it back and saying "how much
> would this cost?".
>
>
> On Tue, 2012-02-28 at 21:56 -0800, Zack Weinberg wrote:
>> On 2012-02-28 4:06 PM, Brian Smith wrote:
>>> Henri Sivonen wrote:
>>>> Are there any plans to include the referring origin in the cache
>>>> key to address the cache probing history leak that was demoed at
>>>> http://lcamtuf.coredump.cx/cachetime/ ?
>>> There is no plan. I suggestion you file a bug (if there isn't one
>>> already).
>> Please cc: me on the bug.  I may be able to help and/or scare up some
>> student help.
>>
>>> It would be tricky to do, as we would have to avoid major
>>> performance regressions by doing so.
>> To some extent it *has* to regress performance, because this is a timing
>> attack: when the attack site tries to iframe something, it has to
>> *appear* to not be in the cache, even if it is, and that means delaying
>> the load.
>>
>> I have no idea whether this is feasible with our cache architecture, but
>> in principle it would be possible to record the original load time for
>> each cached item.  Then, when we see one of these cross-domain loads
>> that has to appear to be a miss, we could delay the load for that much
>> time (with some randomization) but not actually hit the network.  That
>> might mitigate secondary performance hits from having to waste a network
>> channel on stuff we already have but can't admit to having.  On the
>> other hand, an even sneakier attacker might be able to find a way to
>> detect *this* behavior... but that's the arms race for ya.
>>
>> zw
>> _______________________________________________
>> dev-tech-network mailing list
>> [email protected]
>> https://lists.mozilla.org/listinfo/dev-tech-network
>
> _______________________________________________
> dev-tech-network mailing list
> [email protected]
> https://lists.mozilla.org/listinfo/dev-tech-network
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.