欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

容器鏡像安全檢查方法及其裝置與流程

文檔序號:12157502閱讀:341來源:國知局
本發(fā)明涉及一種容器鏡像安全檢查方法及其裝置。更詳細地,涉及一種對用于生成容器(Container)的鏡像(Image)執(zhí)行安全檢查的方法及執(zhí)行該方法的裝置。
背景技術(shù)
::由于IT市場的迅速發(fā)展,要求提供能夠進行應用程序的快速開發(fā)和發(fā)布的開發(fā)操作(DevOps)環(huán)境。根據(jù)這種要求,出現(xiàn)了作為用于進行應用程序的開發(fā)、安裝及運行的開源平臺的Docker。Docker使容器技術(shù)自動化,從而易于使用。容器技術(shù)為用于解決當軟件從一個計算環(huán)境移動到其它計算環(huán)境時如何穩(wěn)定操作的問題的解決方案。容器在開發(fā)者的筆記本電腦中可作為測試環(huán)境來應用,在數(shù)據(jù)移動環(huán)境中可作為產(chǎn)品來應用,并且在數(shù)據(jù)中心內(nèi)的物理設備中可作為私有云或公共云內(nèi)的虛擬機來應用。容器技術(shù)和虛擬化技術(shù)在一些方面多少有些相似,但在其它方面存在差別。即,當使用虛擬化技術(shù)時,所移動的程序包為虛擬機,其中整個操作系統(tǒng)和應用程序都包括。用于驅(qū)動三個虛擬機的物理服務器將具有管理器(hypervisor)和在其上被驅(qū)動的三個不同的操作系統(tǒng)。相反,關(guān)于用于驅(qū)動單一操作系統(tǒng)的容器,則用于驅(qū)動裝入三個容器中的應用程序的服務器和各個容器會與其它容器共享操作系統(tǒng)的內(nèi)核。操作系統(tǒng)的共享部分為只讀部分,而在各個容器中具有用于記錄的自動掛載。因此,與利用虛擬化技術(shù)相比,利用容器技術(shù)在計算資源應用的效率方面有利。Docker為利用所述容器技術(shù)來進行應用程序的開發(fā)、安裝和運行的開源平臺。如果應用Docker,則可從基礎設施分離出應用程序,并能夠如應用程序那樣對基礎設施進行管理。Docker有助于更快的代碼安裝、更快的測試和更快的發(fā)布,從而縮短編碼和運行代碼的周期。Docker基于輕量的容器提供較高的移植性(Portability)、擴展性(Scalability)和可用性(Availability)。Docker容器從鏡像中生成。因此,所述鏡像為最重要的安全管理對象之一。如果鏡像的安全設置有誤,則利用該鏡像生成的容器會受到致命的安全攻擊或有可能被用于攻擊。因此,需要提供一種對用于生成容器的所述鏡像進行安全檢查的方法和執(zhí)行該方法的裝置?,F(xiàn)有技術(shù)文獻專利文獻:韓國公開專利第2015-0047288號(2015年05月04日公開)技術(shù)實現(xiàn)要素:本發(fā)明所要解決的技術(shù)問題是提供一種在主機(host)操作系統(tǒng)上運行容器之前,對用于生成所述容器的鏡像執(zhí)行安全檢查的方法及執(zhí)行該方法的裝置。本發(fā)明的技術(shù)問題并不限定于以上所提及的技術(shù)問題,本領域技術(shù)人員能夠從下面的記載中明確理解沒有提及的其它技術(shù)問題。為了解決上述技術(shù)問題,本發(fā)明的一方面(Aspect)的安全檢查方法可包括以下步驟:接收用于生成容器的鏡像,所述容器為用于能夠在主機操作系統(tǒng)上運行的應用程序的隔離區(qū)域;通過解析所述鏡像來識別用于構(gòu)成所述鏡像的一個以上的層;從所述一個以上的層收集作為安全檢查對象的安全設置文件的路徑;以及查詢收集到的路徑并檢查是否存在違反已設置的安全策略的安全設置文件。在一實施例中,識別所述一個以上的層的步驟可包括:通過以所述鏡像的更新日志為基礎解析所述鏡像來識別所述一個以上的層。在一實施例中,收集所述文件的路徑的步驟可包括:判斷在所述一個以上的層中是否存在安全設置文件的路徑未被存儲在已設置的熟知路徑倉庫中的層;以及從所述安全設置文件的路徑未被存儲的層的文件系統(tǒng)收集安全設置文件的路徑。在一實施例中,進一步可包括以下步驟:生成安全檢查列表,所述安全檢查列表由存儲在所述熟知路徑倉庫中的安全設置文件的路徑和收集到的安全設置文件的路徑構(gòu)成。在一實施例中,所述生成安全檢查列表的步驟可包括:在第一層的第一安全設置文件的路徑與第二層的第二安全設置文件的路徑相同的情況下,去除所述第一安全設置文件的路徑和所述第二安全設置文件的路徑中的一個路徑。在一實施例中,去除所述一個路徑的步驟可包括:在所述第一層為所述第二層的上級層的情況下,去除所述第一安全設置文件的路徑,并且在所述第一層為所述第二層的下級層的情況下,去除所述第二安全設置文件的路徑。在一實施例中,在收集安全設置文件的路徑的步驟之后,可進一步包括將收集到的安全設置文件的路徑存儲在所述熟知路徑倉庫中的步驟。在一實施例中,所述熟知路徑倉庫可包括由根節(jié)點、子節(jié)點和葉節(jié)點構(gòu)成的樹形結(jié)構(gòu),所述根節(jié)點包括層的標識符,所述子節(jié)點包括已設置的安全策略的標識符,所述葉節(jié)點包括安全設置文件的路徑。在一實施例中,進一步可包括以下步驟:生成安全檢查結(jié)果所述安全檢查結(jié)果包括違反所述已設置的安全策略的安全設置文件的路徑和違反的已設置的安全策略的項目。在一實施例中,生成所述安全檢查結(jié)果的步驟可包括:向服務器和所述應用程序的開發(fā)者裝置中的至少之一傳送所述安全檢查結(jié)果,所述服務器用于管理能夠通過所述應用程序的運行而提供的服務。為了解決上述技術(shù)問題,根據(jù)本發(fā)明的另一方面(Aspect),可提供一種安全檢查裝置,包括:接收用于生成容器的鏡像的模塊,所述容器為用于能夠在主機操作系統(tǒng)上運行的應用程序的隔離區(qū)域;通過解析所述鏡像來識別用于構(gòu)成所述鏡像的一個以上的層的模塊;從所述一個以上的層收集作為安全檢查對象的安全設置文件的路徑的模塊;以及查詢收集到的路徑并檢查是否存在違反已設置的安全策略的安全設置文件的模塊。根據(jù)如上所述的本發(fā)明,可在運行容器之前執(zhí)行鏡像的安全檢查,從而事先防止因運行容器而可能產(chǎn)生的危險。并且,通過獨立于容器的運行來執(zhí)行安全檢查,從而能夠不依賴于容器的運行與否來決定安全檢查環(huán)境和時間。此外,能夠不消耗容器運行所需要的資源來執(zhí)行安全檢查。進一步,根據(jù)如上所述的本發(fā)明,可通過再使用已執(zhí)行安全檢查的安全設置文件的路徑并去除重復的安全設置文件的路徑,來縮短安全檢查所需要的時間。本發(fā)明的效果并不限定于以上所提及的效果,本領域技術(shù)人員能夠從下面的記載中明確理解沒有提及的其它效果。附圖說明圖1是用于說明本發(fā)明一實施例的主機系統(tǒng)的圖。圖2是用于說明現(xiàn)有的主機服務器的圖。圖3是用于說明本發(fā)明一實施例的主機服務器的圖。圖4是用于說明本發(fā)明一實施例的安全檢查方法的圖。圖5是用于說明本發(fā)明一實施例的鏡像的層和安全檢查列表的圖。圖6是用于說明本發(fā)明一實施例的去除重復路徑的圖。圖7是用于說明本發(fā)明一實施例的包含在熟知路徑倉庫中的樹形結(jié)構(gòu)的圖。圖8是本發(fā)明一實施例的安全檢查器的方框圖。圖9是本發(fā)明一實施例的主機服務器的硬件結(jié)構(gòu)圖。具體實施方式參照附圖的同時參照詳細地后述的實施例,本發(fā)明的優(yōu)點及特性以及實現(xiàn)這些的方法將會明確。但是,本發(fā)明并不限定于以下所公開的實施例,而是可以以彼此不同的多種方式實現(xiàn),本實施例僅僅用于完整地公開本發(fā)明,并且為了向本發(fā)明所屬
技術(shù)領域
:的技術(shù)人員完整地告知本發(fā)明的范圍而提供的,本發(fā)明僅由權(quán)利要求的范圍定義。在說明書全文中相同的附圖標記指相同的結(jié)構(gòu)要素。在對本說明書進行說明之前,對本說明書中使用的若干個用語進行說明。虛擬化引擎(Virtualengine)為與基礎設施(infrastructure)相分離來構(gòu)建(build)、移動(ship)或運行(run)應用程序(application)的平臺。具體來講,虛擬化引擎可分配用于運行應用程序的資源(CPU、存儲器、I/O模塊或網(wǎng)絡等)。此外,虛擬化引擎可提供與文件系統(tǒng)(filesystem)、進程(process)樹或用戶賬戶等隔離(isolate)的應用程序運行環(huán)境。本發(fā)明一實施例的虛擬化引擎可以是Docker,但并不限定于此。此外,虛擬化引擎可以基于LXC(LinuXContainers,LinuX容器)進行操作,但并不限定于此,也可以基于Libcontainer進行操作。鏡像(Image)為用于移動應用程序的程序包。具體來講,鏡像可通過虛擬化引擎的構(gòu)建命令來生成。鏡像可以是只讀(read-only)程序包,但并不限定于此。鏡像可由一個以上的層構(gòu)成。并且,鏡像可用于生成容器。一個鏡像也可以用于生成一個容器,并且還可以用于生成多個容器。容器(Container)為用于運行應用程序的虛擬的隔離區(qū)域。例如,所述容器可形成在存儲器(RAM)上的特定區(qū)域中。具體來講,容器可通過虛擬化引擎的運行命令從鏡像中生成。容器支持操作系統(tǒng)級別的虛擬化。并且,容器可包括應用程序、二進制(binary)及庫(library)。即,容器并不另行包括來賓操作系統(tǒng)(guestOS),能夠以主機操作系統(tǒng)(hostOS)的內(nèi)核(kernel)為基礎,利用二進制及庫來運行應用程序。層(Layer)為構(gòu)成鏡像的要素。具體來講,在變更或附加層的一部分的情況下,虛擬化引擎不會將現(xiàn)有的鏡像變更為新鏡像,而是在現(xiàn)有的鏡像中附加關(guān)于已變更或已附加的部分的層。在以下的說明中,將所述現(xiàn)有的鏡像的層作為上級層來進行說明。并且,將所述關(guān)于已變更或已附加的部分的層作為下級層來進行說明。但是,上級層可由基礎層等以不同的方式表述,這對本發(fā)明所屬
技術(shù)領域
:的技術(shù)人員來說是顯而易見的。并且,虛擬化引擎可以以鏡像更新日志(updatelog)為基礎,識別用于構(gòu)成鏡像 的層。此外,虛擬化引擎也可以以鏡像的變更歷史為基礎,將鏡像回滾(rollback)到之前狀態(tài)。除此之外,如果沒有其它定義,則在本說明書中所使用的所有用語(包括技術(shù)用語及科技用語)能夠以本發(fā)明所屬
技術(shù)領域
:的技術(shù)人員共同理解的含義使用。另外,在一般使用的詞典中定義的用語只要沒有被明確地特別定義,就不能理想地或過度地解釋。在本說明書中使用的用語用于說明實施例,并不限制本發(fā)明。在本說明書中,單數(shù)形式只要在句子中未特別提及就可以包括復數(shù)形式。此外,在說明書中使用的“包括(comprises)”和/或“包含(comprising)”并不排除提及的結(jié)構(gòu)要素、步驟、動作和/或元素之外的一個以上的其它結(jié)構(gòu)要素、步驟、動作和/或元素的存在或附加。下面,參照附圖,對本發(fā)明進行更詳細說明。圖1是用于說明本發(fā)明一實施例的主機系統(tǒng)的圖。圖1中所公開的主機系統(tǒng)的各結(jié)構(gòu)要素為按功能區(qū)分的功能要素,在實際物理環(huán)境中可通過將一個以上的結(jié)構(gòu)要素彼此結(jié)合來實現(xiàn)。參照圖1,本發(fā)明一實施例的主機系統(tǒng)包括主機服務器10、鏡像倉庫20和開發(fā)者裝置30。下面,對各結(jié)構(gòu)要素進行具體說明。主機服務器10為用于提供主機服務的服務器。具體來講,主機服務器10可提供的主機服務可以是平臺即服務(PaaS:PlatformasaService)、基礎設施即服務(Iaas:InfrastructureasaService)或軟件即服務(SaaS:SoftwareasaService)中的任一種。即,在該情況下,主機服務器10可理解為用于提供云計算服務的服務器。主機服務器10可以是提供除云計算服務以外的多種主機服務的服務器。主機服務器10可包括主機操作系統(tǒng)11、虛擬化引擎13和容器15。在一實施例中,鏡像倉庫20存儲由開發(fā)者裝置30等多種外部裝置構(gòu)建的多種鏡像21。所述外部裝置是指除主機服務器10和開發(fā)者裝置30以外的具備多種開發(fā)平臺的計算裝置。即,本實施例中,開發(fā)者裝置30或所述外部裝置將構(gòu)建的鏡像推送到鏡像倉庫20中。在另一實施例中,存儲在鏡像倉庫20中的鏡像21也可以是根據(jù)開發(fā)者裝置30的命令、由主機服務器10的虛擬化引擎13構(gòu)建的鏡像。此時,主機服務器10的虛擬化引擎13可將構(gòu)建的鏡像21推送(push)到鏡像倉庫20中。主機服務器10的虛擬化引擎13可從鏡像倉庫20拉取(pulling)鏡像21。主機服務器10的虛擬化引擎13可以以構(gòu)建或拉取的鏡像21為基礎生成容器15。主機服務器10的虛擬化引擎13可以以主機操作系統(tǒng)11的內(nèi)核為基礎、利用二進制及 庫17來運行包含在容器15中的應用程序19。特別是,本發(fā)明一實施例的主機服務器10可包括安全檢查器100。安全檢查器100可對構(gòu)建或拉取的鏡像21執(zhí)行安全檢查。即,在虛擬化引擎13運行容器15之前,安全檢查器100可先對用于生成容器15的鏡像21執(zhí)行安全檢查。并且,安全檢查器100可將安全檢查結(jié)果傳送給用于管理開發(fā)者裝置30或主機服務的服務器(未圖示)。在本發(fā)明一實施例的安全檢查器100可執(zhí)行的安全檢查可包括如下確認事項:在容器15的訪問賬戶中有無不需要的賬戶;容器15的訪問賬戶的密碼有效性;容器15的訪問路徑和權(quán)限;容器15的更新日志;是否應用容器15的安全補??;通過應用程序19執(zhí)行的服務中的不需要的服務;應用程序19的環(huán)境設置;是否加密應用程序19的運行中所需要的數(shù)據(jù);或者是否刪除應用程序19的運行中不需要的數(shù)據(jù),但并不限定于此。鏡像倉庫20為用于存儲及管理鏡像21的倉庫。具體來講,鏡像倉庫20可接收并存儲從主機服務器10推送的鏡像21。并且,鏡像倉庫20可以以主機服務器10能夠拉取的方式傳送鏡像21。鏡像倉庫20可以是公共(public)倉庫,但并不限定于此,也可以是私有(private)倉庫。此外,本發(fā)明一實施例的鏡像倉庫20可以是Docker注冊中心(DockerRegistryHub),但并不限定于此。開發(fā)者裝置30為用于開發(fā)應用程序19的裝置。具體來講,本發(fā)明一實施例的開發(fā)者裝置30可構(gòu)建用于應用程序19的鏡像21。并且,開發(fā)者裝置30可將構(gòu)建的鏡像推送到鏡像倉庫20中。本發(fā)明另一實施例的開發(fā)者裝置30可根據(jù)用戶輸入、通過主機服務器10來構(gòu)建鏡像21。例如,開發(fā)者裝置30可通過向虛擬化引擎13傳送build命令來構(gòu)建鏡像21。開發(fā)者裝置30可根據(jù)用戶輸入來更新鏡像21。例如,開發(fā)者裝置30可通過向虛擬化引擎13傳送commit命令來生成附加了針對已變更的部分的層的鏡像21。開發(fā)者裝置30可根據(jù)用戶輸入來生成容器15。例如,開發(fā)者裝置30可通過向虛擬化引擎13傳送創(chuàng)建(create)命令來生成容器15。開發(fā)者裝置30可根據(jù)用戶輸入來運行生成的容器15。例如,開發(fā)者裝置30可通過向虛擬化引擎13傳送exec命令來運行生成的容器15。開發(fā)者裝置30可根據(jù)用戶輸入將由主機服務器10構(gòu)建的鏡像21推送到鏡像倉庫20中。例如,開發(fā)者裝置30可通過向虛擬化引擎13傳送push命令來將由主機服務器10構(gòu)建的鏡像21推送到鏡像倉庫20中。開發(fā)者裝置30可根據(jù)用戶輸入向主機服務器10拉取存儲在鏡像倉庫20中的鏡像21。例如,開發(fā)者裝置30可通過向虛擬化引擎13傳送pull命令來向主機服務器10拉取存儲在鏡像倉庫20中的鏡像21。本發(fā)明又一實施例的開發(fā)者裝置30可根據(jù)用戶輸入、通過外部裝置(未圖示)來構(gòu)建鏡像21。此時,外部裝置可以是能夠?qū)︾R像21的構(gòu)建提供專業(yè)化環(huán)境的裝置,但并不限定于此。并且,開發(fā)者裝置30可將通過外部裝置(未圖示)構(gòu)建的鏡像21推送到鏡像倉庫20中。并且,開發(fā)者裝置30可接收由安全檢查器100執(zhí)行的安全檢查結(jié)果。開發(fā)者裝置30可將接收到的安全檢查結(jié)果輸出到屏幕。綜上,本發(fā)明一實施例的主機系統(tǒng)通過在主機服務器10中運行容器15之前執(zhí)行鏡像21的安全檢查,從而能夠事先防止可因容器15的執(zhí)行而產(chǎn)生的危險。此外,本發(fā)明一實施例的主機系統(tǒng)通過獨立于容器15的運行執(zhí)行安全檢查,能夠不依賴于容器15的運行與否來確定安全檢查環(huán)境和時間。進而,本發(fā)明一實施例的主機系統(tǒng)能夠不消耗容器15的運行所需要的資源來執(zhí)行安全檢查。下面,參照圖2和圖3,將現(xiàn)有的主機服務器和本發(fā)明一實施例的主機服務器10進行對比來進行說明。圖2是用于說明現(xiàn)有的主機服務器的圖。并且,圖3是用于說明本發(fā)明一實施例的主機服務器10的圖。參照圖2,現(xiàn)有的主機服務器以主機操作系統(tǒng)11和管理器(Hypervisor,43)為基礎運行一個以上的虛擬機(Virtualmachine,45)。并且,現(xiàn)有的主機服務器可以以包含在各個虛擬機45中的來賓操作系統(tǒng)(guestOS,47)為基礎、利用二進制及庫17來運行應用程序19。但是,現(xiàn)有的主機服務器為了重復運行用于主機操作系統(tǒng)11和各個虛擬機45的來賓操作系統(tǒng)47,消耗較多的資源。并且,現(xiàn)有的主機服務器通過管理器43和主機操作系統(tǒng)11來運行在來賓操作系統(tǒng)47中運行的應用程序19,從而有可能降低應用程序19的運行速度。參照圖3,本發(fā)明一實施例的主機服務器10以主機操作系統(tǒng)11和虛擬化引擎13為基礎運行一個以上的容器15。并且,主機服務器10可以以主機操作系統(tǒng)11的內(nèi)核為基礎、利用二進制及庫17來運行應用程序19。因此,本發(fā)明一實施例的主機服務器10不會消耗用于運行來賓操作系統(tǒng)的資源。并且,主機服務器10通過主機操作系統(tǒng)11直接運行應用程序19,從而不會發(fā)生應用程序19的運行速度的降低。此外,通過在容器15中不包括來賓操作系統(tǒng),可減小用于生成容器15的鏡像21的容量。此外,本發(fā)明一實施例的主機服務器10可利用安全檢查器100在運行容器15之前執(zhí)行鏡像21的安全檢查。下面,對包含在本發(fā)明一實施例的主機服務器10中的安全檢查器100進行說明。 圖4是用于說明本發(fā)明一實施例的安全檢查方法的順序圖。參照圖4,安全檢查器100從鏡像倉庫20接收用于生成容器15的鏡像21(S100)。具體來講,安全檢查器100可從鏡像倉庫20拉取鏡像21。并且,安全檢查器100可接收拉取出的鏡像21。安全檢查器100通過解析(parsing)接收到的鏡像21來識別構(gòu)成鏡像21的一個以上的層(S200)。具體來講,安全檢查器100可通過以接收到的鏡像21的更新日志為基礎解析所述鏡像來識別所述一個以上的層。更新日志可包括鏡像標識符、新層附加到鏡像的日期及時間、新附加到鏡像的層的容量及用于向鏡像附加新層的命令,但并不限定于此。即,更新日志為關(guān)于層附加的鏡像21的歷史。安全檢查器100判斷在識別出的一個以上的層中是否存在安全設置文件的路徑未被存儲在熟知路徑倉庫中的層(S300)。安全設置文件的路徑為作為安全檢查對象的文件在文件系統(tǒng)上所處的路徑。并且,熟知路徑倉庫為用于累積管理由安全檢查器100已執(zhí)行安全檢查的層的安全設置文件的路徑。熟知路徑倉庫可包括由根(root)節(jié)點、子(child)節(jié)點和葉(leaf)節(jié)點構(gòu)成的樹形結(jié)構(gòu)。在該情況下,根節(jié)點可包括層的標識符,子節(jié)點可包括已設置的安全策略的標識符,葉節(jié)點可包括安全設置文件的路徑。判斷結(jié)果,在存在安全設置文件的路徑未被存儲的層的情況下,安全檢查器100從安全設置文件的路徑未被存儲的層的文件系統(tǒng)收集安全設置文件的路徑(S400)。具體來講,安全檢查器100可掃描安全設置文件的路徑未被存儲的層的文件系統(tǒng)并收集與存儲在安全策略倉庫中的安全設置文件的形式匹配的安全設置文件的路徑。安全策略倉庫為用于管理安全設置文件的形式和安全設置文件根據(jù)已設置的安全策略應具有的環(huán)境設置值的倉庫。并且,安全檢查器100將收集到的安全設置文件的路徑進一步存儲在熟知路徑倉庫中(S500)。安全檢查器100生成安全檢查列表(S600)。具體來講,安全檢查器100可生成由存儲在熟知路徑倉庫中的安全設置文件的路徑構(gòu)成的安全檢查列表。在該情況下,熟知路徑倉庫中存儲有已存儲的安全設置文件的路徑和從文件系統(tǒng)新收集到的安全設置文件的路徑。此外,在存在重復的安全設置文件的路徑的情況下,安全檢查器100可在去除一個安全設置文件的路徑之后生成安全檢查列表。具體來講,在第一層的第一安全設置文件的路徑和第二層的第二安全設置文件的路徑相同的情況下,安全檢查器100可去除第一安全設置文件的路徑和第二安全設置文件的路徑中的一個路徑。特別是,在第一層為第二層的上級層的情況下,安全檢查器100可去除第一層的第一安全設置文件的路徑。并且,在第一層為第二層的下級層的情況下,安全檢查器100可去除第二層 的第二安全設置文件的路徑。即,安全檢查器100可在構(gòu)成鏡像21的層中維持相對而言最近附加的層的安全設置文件的路徑,并去除相對而言以前附加的層的安全設置文件的路徑。安全檢查器100查詢安全檢查列表,并檢查是否存在違反已設置的安全策略的安全設置文件(S700)。具體來講,安全檢查器100可判斷位于包含在安全檢查列表里的安全設置文件的路徑中的安全設置文件的環(huán)境設置值是否違反已設置的安全策略。并且,安全檢查器100可以以存儲在安全策略倉庫中的安全設置文件應具有的環(huán)境設置值為基礎,判斷是否違反已設置的安全策略。更具體來講,安全檢查器100可在如下情況下判斷為違反已設置的安全策略:容器15的訪問賬戶中存在不需要的賬戶、容器15的訪問賬戶的密碼到期、存在容器15的不正當訪問路徑及權(quán)限、未應用容器15的安全補丁、通過應用程序19執(zhí)行的服務中存在不需要的服務、允許不正當訪問的應用程序19的環(huán)境設置、應用程序19的運行中所需要的數(shù)據(jù)的未加密、或存在應用程序19的運行中所不需要的數(shù)據(jù),但并不限定于此。并且,安全檢查器100可生成安全檢查結(jié)果,并傳送給用于管理能夠通過應用程序的運行而提供的服務的服務器(未圖示)和應用程序的開發(fā)者裝置30中的至少之一。安全檢查結(jié)果,在存在違反已設置的安全策略的安全設置文件的情況下,可包括違反已設置的安全策略的安全設置文件的路徑和違反的已設置的安全策略的項目,但并不限定于此。圖5是用于說明本發(fā)明一實施例的鏡像21的層和安全檢查列表的圖。假設在圖5所示的本發(fā)明一實施例的鏡像21中包含有應用程序19、用于運行應用程序19的烏班圖(Ubuntu)、Apachetomcat和Git的二進制及庫17。并且,假設構(gòu)成鏡像21的四個層中的層1為用于烏班圖的二進制及庫的層,層2由Apachetomcat的二進制及庫構(gòu)成,層3由Git的二進制及庫構(gòu)成,層4由應用程序19的運行代碼構(gòu)成。參照圖5,安全檢查器100可通過解析鏡像21來識別四個層。安全檢查器100可以以熟知路徑倉庫為基礎從識別出的層中收集安全設置文件的路徑。具體來講,安全檢查器100可從層1收集“/etc/profile”、“/etc/bash.bashrc”等的安全設置文件的路徑。安全檢查器100可從層2收集“/tomcat/conf/server.xml”的安全設置文件的路徑。安全檢查器100可從層3收集“/etc/gitconfig”的安全設置文件的路徑。并且,安全檢查器100可從層4收集“/usr/app/config.xml”和“/usr/app/user.xml”的安全設置文件的路徑。安全檢查器100可以以存儲在熟知路徑倉庫中的安全設置文件的路徑和新收集到的安全設置文件的路徑為基礎,生成每個層的安全檢查列表。具體來講,在安全檢查 器100所生成的層1的安全檢查列表中可包含有具有“/etc/profile”、“/etc/bash.bashrc”等的值的兩個以上的節(jié)點。在安全檢查器100所生成的層2的安全檢查列表中可包含有具有“/tomcat/conf/server.xml”值的節(jié)點。在安全檢查器100所生成的層3的安全檢查列表中可包含有具有“/etc/gitconfig”值的節(jié)點。并且,在安全檢查器100所生成的層4的安全檢查列表中可包含有具有“/usr/app/config.xml”、“/usr/app/user.xml”值的兩個節(jié)點。圖6是用于說明本發(fā)明一實施例的去除重復路徑的圖。假設在構(gòu)成本發(fā)明一實施例的鏡像21的四個層中,層1的安全設置文件的路徑和層4的安全設置文件的路徑重復。參照圖6,安全檢查器100可通過解析鏡像21來識別四個層。安全檢查器100可從層1收集“/etc/profile”、“/etc/bash.bashrc”等的安全設置文件的路徑。并且,安全檢查器100可從層4收集“/usr/app/config.xml”、“/usr/app/user.xml”和“/etc/profile”的安全設置文件的路徑。安全檢查器100可判斷為層1的“/etc/profile”的安全設置文件的路徑和層4的“/etc/profile”的安全設置文件的路徑重復。由于層1為層4的上級層,因此安全檢查器100可去除層1的重復的安全設置文件的路徑。在去除重復的安全設置文件的路徑之后,安全檢查器100可生成每個層的安全檢查列表。具體來講,在安全檢查器100所生成的層1的安全檢查列表中可不包括具有“/etc/profile”值的節(jié)點,而是包括具有“/etc/bash.bashrc”等的值的一個以上的節(jié)點。并且,在安全檢查器100所生成的層4的安全檢查列表中可包含有具有“/usr/app/config.xml”、“/usr/app/user.xml”和“/etc/profile”的值的三個節(jié)點。因此,本發(fā)明一實施例的安全檢查器100可通過去除重復的安全設置文件的路徑來縮短安全檢查中所需要的時間。圖7是用于說明存儲在本發(fā)明一實施例的熟知路徑倉庫中的樹形結(jié)構(gòu)的圖。參照圖7,熟知路徑倉庫可利用樹形結(jié)構(gòu)來累積管理已執(zhí)行安全檢查的層的安全設置文件的路徑。包含在熟知路徑倉庫中的樹形結(jié)構(gòu)可具有三個級別。具體來講,在樹形結(jié)構(gòu)的級別1的根節(jié)點中可包含有層的標識符。在樹形結(jié)構(gòu)的級別2的子節(jié)點中可包含有已設置的安全策略的標識符。在樹形結(jié)構(gòu)的級別3的葉節(jié)點中可包含有安全設置文件的路徑。因此,本發(fā)明一實施例的安全檢查器100可通過再使用安全檢查已執(zhí)行的安全設置文件的路徑來縮短在收集用于構(gòu)成鏡像21的所有層的安全設置文件的路徑時所消 耗的時間。目前為止,參照圖4至圖7進行說明的本發(fā)明實施例的方法可通過以計算機可讀的代碼實現(xiàn)的計算機程序的運行來執(zhí)行。計算機程序可通過互聯(lián)網(wǎng)等網(wǎng)絡從第一計算裝置傳送到第二計算裝置并安裝在第二計算裝置中,由此可在第二計算裝置中使用。在此,第一計算裝置和第二計算裝置均可包括如臺式機(Desktop)、服務器(Server)或工作站(Workstation)等的固定式計算裝置;如智能手機(smartphone)、平板電腦(tablet)、平板手機(phablet)或膝上型電腦(laptop)等的移動計算裝置;以及如智能手表(SmartWatch)、智能眼鏡(SmartGlasses)或智能腕帶(SmartBand)等的可穿戴式(wearable)計算裝置。下面,對包含在本發(fā)明一實施例的主機服務器10中的安全檢查器100的邏輯結(jié)構(gòu)進行具體說明。圖8是本發(fā)明一實施例的安全檢查器100的方框圖。參照圖8,安全檢查器100可包括輸入輸出部110、存儲部120、鏡像掃描部130、安全檢查執(zhí)行部140和安全檢查控制部150。對各個結(jié)構(gòu)進行說明,輸入輸出部100可輸入和輸出安全檢查器100的操作中所需要的數(shù)據(jù)。具體來講,輸入輸出部110可從鏡像倉庫20接收想要執(zhí)行安全檢查的、拉取出的鏡像21。并且,輸入輸出部110可將通過安全檢查控制部150生成的安全檢查結(jié)果存儲在文件中,或可通過網(wǎng)絡傳送該安全檢查結(jié)果。存儲部120可存儲安全檢查器100的操作中所需要的數(shù)據(jù)。具體來講,存儲部120可包括熟知路徑倉庫123和安全策略倉庫126。熟知路徑倉庫123為用于對由安全檢查器100已執(zhí)行安全檢查的層的安全設置文件的路徑進行累積管理的倉庫。并且,安全策略倉庫126為用于管理安全設置文件的形式和安全設置文件根據(jù)已設置的安全策略應具有的環(huán)境設置值的倉庫。鏡像掃描部130可掃描安全設置文件。具體來講,鏡像掃描部130可掃描安全設置文件的路徑未被存儲在熟知路徑倉庫123中的層的文件系統(tǒng)。鏡像掃描部130可收集與存儲在安全策略倉庫126中的安全設置文件的形式匹配的安全設置文件的路徑。并且,鏡像掃描部130可將收集到的安全設置文件的路徑進一步存儲在熟知路徑倉庫123中。安全檢查執(zhí)行部140檢查是否存在違反已設置的安全策略的安全設置文件。具體來講,安全檢查執(zhí)行部140可判斷位于包含在安全檢查列表里的安全設置文件的路徑中的安全設置文件的環(huán)境設置值是否違反已設置的安全策略。并且,安全檢查執(zhí)行部140可以以存儲在安全策略倉庫126中的安全設置文件應具有的環(huán)境設置值為基礎, 判斷是否違反已設置的安全策略。更具體來講,安全檢查執(zhí)行部140可在如下情況下判斷為違反已設置的安全策略:容器15的訪問賬戶中存在不需要的賬戶、容器15的訪問賬戶的密碼到期、存在容器15的不正當訪問路徑及權(quán)限、未應用容器15的安全補丁、通過應用程序19執(zhí)行的服務中存在不需要的服務、允許不正當訪問的應用程序19的環(huán)境設置、應用程序19的運行中所需要的數(shù)據(jù)的未加密、或存在應用程序19的運行中所不需要的數(shù)據(jù)的情況下,但并不限定于此。安全檢查控制部150可通過控制輸入輸出部110、存儲部120、鏡像掃描部130和安全檢查執(zhí)行部140來執(zhí)行安全檢查。具體來講,安全檢查控制部150可通過解析由輸入輸出部110接收到的鏡像21來識別構(gòu)成鏡像21的一個以上的層。在識別出的一個以上的層中存在安全設置文件的路徑未被存儲在熟知路徑倉庫123中的層的情況下,安全檢查控制部150可通過鏡像掃描部130來收集安全設置文件的路徑。安全檢查控制部150可生成由存儲在熟知路徑倉庫123中的安全設置文件的路徑構(gòu)成的安全檢查列表。特別是,在存在重復的安全設置文件的路徑的情況下,安全檢查控制部150可在去除一個安全設置文件的路徑之后生成安全檢查列表。安全檢查控制部150可通過安全檢查執(zhí)行部140來檢查包含在安全檢查列表里的安全設置文件中是否存在違反已設置的安全策略的安全設置文件。安全檢查控制部150可生成安全檢查結(jié)果。并且,安全檢查控制部150可通過輸入輸出部110來輸出安全檢查結(jié)果。目前為止,圖8的各個結(jié)構(gòu)要素可指軟件、或者如現(xiàn)場可編程門陣列(Field-ProgrammableGateArray,F(xiàn)PGA)或?qū)S眉呻娐?Application-SpecificIntegratedCircuit,ASIC)等的硬件。但是,所述結(jié)構(gòu)要素并不限定于軟件或硬件,而是可以構(gòu)成為位于可尋址(addressing)的存儲介質(zhì)中,還可以構(gòu)成為執(zhí)行一個或更多個處理器。在所述結(jié)構(gòu)要素內(nèi)提供的功能可由進一步細分的結(jié)構(gòu)要素來實現(xiàn),還可以以將多個結(jié)構(gòu)要素相加來執(zhí)行特定的功能的一個結(jié)構(gòu)要素來實現(xiàn)。圖9是本發(fā)明一實施例的主機服務器10的硬件結(jié)構(gòu)圖。參照圖9,主機服務器10可包括處理器51、存儲器53、網(wǎng)絡接口55、數(shù)據(jù)總線57和貯存器59。處理器51可由用于執(zhí)行運算的一個以上的中央處理器(CentralProcessingUnit,CPU)構(gòu)成。存儲器53中可駐留有主機操作系統(tǒng)11、虛擬化引擎13和容器15。特別是,存儲器53中可駐留有用于執(zhí)行本發(fā)明一實施例的安全檢查方法的安全檢查器100。網(wǎng)絡接口55可與鏡像倉庫20或開發(fā)者裝置30進行數(shù)據(jù)收發(fā)。數(shù)據(jù)總線57可執(zhí)行用于在處理器51、存儲器53、網(wǎng)絡接口55和貯存器59之間傳遞數(shù)據(jù)的移動通道功能。并且,貯存器59中可存儲有鏡像21和用于執(zhí)行本發(fā)明一實施例的安全檢查方法的安全檢查器100。更具體來講,貯存器59中可存儲有包括如下指令的計算機程序:接收用于生成容器15的鏡像21的指令(Instruction),所述容器15為用于能夠在主機操作系統(tǒng)11中運行的應用程序19的隔離區(qū)域;通過解析鏡像21來識別構(gòu)成所述鏡像21的一個以上的層的指令;從一個以上的層收集作為安全檢查對象的安全設置文件的路徑的指令;以及查詢收集到的路徑并檢查是否存在違反已設置的安全策略的安全設置文件的指令。以上參照附圖對本發(fā)明的實施例進行了說明,但本發(fā)明所屬
技術(shù)領域
:的技術(shù)人員應能理解,本發(fā)明可不變更本發(fā)明的技術(shù)思想或必要特征而以其他具體方式實施。因此,應理解為以上所述的實施例在所有方面為示例性的而并非限定性的。當前第1頁1 2 3 當前第1頁1 2 3 
當前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
咸阳市| 朝阳县| 门头沟区| 九龙坡区| 镇平县| 望奎县| 广饶县| 吐鲁番市| 房山区| 河津市| 灵山县| 华坪县| 吉木萨尔县| 连云港市| 阿勒泰市| 农安县| 祁门县| 海宁市| 陆丰市| 尤溪县| 阿勒泰市| 玉林市| 徐州市| 东光县| 三门峡市| 噶尔县| 渭源县| 建水县| 双峰县| 灵宝市| 拉萨市| 慈利县| 望江县| 英德市| 台南县| 麻阳| 石城县| 三门峡市| 新蔡县| 讷河市| 新疆|