throbber
(19) United States
`(12) Patent Application Publication (10) Pub. No.: US 2015/0033221 A1
`Chari et al.
`(43) Pub. Date:
`Jan. 29, 2015
`
`US 20150.033221A1
`
`(54) SANITIZATION OF VIRTUAL MACHINE
`IMAGES
`
`(71) Applicant: International Business Machines
`Corporation, Armonk, NY (US)
`
`(72) Inventors: Suresh N. Chari, Tarrytown, NY (US);
`Ashish Kundu, Elmsford, NY (US)
`(73) Assignee: stational styhis
`orporation, Armonk,
`(US)
`21) Appl. No.: 13/950,014
`(21) Appl. No
`9
`(22) Filed:
`Jul. 24, 2013
`
`Publication Classification
`
`(51) Int. Cl.
`G06F 9/455
`
`(2006.01)
`
`(52) U.S. Cl.
`CPC .................................. G06F 9/45533 (2013.01)
`USPC .............................................................. 718/1
`
`(57)
`
`ABSTRACT
`
`Sanitizing a virtual machine image of sensitive data is pro
`vided. A label for a sensitivity level is attached to identified
`sensitive data contained within each Software component in a
`plurality of software components of a software stack in a
`virtual machine image based on labeling policies. In response
`to receiving an input to perform a sanitization of the identified
`sensitive data having attached sensitivity level labels con
`tained within software components of the software stack in
`the virtual machine image, the sanitization of the identified
`sensitive data having the attached sensitivity level labels con
`tained within the software components of the software stack
`in the virtual machine image is performed based on sanitiza
`tion policies.
`
`DATAPROCESSING | STORAGE
`SYSTEM
`DEVICES
`200
`216
`
`
`
`204
`
`
`
`206
`
`
`
`228
`
`222
`
`LABELER
`
`230
`
`232
`
`LABELINGSCRIPTS
`
`LABELINGPOLICIES
`
`LABELING SCRIPT
`EXECUTION POLICIES
`
`224
`
`234
`\
`SANTIZATION
`SCRIPTS
`
`SANITIZER 236
`/
`
`SANTIZATION
`POLICIES
`
`238
`/
`SANTIZATIONSCRIPT
`EXECUTION POLICIES
`
`PROCESSORUNIT
`
`MEMORY
`
`SPECIFIC INSTANCE OF AVMIMAGE
`
`226
`
`210 COMMUNICATIONS UNIT
`
`
`
`202
`COMMUNICATIONS
`FABRIC
`
`INPUTIOUTPUT UNIT
`
`DISPLAY
`
`
`
`214
`
`COMPUTER PROGRAMPRODUCT
`
`COMPUTER-READABLESIGNAL MEDIA
`
`PROGRAMCODE COMPUTER-READABLESTORAGEMEDIA
`COMPUTER
`242
`READABLE MEDIA PA
`
`244
`
`240
`
`246
`
`248
`
`WIZ, Inc. EXHIBIT - 1056
`WIZ, Inc. v. Orca Security LTD.
`
`

`

`Patent Application Publication
`
`Jan. 29, 2015 Sheet 1 of 10
`
`US 2015/0033221 Al
`
`
`
`
`
`104 ~]
`
`
`
`
`
`
`
`
`
`
`
`SERVER
`
`
`
`
`
`106 ~|
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`CLIENT
`
`
`
`SERVER
`
`
`
`

`

`Patent Application Publication
`
`Jan. 29, 2015 Sheet 2 of 10
`
`US 2015/0033221 Al
`
` FIG, 2
`
`
`
`
`
`
`
`248
`\
`
`READABLE MEDIA 242
`
`COMPUTER-
`
`
`
`
`
`
`
`COMPUTER PROGRAM PRODUCT
`
`
`
`
`
`
`
`
`
`
`214
`
`
`
`
`
`
`
`DISPLAY
`
`
`
`
`
`
`
`%
`
`INPUT/OUTPUT UNIT -212
`
`
`
`
`
`
`
`
`
`
`
`
`
`二
`
`%
`
`NX 296
`
`SPECIFIC INSTANCE OF A VM IMAGE
`
`
`
`
`EXECUTION POLICIES
`SANITIZATION SCRIPT
`
`
`
`
`
`
`
`POLICIES
`
`SANITIZATION
`
`
`
`
`
`
`
`
`
`
`ee
` 204
`
`2
`238
`
`2
`236
`
`SANITIZER
`
`
`
`
`EXECUTION POLICIES
`
`LABELING SCRIPT
`
`/
`232
`
`
`
`
`
`
`
`LABELING POLICIES
`
`
`
`
`
`
`
`/
`[230
`
`LABELER
`
`222
`
`\
`234
`
`\
`228
`
`218~| VM IMAGE MANAGER | | VM IMAGE 一 220
`
`
`
`
`
`
`
`
`
`
`
`
`
`PERSISTENT STORAGE
`
`
`
`
`
`
`
`此
`
`
`
`
`
`
`
`
`
`
`一
`
`PROCESSOR UNIT
`
`\
`204
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`LABELING SCRIPTS
`
`
`
`
`
`
`
`216
`
`200
`
`DEVICES
`DATA PROCESSING | STORAGE
`
`SYSTEM
`
`
`
`
`208
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`240
`7
`
`
`
`
`
`
`
`
`
`
`yy
`
`244
`
`PROGRAM CODE || COMPUTER-READABLE STORAGE MEDIA || COMPUTER-READABLE SIGNAL MEDIA
`
`246
`7
`
`
`
`
`
`
`
`
`
`
`
`
`
`COMMUNICATIONS
`
`FABRIC
`
`
`
`
`
`
`
`210- 一 COMMUNICATIONS UNIT
`
`
`
`
`
`
`
`
`
`
`
`
`
`2
`
`4
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`SCRIPTS
`
`SANITIZATION
`
`
`
`
`
`
`
`
`
`
`MEMORY
`
`\
`206
`
`
`
`
`
`
`
`

`

`Patent Application Publication
`
`Jan. 29, 2015 Sheet 3 of 10
`
`US 2015/0033221 Al
`
`
`
`
`
`
`
`
`
`
`
`
`ONLLNdWOO qnoro
`
`JN3NNOJIAN3
`
`00€
`
`S3CON 9NllndWoo
`
`qnon19
`OLE
`
`WALSAS
`ONISSIOONd VLVG
`VOcE
`
`
`
`
`
`
`
`
`
`
`
`
`
`g0ce
`WALSAS
`
`ONISSAOONd
`
`vivd
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`ONISSADONd VLYO
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`€ Ol
`
`90z¢ |
`
`AlLSAS) §&{_
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`ONISSAOONd VLVG
`
`
`
`
`
`
`

`

`Patent Application Publication
`
`Jan. 29, 2015 Sheet 4 of 10
`
`US 2015/0033221 Al
`
`
`
`
`
`
`
`
`
`
`
`
`
`AND OPERATING SYSTEMS
`
`MANAGEMENT
`
`406
`
`VIRTUAL MACHINE
`
`MANAGEMENT
`SERVICE LEVEL
`
`USER PORTAL
`SECURITY AND
`
`408
`
`VIRTUAL MACHINES
`
`INSTANCES OF
`
`MANAGING SPECIFIC
`
`GENERATING AND
`
`PROCESSING
`TRANSACTION
`
`PROCESSING
`ANALYTICS
`
`DATA
`
`WORKLOAD LAYER
`
`400
`ACLOUD COMPUTING ENVIRONMENT
`
`
`
`
`
`
`
`
`
`
`[Bair
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Mee
`
`
`
`
`FIG. 4
`
`402
`
`SOFTWARE SOFTWARE
`DATABASE
`SERVER
`
`
`
`
`
`
`
`
`
`
`
`
`
`圖 na
`
`STORAGE
`
`“4 APPLICATION
`NETWORKING
`NETWORK
`
`404
`
`
`
`
`
`
`
`
`
`
`eH
`MACHINES
`VIRTUAL
`
`—A
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`HARDWARE AND SOFTWARE LAYER
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`BLADECENTER
`
`SYSTEMS
`
`SYSTEMS
`xSERIES ®
`
`iam ®
`
`
`
`
`SERVERS
`
`AINFRAMES
`
`M
`
`ARCHITECTURE
`
`RISC
`
`
`
`
`VIRTUALIZATION LAYER
`
`(oS! pc
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`VIRTUAL NETWORKS — VIRTUAL APPLICATIONS
`
`STORAGE
`VIRTUAL
`
`[一 一
`
`SERVERS
`VIRTUAL
`
`
`
`
`
`
`
`MANAGEMENT LAYER
`
`
`
`
`
`
`
`AND PRICING
`
`METERING
`
`PROVISIONING
`
`RESOURCE
`
`
`
`
`
`
`
`
`
`
` f
`
`
`
`ABSTRACTION LAYERS OF
`
`DELIVERY
`EDUCATION
`CLASSROOM
`
`VIRTUAL
`
`MANAGEMENT
`AND LIFECYCLE
`DEVELOPMENT
`
`SOFTWARE
`
`NAVIGATION
`MAPPING AND
`
`

`

`Patent Application Publication
`
`Jan. 29, 2015 Sheet 5 of 10
`
`US 2015/0033221 Al
`
`VM IMAGE
`SOFTWARE STACK
`502
`
`
`
`二 -一
`
`VM IMAGE
`
`Pan 人
`
`
`
`APPLICATIONS
`
`504
`
`
`J、 一 506
`
`MIDDLEWARE
`
`
`
`500
`
`™~ 、、 、
`
`~、_
`
`
`GUEST OS
`VIRTUAL STORAGE
`
`
`
`
`
`
`
`十 508
`
`t 549
`
`FIG. 5
`
`

`

`Patent Application Publication
`
`Jan. 29, 2015 Sheet 6 of 10
`
`US 2015/0033221 Al
`
`STORAGE BLOCK
`DELETE VIRTUAL
`
`630
`
`OF VM IMAGE
`
`OF VM IMAGE
`
`OF VM IMAGE
`
`SPECIFIC INSTANCE
`
`SPECIFIC INSTANCE
`
`SPECIFIC INSTANCE
`
`DETACH FROM
`
`628
`
`ATTACH TO
`
`626
`
`ALLOCATE TO
`
`624
`
`STORAGE BLOCK
`VIRTUAL
`GENERATE
`
`
`
`
`
`
`VM IMAGE FOR ROLLBACK
`SPECIFIC INSTANCE OF
`GENERATE SNAPSHOT OF
`
`
`
`
`618
`CLONES
`VM IMAGE
`
`CATALOG OF
`
`
`
`各
`
`
`
`
`
`
`
`
`
`OF VM IMAGE CLONE
`SPECIFIC INSTANCE
`
`GENERATE
`
`
`
`
`/
`620
`
`圖
`
`616
`
`S
`
`INSTANCE OF VM IMAGE
`
`CLONE SPECIFIC
`
`614
`aS
`ee,
`
`610
`
`VM IMAGE
`
`INSTANCE OF
`
`SPECIFIC
`GENERATE
`
`CREDENTIALS
`
`USER
`
`612
`
`
`
`
`
`
`
`608
`7
`
`VM IMAGES
`THIRD-PARTY
`CATALOG OF
`
`
`
`
`
`
`
`OF VM IMAGES
`
`MASTER CATALOG
`
`
`
`
`、
`606
`
`
`
`
`TO CLOUD
`VM IMAGE
`PUBLISH
`
`VM IMAGE
`GENERATE
`
`604
`
`602
`
`
`
`
`VM IMAGE LIFECYCLE
`
`品
`
`FIG. 6
`
`

`

`
`
`LABELER
`SPECIFIC
` SPECIFIC
`LABELER
`INSTANCE OF
`INSTANCE OF
`700
`VMIMAGE
`700
`VM IMAGE
`
`FIG. 7
`712
`FIG. 7
`712
`
`LABELED SPECIFIC
`LABELED SPECIFIC
`INSTANCE OF VMIMAGE
`INSTANCE OF VM IMAGE
`
`LABEL FILE
`LABEL FILE
`
`
`
`Patent Application Publication
`Patent Application Publication
`
`Jan. 29, 2015 Sheet 7 of 10
`Jan. 29, 2015 Sheet 7 of 10
`
`US 2015/0033221 A1
`US 2015/0033221 Al
`
`706
`706
`
`704
`
`702
`
`LABELING
`LABELING
`SCRIPTS
`SCRIPTS
`
`LABELING
`LABELING
`POLICIES
`POLICIES
`
`LABELING
`LABELING
`SCRIPT
`SCRIPT
`EXECUTION
`EXECUTION
`POLICIES
`POLICIES
`
`708
`
`710
`
`
`
`
`
`
`
`
`
`806
`806
`
`
`
`SANTIZATION
`SANITIZATION
`SCRIPT
`SANTIZATION SANITIZATION
`
`SANITIZATION||SANITIZATION SCRIPT
`SCRIPTS
`POLICIES
`EXECUTION
`SCRIPTS
`POLICIES
`EXECUTION
`POLICIES
`POLICIES
`
`LABELED
`LABELED
`SANTIZED
`SPECIFIC
`SANITIZER
`SANITIZED
`SPECIFIC
`SANITIZER
`SPECIFIC INSTANCE
`SPECIFIC INSTANCE
`OF VMIMAGE
`INSTANCE OF
`800
`OF VM IMAGE
`INSTANCE OF
`800
`VMIMAGE
`VM IMAGE
`
`FIG. 8
`FIG. 8
`
`

`

`Patent Application Publication
`Patent Application Publication
`
`Jan. 29, 2015 Sheet 8 of 10
`Jan. 29, 2015 Sheet 8 of 10
`
`US 2015/0033221 A1
`US 2015/0033221 Al
`
`FIG. 9
`FIG. 9
`GENERATE VM IMAGE
`GENERATE VMIMAGE
`
`VMIMAGE LABELING AND
`VM IMAGE LABELING AND
`SANTIZATION PROCESS
`SANITIZATION PROCESS
`900
`900
`yg
`
`LABEL AND SANITIZE VM IMAGE
`LABEL AND SANTIZE VMIMAGE
`
`PUBLISHWMMAGE TO A
`PUBLISH VM IMAGE TO A
`CATALOG ON ACLOUD
`CATALOG ON A CLOUD
`
`GENERATE SPECIFIC
`GENERATE SPECIFIC
`INSTANCE OF VMIMAGE
`INSTANCE OF VM IMAGE
`
`LABEL AND SANITIZE SPECIFIC
`LABEL AND SANITIZE SPECIFIC
`INSTANCE OFWMIMAGE
`INSTANCE OF VM IMAGE
`
`
`
`OF VM IMAGE TO USER
`
`DELIVER LABELED AND
`DELIVER LABELED AND
`SANITIZED SPECIFIC INSTANCE
`SANITIZED SPECIFIC INSTANCE
`OF VMIMAGETOUSER
`
`902
`902
`904
`904
`
`906
`906
`
`908
`908
`
`910
`910
`
`912
`912
`
`
`
`GENERATE CLONE OF
`GENERATE CLONE OF
`SPECIFIC INSTANCE
`SPECIFIC INSTANCE
`OF VMIMAGE
`OF VM IMAGE
`
`DYNAMICALLYLABEL AND
`DYNAMICALLY LABEL AND
`SANTIZE RUNNING
`SANITIZE RUNNING
`INSTANCES OF VMIMAGE
`INSTANCES OF VM IMAGE
`
`GENERATESNAPSHOT
`GENERATE SNAPSHOT
`OF SPECIFIC INSTANCE
`OF SPECIFIC INSTANCE
`OF VMIMAGE
`OF VM IMAGE
`
`LABEL AND SANTIZE
`LABEL AND SANITIZE
`CLONED SPECIFIC
`CLONED SPECIFIC
`INSTANCE OF VMIMAGE
`INSTANCE OF VM IMAGE
`
`MONITORLABELED AND
`MONITOR LABELED AND
`SANTIZEDRUNNING
`SANITIZED RUNNING
`INSTANCES OF VMIMAGE
`INSTANCES OF VM IMAGE
`
`LABEL AND SANITIZE
`LABEL AND SANITIZE
`SNAPSHOT OF SPECIFIC
`SNAPSHOT OF SPECIFIC
`INSTANCE OF VMIMAGE
`
`INSTANCE OF VM IMAGE
`
`
`
`916
`916
`STORE LABELED AND
`STORE LABELED AND
`SANITIZED SNAPSHOT
`SANITIZED SNAPSHOT
`OF SPECIFIC INSTANCE
`OF SPECIFIC INSTANCE
`OF VMIMAGE
`OF VM IMAGE
`
`928
`928
`
`922
`922
`STORE LABELED AND
`STORE LABELED AND
`SANTIZED CLONE OF
`SANITIZED CLONE OF
`SPECIFIC INSTANCE
`SPECIFIC INSTANCE
`OF VMIMAGE
`OF VM IMAGE
`
`
`
`924
`924
`
`918
`918
`
`

`

`Patent Application Publication
`Patent Application Publication
`
`Jan. 29, 2015 Sheet 9 of 10
`Jan. 29, 2015 Sheet 9 of 10
`
`US 2015/0033221 A1
`US 2015/0033221 Al
`
`RECEIVE, BY A COMPUTER, AN INPUT TO
`RECEIVE, BY A COMPUTER,AN INPUT TO
`GENERATEAVIRTUAL MACHINE IMAGE
`GENERATEA VIRTUAL MACHINE IMAGE
`
`GENERATE, BY THE COMPUTER, THE VIRTUAL MACHINE IMAGE
`GENERATE, BY THE COMPUTER, THE VIRTUAL MACHINE IMAGE
`
`IDENTIFY, BY THE COMPUTER, ASPECIFICATION LANGUAGE THATDEFINES
`IDENTIFY, BY THE COMPUTER, A SPECIFICATION LANGUAGE THAT DEFINES
`WHEN THE VIRTUAL MACHINE IMAGE ISSANITIZED, THE SOFTWARE
`WHEN THE VIRTUAL MACHINE IMAGEIS SANITIZED, THE SOFTWARE
`COMPONENTS OF THE VIRTUAL MACHINE IMAGE THAT ARE LABELED AND
`COMPONENTSOF THE VIRTUAL MACHINE IMAGE THAT ARE LABELED AND
`SANITIZED, AFIRST SET OF POLICIES ASSOCIATED WITH LABELING AND
`SANITIZED, A FIRST SET OF POLICIES ASSOCIATED WITH LABELING AND
`SANITIZING THE VIRTUAL MACHINE IMAGE, AND ASECONDSET OF POLICIES
`SANITIZING THE VIRTUAL MACHINE IMAGE, AND A SECOND SET OF POLICIES
`ASSOCATED WITH EXECUTION OF LABELING AND SANITIZATION PROGRAMS
`ASSOCIATED WITH EXECUTION OF LABELING AND SANITIZATION PROGRAMS
`
`
`
`
`
`1002
`4002
`
`1004
`1004
`
`1006
`1006
`
`1008
`1008
`
`1010
`1010
`
`1012
`1012
`
`INSERT, BY THE COMPUTER, ALABELERMODULE AND A SANITIZERMODULE
`INSERT, BY THE COMPUTER, A LABELER MODULE AND A SANITIZER MODULE
`INTO EACHSOFTWARE COMPONENT INAPLURALITY OF SOFTWARE
`INTO EACH SOFTWARE COMPONENTIN A PLURALITY OF SOFTWARE
`COMPONENTS OF A SOFTWARE STACKIN THE VIRTUAL MACHINE IMAGE
`COMPONENTS OF A SOFTWARESTACK IN THE VIRTUAL MACHINE IMAGE
`
`IDENTIFY, BY THE COMPUTER, LABELING DEPENDENCIES BETWEEN
`IDENTIFY, BY THE COMPUTER, LABELING DEPENDENCIES BETWEEN
`SOFTWARE COMPONENTS IN THE PLURALITY OF SOFTWARE COMPONENTS
`SOFTWARE COMPONENTSIN THE PLURALITY OF SOFTWARE COMPONENTS
`OF THE SOFTWARE STACKIN THE VIRTUAL MACHINE IMAGE BASED ON
`OF THE SOFTWARE STACK IN THE VIRTUAL MACHINE IMAGE BASED ON
`LABELING SCRIPTEXECUTION POLICIES LOCATED IN THE LABELERMODULE
`LABELING SCRIPT EXECUTION POLICIES LOCATED IN THE LABELER MODULE
`
`EXECUTE, BY THE COMPUTER, A LABELINGPROGRAMINEACH
`EXECUTE, BY THE COMPUTER,A LABELING PROGRAMIN EACH
`SOFTWARE COMPONENT IN THE PLURALITY OF SOFTWARE
`SOFTWARE COMPONENTIN THE PLURALITY OF SOFTWARE
`COMPONENTS OF THE SOFTWARESTACKIN THE VIRTUAL
`COMPONENTS OF THE SOFTWARE STACKIN THE VIRTUAL
`MACHINE IMAGE BASED ONLABELING EXECUTION POLICIES
`MACHINE IMAGE BASED ON LABELING EXECUTION POLICIES
`
`TO FIG. 10B
`TO FIG. 10B
`
`FIG. 1 OA
`FIG. 10A
`
`

`

`Patent Application Publication
`Patent Application Publication
`
`Jan. 29, 2015 Sheet 10 of 10
`Jan. 29, 2015 Sheet 10 of 10
`
`US 2015/0033221 A1
`US 2015/0033221 Al
`
`FROM FIG. 10B
`FROM FIG. 10B
`
`USE, BY THE COMPUTER, THE LABELING SCRIPTS TO ATTACHA
`USE, BY THE COMPUTER, THE LABELING SCRIPTS TO ATTACH A
`SENSITIVITYLEVELLABEL TO DENTIFIED SENSITIVE DATA
`SENSITIVITY LEVEL LABEL TO IDENTIFIED SENSITIVE DATA
`CONTAINED WITHIN EACH SOFTWARE COMPONENTIN THE
`CONTAINED WITHINEACHSOFTWARE COMPONENT IN THE
`PLURALITY OF SOFTWARE COMPONENTS OF THE SOFTWARE STACK
`PLURALITY OF SOFTWARE COMPONENTS OF THE SOFTWARE STACK
`IN THE VIRTUAL MACHINE IMAGE BASED ON LABELINGPOLICES
`IN THE VIRTUAL MACHINE IMAGE BASED ON LABELING POLICIES
`
`VIRTUAL MACHINE IMAGE BASEDON SANITIZATION POLICIES
`
`
`
`1014
`4014
`0
`O
`
`1016
`1016
`
`1018
`4018
`
`1020
`1020
`
`1022
`4022
`
`RECEIVE, BY THE COMPUTER, AN INPUTTOPERFORMASANITIZATION
`RECEIVE, BY THE COMPUTER,AN INPUT TO PERFORMA SANITIZATION
`OF THEIDENTIFIED SENSITIVE DATA HAVING ATTACHED SENSITIVITY
`OF THE IDENTIFIED SENSITIVE DATA HAVING ATTACHEDSENSITIVITY
`LEVELLABELS CONTAINED WITHIN THE SOFTWARE COMPONENTS OF
`LEVEL LABELS CONTAINED WITHIN THE SOFTWARE COMPONENTS OF
`THE SOFTWARESTACKIN THE VIRTUAL MACHINE IMAGE
`THE SOFTWARESTACK IN THE VIRTUAL MACHINE IMAGE
`
`IDENTIFY BY THE COMPUTER, SANITIZATIONDEPENDENCIES
`IDENTIFY, BY THE COMPUTER, SANITIZATION DEPENDENCIES
`BETWEENTHE SOFTWARE COMPONENTS IN THE PLURALITY OF
`BETWEEN THE SOFTWARE COMPONENTSIN THE PLURALITY OF
`SOFTWARE COMPONENTS OF THE SOFTWARESTACKIN THE
`SOFTWARE COMPONENTS OF THE SOFTWARE STACK IN THE
`VIRTUAL MACHINE IMAGE BASED ON SANITIZATION SCRIPT
`VIRTUAL MACHINE IMAGE BASED ONSANITIZATION SCRIPT
`EXECUTION POLICIES LOCATED IN THE SANITIZERMODULE
`EXECUTION POLICIES LOCATED IN THE SANITIZER MODULE
`
`EXECUTE, BY THE COMPUTER, SANITIZATION SCRIPTSINEACH
`EXECUTE, BY THE COMPUTER,SANITIZATION SCRIPTS IN EACH
`SOFTWARE COMPONENT IN THE PLURALITY OF SOFTWARE
`SOFTWARE COMPONENT IN THE PLURALITY OF SOFTWARE
`COMPONENTS OF THE SOFTWARE STACKIN THE VIRTUAL
`COMPONENTS OF THE SOFTWARE STACKIN THE VIRTUAL
`MACHINE IMAGE BASED ON THE DENTIFIED SANTIZATION
`MACHINE IMAGE BASED ON THE IDENTIFIED SANITIZATION
`DEPENDENCES BETWEEN THE SOFTWARE COMPONENTS
`DEPENDENCIES BETWEEN THE SOFTWARE COMPONENTS
`
`USE, BY THE COMPUTER, THE SANITIZATIONSCRIPTSTOPERFORM
`USE, BY THE COMPUTER, THE SANITIZATION SCRIPTS TO PERFORM
`THE SANITIZATION OF THE IDENTIFIED SENSITIVE DATA HAVING THE
`THE SANITIZATION OF THE IDENTIFIED SENSITIVE DATA HAVING THE
`ATTACHED SENSITIVITYLEVELLABELS CONTAINED WITHIN THE
`ATTACHED SENSITIVITY LEVEL LABELS CONTAINEDWITHIN THE
`SOFTWARE COMPONENTS OF THE SOFTWARESTACKIN THE
`SOFTWARE COMPONENTS OF THE SOFTWARE STACK IN THE
`VIRTUAL MACHINE IMAGE BASED ON SANITIZATION POLICIES
`
`C END )
`(END)
`FIG 1 OB
`FIG. 10B
`
`

`

`US 2015/0033221 A1
`US 2015/0033221 Al
`
`Jan. 29, 2015
`Jan. 29, 2015
`
`SANITIZATION OF VIRTUAL MACHINE
`SANTIZATION OF VIRTUAL MACHINE
`IMAGES
`IMAGES
`
`BACKGROUND
`BACKGROUND
`
`0001 1. Field
`[0001]
`1. Field
`0002 The disclosure relates generally to virtual machines
`[0002] The disclosure relates generally to virtual machines
`and more specifically to sanitizing a virtual machine image of
`and more specifically to sanitizing a virtual machine image of
`sensitive data contained within a plurality of different soft
`sensitive data contained within a plurality of different soft-
`ware components of a Software stack installed on the virtual
`ware components of a software stack installed on the virtual
`machine image.
`machine image.
`0003 2. Description of the Related Art
`[0003]
`2. Description of the Related Art
`0004. The concept of virtual machines has been used in
`[0004] The concept of virtual machines has been used in
`computing for decades. For example, mainframe computers
`computing for decades. For example, mainframe computers
`take advantage of their computing power by running multiple
`take advantage oftheir computing powerby running multiple
`instances of the same or different operating systems within
`instances of the sameor different operating systems within
`multiple virtual machines on the same computer. Virtual
`multiple virtual machines on the same computer. Virtual
`machines are desirable due to their ability to isolate specific
`machinesare desirable due to their ability to isolate specific
`applications, tasks, or users. For example, an individual want
`applications, tasks, or users. For example, an individual want-
`ing to manage his or her personal finances may use a virtual
`ing to managehis or her personal finances may usea virtual
`machine that is specifically equipped with personal account
`machinethat is specifically equipped with personal account-
`ing software and a variety of sensitive personal finance data
`ing software anda variety of sensitive personal finance data
`associated with that individual. Virtual machines are typically
`associated withthat individual. Virtual machinesare typically
`stored as a setoffiles.
`stored as a set of files.
`
`SUMMARY
`SUMMARY
`0005 According to one illustrative embodiment, a com
`[0005] According to one illustrative embodiment, a com-
`puter-implemented method for sanitizing a virtual machine
`puter-implemented method for sanitizing a virtual machine
`image of sensitive data is provided. A computer attaches a
`image ofsensitive data is provided. A computer attaches a
`sensitivity level label to identified sensitive data contained
`sensitivity level label to identified sensitive data contained
`within each software component in a plurality of software
`within each software componentin a plurality of software
`components of a Software stack in a virtual machine image
`components of a software stack in a virtual machine image
`based on labeling policies. In response to the computer
`based on labeling policies. In response to the computer
`receiving an input to perform a sanitization of the identified
`receiving an input to perform a sanitization of the identified
`sensitive data having attached sensitivity level labels con
`sensitive data having attached sensitivity level labels con-
`tained within software components of the software stack in
`tained within software components of the software stack in
`the virtual machine image, the computer performs the saniti
`the virtual machine image, the computer performsthe saniti-
`zation of the identified sensitive data having the attached
`zation of the identified sensitive data having the attached
`sensitivity level labels contained within the software compo
`sensitivity level labels contained within the software compo-
`nents of the software stack in the virtual machine image based
`nents ofthe software stackin the virtual machine image based
`on sanitization policies. According to other illustrative
`on sanitization policies. According to other illustrative
`embodiments, a computer system and a computer program
`embodiments, a computer system and a computer program
`product for sanitizing a virtual machine image of sensitive
`product for sanitizing a virtual machine image of sensitive
`data also are provided.
`data also are provided.
`
`BRIEF DESCRIPTION OF THE SEVERAL
`BRIEF DESCRIPTION OF THE SEVERAL
`VIEWS OF THE DRAWINGS
`VIEWS OF THE DRAWINGS
`0006 FIG. 1 is a pictorial representation of a network of
`[0006]
`FIG.1 is a pictorial representation of a network of
`data processing systems in which illustrative embodiments
`data processing systems in whichillustrative embodiments
`may be implemented;
`may be implemented;
`0007 FIG. 2 is a diagram of a data processing system in
`[0007]
`FIG. 2 is a diagram of a data processing system in
`which illustrative embodiments may be implemented;
`whichillustrative embodiments may be implemented;
`0008 FIG. 3 is a diagram illustrating a cloud computing
`[0008]
`FIG. 3 is a diagram illustrating a cloud computing
`environment in which illustrative embodiments may be
`environment
`in which illustrative embodiments may be
`implemented;
`implemented;
`0009 FIG. 4 is a diagram illustrating an example of
`[0009]
`FIG. 4 is a diagram illustrating an example of
`abstraction layers of a cloud computing environment in
`abstraction layers of a cloud computing environment
`in
`accordance with an illustrative embodiment;
`accordance with an illustrative embodiment;
`0010 FIG. 5 is a diagram illustrating an example of a
`[0010]
`FIG. 5 is a diagram illustrating an example of a
`virtual machine image in accordance with an illustrative
`virtual machine image in accordance with an illustrative
`embodiment;
`embodiment;
`0011
`FIG. 6 is a diagram illustrating an example of a
`[0011]
`FIG. 6 is a diagram illustrating an example of a
`lifecycle of a virtual machine image in accordance with an
`lifecycle of a virtual machine image in accordance with an
`illustrative embodiment;
`illustrative embodiment;
`
`0012 FIG. 7 is a diagram illustrating a labeler in accor
`[0012]
`FIG. 7 is a diagram illustrating a labeler in accor-
`dance with an illustrative embodiment;
`dance with an illustrative embodiment;
`0013 FIG. 8 is a diagram illustrating a sanitizer in accor
`[0013]
`FIG. 8 is a diagram illustrating a sanitizer in accor-
`dance with an illustrative embodiment;
`dance with an illustrative embodiment;
`0014 FIG. 9 is a diagram illustrating an example of a
`[0014]
`FIG. 9 is a diagram illustrating an example of a
`virtual machine image labeling and sanitization process in
`virtual machine image labeling and sanitization process in
`accordance with an illustrative embodiment; and
`accordance with an illustrative embodiment; and
`(0015 FIG. 10A and FIG. 10B area flowchart illustrating a
`[0015] FIG.10A and FIG.10Bare a flowchart illustrating a
`process for sanitizing a virtual machine image of sensitive
`process for sanitizing a virtual machine image of sensitive
`data in accordance with an illustrative embodiment.
`data in accordance with an illustrative embodiment.
`
`DETAILED DESCRIPTION
`DETAILED DESCRIPTION
`0016. As will be appreciated by one skilled in the art,
`[0016] As will be appreciated by one skilled in the art,
`aspects of the illustrative embodiments may be embodied as
`aspects oftheillustrative embodiments may be embodied as
`a computer system, computer-implemented method, or com
`a computer system, computer-implemented method, or com-
`puter program product. Accordingly, aspects of the illustra
`puter program product. Accordingly, aspects of the illustra-
`tive embodiments may take the form of an entirely hardware
`tive embodiments may take the form of an entirely hardware
`embodiment, an entirely software embodiment (including
`embodiment, an entirely software embodiment (including
`firmware, resident Software, micro-code, etc.), or an embodi
`firmware, resident software, micro-code,etc.), or an embodi-
`ment combining Software and hardware aspects that may all
`ment combining software and hardware aspects that mayall
`generally be referred to herein as a “circuit.” “module,” or
`generally be referred to herein as a “circuit,” “module,” or
`“system.” Furthermore, aspects of the illustrative embodi
`“system.” Furthermore, aspects of the illustrative embodi-
`ments may take the form of a computer program product
`ments may take the form of a computer program product
`embodied in one or more computer readable medium(s) hav
`embodiedin one or more computer readable medium(s) hav-
`ing computer readable program code embodied thereon.
`ing computer readable program code embodied thereon.
`0017. Any combination of one or more computer readable
`[0017] Any combination of one or more computer readable
`medium(s) may be utilized. The computer readable medium
`medium(s) may be utilized. The computer readable medium
`may be a computer readable signal medium or a computer
`may be a computer readable signal medium or a computer
`readable storage medium. A computer readable storage
`readable storage medium. A computer readable storage
`medium may be, for example, but not limited to, an elec
`medium may be, for example, but not limited to, an elec-
`tronic, magnetic, optical, or semiconductor system, appara
`tronic, magnetic, optical, or semiconductor system, appara-
`tus, or device, or any suitable combination of the foregoing.
`tus, or device, or any suitable combination of the foregoing.
`More specific examples (a non-exhaustive list) of the com
`More specific examples (a non-exhaustive list) of the com-
`puter readable storage medium would include the following:
`puter readable storage medium would include the following:
`a portable computer diskette, a hard disk, a random access
`a portable computer diskette, a hard disk, a random access
`memory (RAM), a read-only memory (ROM), an erasable
`memory (RAM), a read-only memory (ROM), an erasable
`programmable read-only memory (EPROM or Flash
`programmable read-only memory (EPROM or Flash
`memory), a portable compact disc read-only memory (CD
`memory), a portable compact disc read-only memory (CD-
`ROM), an optical storage device, a magnetic storage device,
`ROM), an optical storage device, a magnetic storage device,
`or any Suitable combination of the foregoing. In the context of
`or any suitable combination ofthe foregoing. Inthe context of
`this document, a computer readable storage medium may be
`this document, a computer readable storage medium may be
`any tangible medium that can store a program for use by or in
`any tangible mediumthat can store a program for use by or in
`connection with an instruction execution system, apparatus,
`connection with an instruction execution system, apparatus,
`or device. In addition, a computer readable storage medium
`or device. In addition, a computer readable storage medium
`excludes all propagation media, such as signals and carrier
`excludes all propagation media, such as signals and carrier
`waves.
`WaVS.
`0018. A computer readable signal medium may include a
`[0018] A computer readable signal medium may include a
`propagated data signal with computer readable program code
`propagated data signal with computer readable program code
`embodied therein, for example, in baseband or as part of a
`embodied therein, for example, in basebandoras part of a
`carrier wave. Such a propagated signal may take any of a
`carrier wave. Such a propagated signal may take any of a
`variety of forms, including, but not limited to, electro-mag
`variety of forms, including, but not limited to, electro-mag-
`netic, infra-red, or any suitable combination thereof. A com
`netic, infra-red, or any suitable combination thereof. A com-
`puter readable signal medium may be any computer readable
`puter readable signal medium may be any computer readable
`medium that is not a computer readable storage medium and
`medium that is not a computer readable storage medium and
`that can communicate, propagate, or transport a program for
`that can communicate, propagate, or transport a program for
`use by or in connection with an instruction execution system,
`use by or in connection with an instruction execution system,
`apparatus, or device.
`apparatus, or device.
`0019 Program code embodied on a computer readable
`[0019]
`Program code embodied on a computer readable
`medium may be transmitted using any appropriate medium,
`medium may be transmitted using any appropriate medium,
`including but not limited to wireless, wireline, optical fiber
`including but not limited to wireless, wireline, optical fiber
`cable, RF, etc., or any Suitable combination of the foregoing.
`cable, RF, etc., or any suitable combination of the foregoing.
`0020 Computer program code for carrying out operations
`[0020] Computer program codefor carrying out operations
`for aspects of the illustrative embodiments may be written in
`for aspects of the illustrative embodiments may be written in
`any combination of one or more programming languages,
`any combination of one or more programming languages,
`
`

`

`US 2015/0033221 A1
`US 2015/0033221 Al
`
`Jan. 29, 2015
`Jan. 29, 2015
`
`including an object oriented programming language Such as
`including an object oriented programming language such as
`Java, Smalltalk, C++ or the like and conventional procedural
`Java, Smalltalk, C++ or the like and conventional procedural
`programming languages, such as the 'C' programming lan
`programming languages, such as the “C” programming lan-
`guage or similar programming languages. The program code
`guageor similar programming languages. The program code
`may execute entirely on the user's computer, partly on the
`may execute entirely on the user’s computer, partly on the
`user's computer, as a stand-alone software package, partly on
`user’s computer, as a stand-alone software package,partly on
`the user's computer and partly on a remote computer or
`the user’s computer and partly on a remote computer or
`entirely on the remote computer or server. In the latter sce
`entirely on the remote computeror server. In the latter sce-
`nario, the remote computer may be connected to the user's
`nario, the remote computer may be connected to the user’s
`computer through any type of network, including a local area
`computer through any type of network, including a local area
`network (LAN) or a wide area network (WAN), or the con
`network (LAN)or a wide area network (WAN), or the con-
`nection may be made to an external computer (for example,
`nection may be made to an external computer (for example,
`through the Internet using an Internet Service Provider).
`through the Internet using an Internet Service Provider).
`0021 Aspects of the illustrative embodiments are
`[0021] Aspects of
`the
`illustrative
`embodiments
`are
`described below with reference to flowchart illustrations and/
`described below with reference to flowchart illustrations and/
`or block diagrams of computer-implemented methods, com
`or block diagrams of computer-implemented methods, com-
`puter systems, and computer program products according to
`puter systems, and computer program products according to
`illustrative embodiments. It will be understood that each
`illustrative embodiments. It will be understood that each
`block of the flowchart illustrations and/or block diagrams,
`block of the flowchart illustrations and/or block diagrams,
`and combinationsofblocksin the flowchart illustrations and/
`and combinations of blocks in the flowchart illustrations and/
`or block diagrams, can be implemented by computer program
`or block diagrams, can be implemented by computer program
`instructions. These computer program instructions may be
`instructions. These computer program instructions may be
`provided to a processor of a general purpose computer, spe
`provided to a processor of a general purpose computer, spe-
`cial purpose computer, or other programmable data process
`cial purpose computer, or other programmable data process-
`ing apparatus to produce a machine. Such that the instruc
`ing apparatus to produce a machine, such that the instruc-
`tions, which execute via the processor of the computer or
`tions, which execute via the processor of the computer or
`other programmable data processing apparatus, create means
`other programmable data processing apparatus, create means
`for implementing the functions/acts specified in the flowchart
`for implementing the functions/acts specified in the flowchart
`and/or block diagram block or blocks.
`and/or block diagram block or blocks.
`0022. These computer program instructions may also be
`[0022] These computer program instructions may also be
`stored in a computer readable storage medium that can direct
`stored in a computer readable storage medium that can direct
`a computer, other programmable data processing apparatus,
`a computer, other programmable data processing apparatus,
`or other devices to function in a particular manner, Such that
`or other devices to function in a particular manner, such that
`the instructions stored in the computer readable storage
`the instructions stored in the computer readable storage
`medium produce an article of manufacture including instruc
`medium producean article of manufacture includinginstruc-
`tions which implement the function/act specified in the flow
`tions which implementthe function/act specified in the flow-
`chart and/or block diagram block or blocks.
`chart and/or block diagram block or blocks.
`0023 The computer program instructions may also be
`[0023] The computer program instructions may also be
`loaded onto a computer, other programmable data processing
`loaded onto a computer, other programmable data processing
`apparatus, or other devices to cause a series of operational
`apparatus, or other devices to cause a series of operational
`steps to be performed on the computer, other programmable
`steps to be per

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket