Spoof the device ro.product.name ro.product.device #350

Closed
condor0765 opened this Issue Jul 22, 2016 · 5 comments

Comments

Projects
None yet
3 participants
@condor0765

condor0765 commented Jul 22, 2016

In the file frameworks/base/core/java/android/os/Build.java information on the mobile device is described. Is it worth for security to spoof this to may be some other device.

    /** Either a changelist number, or a label like "M4-rc20". */
    public static final String ID = getString("ro.build.id");

    /** A build ID string meant for displaying to the user */
    public static final String DISPLAY = getString("ro.build.display.id");

    /** The name of the overall product. */
    public static final String PRODUCT = getString("ro.product.name");

    /** The name of the industrial design. */
    public static final String DEVICE = getString("ro.product.device");

    /** The name of the underlying board, like "goldfish". */
    public static final String BOARD = getString("ro.product.board");

    /** The manufacturer of the product/hardware. */
    public static final String MANUFACTURER = getString("ro.product.manufacturer");

    /** The consumer-visible brand with which the product/hardware will be associated, if any. */
    public static final String BRAND = getString("ro.product.brand");

    /** The end-user-visible name for the end product. */
    public static final String MODEL = getString("ro.product.model");

The reason is some malware sites can even detect the OS/device/name etc. Also relevant http://webkay.robinlinus.com/

Thanks for the great work.
screenshot_motoe

@thestinger

This comment has been minimized.

Show comment Hide comment
@thestinger

thestinger Jul 23, 2016

Contributor

The browser example is the browser's problem for leaking so much data in the user agent, not an OS issue. I don't think spoofing these would make much difference because an app can still determine the information via various other ways. I don't plan on making changes unless they accomplish a meaningful goal.

Contributor

thestinger commented Jul 23, 2016

The browser example is the browser's problem for leaking so much data in the user agent, not an OS issue. I don't think spoofing these would make much difference because an app can still determine the information via various other ways. I don't plan on making changes unless they accomplish a meaningful goal.

@Rudd-O

This comment has been minimized.

Show comment Hide comment
@Rudd-O

Rudd-O Jul 24, 2016

It would indeed be nice if something like User Agent Changer was built into Chromium, but I understand that's a lot of work.

Rudd-O commented Jul 24, 2016

It would indeed be nice if something like User Agent Changer was built into Chromium, but I understand that's a lot of work.

@condor0765

This comment has been minimized.

Show comment Hide comment
@condor0765

condor0765 Jul 25, 2016

browser example is the browser's problem for leaking so much data in the user agent, not an OS issue

Agreed. I assumed doing at OS level would mean the browser or other apps cannot get so much information by any means. But I am not an expert, you decide.

I don't think spoofing these would make much difference because an app can still determine the information via various other ways.

Sure. But a request: Could you point to me where in the source code tree it may be changed so that all apps may be somehow spoofed?

I don't plan on making changes unless they accomplish a meaningful goal.

It was only a suggestion. Thanks for response.

browser example is the browser's problem for leaking so much data in the user agent, not an OS issue

Agreed. I assumed doing at OS level would mean the browser or other apps cannot get so much information by any means. But I am not an expert, you decide.

I don't think spoofing these would make much difference because an app can still determine the information via various other ways.

Sure. But a request: Could you point to me where in the source code tree it may be changed so that all apps may be somehow spoofed?

I don't plan on making changes unless they accomplish a meaningful goal.

It was only a suggestion. Thanks for response.

@thestinger

This comment has been minimized.

Show comment Hide comment
@thestinger

thestinger Jul 25, 2016

Contributor

It's not feasible to conceal the device that an app is running on. The OS is built for each device individually, and there are countless ways for an app to identify a build. If you want that information to be hidden, then you need a whole different app ecosystem built for a much different kind of app sandbox.

Contributor

thestinger commented Jul 25, 2016

It's not feasible to conceal the device that an app is running on. The OS is built for each device individually, and there are countless ways for an app to identify a build. If you want that information to be hidden, then you need a whole different app ecosystem built for a much different kind of app sandbox.

@thestinger

This comment has been minimized.

Show comment Hide comment
@thestinger

thestinger Dec 20, 2016

Contributor

Replacing this with #543. There's no way to stop apps from determining which device they're on even with all of these properties removed. There's so much they can inspect to determine that so it's only worth worrying about cases where common / important apps are leaking this information externally without malicious intentions. For Chromium (including the WebView), that can be directly addressed.

Contributor

thestinger commented Dec 20, 2016

Replacing this with #543. There's no way to stop apps from determining which device they're on even with all of these properties removed. There's so much they can inspect to determine that so it's only worth worrying about cases where common / important apps are leaking this information externally without malicious intentions. For Chromium (including the WebView), that can be directly addressed.

@thestinger thestinger closed this Dec 20, 2016

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment