本发明涉及更新装置及更新方法。
背景技术:
以往,正在研究在服务器等控制通信设备中控制是否允许访问文件的访问控制技术。例如,提出了如下技术:基于预先设定的访问控制列表(以下,也记作acl(accesscontrollist)),仅允许执行对确认了完整性的执行文件的访问(参照非专利专利文献1)。另外,还提出了如下访问控制技术:预先设定允许访问文件的进程,监视访问文件的进程,将对文件的访问限定为特定的进程。
现有技术文献
非专利文献
非专利文献1:“applocker規則条件の種類について”、[online]、2015年10月26日、msdn库、[2018年11月28日检索]、因特网<url:https://msdn.microsoft.com/ja-jp/library/ee460959(v=ws.11).aspx>
技术实现要素:
发明所要解决的课题
然而,在现有技术中,存在难以进行表示访问控制策略的acl的适当的设定的情况。例如,在现有技术中,基于文件的散列(hash)值的一致性来设置确认文件的完整性的访问控制策略的acl。另一方面,对于难以预先定义散列值的文件,应用如下的访问控制技术:预先设定允许访问文件的进程,并限定访问文件的进程。然而,在访问这样的文件的进程的执行文件被篡改的情况下,存在允许来自被篡改的进程的访问的情况。
因此,提出了如下技术:针对作为访问控制的对象的每个访问目的地文件,将被允许访问该文件的进程的执行文件作为访问源文件,将访问目的地文件和访问源文件设定为acl。
在此,在这样进行使用了访问目的地文件和访问源文件的acl的设定时,有时会设定不适当的访问控制策略的acl。例如,在系统运用中运用者自身制作访问控制策略并更新acl的情况下,有时会制作不需要设定的访问控制策略并不小心应用。另外,在安装软件时等活用第三者制作的访问控制策略来更新acl的情况下,有时会没注意到有恶意的访问控制策略而沿用该策略。在任何情况下,acl的安全等级降低,有可能成为安全漏洞的因素。
本发明是鉴于上述情况而完成的,其目的在于,限制不适当的访问控制策略的追加,适当地设定访问控制列表。
用于解决课题的手段
为了解决上述课题并达成目的,本发明所涉及的的更新装置的特征在于,所述更新装置具备:存储部,其存储软件包管理信息和访问控制列表,所述软件包管理信息包含文件与包含该文件的软件包之间的关联、和表示多个软件包之间有无依赖关系的信息,所述访问控制列表包含文件与被允许访问该文件的访问源文件之间的关联;确定部,在指定了文件与访问源文件的组合的情况下,所述确定部参照所述软件包管理信息,确定包含所述文件的软件包和包含所述访问源文件的软件包;以及追加部,在所确定的包含所述文件的软件包与包含所述访问源文件的软件包相同或相互存在依赖关系的情况下,所述追加部将所指定的所述组合追加到所述访问控制列表中。
发明效果
根据本发明,能够限制不适当的访问控制策略的追加,适当地设定访问控制列表。
附图说明
图1是用于说明访问控制装置的处理概要的图。
图2是例示本实施方式的更新装置的概略结构的示意图。
图3是例示软件包管理信息的数据结构的图。
图4是例示acl的数据结构的图。
图5是用于说明追加部的处理的图。
图6是用于说明追加部的处理的图。
图7是表示更新处理步骤的流程图。
图8是表示执行更新程序的计算机的一例的图。
具体实施方式
以下,参照附图对本发明的一个实施方式进行详细说明。另外需要说明的是,本发明并不限定于该实施方式。另外,在附图的记载中,对相同部分标注相同标号来表示。
[访问控制装置的处理概要]
本实施方式的更新装置进行更新用于访问控制装置的访问控制的acl的更新处理。首先,图1是用于说明访问控制装置的处理概要的图。如图1所示,访问控制装置在检测到访问作为访问控制的对象的访问目的地文件的进程的情况下,进行如下的访问控制:根据表示访问控制策略的acl,控制是否允许该进程对该访问目的地文件的访问。
例如,访问控制装置仅在检测到的进程的执行文件在预先设定的acl中被设定为针对访问目的地文件的访问源文件的情况下,允许该进程对访问目的地文件的访问。访问控制装置基于该acl确认访问目的地文件和访问源文件双方的完整性,允许访问。
本实施方式的更新装置进行更新访问控制装置的acl的更新处理。在此,如果不小心将不需要的文件间的访问的允许追加到acl,则安全等级降低,有可能成为安全漏洞的因素。
另外,已知有linux(注册商标)的rpm(rpmpackagemanager:rpm软件包管理器)等软件包管理信息。软件包管理信息是统一管理执行文件、设定文件、库文件等的信息。各软件包中至少包含安装时包含的执行文件。也可以包含安装后生成的文件。在软件包管理信息中,针对各软件包,包含表示在哪个软件包的软件中需要哪个软件包的软件、即哪个软件包依赖于哪个软件包这样的表示软件的软件包开发者设想的软件包之间的依赖关系的信息。
因此,本实施方式的更新装置使用软件包管理信息,考虑软件的程序包开发者设想的文件间的访问是否存在,执行至少限制向acl的不需要的追加的acl更新处理。
此外需要说明的是,在以下说明中,更新装置10是安装于与访问控制装置不同的硬件中的装置,但也可以是组装于访问控制装置中的装置。
[更新装置的结构]
图2是例示本实施方式的更新装置的概略结构的示意图。如图2所例示,更新装置10由个人计算机等通用计算机实现,具备输入部11、输出部12、通信控制部13、存储部14以及控制部15。
输入部11使用键盘、鼠标等输入设备来实现,与操作者的输入操作对应地,对控制部15输入处理开始等各种指示信息。输出部12通过液晶显示器等显示装置、打印机等印刷装置等来实现。
通信控制部13由nic(networkinterfacecard:网络接口卡)等实现,控制外部装置与控制部15的经由lan(localareanetwork:局域网)、因特网等电气通信线路的通信。例如,通信控制部13控制外部的装置与控制部15的通信,所述外部的装置包括管理在后述的更新处理中使用的软件包管理信息的管理装置、管理更新处理的对象的acl的访问控制装置、管理多个文件的文件管理系统等。
存储部14由ram(randomaccessmemory:随机存取存储器)、闪存(flashmemory:闪存)等半导体存储器元件、或者硬盘、光盘等存储装置来实现。在本实施方式中,存储部14存储软件包管理信息14a和acl14b。此外需要说明的是,存储部14也可以是经由通信控制部13与控制部15进行通信的结构。
图3是例示软件包管理信息14a的图。软件包管理信息14a包含表示文件与包含该文件的软件包之间的关联、以及多个软件包之间有无依赖关系的信息。各软件包至少包含安装时包含的执行文件和安装后生成的文件。
具体而言,如图3所示,软件包管理信息14a是针对每个软件包将现有目的地的软件包与本软件包所包含的文件建立了关联的信息。依赖源的软件包为了使该软件包发挥功能,需要依赖目的地的软件包。在图3所示的例子中,例如,例示了在软件包“openssl”中包含文件“/…/openssl”、“/…/openssl.conf”等。另外,例示了以软件包“mod_ssl”为依赖源的依赖目的地的软件包为“openssl”、“httpd”。在此,“/…/”是省略了文件路径的表述。另外,例示了对于软件包“openssl”,软件的软件包开发者设想的依赖目的地的软件包不存在的情况。
在本实施方式中,更新装置10在后述的更新处理之前,预先经由输入部11或者通信控制部13取得软件包管理信息14a,并存储到存储部14。
另外,图4是例示acl14b的图。acl14b包括文件和被允许访问文件的访问源文件之间的关联。即,acl14b如上所述,是指定被允许访问访问目的地文件的访问源文件的白名单。
在图4所示的示例中,例如,示出了对于访问目的地文件“/…/openssl.conf”,允许来自访问源文件“/…/openssl”的访问。
在本实施方式中,更新装置10在后述的更新处理之前,预先经由输入部11或者通信控制部13取得访问控制装置的acl14b,并存储到存储部14。
控制部15使用cpu(centralprocessingunit)等来实现,执行存储于存储器中的处理程序。由此,如图4所例示的那样,控制部15作为确定部15a以及追加部15b发挥功能。
确定部15a在指定了访问目的地文件与访问源文件的组合的情况下,参照软件包管理信息14a,确定包含访问目的地文件的软件包和包含访问源文件的软件包。
具体而言,作为运用者想要追加到acl14b的访问控制策略,在经由输入部11或者通信控制部13指定了访问目的地文件与访问源文件的组合的情况下,首先,确定部15a参照软件包管理信息14a。而且,确定部15a确定分别包含所指定的访问目的地文件和访问源文件的软件包。
例如,在图3所示的例子中,在指定了访问目的地文件“/…/openssl”与访问源文件“/…/mod_ssl”的组合的情况下,确定部15a确定访问目的地文件的软件包“openssl”。另外,确定部15a确定访问源文件的软件包“mod_ssl”。
追加部15b在所确定的包含文件的软件包与包含访问源文件的软件包相同或具有相互依赖关系的情况下,将所指定的组合追加到acl14b。
在此,图5以及图6是用于说明追加部15b的处理的说明图。如图5中箭头a所示,在访问源文件的软件包和访问目的地文件的软件包相同的情况下,追加部15b将指定的组合追加到acl14b。
另外,追加部15b在访问源文件的软件包与访问目的地文件的软件包存在相互依赖关系的情况下,即,在相当于相互的依赖源或依赖目的地的软件包的情况下,将指定的组合追加到acl14b。例如,将图5中箭头b所示的组合视为依赖源软件包与依赖目的地软件包的协作所需的访问控制策略,追加到acl14b中。
另外,追加部15b也可以在包含访问目的地文件的软件包与包含访问源文件的软件包不同且相互有依赖关系的情况下,进一步输出警告。另外,追加部15b也可以在包含访问目的地文件的软件包与包含访问源文件的软件包不同且相互有依赖关系的情况下,取代将所指定的组合向acl14b的追加,而拒绝追加或接受追加可否的指示。
即,对于具有依赖关系的文件的错误的访问控制策略有可能降低安全等级。因此,追加部15b对于如图5中箭头b所示的组合,也可以输出用于核对是否违反访问控制的方针的警告,或者请求运用者批准可否向acl14b追加。或者,追加部15b也可以按照运用方针一律拒绝向acl14b的追加。
另外,追加部15b在包含访问目的地文件的软件包与包含访问源文件的软件包不同且相互没有依赖关系且没有经由其他的软件包的依赖关系的情况下,将指定的组合追加到acl14b。
例如,图5中箭头c所示的组合是相互没有依赖关系的独立的软件包间的访问控制策略,虽然在软件的软件包开发者的设想外,但有可能是运用者所需要的文件间访问。因此,追加部15b将该组合追加到acl14b。
另外,在图6中箭头d所示的组合中,访问源的软件包与访问目的地的软件包即使经由其他软件包也无法追踪。因此,图6中箭头d所示的组合与图5中箭头c所示的组合同样,是独立的软件包间的访问控制策略,有可能是必要的文件间访问,因此追加部15b将其追加到acl14b中。
另外需要说明的是,在包含访问目的地文件的软件包与包含访问源文件的软件包不同且相互没有依赖关系且没有经由其他的软件包的依赖关系的情况下,追加部15b还输出警告。
例如,对于图5中箭头c所示的组合以及图6中箭头d所示的组合,无法断定不是错误的访问控制策略。因此,追加部15b输出警告以委托运用者来判断。例如,追加部15b输出用于核对该组合是否违反访问控制的方针的警告。
另外,追加部15b也可以在包含访问目的地文件的软件包与包含访问源文件的软件包不同且相互没有依赖关系且没有经由其他的软件包的依赖关系的情况下,取代将所指定的组合追加到acl14b,而拒绝追加或接受追加可否的指示。即,追加部15b也可以请求运用者批准可否向acl14b追加。或者,追加部15b也可以对该组合一律拒绝向acl14b的追加。
另外,追加部15b对于上述以外的组合、即图6中箭头e所示的、包含访问目的地文件的软件包和包含访问源文件的软件包经由其他的软件包具有依赖关系的组合,不进行向acl14b的追加。在包含访问目的地文件的软件包与包含访问源文件的软件包之间相互没有直接的依赖关系的情况下,是软件的软件包开发者未设想的访问的可能性高。如果不慎允许这样的访问,则acl14b的安全等级有可能降低。因此,追加部15b将这样的组合视为不需要的访问策略的追加,不进行向acl14b的追加。
但是,在包含访问目的地文件的软件包和包含访问源文件的软件包相互没有直接的依赖关系,但经由其他软件包存在依赖关系的情况下,有时也是软件包管理信息中的依赖关系的定义的省略或定义泄露。
因此,追加部15b也可以在包含访问目的地文件的软件包和包含访问源文件的软件包相互没有直接的依赖关系,但经由其他的软件包存在依赖关系的情况下,请求运用者批准可否向acl14b追加。或者,也可以一律追加,并输出委托运用者来判断的警告。由此,在软件包之间存在间接的依赖关系的情况下不是一律地拒绝追加,在为软件包管理信息的定义的省略或者定义泄露的情况下,能够进行向acl14b的追加。
另外需要说明的是,追加部13b将通过更新处理而更新后的acl14b输出到访问控制装置。由此,访问控制装置能够应用更新后的acl14b来控制是否允许文件间的访问。
[更新处理]
接着,参照图7,对本实施方式所涉及的更新装置10的更新处理进行说明。图7是表示更新处理步骤的流程图。图7的流程图例如在用户进行了指示开始的操作输入的时机开始。
首先,确定部15a接受指定访问目的地文件与访问源文件的组合的输入。另外,确定部15a参照软件包管理信息14a,确定包含访问目的地文件的软件包和包含访问源文件的软件包。
然后,追加部15b确认所确定的包含访问目的地文件的软件包与包含访问源文件的软件包是否相同(步骤s1)。在所确定的包含访问目的地文件的软件包与包含访问源文件的软件包相同的情况下(步骤s1,是),追加部15b将所指定的组合追加到acl14b(步骤s6)。
另一方面,在不相同的情况下(步骤s1:否),追加部15b确认所确定的包含文件的软件包与包含访问源文件的软件包是否存在相互依赖的关系。首先,追加部15b确认所确定的包含访问目的地文件的软件包是否是包含访问源文件的软件包的依赖目的地(步骤s2)。在包含访问目的地文件的软件包是包含访问源文件的软件包的依赖目的地的情况下(步骤s2:是),追加部15b将指定的组合追加到acl14b(步骤s6)。
另一方面,在包含访问目的地文件的软件包不是包含访问源文件的软件包的依赖目的地的情况下(步骤s2:否),追加部15b确认包含访问源文件的软件包是否是包含访问目的地文件的软件包的依赖目的地(步骤s3)。在包含访问源文件的软件包是包含访问目的地文件的软件包的依赖目的地的情况下(步骤s3:是),追加部15b将指定的组合追加到acl14b(步骤s6)。
另外需要说明的是,追加部15b也可以在包含访问目的地文件的软件包与包含访问源文件的软件包不同且相互存在依赖关系的情况下(步骤s2中为“是”、步骤s3中为“是”),取代将所指定的组合追加到acl14b,而接受可否追加的指示。即,追加部15b也可以输出用于核对指定的组合是否违反访问控制的方针的警告,或者请求运用者批准可否向acl14b追加。或者,追加部15b也可以按照运用方针一律拒绝向acl14b的追加。
另一方面,在包含访问源文件的软件包不是包含访问目的地文件的软件包的依赖目的地的情况下(步骤s3:否),追加部15b确认包含访问目的地文件的软件包和包含访问源文件的软件包是否经由其他的软件包而存在依赖关系。
首先,追加部15b追踪访问源文件的依赖目的地的软件包,确认是否到达访问目的地文件的软件包(步骤s4)。在追踪访问源文件的依赖目的地的软件包并到达访问目的地文件的软件包的情况下(步骤s4:是),作为软件的软件包开发者未设想的访问,追加部15b不进行指定的组合向acl14b的追加(步骤s7)。
另一方面,追加部15b在追踪访问源文件的依赖目的地的软件包并且未到达访问目的地文件的软件包的情况下(步骤s4:否),追踪访问目的地文件的依赖目的地的软件包,确认是否到达访问源文件的软件包(步骤s5)。追加部15b在追踪访问目的地文件的依赖目的地的软件包并到达访问源文件的软件包的情况下(步骤s5:是),作为软件的软件包开发者未设想的访问,不进行指定的组合向acl14b的追加(步骤s7)。
另一方面,追加部15b在追踪访问目的地文件的依赖目的地的软件包并且未到达访问源文件的软件包的情况下(步骤s5:否),作为独立的软件包间的访问控制策略,将指定的组合追加到acl14b(步骤s8)。另外,追加部15b输出用于委托运用者进行判断的警告。
例如,追加部15b输出用于核对该组合是否违反访问控制的方针的警告。另外,追加部15b也可以请求运用者批准可否向acl14b追加。或者,追加部15b也可以对该组合一律拒绝向acl14b的追加。
另外,在步骤s7的处理中,也可以取代一律拒绝追加,而请求运用者批准可否向acl14b追加。或者,也可以一律追加,并输出委托运用者进行判断的警告。由此,在软件包管理信息的定义的省略或定义泄露的情况下,能够进行向acl14b的追加。
通过以上处理,一系列的更新处理结束。其结果,更新装置10至少能够限制不适当的访问控制策略的追加来更新acl14b。因此,能够将acl14b的安全等级的放宽保持在最小限度。
如以上说明的那样,在本实施方式的更新装置10中,存储部14存储:软件包管理信息14a,其包含文件与包含该文件的软件包之间的关联、和表示多个软件包之间有无依赖关系的信息;以及acl14b,其包含访问目的地文件和被允许访问该访问目的地文件的访问源文件的关联。另外,在指定了访问目的地文件和访问源文件的组合的情况下,确定部15a参照软件包管理信息14a,确定包含访问目的地文件的软件包和包含访问源文件的软件包。另外,在所确定的包含访问目的地文件的软件包与包含访问源文件的软件包相同或相互具有依赖关系的情况下,追加部15b将所指定的组合追加到acl14b。
这样,更新装置10以访问是具有软件的软件包开发者所设想的依赖关系的组合的访问为条件,通过追加到acl14b中,至少能够限制不适当的访问控制策略的追加来更新acl14b。因此,能够将acl14b的安全等级的放宽保持在最小限度。这样,更新装置10能够适当地设定acl。
另外,追加部15b也可以在包含访问目的地文件的软件包与包含访问源文件的软件包不同且相互有依赖关系的情况下,进一步输出警告。或者,追加部15b也可以取代将所指定的组合追加到acl14b而拒绝追加或接受可否追加的指示。由此,能够委托运用者来判断可否向acl14b追加。
另外,追加部15b在包含访问目的地文件的软件包与包含访问源文件的软件包不同且相互没有依赖关系且没有经由其他的软件包的依赖关系的情况下,将指定的组合追加到acl14b。
由此,能够将作为独立的软件包之间的访问控制策略、有可能是必要的文件间访问的独立的软件包之间的访问控制策略追加到acl14b中。
此时,追加部15b还输出警告。或者,追加部15b也可以替代将所指定的组合追加到acl14b,而接受拒绝追加或可否追加的指示。由此,能够将可否向acl14b追加委托给运用者来判断。
另外,由此,追加部15b能够限制上述以外的包含访问目的地文件的软件包和包含访问源文件的软件包经由其他的软件包具有依赖关系的组合向acl14b的追加。即,能够限制在软件包之间相互没有直接的依赖关系、作为软件的软件包开发者未设想的访问的可能性高的不需要的访问向acl14b的追加。
[程序]
也能够制作以计算机可执行的语言记述了上述实施方式所涉及的更新装置10执行的处理的程序。作为一个实施方式,更新装置10能够通过将执行上述的更新处理的更新程序作为软件包软件、在线软件安装于所希望的计算机来实现。例如,通过使信息处理装置执行上述的更新程序,能够使信息处理装置作为更新装置10发挥功能。在此所说的信息处理装置中包含台式或笔记本型的个人计算机。另外,除此之外,信息处理装置也包括智能手机、移动电话、phs(personalhandyphonesystem:个人手持电话系统)等移动通信终端、以及pda(personaldigitalassistant:个人数字助理)等板型终端等。另外,也可以将更新装置10的功能安装于云服务器。
图8是表示执行更新程序的计算机的一例的图。计算机1000包括例如存储器1010、cpu1020、硬盘驱动器接口1030、盘驱动器接口1040、串行端口接口1050、视频适配器1060和网络接口1070。这些各部通过总线1080连接。
存储器1010包括rom(只读存储器)1011和ram1012。rom1011例如存储bios(basicinputoutputsystem:基本输入输出系统)等引导程序。硬盘驱动器接口1030连接到硬盘驱动器1031。盘驱动器接口1040与盘驱动器1041连接。在盘驱动器1041中插入例如磁盘、光盘等能够装卸的存储介质。例如,鼠标1051和键盘1052连接到串行端口接口1050。视频适配器1060例如与显示器1061连接。
这里,硬盘驱动器1031例如存储os1091、应用程序1092、程序模块1093以及程序数据1094。在上述实施方式中说明的各信息例如被存储在硬盘驱动器1031、存储器1010中。
另外,更新程序例如作为记述有由计算机1000执行的指令的程序模块1093而存储于硬盘驱动器1031。具体而言,记述了在上述实施方式中说明的更新装置10执行的各处理的程序模块1093被存储在硬盘驱动器1031中。
另外,用于基于更新程序的信息处理的数据作为程序数据1094例如存储在硬盘驱动器1031中。而且,cpu1020根据需要将硬盘驱动器1031中存储的程序模块1093和程序数据1094读出到ram1012,执行上述的各步骤。
此外需要说明的是,更新程序所涉及的的程序模块1093、程序数据1094不限于存储在硬盘驱动器1031中的情况,例如,也可以存储在可装卸的存储介质中,经由盘驱动器1041等由cpu1020读出。或者,更新程序所涉及的程序模块1093、程序数据1094也可以存储于经由lan、wan(wideareanetwork:广域网)等网络连接的其他计算机,经由网络接口1070由cpu1020读出。
以上,对应用了由本发明人完成的发明的实施方式进行了说明,但本发明并不限定于本实施方式的构成本发明的公开的一部分的记述和附图。即,基于本实施方式由本领域技术人员等进行的其他实施方式、实施例及运用技术等全部包含在本发明的范畴内。
标号说明
10更新装置
11输入部
12输出部
13通信控制部
14存储部
14a软件包管理信息
14b访问控制列表(acl)
15控制部
15a确定部
15b追加部