发明内容
为此,需要提供一种安卓系统的分区保护方法和装置。
为实现上述目的,发明人提供了一种安卓系统的分区保护方法,包括步骤:
设定系统内核中的挂载命令,使所有挂载命令带有nosuid属性。
进一步地,所述的安卓系统的分区保护方法中,还包括步骤:
对预设目录添加标识信息,所述标识信息用于表明所述目录为受保护分区。
进一步地,所述的安卓系统的分区保护方法中,在步骤“对预设目录添加标识信息”后还包括步骤:
调用挂载命令,判断挂载命令对象所在的目录中是否有所述标识信息,若有则不执行所述挂载命令;否则执行所述挂载命令。
进一步地,所述的安卓系统的分区保护方法中,所述步骤“对预设目录添加标识信息”具体包括:
在预设目录下建立文件节点,所述文件节点用于标识所述目录为受保护分区;
在预设目录下建立文件节点,并在所述文件节点中写入预设字符信息,所述预设字符信息用于表明所述目录为受保护分区;或
在预设目录的名称中添加标识信息,所述标识信息用于表明所述目录为受保护分区。
进一步地,所述的安卓系统的分区保护方法中,所述预设目录为/proc目录。
发明人还提供了一种安卓系统的分区保护装置,包括挂载命令设定单元,所述挂载命令设定单元用于设定系统内核中的挂载命令,使所有挂载命令带有nosuid属性。
进一步地,所述的安卓系统的分区保护装置中,还包括标识信息添加单元,所述标识信息添加单元用于对预设目录添加标识信息,所述标识信息用于表明所述目录为受保护分区。
进一步地,所述的安卓系统的分区保护装置中,还包括挂载命令调用单元、标识信息判断单元和挂载命令执行单元;
所述挂载命令调用单元用于调用挂载命令;
所述标识信息判断单元用于判断挂载命令对象所在的目录中是否有所述标识信息;
当标识信息判断单元判定挂载命令对象所在的目录中有所述标识信息时不执行所述挂载命令;否则挂载命令执行单元执行所述挂载命令。
进一步地,所述的安卓系统的分区保护装置中,所述标识信息添加单元对预设目录添加标识信息具体包括:
在预设目录下建立文件节点,所述文件节点用于标识所述目录为受保护分区;
在预设目录下建立文件节点,并在所述文件节点中写入预设字符信息,所述预设字符信息用于表明所述目录为受保护分区;或
在预设目录的名称中添加标识信息,所述标识信息用于表明所述目录为受保护分区。
进一步地,所述的安卓系统的分区保护装置中,所述预设目录为/proc目录。
区别于现有技术,上述技术方案一方面完善了权限管理机制,另一方面还在权限管理防线出现漏洞的情况下进一步设置了安全防御方案,如此一来,不仅能有效控制用户权限切换,从而保护被保护分区及其中文件不受恶意篡改;还能够针对通过特殊方式获取了超级用户的权限的情况保护分区不受恶意篡改。
具体实施方式
为详细说明技术方案的技术内容、构造特征、所实现目的及效果,以下结合具体实施例并配合附图详予说明。
请参阅图1,为本发明一实施方式所述安卓系统的分区保护方法的流程图;所述方法包括如下步骤:
S1、设定系统内核中的挂载命令,使所有挂载命令带有nosuid属性;
S2、对预设目录添加标识信息,所述标识信息用于表明所述目录为受保护分区;
S3、调用挂载命令,判断挂载命令对象所在的目录中是否有所述标识信息;若是则进入步骤S4,否则进入步骤S5;
S4、不执行所述挂载命令。
S5、执行所述挂载命令。
本实施方式中,所述挂载指令即为mount命令,通过设定mount命令,使得所有mount调用函数均具有nosuid属性,从而使得在所有分区中执行带有suid属性的su程序时,系统不会修改该进程用户权限为文件所有者,于是即使非root用户运行su程序时,su仍然是非root身份。简言之,就是通过修改mount命令属性,达到使su无效的目的。
本实施方式中,步骤“对预设目录添加标识信息”的方法是:在系统启动过程中,首先在系统的预设目录下建立一文件节点,执行完挂载分区后,在此文件节点中写入表明该预设目录为受保护分区的特定字符信息,也就是说,所述文件节点中的该特定字符信息是一种标识信息,所述标识信息用于表明所述目录为受保护分区。在其他实施方式中,对预设目录添加标识信息还可以是其他方案,如在预设目录下建立文件节点,所述文件节点用于标识所述目录为受保护分区;或在预设目录的名称中添加标识信息,所述标识信息用于表明所述目录为受保护分区。简言之,就是对需要保护的分区(目录)做一定的标识信息添加处理,从而使得该分区具有可被系统辨识的特征,从而在实际操作过程中能根据该特征对其进行保护。
在本实施方式中,如果用户通过某种特殊方式绕过了用户权限保护防御,取得了root权限(即超级用户权限),则通过步骤S2设置的标识信息,在这种情况下,设定系统在调用mount函数时,首先需要扫描并判断是否有包括标识信息的文件节点,若是则认为需要保护该分区,系统不执行任何该mount函数指向的操作而直接返回;若不是,则认为该分区不受保护,正常执行该mount命令所规定的操作。
在其他对预设目录添加标识信息的方案中,如在预设目录下建立文件节点,所述文件节点用于标识所述目录为受保护分区,则设定系统在调用mount函数时首先判断该挂载命令对象所存在的目录中是否有用于标识所述目录为受保护分区的文件节点,若有则认为需要保护该分区,系统不执行任何该mount函数指向的操作而直接返回;若没有,则认为该分区不受保护,正常执行该mount命令所规定的操作。又如,当对预设目录添加标识信息的方案为在预设目录的名称中添加标识信息,所述标识信息用于表明所述目录为受保护分区时,则设定系统在调用mount函数时首先判断该挂载命令对象所存在的目录中是否有用于标识所述目录为受保护分区的文件节点,若有则认为需要保护该分区,系统不执行任何该mount函数指向的操作而直接返回;若没有,则认为该分区不受保护,正常执行该mount命令所规定的操作。
本实施方式中,所述预设目录为/proc目录,在其他实施方式中,所述预设目录还可以设为其他需要保护的目录,对受保护目录进行预设保护标识信息的操作,对不需保护的目录则不设保护标识信息,则在具体的系统调用挂载命令时可以通过判断函数对象所在的目录是否具有保护标识信息而达到对其保护或不保护的目的。然后执行正常的安卓系统启动流程。
Root的根本目的是为了可以随意篡改系统厂家本打算保护起来的文件信息。在android系统中对于文件的访问,有严格的用户权限控制。对于被保护的内容,一般只有root用户才可以访问。然而普通使用的用户状态是普通用户,是不具有对被保护起来的文件的篡改权限的。禁止了su切换到超级用户的特性,也就使普通用户无法切换到超级用户,从而也不具备篡改被保护文件的权利。当用户通过某种特殊方式切换到root用户后,由于保护起来的分区出厂时默认是挂载为只读的方式,所以想要篡改保护分区里的内容,必须挂载成可写的方式。针对重新挂载,本方案提出利用建立文件节点来标记需要加以保护特定分区的方式,使重新挂载保护分区成可写方式不成功,最终使得篡改不成功。
上述实施方式一方面完善了权限管理机制,另一方面还在权限管理防线出现漏洞的情况下进一步设置了安全防御方案,如此一来,不仅能有效控制用户权限切换,从而保护被保护分区及其中文件不受恶意篡改;还能够针对通过特殊方式获取了超级用户的权限的情况保护分区不受恶意篡改。这样就加强了安卓系统的防护能力,防止系统重要文件和信息被篡改,从而保证系统和重要文件的完整性和安全性。
请参阅图2,为本发明一实施方式所述安卓系统的分区保护装置的结构示意图。所述装置包括挂载命令设定单元1、标识信息添加单元2、挂载命令调用单元3、标识信息判断单元4以及挂载命令执行单元5。
所述挂载命令设定单元1用于设定系统内核中的挂载命令,使所有挂载命令带有nosuid属性。
所述标识信息添加单元2用于对预设目录添加标识信息,所述标识信息用于表明所述目录为受保护分区。进一步地,所述标识信息添加单元2对预设目录添加标识信息具体包括:在预设目录下建立文件节点,所述文件节点用于标识所述目录为受保护分区;在预设目录下建立文件节点,并在所述文件节点中写入预设字符信息,所述预设字符信息用于表明所述目录为受保护分区;或在预设目录的名称中添加标识信息,所述标识信息用于表明所述目录为受保护分区。
所述挂载命令调用单元3用于调用挂载命令;所述标识信息判断单元4用于判断挂载命令对象所在的目录中是否有所述标识信息;当标识信息判断单元4判定挂载命令对象所在的目录中有所述标识信息时不执行所述挂载命令;否则挂载命令执行单元5执行所述挂载命令。
具体地,所述安卓系统的分区保护装置执行安卓系统分区保护功能的方式步骤如下:
步骤S1、挂载命令设定单元1设定系统内核中的挂载命令,使所有挂载命令带有nosuid属性;
步骤S2、标识信息添加单元2对预设目录添加标识信息,所述标识信息用于表明所述目录为受保护分区;
步骤S3、挂载命令调用单元3调用挂载命令,标识信息判断单元4判断挂载命令对象所在的目录中是否有所述标识信息;若是则进入步骤S4,否则进入步骤S5;
步骤S4、不执行所述挂载命令。
步骤S5、挂载命令执行单元5执行所述挂载命令。
本实施方式中,所述挂载指令即为mount命令,通过设定mount命令,使得所有mount调用函数均具有nosuid属性,从而使得在所有分区中执行带有suid属性的su程序时,系统不会修改该进程用户权限为文件所有者,于是即使非root用户运行su程序时,su仍然是非root身份。简言之,就是通过修改mount命令属性,达到使su无效的目的。
本实施方式中,标识信息添加单元2对预设目录添加标识信息的方法是:在系统启动过程中,首先标识信息添加单元2在系统的预设目录下建立一文件节点,执行完挂载分区后,标识信息添加单元2在此文件节点中写入表明该预设目录为受保护分区的特定字符信息,也就是说,所述文件节点中的该特定字符信息是一种标识信息,所述标识信息用于表明所述目录为受保护分区。在其他实施方式中,标识信息添加单元2对预设目录添加标识信息还可以是其他方案,如在预设目录下建立文件节点,所述文件节点用于标识所述目录为受保护分区;或在预设目录的名称中添加标识信息,所述标识信息用于表明所述目录为受保护分区。简言之,就是对需要保护的分区(目录)做一定的标识信息添加处理,从而使得该分区具有可被系统辨识的特征,从而在实际操作过程中能根据该特征对其进行保护。
在本实施方式中,如果用户通过某种特殊方式绕过了用户权限保护防御,取得了root权限(即超级用户权限),则通过标识信息添加单元2在步骤S2设置的标识信息,在这种情况下,设定系统在挂载命令调用单元3调用mount函数时,首先需要由标识信息判断单元4扫描并判断是否有包括标识信息的文件节点,若是则认为需要保护该分区,系统不执行任何该mount函数指向的操作而直接返回;若不是,则认为该分区不受保护,挂载命令执行单元5正常执行该mount命令所规定的操作。
在其他对预设目录添加标识信息的方案中,如标识信息添加单元2在预设目录下建立文件节点,所述文件节点用于标识所述目录为受保护分区,则设定系统在挂载命令调用单元3调用mount函数时首先由标识信息判断单元4判断该挂载命令对象所存在的目录中是否有用于标识所述目录为受保护分区的文件节点,若有则认为需要保护该分区,系统不执行任何该mount函数指向的操作而直接返回;若没有,则认为该分区不受保护,挂载命令执行单元5正常执行该mount命令所规定的操作。又如,当对预设目录添加标识信息的方案为标识信息添加单元2在预设目录的名称中添加标识信息,所述标识信息用于表明所述目录为受保护分区时,则设定系统在挂载命令调用单元3调用mount函数时首先由标识信息判断单元4判断该挂载命令对象所存在的目录中是否有用于标识所述目录为受保护分区的文件节点,若有则认为需要保护该分区,系统不执行任何该mount函数指向的操作而直接返回;若没有,则认为该分区不受保护,挂载命令执行单元5正常执行该mount命令所规定的操作。
本实施方式中,所述预设目录为/proc目录,在其他实施方式中,所述预设目录还可以设为其他需要保护的目录,对受保护目录进行预设保护标识信息的操作,对不需保护的目录则不设保护标识信息,则在具体的系统调用挂载命令时可以通过判断函数对象所在的目录是否具有保护标识信息而达到对其保护或不保护的目的。然后执行正常的安卓系统启动流程。
实际上,Root的根本目的是为了可以随意篡改系统厂家本打算保护起来的文件信息。在android系统中对于文件的访问,有严格的用户权限控制。对于被保护的内容,一般只有root用户才可以访问。然而普通使用的用户状态是普通用户,是不具有对被保护起来的文件的篡改权限的。禁止了su切换到超级用户的特性,也就使普通用户无法切换到超级用户,从而也不具备篡改被保护文件的权利。当用户通过某种特殊方式切换到root用户后,由于保护起来的分区出厂时默认是挂载为只读的方式,所以想要篡改保护分区里的内容,必须挂载成可写的方式。针对重新挂载,本方案提出利用建立文件节点来标记需要加以保护特定分区的方式,使重新挂载保护分区成可写方式不成功,最终使得篡改不成功。
上述实施方式一方面完善了权限管理机制,另一方面还在权限管理防线出现漏洞的情况下进一步设置了安全防御方案,如此一来,不仅能有效控制用户权限切换,从而保护被保护分区及其中文件不受恶意篡改;还能够针对通过特殊方式获取了超级用户的权限的情况保护分区不受恶意篡改。这样就加强了安卓系统的防护能力,防止系统重要文件和信息被篡改,从而保证系统和重要文件的完整性和安全性。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括……”或“包含……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的要素。此外,在本文中,“大于”、“小于”、“超过”等理解为不包括本数;“以上”、“以下”、“以内”等理解为包括本数。
本领域内的技术人员应明白,上述各实施例可提供为方法、装置、或计算机程序产品。这些实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。上述各实施例涉及的方法中的全部或部分步骤可以通过程序来指令相关的硬件来完成,所述的程序可以存储于计算机设备可读取的存储介质中,用于执行上述各实施例方法所述的全部或部分步骤。所述计算机设备,包括但不限于:个人计算机、服务器、通用计算机、专用计算机、网络设备、嵌入式设备、可编程设备、智能移动终端、智能家居设备、穿戴式智能设备、车载智能设备等;所述的存储介质,包括但不限于:RAM、ROM、磁碟、磁带、光盘、闪存、U盘、移动硬盘、存储卡、记忆棒、网络服务器存储、网络云存储等。
上述各实施例是参照根据实施例所述的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到计算机设备的处理器以产生一个机器,使得通过计算机设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机设备以特定方式工作的计算机设备可读存储器中,使得存储在该计算机设备可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机设备上,使得在计算机设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已经对上述各实施例进行了描述,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改,所以以上所述仅为本发明的实施例,并非因此限制本发明的专利保护范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围之内。