使用“用于调试”的应用程序的安全含义是什么? -- applications 领域 和 security 领域 和 debug 领域 android 相关 的问题

What are the security implications of using an app built “for debug”?


简体版||繁體版
7
vote

问题

中文
我刚刚来到几种 abcdefghijklmnabcdefghijklmn.apk 文件托管的github项目,这些文件是"编译的调试" (即具有 application-debuggable set,它可以例如使用<代码> aapt dump badging /path/to/apk | grep debuggable 。不是一个android dev,我只有模糊的想法,这是什么(通过adb扩展调试) - 但这不是这里的问题。

我的问题来自a 纯最终用户的透视图:安装/使用这样的应用程序的含义是什么?一个必须了解的风险是什么?

当然,我在网上搜索了这一点,但再次只有"你要没有" 的模糊的提示,"对于释放这个应该被关闭" - 没有原因,没有背景。为此,它可以思考"显然没有大量的大量" - 但是等笔记会花一些时间考虑在此上下文中为您的用户的安全影响(见此答案)建议不同。

这里有人可以提供一些见解吗?

english

I've just come upon several .apk files hosted with Github projects which are "compiled for debug" (i.e. having application-debuggable set, which one can e.g. check using aapt dump badging /path/to/apk | grep debuggable. Not being an Android dev, I only have vague ideas what that is for (extended debugging via ADB) xe2x80x93 but that's not the question here.

My question is from a pure end-user perspective: What are the (security) implications of installing/using such an app? What are the risks one must be aware of?

Of course I searched the web for hints on this, but again only got vague hints like "thou shalt not", and "for a release this should be switched off" xe2x80x93 no reasons, no background. For that one could think "obviously no big deal" xe2x80x93 but notes like Do spend some time thinking about the security implications for your users in this context (see this answer at SO) suggest differently.

Can anyone here provide some insights?

        
       
       

回答列表

5
 
vote
vote
最佳答案
 

运行调试应用程序并不是任何先天的问题。如果有人抓住你的解锁手机,可以启动开发人员模式,并开始调试,他们可能能够更轻松地从应用程序的内存中获取敏感信息 - 但这并不是特别逼真,并且可以用锁屏轻松抵消。

调试信息还将通过默默无闻利用安全性,我们所有人都不是真正的安全性。这显然不是涉及开源应用程序的一个因素,因为他们可以简单地检查源来找到缺陷。

但是,您添加了调试的代码路径的细节肯定可以是安全漏洞。例如,可以用于测试和验证目的,例如,在登录时,调试版本将用户的密码写入以logcat。有很多PII可以通过这种方式暴露。

对于最终用户,您所知的一切都是它可能更有可能为一个任意应用程序,如果它是一个调试版本,则是一个任意应用程序来泄漏信息。除非你自己正在寻找它,否则你不太可能看到它。这可能是避免此类应用程序的原因 - 因此,由于一个不知道版本和调试版本之间的差异的开发人员可能不会非常胜任地保护数据。

dan hulme也发表了一个很好的聊天点:调试版本可能不会正确签名,意味着它可以从恶意来源中"升级" 。我会再次认为这是一个不太可能的发生,但它是另一点反对它。

 

There aren't really any innate problems with running a debug app. If someone grabs your unlocked phone, enables Developer Mode, and starts debugging they might be able to grab sensitive information from the app's memory slightly more easily xe2x80x94 but that's not particularly realistic and easily countered with a lock screen.

Debug information will also make it harder to make use of security through obscurity, which we all know is not real security. This obviously isn't even a factor when it comes to open-source apps, since they can simply inspect the source to find a flaw.

However, the specifics of what code paths you've added for debugging can definitely be security holes. Maybe for testing and verification purposes, the debug version writes the user's password out to logcat when they sign in, for example. There is a great deal of PII that could be exposed this way.

For an end user, all that you know is that it's probably more likely for an arbitrary app to leak information if it's a debug version. Unless you are searching for it yourself, you're not likely to see it. That's probably enough reason to avoid such apps xe2x80x94 doubly so since a developer who doesn't know the difference between Release and Debug versions is probably not protecting your data very competently either.

Dan Hulme also made a good point in chat: A debug version probably won't be properly signed, meaning that it could be "upgraded" from a malicious source. I would again presume this to be an unlikely occurrence, but it is another point against it.

 
 
     
     

相关问题

-2  在Android设备中测试是否会降低它的生命? [复制]  ( Does testing in android device will reduce its life ) 
这个问题已经在这里有答案: 不断充电损坏我的Android手机? (6个答案) ...

2  Nexus 5上没有调试图标与Android 6.0.1棉花糖  ( No debug icon on nexus 5 with android 6 0 1 marshmallow ) 
当我插上USB电缆时,调试图标不会显示出来。 adb设备没有看到它。 开发人员模式已启用。 开发人员选项已启用。 保持唤醒使能。 USB调试启用。 我已经是开发人员模式。昨天它在插入SIM卡并重新启动后出现,但今天早上没有任何东西。 我正在使用debian 8并调试其他设备从未出现过问题。 我甚至尝试重新启...

1  如何在Android上访问Opera Mobile的浏览器控制台?  ( How can i access the browser console on opera mobile on android ) 
如何在 Opera Mobile上访问浏览器控制台Android ? 浏览器控制台=类似于Chrome上的开发人员控制台窗口的东西,按下键盘快捷键Ctrl Shift J ...

0  使用远程调试安装恶意软件  ( Malware installed with remote debugging ) 
有人可以在没有注意到的情况下安装apks,使用远程调试吗? (例如,通过TCP / IP,或在同一WiFi网络上)。我发现文章在快速谷歌后指的是,但我不确定他们是否不仅仅是危言耸听者。 编辑:本文似乎讨论了类似的东西 - "android" s外部设备攻击:演示和安全性 建议" - 魏等人。 我在考虑启用调试模式...

3  我的nexus 4上的adb问题(未经授权的电话)  ( Problem with adb on my nexus 4 unauthorized phone ) 
在CMD中运行adb设备时,它表示我的手机未经授权。似乎它与RSA指纹提示有关。我不记得曾经得到这样的提示。是的,我在PTP模式下运行,并启用调试。我尝试过多个小时的互联网尝试: 启用/禁用调试模式反复 卸载并重新安装我的手机或adb 的驱动程序 adb-killserver 和 adb-startserver...

0  如何制作任何应用程序调试  ( How to make any app debuggable ) 
我正在研究一些项目,我需要在Android Android市场上调试现有应用程序。我知道修改了androidmanifest.xml我们可以这样做,但是我需要有源代码。所以有没有任何短暂的方法来实现这项任务。在Developer选项中可以"选择Debug应用程序" 选项帮助? ...

0  在Nexus 5x上调试WiFi连接  ( Debugging wifi connection on nexus 5x ) 
从Nexus 5升级到Nexus 5x后,我无法连接到我公司的WiFi。我提供的凭据是正确的,有时我会设法连接,但这持续几秒到几分钟。 WiFi屏幕显示带有"已保存" 的WiFi,然后通过"连接" ,"验证" 并返回"已保存" 。 如何调试此操作并查看正在发生的事情?有没有我可以调查的日志?到目前为止,所有其他W...

1  调试BootLoop?  ( Debug a bootloop ) 
所以我试图将gsm rom港口移植到cdma,它是在bootloop中。我想知道如何弄清楚如何看待究竟是什么是错误并导致它,所以我可以解决它。 请注意,当谈到这样的事情时,我是一个新手,但我知道我的方式围绕软件和硬件。我只是这样做是一种学习体验,以进一步了解我在Android操作系统中贡献工作,我可能会在将来开始做。...

0  当触摸不起作用时,如何在Xperia Miro上启用USB调试?  ( How can i enable usb debugging on xperia miro when touch is not working ) 
我有一个xperia miro。我正在尝试用OTG电缆连接鼠标,但它无法检测到。 触摸完全没有工作。 如何解决这个问题? ...

6  如何防止Galaxy S4从连接为“连接为安装程序”而不是“连接为媒体设备”?  ( How to prevent galaxy s4 from connecting as connected as installer instead of ) 
我有我的verizon wireless samsung galaxy s4的开发人员选项,启用了USB调试开启。每当我将它连接到我的机器时,它会在通知窗口中显示"连接为安装程序" 。但是,大约三十秒后,它会切换到"连接为媒体设备" ,如果没有我做任何事情。无论我连接到哪个操作系统(在OSX和Windows中安装了适...




© 2022 it.wenda123.org All Rights Reserved. 问答之家 版权所有