*** This bug is a duplicate of bug 1073114 ***
    https://bugs.launchpad.net/bugs/1073114
This bug has been mislabeled as a dupe of 1074780 which calls out
privacy settings.  My bug is an implementation bug in which the lens
fails to protect searches in the way it /attempts/ to by utilizing ssl
for the request.

One bug is about you not respecting my privacy. The other is how you
failed at implementing a feature.


-mike

On Nov 14, 2012, at 6:15 PM, "Benjamin Kerensa" <bkere...@ubuntu.com>
wrote:

> *** This bug is a duplicate of bug 1073114 ***
>    https://bugs.launchpad.net/bugs/1073114
> 
> ** This bug has been marked a duplicate of bug 1073114
>   Shopping Lens Does Not Respect User Privacy
> 
> -- 
> You received this bug notification because you are subscribed to the bug
> report.
> https://bugs.launchpad.net/bugs/1074780
> 
> Title:
>   lens searches can be unmasked by local network sniffing
> 
> Status in “unity-lens-shopping” package in Ubuntu:
>  Confirmed
> 
> Bug description:
>  first i want to say that the default nature of the amazon spam plugin
>  really is a violation of the community trust, and I highly advocate
>  the EFF's position on this plugin.. the user should have the choice
>  *before* their information is reported to some entity on the
>  internet..
> 
>  issue:
>  while its true that the lens encrypts search queries  to the 
> productsearch.ubuntu.com server, the subsequent fetch of the image links 
> within the search results and the algorithmicly generated nature of the 
> results on the server allow a local network user to sniff the network for 
> HTTP get requests to the ubuntu server to unmask either the exact search 
> term, or a closely related terms of an ubuntu user.
> 
> 
>  how this works in the real world:
>  an "eve" precaches the search results using a word list and parses the json 
> results and notes which and how many image results were provided for a 
> particular word of interest..  "eve" then sniffs the network looking for 
> bursts of image requests, the attacker then compares the block of image 
> requests to the results that were cached earlier and and scores the results.
> 
>  the search term (or closely related search term) is then revealed
> 
>  an attacker can also choose to build the dictionary after the initial
>  packet sniffing so long as the server cached contents havnt shifted
>  significantly .. though it is likely the results would still me
>  similar enough to score the results for a best fit.
> 
> 
>  an example:
>  "eve" has a database filled by requesting a list of interesting search 
> terms, below is the query for "diapers":
> 
>  phar@thing:~/ubuntu curl 
> https://productsearch.ubuntu.com/v1/search?q=diapers 2> /dev/null | grep 
> ecx.images-amazon.com | grep SL160
>            "http://ecx.images-amazon.com/images/I/41w92ZKCHBL._SL160_.jpg";
>            "http://ecx.images-amazon.com/images/I/51xRI9n2puL._SL160_.jpg";
>            "http://ecx.images-amazon.com/images/I/516o3TWAOBL._SL160_.jpg";, 
>            "http://ecx.images-amazon.com/images/I/5197vs3wtvL._SL160_.jpg";, 
>            "http://ecx.images-amazon.com/images/I/51UEzvC7X9L._SL160_.jpg";, 
>            "http://ecx.images-amazon.com/images/I/51ZFlIGw0DL._SL160_.jpg";, 
>            "http://ecx.images-amazon.com/images/I/51b3JCCi6RL._SL160_.jpg";, 
>            "http://ecx.images-amazon.com/images/I/51p7qujvx2L._SL160_.jpg";
>            "http://ecx.images-amazon.com/images/I/51tV-ZBj2aL._SL160_.jpg";
>            "http://ecx.images-amazon.com/images/I/41T4yIgZzNL._SL160_.jpg";, 
>            "http://ecx.images-amazon.com/images/I/41gmpjcLEuL._SL160_.jpg";, 
>            "http://ecx.images-amazon.com/images/I/41lX0WGGOrL._SL160_.jpg";, 
>            "http://ecx.images-amazon.com/images/I/41qoOh5-jqL._SL160_.jpg";, 
>            "http://ecx.images-amazon.com/images/I/5167DrJVUEL._SL160_.jpg";, 
>            "http://ecx.images-amazon.com/images/I/51iitgcf%2BvL._SL160_.jpg";
>            "http://ecx.images-amazon.com/images/I/51LCvCjDnOL._SL160_.jpg";
>            "http://ecx.images-amazon.com/images/I/51M7z0dUXDL._SL160_.jpg";
>            "http://ecx.images-amazon.com/images/I/41QtRL2VlXL._SL160_.jpg";, 
>            "http://ecx.images-amazon.com/images/I/51gD2PgaJ9L._SL160_.jpg";
>            "http://ecx.images-amazon.com/images/I/51MS7z8oHhL._SL160_.jpg";
>            "http://ecx.images-amazon.com/images/I/51eO4S5QRiL._SL160_.jpg";
> 
> 
>  now, eve sniffs the network looking for a closly related burst of image 
> queries:
> 
> 
>  phar@thing:~/ubuntu sudo ngrep GET -S 50 -d eth1  -q -t
>  interface: eth1 (192.168.1.0/255.255.255.0)
>  match: GET
> 
>  T 2012/11/03 16:52:57.664091 192.168.1.7:53387 -> 54.240.188.195:80 [AP]
>    GET /images/I/410xVwYbA9L._SL160_.jpg HTTP/1.1..Ho                         
>                                                                               
>                 
> 
>  T 2012/11/03 16:52:57.668615 192.168.1.7:46213 -> 54.240.188.34:80 [AP]
>    GET /images/I/21Ke7hDgllL._SL160_.jpg HTTP/1.1..Ho                         
>                                                                               
>                 
> 
>  T 2012/11/03 16:52:57.669380 192.168.1.7:46985 -> 54.240.188.248:80 [AP]
>    GET /images/I/51lACGaNvpL._SL160_.jpg HTTP/1.1..Ho                         
>                                                                               
>                 
> 
>  T 2012/11/03 16:52:57.693032 192.168.1.7:46922 -> 205.128.91.126:80 [AP]
>    GET /images/I/31Agova21UL._SL160_.jpg HTTP/1.1..Ho                         
>                                                                               
>                 
> 
>  T 2012/11/03 16:53:18.938638 192.168.1.7:57036 -> 54.240.188.68:80 [AP]
>    GET /images/I/41w92ZKCHBL._SL160_.jpg HTTP/1.1..Ho                         
>                                                                               
>                 
> 
>  T 2012/11/03 16:53:19.043135 192.168.1.7:44472 -> 98.142.98.180:80 [AP]
>    GET /static/img/sleeveart/00/012/360/0001236002_17                         
>                                                                               
>                 
> 
>  T 2012/11/03 16:53:19.047354 192.168.1.7:44474 -> 98.142.98.180:80 [AP]
>    GET /static/img/sleeveart/00/016/006/0001600688_17                         
>                                                                               
>                 
> 
>  T 2012/11/03 16:53:19.050731 192.168.1.7:59410 -> 54.240.188.137:80 [AP]
>    GET /images/I/51tV-ZBj2aL._SL160_.jpg HTTP/1.1..Ho                         
>                                                                               
>                 
> 
>  T 2012/11/03 16:53:19.125583 192.168.1.7:44475 -> 98.142.98.180:80 [AP]
>    GET /static/img/sleeveart/00/000/914/0000091491_17                         
>                                                                               
>                 
> 
>  T 2012/11/03 16:53:19.127287 192.168.1.7:46998 -> 54.240.188.248:80 [AP]
>    GET /images/I/516o3TWAOBL._SL160_.jpg HTTP/1.1..Ho                         
>                                                                               
>                 
> 
>  T 2012/11/03 16:53:19.135532 192.168.1.7:36150 -> 54.240.188.53:80 [AP]
>    GET /images/I/41T4yIgZzNL._SL160_.jpg HTTP/1.1..Ho                         
>                                                                               
>                 
> 
>  T 2012/11/03 16:53:19.137307 192.168.1.7:50431 -> 54.240.188.26:80 [AP]
>    GET /images/I/51LCvCjDnOL._SL160_.jpg HTTP/1.1..Ho                         
>                                                                               
>                 
> 
>  T 2012/11/03 16:53:19.138487 192.168.1.7:39225 -> 54.240.188.129:80 [AP]
>    GET /images/I/51M7z0dUXDL._SL160_.jpg HTTP/1.1..Ho                         
>                                                                               
>                 
> 
>  T 2012/11/03 16:53:19.140637 192.168.1.7:39971 -> 54.240.188.69:80 [AP]
>    GET /images/I/51xRI9n2puL._SL160_.jpg HTTP/1.1..Ho                         
>                                                                               
>                 
> 
>  T 2012/11/03 16:53:19.200223 192.168.1.7:56033 -> 216.137.35.219:80 [AP]
>    GET /images/I/41QtRL2VlXL._SL160_.jpg HTTP/1.1..Ho                         
>                                                                               
>                 
> 
>  T 2012/11/03 16:53:19.215688 192.168.1.7:44482 -> 98.142.98.180:80 [AP]
>    GET /static/img/sleeveart/00/012/282/0001228244_17                         
>                                                                               
>                 
> 
>  T 2012/11/03 16:53:19.308043 192.168.1.7:34426 -> 216.137.35.57:80 [AP]
>    GET /images/I/51MS7z8oHhL._SL160_.jpg HTTP/1.1..Ho                         
>                                                                               
>                 
> 
>  T 2012/11/03 16:53:19.313324 192.168.1.7:46245 -> 54.240.188.131:80 [AP]
>    GET /images/I/51eO4S5QRiL._SL160_.jpg HTTP/1.1..Ho                         
>                                                                               
>                 
> 
> 
>  i leave it to the reader to do the comparison, you'll see that there are 
> /some/ differences between the two.. it might be due to my client string.. or 
> some mixing function on the server, but you can see how scoring would quickly 
> give you one or two candidate terms depending on how many matches you requre 
> before calling it a candidate.. you can see how amazons algorithm for 
> generating search results works for eve here...  its was pretty easy to whip 
> up a python tool for doing this using googles bad word list as a dictionary..
> 
> 
>  other side channel leakage:
>  since the search requests are "live" partial search results are provided - 
> sometimes keystroke to keystroke for those that type slowly - an attacker who 
> has a large enough database can use these intermediate results to narrow down 
> subsequent result possibilities for increased accuracy
> 
>  ProblemType: Bug
>  DistroRelease: Ubuntu 12.10
>  Package: unity-lens-shopping 6.8.0-0ubuntu1
>  ProcVersionSignature: Ubuntu 3.5.0-17.28-generic 3.5.5
>  Uname: Linux 3.5.0-17-generic x86_64
>  ApportVersion: 2.6.1-0ubuntu6
>  Architecture: amd64
>  Date: Sat Nov  3 16:21:42 2012
>  InstallationDate: Installed on 2012-11-01 (2 days ago)
>  InstallationMedia:
> 
>  MarkForUpload: True
>  ProcEnviron:
>   TERM=xterm
>   PATH=(custom, no user)
>   XDG_RUNTIME_DIR=<set>
>   LANG=en_US.UTF-8
>   SHELL=/bin/bash
>  SourcePackage: unity-lens-shopping
>  UpgradeStatus: No upgrade log present (probably fresh install)
> 
> To manage notifications about this bug go to:
> https://bugs.launchpad.net/ubuntu/+source/unity-lens-shopping/+bug/1074780/+subscriptions

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1074780

Title:
   lens searches can be unmasked by local network sniffing

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/unity-lens-shopping/+bug/1074780/+subscriptions

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to