精华内容
下载资源
问答
  • 云计算系统中的安全问题 ;主要内容;也许我们起名叫云计算本身就是一个失误因为这名字很容易让人感觉有趣和安全但事实上网络中充满了威胁和险恶如果我们当初把它叫做沼泽计算(swamp computing)或许更能够让人们对它有...
  • 关于安卓系统安全性的问题

    千次阅读 2019-01-18 10:23:42
    很久以前有人声称使用安卓系统不安全,称其获取的用户权限过多,太过于暴露用户的隐私。很多人在贴下反讽“只是你不会使用权限管理而已”,而实际上现在,很多安卓应用程序一旦禁用了某些权限就直接限制用户的使用,...

    引言

    很久以前有人声称使用安卓系统不安全,称其获取的用户权限过多,太过于暴露用户的隐私。很多人在贴下反讽“只是你不会使用权限管理而已”,而实际上现在,很多安卓应用程序一旦禁用了某些权限就直接限制用户的使用,完全就是一种流氓姿态。
    限制权限已经不管用的同时,逐渐泛用化的安卓系统成了黑客眼中的盘中餐。

    研讨

    最近研究了一下关于安卓渗透的方案,像很多人以为的那样,认为安卓系统本是手机系统而不存在漏洞,但事实上,安卓系统漏洞百出,每一个api版本都伴随着新的漏洞。每次安全补丁都是在修复上一版本的漏洞,甚至于,由于没有用户反馈而选择不修复漏洞,可见谷歌对待安卓系统的安全性态度是多么怠慢。
    自从选择了计算机专业,对计算机系统进行了解之后,就知道没有密不透风的系统,只有没有发现漏洞的系统,就像是linux系统一样,但凡会使用百度的人,哪怕不使用,你也可以获得很多关于脚本病毒的信息。

    linux也是一个大漏斗,只是没有人用它打水而已。

    是个程序员就应该善用搜索系统。最近研究了一下安卓开发,粗略看了一下用于远程控制的AndroidRAT,后来又发现这个软件的源码由于开源的问题,而被各种黑客利用,用于恶意控制用户手机。

    有事,待填坑

    展开全文
  • 要想说清楚这个问题,我们需要了解一下安卓和Linux到底是什么关系,而且这两个系统到底安全不安全,背后的原因是什么。当然,在此需要表明一个观点:世界上没有绝对安全的操作系统安卓基于...

    确切的说安卓不是Linux

    大家都知道安卓是基于Linux内核,而且大家也知道Linux的安全性是公认的,那为什么和Linux有着类似嫡系关系的安卓却一直被人诟病不安全呢?要想说清楚这个问题,我们需要了解一下安卓和Linux到底是什么关系,而且这两个系统到底安全不安全,背后的原因是什么。当然,在此需要表明一个观点:世界上没有绝对安全的操作系统。

    安卓基于Linux内核这句话,大家千万不要解读为安卓等同于Linux。虽然安卓基于Linux,但安卓与Linux之间还是有比较大的区别。

    我们经常说的Linux,大多数情况下指的是Linux发行版,即GNU/Linux发行版。它不仅包括Linux内核,还包括各种各样的系统管理软件或应用工具软件,就好比Windows实际上是由NT内核与应用程序的组合一样。只不过巧合的是,Linux发行版的内核名字就叫Linux,时间长了,很多人就将Linux内核与Linux发行版混为一谈。Linux发行版中的软件通常只收录经过开源社区审核过的开源软件,或者经过商业机构审核的闭源软件。

    而安卓对应的则是Android/Linux,毫无疑问系统也是开源的,但问题就在于安装在上面的软件基本都是闭源的,而且针对这些软件基本没有审核机制。仅仅这一点就能说明安卓与Linux发行版是有比较大的区别的。

    安卓并不是Linux

    除了这一点外,谷歌让安卓系统只能运行一个Dalvik/ART(Java虚拟机),而通常的Linux发行版可以运行多个“Dalvik/ART”(此处为打比方,根据不同发行版会有gnome、LXQT等)。这一点算是安卓与Linux发行版的根本区别。

    以上内容可能涉及到部分专业术语,看起来有点云里雾里。总结就是,我们通常所说的安卓系统,并不能简单的与Linux划等号。我们常说的Linux安全,一般是指Linux内核比较安全,当然也有一部分指的是Linux发行版安全。而安卓由于在应用软件方面的做法与Linux不同,所以两者在安全方面并不能一概而论。

    Linux安全也只是相对的

    Linux内核或Linux发行版就真的安全吗?

    一个自2009年就出现的Linux内核严重安全漏洞,直到2014年才被发现,这个严重安全漏洞整整存在了5年时间。虽然这个漏洞在最短的时间内被修复,但不得不引人深思:Linux真的安全吗?前面我们说到了世界上没有绝对安全的操作系统,系统越复杂,可能出现的漏洞就越多,Linux也不例外。

    事实上,如果单论系统方面的漏洞,Linux的漏洞数量其实和Windows相比也并不少,毕竟是人编写的。但Linux的优势在于并不像Windows那样预装那么多核心程序。大部分Windows补丁都是在修补核心程序的漏洞。由于Linux并没有这么多核心程序,从而显得打补丁的频率没有Windows那么勤。

    之所以大家都在说Linux比较安全,主要是Linux的权限机制比较复杂而周密。大部分情况下,使用者在使用Linux时的身份都是非系统管理员,权限方面受限,即使被病毒入侵,也能很好的保护系统程序和其他用户文件的安全。而Windows则不然,几乎每一个账户都是管理员身份,一些破解软件甚至直接要求需要管理员身份运行,如此一来软件就获得了太大的权限,随意修改、删除文件便轻而易举。

    那Linux到底需不需要杀毒软件呢?各位朋友不妨看看周围有多少人在用Linux系统。目前Linux系统主要部署在服务器上,服务器用的Linux都会配置好防火墙之类的防病毒手段。而个人使用Linux的数量又偏少,加之Linux的权限机制,制作Linux病毒难度大、收益小,有这个时间为何不多写几个Windows病毒呢?

    总结来说,Linux并不是100%安全,它依然存在着许多漏洞。但相比Windows而言,Linux有着比较周密的权限机制,加之本身市场占有率比较低,开发Linux病毒并没有太大搞头。当然,如果黑客真的想黑掉一台Linux电脑的话,相信也不会太难。所以说,Linux的安全只能是相对而言的。

    安卓不安全主要是软件的黑锅

    安卓与Linux有类似嫡系关系,按理说在安全性方面应该也是十分出色的,但事实却是安卓手机成了诈骗分子经常活跃的平台。当然,这其中的一小部分原因是安卓为开源系统,这使得众多手机厂商开始深度定制安卓系统,从而产生漏洞;另外一个重要原因就是第三方软件。

    前面我们提到,安卓在第三方软件上与Linux有着比较大的区别,Linux运行的是经过开源社区审核过的开源软件,软件安全性能够得到保证。而安卓则运行的是第三方闭源软件,而且由于安卓系统太过碎片化和自由,除了Google Play外,并没有针对安卓第三方软件比较权威的审核平台,在国内更是如此。

    闭源软件再加上没有有效合理的审核机制,使得可以在安卓上运行恶意软件层出不穷。这一点做的比较出色的要数苹果的App Store。当然,如果你只使用谷歌的设备,而且只从Google Play上下载程序,那么安卓系统的安全性也是非常出色的。但这对于国内用户来说太不现实了。

    除了软件层面的因素外,还有一项比较危险的操作,但相信多数安卓用户都经历过的,那就是root。root后的安卓手机,相当于将系统的最高控制权限交了出来,危险程度可想而知。但不root安卓手机,手机内预装的应用没有卸载,而且还自启动占用资源、偷跑流量。可以说,安卓之所以不安全,很大一部分责任要归到手机厂商头上。

    曾经“风靡一时”的root

    说白了,如果单论原生安卓系统的话,在安全性方面其实并没有我们想象的那么差。之所以大家形成了安卓不安全的观念,主要是安卓碎片化、深度定制、root等不当操作导致的。这种情况在国内还是非常普遍的,几乎每个手机厂商都会对安卓进行深度定制,而且升级的节奏也要比原生安卓慢很多,甚至不升级。这样看来,安卓也挺无奈的。

    观点·总结

    安卓与Linux确实有着千丝万缕的联系,但不能将安卓与Linux划等号。每个操作系统都会存在漏洞,只不过Linux由于一些外部或自身的原因,相比其他系统不易“招惹”病毒。原生安卓同Linux有很多相似之处,但在国内的大环境下,大家都使用着深度定制安卓,也没有针对第三方软件比较权威的审核平台,导致安卓的安全性大打折扣。

    本文转自d1net(转载)

    展开全文
  • 安卓系统安全哲学

    2014-11-03 22:08:30
    系统本身是不安全的,应用程序拥有比较高的权限,很容易对系统进行恶意操作。这类系统以Windows XP以及之前的Windows系列 操作系统为代表。用户往往会在这些操作系统上安装例如杀毒软件、XX卫士之类的安全软件,...

    关于操作系统的安全有两种不同的哲学:

    1. 系统本身是不安全的,应用程序拥有比较高的权限,很容易对系统进行恶意操作。这类系统以Windows XP以及之前的Windows系列 操作系统为代表。用户往往会在这些操作系统上安装例如杀毒软件、XX卫士之类的安全软件,并且经常性地对系统进行杀毒、扫描,以确保系统的安全。造成这类系统安全性差的原因有很多,其中很重要的一点是,系统缺少严格的权限控制,应用程序能够很方便地对系统进行修改,甚至破坏。微软似乎意识到这个问题,因此在Windows Vista之后的系统中引入了更严格的权限控制。大家会发现一个细节,在使用Windows 7系统时,偶尔会弹出一个对话框,询问用户是否允许某程序的系统级操作。
    2. 系统本身是安全的,应用程序拥有的权限比较低,比较难以对系统进行破坏。这类系统包括LinuxMac OSIOS等。这类系统的用户似乎从来没有安装杀毒软件的经历。这类系统往往具有严格的权限控制,一般应用程序无法对系统关键文件进行修改,因此系统就不容易被破坏。大家在使用Linux时,经常会遇到系统弹出对话框,询问用户并且要求输入密码等。这就表明系统对于应用软件的操作有着严格的控制,从而也保证了系统的安全。

    对于安卓操作系统,理论上应该属于第二类系统。事实上在国外,用户也是这样来看待安卓系统的。但是,任何事情到了国内似乎都会有些变质。在国内,由于安卓市场的访问受到限制,催生了一大堆安卓应用市场。然而缺少了统一、安全的市场对应用进行监控,国内的应用市场充斥着大量盗版、仿冒以及恶意应用。于是,用户就很需要安全软件来保护系统。但是由于安卓系统有着严格的权限控制,一般软件无法拥有系统级的权限,也就无法实现监控、保护系统的功能。所以,很多安全软件就要求用户对系统进行ROOTROOT系统简而言之就是任何应用都拥有了系统的权限。一旦系统被ROOT,安卓系统就彻底沦为第一类本身不安全的系统。这就像打开了潘多拉的盒子,安全软件能够更好地保护系统,但系统也更加容易受到攻击。


    怎样才能在不破坏系统的前提下,保护系统的安全呢?其实方案很简单,只要系统本身能够提供安全软件的功能,或者有针对性地将系统接口给安全软件使用,那么,安卓系统在安全上的“水土不服”就能够解决了。

    展开全文
  • 安卓项目中,打印日志既是一种调试手段也是一种检测...在项目中,日志系统可或缺的。但是,大部分时候,我们只希望在debug包中输出日志,而希望在release包中输出日志,所以我们需要一种安全的日志打印方式。

    在安卓项目中,打印日志既是一种调试手段也是一种检测业务逻辑完整性的方法。在项目中,日志系统是不可或缺的。但是,大部分时候,我们只希望在debug包中输出日志,而不希望在release包中输出日志,所以我们需要一种安全的日志打印方式。

    何为安全

    日志系统在很大程度上会暴露系统的架构路线和业务流程,是不允许将一些敏感的日志暴露到发布环境的。而且,优秀的日志系统在发布环境下,还能经受住hook、反射修改这些入侵手段。因此,我觉得安全的日志系统至少应该包括以下几个特点:

    1. 在需要时正常的打印;在不需要时不打印
    2. 在不需要打印时,在对应的地方,不应该出现打印日志的相关代码
    3. 没有被使用的日志类不应该出现在发布版的包中
    4. 实现方式尽量简单,接近原生

    满足以上的4个特性,我觉得才能说是安全的,而且是便捷的。这也是符合我们的诉求的。接下来我们来看下具体的实现方式。

    实现

    针对上述的第一点,我们通常诉求是:在debug环境下,我们打印日志;在release环境下,我们不打印。基于此,我们可以使用BuildConfig来实现,通过默认的DEBUG字段来判定编译环境。大致思路应该如下:

      public static void info(String msg) {
        if (BuildConfig.DEBUG) {
          Log.i(TAG, msg);
        }
      }
      
    

    其中BuildConfig.DEBUG是编译系统根据当前编译选项自动生成的对应当前构建环境的配置信息。

    上述代码就满足了我们关于安全性的第一个特性,使用起来也不麻烦。但是距离完善的日志系统,还有很多不足的地方。

    首先,在release环境下,虽然不再打印日志了,但是打印日志的代码还是存在的。而且还可以通过反射等手段修改BuildConfig.DEBUG的值,这样子的话,在release环境下,也会将日志打印出来。所以,我们需要解决第二个和第三个特性涉及的难点问题。

    我们知道,在实际开发过程中,我们一般只对release的包进行混淆处理。混淆的主要作用是以简短的字符来描述类和属性信息,增加阅读难度,起到一定的代码保护作用。在这里,我们使用到的主要工具就是Proguard,在AndroidStudio中,默认使用的也是Proguard

    实际上,Proguard的能力比我们了解的还要强大。总的来说,针对安卓项目,它支持以下几个功能输出。

    1. 压缩:主要是移除没有被引用的类和变量
    2. 优化:主要是类和变零的合并,方法内联
    3. 混淆:用简短的字符重命名类名、属性名;移除调试信息
    4. 预校验:针对不同java版本和平台,对类文件进行合法性的校验

    我们平常在使用过程中,由于压缩和优化可能会影响我们的原始代码(删除),所以使用比较少。

    而在这里,我们就是利用优化的功能来实现我们的诉求的。

    优化指令中有一种针对方法返回值的优化策略assumenosideeffects,它的优化原则是:

    如果一个有返回值的表达式,其返回值没有被存储或者没有被使用,那么,这个表达式是可以移除的。

    其原文表达为:

    In the optimization step, ProGuard can then remove calls to such methods, if it can determine that the return values aren’t used.

    因此,我们可以修改前面的日志工具类

      public static boolean info(String msg) {
        if (BuildConfig.DEBUG) {
          Log.i("TAG", msg);
          return true;
        }
        return false;
      }
      
    

    我们在调用时,仍然采用相同的方式,而且不理会返回值。

    Logger.i("this is test message.)
      
    

    为了在release包中(开启了proguard),移除对应的代码。。我们需要在proguard-rues.pro(该文件是在build.gradle中配置并提供给proguard的默认配置文件)文件中配置我们的优化策略。

    # 去除日志系统
    -assumenosideeffects class com.github.common.Logger {*;}
    
    

    到这里,我们已经解决了上述特性1、2、4三个。那么特性3是如何实现的呢?
    这就要提到上述的压缩指令了。事实上,在每个优化措施后面,都会紧跟一个压缩流程。

    It also applies a shrinking step after each optimization step, since some optimizations may open up the possibility to remove more classes and class members.

    当最后一个日志调用被移除后,触发的压缩指令就会从项目中移除该日志类文件。达到了我们上述特性3的目的。

    最后,我们来看下对比效果,我们在hasPms方法的第一行打印了一行日志,同时,为了便于观看,我们去掉了混淆。

    这是开启proguard之前的效果:

    这是开启proguard之后的效果:

    很明显,打印日志的逻辑已经被移除了,同时,在文件列表中也没有对应日志类文件了。

    到此,完美的解决了我们的日志打印需求。。

    参考

    Proguard指南

    展开全文
  • 安卓系统“Janus”安全漏洞修复

    千次阅读 2017-12-27 10:11:19
    安卓系统“Janus”安全漏洞(CVE-2017-13156),所有运行于安卓5.0以上系统,仅采用安卓APK V1签名机制的APP受到影响。该漏洞可让攻击者在改变APP开发者签名的情况下篡改APP程序、植入恶意代码,造成APP敏感数据...
  • “苹果手机需要安装杀毒软件,安卓手机都得安装杀毒...安卓系统安全软件 百度安全卫士、腾讯安全管家、360安全管家等等,在10年前可谓是家喻户晓,因为安卓手机的流行,几乎每位安卓手机用户都会安装一款手机安...
  • Linux 与 Windows 10 相比的一个优势是它更安全,但是 Linux 系统并不是绝对可靠的。Linux 与 Windows 10 相比的一个优势是它更安全,但是 Linux 系统并不是绝对可靠的, 美国国家标准技术研究院(National Institute...
  • “近日,根据《今日俄罗斯》网站及多家外媒报道,一名来自谷歌公司的资深信息安全研究员发现了苹果手机等设备存在重大漏洞:在无需接触手机的情况下,用户的一切信息都可以被获取。...而安卓是开源系统,安..
  • 安卓平台已经逐渐成为最受欢迎的移动终端操作系统,基于安卓系统的软件应用数量众多,同时安全威胁也在不断增加。介绍了Android系统的安全风险及加固的核心技术,据此提出了一种安卓应用程序的安全加固系统,设计和...
  • 要想说清楚这个问题,我们需要了解一下安卓和Linux到底是什么关系,而且这两个系统到底安全不安全,背后的原因是什么。当然,在此需要表明一个观点:世界上没有绝对安全的操作系统。  确切的说,安卓并不是Linux.....
  • 确切的说安卓不是 Linux ...要想说清楚这个问题,我们需要了解一下安卓和 Linux 到底是什么关系,而且这两个系统到底安全不安全,背后的原因是什么。当然,在此需要表明一个观点:世界上没有绝对安全的...
  • 安卓与iOS系统安全性大比拼***们对于智能手机安全性的理解远比普通手机用户要深刻的多。赛门铁克报告曾深入分析了安卓和iOS系统中存在的固有问题,并重点强调:“如今手机设备的操作系统大环境是杂乱的无安全性的,...
  • 在每个安卓用户的眼中安全模式的...在Windows系统中,安全模式的工作原理是在加载第三方设备驱动程序的情况下启动电脑,使电脑运行在系统最小模式,这样用户就可以方便地检测与修复计算机系统的错误。那么安卓手...
  • 安卓系统的功能性升级来说,安全补丁更重要! 很多安卓手机的使用用户可能只在意固件的安卓核心版本以及相关功能性更新,但其实相对于安卓核心版本来说刻意的追求版本号其实并需要,因为除了 Android4.4 对 64...
  • 一、2016年之前的系统:由于IOS系统(ISO即苹果操作系统)的限制,未越狱的情况下,苹果公司是允许用户过多的操作手机里的内容的,这也是IOS系统一直比安卓系统安全的主要原因。所以,在多数通用的APP软件里,比如...
  • 以下是打开应用的代码(python)。如果操作对象是系统应用,代码正常运行;如果操作的对象为用户... 在网络上查资料,发现全部的测试安卓系统都是5。如果想测试安卓7以上的系统,应该如何解决??? 谢谢!!
  • 基于Android设计了一种移动式井下安全生产综合数据管理系统,使得井下工作人员通过移动终端,能够与地面数据中心实时联系,及时了解安监情况。解决了井下和地面信息对等的问题。给出了系统总体设计,详细介绍了...
  • 一、2016年之前的系统:由于IOS系统(ISO即苹果操作系统)的限制,未越狱的情况下,苹果公司是允许用户过多的操作手机里的内容的,这也是IOS系统一直比安卓系统安全的主要原因。所以,在多数通用的APP软件里,比如...
  • 1.没有绝对安全无BUG的系统,为了增加稳定性消除BUG,所以会持续升级。2.对硬件进行优化,比如通过软件优化来提高续航、手机速度等,提升用户体验。3.本土化功能的添加,新的功能层出不穷,要想有好的体验就得靠系统...
  • 华为安卓手机因为SMSC(短信中心号码)设置不当会出现收到短信的情况,其他安卓手机以此类推,修改SMSC修置让手机正常接收短信。最近一同学反应,他的华为U8818手机只能发短信,收到别人发送的短信。排除了各种...
  • Android/安卓手机使用adb命令手动冻结/禁用应用方法(本文以华为荣耀8自动更新冻结/禁用为例进行描述)
  • Linux与安卓安全对抗

    2017-06-13 23:34:56
    要想说清楚这个问题,我们需要了解一下安卓和Linux到底是什么关系,而且这两个系统到底安全不安全,背后的原因是什么。当然,在此需要表明一个观点:世界上没有绝对安全的操作系统。 确切的说安卓不是...
  • 大家都知道安卓是基于Linux内核,...要想说清楚这个问题,我们需要了解一下安卓和Linux到底是什么关系,而且这两个系统到底安全不安全,背后的原因是什么。当然,在此需要表明一个观点:世界上没有绝对安全的操作系统
  • 安卓安全那点事

    2020-07-01 09:28:05
    本文旨在对于一个安卓app的安全知识做一个较为泛泛的总结,为开发出更安全的应用提供思路。内容比较粗略,仅起到抛砖引玉的效果,还望大家见谅。 Android应用的安全 意义 在维基百科上有一个关于计算机安全的定义:...
  • 关于安卓和苹果iOS系统之间的PK一直没有停歇,iOS以系统干净、流畅、安全而著称,安卓系统则以功能丰富、可玩性强等成为了全球手机市场的主流。●安卓系统越来越强,但仍存在致命缺陷●在国内手机市场,随着小米MIUI...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 679
精华内容 271
关键字:

安卓系统不安全