CN106951775A - 一种基于操作系统内核虚拟化技术的安全保障系统 - Google Patents

一种基于操作系统内核虚拟化技术的安全保障系统 Download PDF

Info

Publication number
CN106951775A
CN106951775A CN201610002063.XA CN201610002063A CN106951775A CN 106951775 A CN106951775 A CN 106951775A CN 201610002063 A CN201610002063 A CN 201610002063A CN 106951775 A CN106951775 A CN 106951775A
Authority
CN
China
Prior art keywords
virtual machine
operating system
application
network
virtual
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201610002063.XA
Other languages
English (en)
Inventor
梁洪亮
徐健
李明煜
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Individual
Original Assignee
Individual
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Individual filed Critical Individual
Priority to CN201610002063.XA priority Critical patent/CN106951775A/zh
Publication of CN106951775A publication Critical patent/CN106951775A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45562Creating, deleting, cloning virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45587Isolation or security of virtual machine instances

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明公开了一种基于操作系统内核虚拟化技术的安全保障系统。利用操作系统内核虚拟化技术所提供的隔离环境实现对操作系统不同组件及应用之间的隔离。该系统由虚拟桌面模块、多个应用虚拟机、一个网络虚拟机以及虚拟机管理模块组成。安全保障系统使用操作系统内核虚拟化和硬件虚拟化技术提供隔离环境,为用户提供多个应用虚拟机;虚拟机中运行客户操作系统,客户操作系统中运行用户应用程序;虚拟桌面模块将运行在多个应用虚拟机单元中的应用程序无缝地结合在一起,以方便用户的操作;虚拟机管理模块对各虚拟机进行统一部署和管理。本发明使用户可以在一台物理计算机上并发开展不同安全需求(如办公、上网、涉密等)的任务和活动。

Description

一种基于操作系统内核虚拟化技术的安全保障系统
技术领域
本发明涉及操作系统虚拟化技术领域,尤其涉及一种基于操作系统内核虚拟化技术的安全保障系统。
背景技术
随着计算机信息技术的飞速发展,计算机的应用得到了空前的推广。但在计算机方便了人们工作、生活的同时,随之而来的安全问题也变得日益严重。计算机软件作为信息技术的重要组成部分,所以计算机软件的安全在信息安全保护方面起着至关重要的作用。而作为计算机软件运行平台的操作系统的安全,更是信息安全防御工作中的重中之重。
传统的操作系统保护措施如杀毒软件、数据加密、访问控制等都不能很好地满足安全需求。该问题的主要原因在于当前操作系统的集中式架构,包括非常复杂的操作系统应用编程接口、不安全的图形用户接口设计、过于庞大的系统内核,不能为运行在同一个机器上的应用程序提供一种合理有效的隔离机制。当操作系统的某一组件存在漏洞而受到攻击破坏时,操作系统不能够保证其他组件不受影响。而通过打补丁方式修复发现的漏洞只能防御已公开的攻击,对于某些未公开的攻击方式仍然没有办法解决。
发明内容
鉴于以上内容,本发明提出了一种基于操作系统内核虚拟化技术的安全保障系统。
根据本发明的实施方式,所述基于操作系统虚拟化技术的安全保障系统包括虚拟桌面模块、多个应用虚拟机单元、网络虚拟机单元以及虚拟机管理模块四个部分。
所述虚拟桌面模块包括虚拟机客户操作系统中运行的代理组件(Agent)和宿主操作系统中的服务组件(Server)。Agent负责对客户操作系统中窗口变化进行监控,并对窗口内容进行获取、发送,同时负责对来自Server的事件进行响应;Server负责对由Agent发送的图像数据进行重绘,以窗口的形式展现在宿主操作系统桌面之上,同时监测用户操作事件,并将事件发送至相应的Agent。
所述多个应用虚拟机单元用于分别存储多个应用程序文件,每个应用虚拟机(App VM)包括写时复制(COW)设备和安全模型模块,所述COW设备用于当虚拟机客户操作系统对根文件系统进行读取时,可以正常读取其中的内容,以及当虚拟机客户操作系统对根文件系统进行写操作系统时,所写入的数据会存入另外一个块设备;所述安全模型模块用于对虚拟机间文件传递过程实施管理,各应用虚拟机均被标记为一定的安全等级,当App VM1欲发送文件至App VM2中时,运行在宿主操作系统之上的虚拟机管理模块根据发送方与接收方主客体的安全标记及安全策略规则,判断该操作是否合规,当操作不合规时予以拒绝,并将结果反馈于App VM1提醒用户。
所述网络虚拟机单元使用和管理支持Intel VT-d技术的网络硬件,用于宿主操作系统的网络阻断;所述网络虚拟机拥有两个网络接口,第一个网络接口通过Intel VT-d设备直接分配技术与外部网络进行连接,第二个网络接口与虚拟以太网设备(TAP)相连。
所述虚拟机管理模块用于完成虚拟机的新建、删除、配置、启动、监控、关闭操作,同时支持对应用虚拟机中应用程序的快速启动。
与现有技术相比,本发明的积极效果是:本发明利用操作系统内核虚拟化技术提供的隔离环境以及现代硬件技术如VT-d,实现操作系统安全加固。利用隔离环境实现操作系统不同组件及用户应用程序之间的隔离,将用户数据及应用程序按不同的安全等级分放在不同虚拟隔离环境中。各虚拟环境的运行状态相互隔离,同时最小化各虚拟环境之间的通信途径,并在通信通道之上实现严格的安全控制。在系统受到外部攻击时,只有某一虚拟机受到破坏,其他虚拟机不会受到影响,这样可以有效降低系统的被破坏程度,并可以在攻击后实现快速恢复。
附图说明
图1是本发明的原理图,也即系统的整体架构图。
图2是虚拟桌面模块结构图。
图3是虚拟机共享文件系统结构图。
图4是网络虚拟机结构图。
具体实施方式
1、客户操作系统与主机的通信机制。
本发明中,虚拟桌面模块、配置管理模块等均需要宿主操作系统与虚拟机客户系统进行通信。本系统架构中,存在不连接网络的虚拟机,这样导致对于该种虚拟机无法使用网络通信机制;而在虚拟桌面模块中,存在较大的数据传输量。因此本系统设计一种基于共享内存、同时支持较大数据量传输的通信机制。该机制主要完成对同一块内存的主机虚拟地址(HVA:Host Virtual Address)与客户虚拟地址(GVA:Guest Virtual Address)之间的转换。该过程分为两部分:HVA与客户物理地址(GPA:Guest Physical Address)的转换、GPA与GVA的转换。
1) HVA与GPA之间的转换。通过虚拟机物理内存与宿主操作系统中运行客户操作系统的进程(下面简称为仿真进程)地址空间的映射关系,将内存的HVA转换为GPA。
2) GVA与GPA之间的转换。首先向客户操作系统内核申请一块连续物理内存,保证申请到的物理内存将不再参与内核对资源的统一分配调度,保证了数据的完整性。当客户操作系统的某一进程与宿主操作系统进行通信时,该进程直接对该物理内存进行读写操作,实现了GVA与GPA之间的转换。
2、虚拟桌面模块。
虚拟桌面模块将运行在不同虚拟机中的应用程序窗口无缝地与主机桌面进行结合,这样用户只需在主机桌面环境下对不同虚拟机中的各应用进行实时交互操作,而不用进行虚拟机之间的切换,犹如应用程序运行在本地,这样可以有效提高用户的操作体验。该模块的结构如图2所示。
虚拟桌面模块由两部分组成:虚拟机客户操作系统中运行的代理组件(Agent)和宿主操作系统中的服务组件(Server)。Agent负责对客户操作系统中窗口变化进行监控,并对窗口内容进行获取、发送,同时负责对来自Server的事件进行响应;Server负责对由Agent发送的图像数据进行重绘,以窗口的形式展现在宿主操作系统桌面之上,同时监测用户操作事件,并将事件发送至相应的Agent。Agent与Server之间的通信利用1中的基于共享内存的通信机制。
3、应用虚拟机。
用户所使用的所有应用程序均运行在某一个应用虚拟机中,宿主操作系统中不运行任何用户应用程序,所有的用户文件均存储在一个或多个应用虚拟机中。本系统中,所有的应用虚拟机客户操作系统均为Linux,这样为了减少磁盘空间的占用,所有应用虚拟机共享根文件系统(root)。每个应用虚拟机中运行一个agent代理程序,用以与宿主操作系统中的Server进行交互通信,用以实现虚拟桌面功能。同时,应用虚拟机之间支持文件交换功能。
1)共享根文件系统。如图3所示,将虚拟机客户操作系统的文件系统分为两类:用于各虚拟机之间共享的root文件系统,如/boot、/bin、/usr等。各虚拟机客户操作系统私有数据文件系统,如/home、/usr/local、/var等。
由于root文件系统被所有应用虚拟机所共享,为了防止root文件系统被破坏,所有的应用虚拟机均通过一个只读的块设备对其进行访问。但是现有Linux客户操作系统不支持对root文件系统只读访问。为了解决该问题,本系统为每个应用虚拟机创建一个写时复制(COW)设备。当虚拟机客户操作系统对root文件系统进行读取时,可以正常读取其中的内容;当虚拟机客户操作系统对root文件系统进行写操作系统时,所写入的数据会存入另外一个块设备。这样保证了root文件系统本身不会被修改和破坏。
2)文件传送机制。本系统中设计了安全模型模块,以此对虚拟机间文件传递过程实施管理。在创建之初,各应用虚拟机均被标记为一定的安全等级,当App VM1欲发送文件至App VM2中时,运行在宿主操作系统之上的虚拟机管理模块根据发送方与接收方主客体的安全标记及安全策略规则,判断该操作是否合规,当操作不合规时予以拒绝,并将结果反馈于App VM1提醒用户。由于各应用虚拟机相互隔离,并且存在应用虚拟机不联网的情况,所以为了实现文件传递并且保证传递过程的安全性,本系统利用一个块设备作为中间媒介实现两虚拟机之间的文件传递。App VM1发送文件至App VM2的过程如下:。
(1)、App VM1向运行在宿主操作系统之上的虚拟机管理模块发送请求:欲发送文件至App VM2。
(2)、虚拟机管理模块接收到来自App VM1的请求之后,提取发送方与接收方的安全等级标记,根据安全策略规则判断该操作是否合规。
当操作不合规时,向App VM1发送“操作不允许”的反馈结果,结束此操作请求。
当操作合规时,向App VM1发送“操作允许”的反馈结果,并将作为中间媒介的块设备加入App VM1中。
(3)、App VM1检测到有新的硬件设备被添加后将其挂载,并将欲发送文件复制至该存储设备之中,复制完成之后将作为中间媒介的块设备卸载,并通知虚拟机管理模块“文件复制完成”。
(4)、虚拟机管理模块接收到来自App VM1的“文件复制完成”通知之后,将中间媒介的块设备在App VM1中移除,随后将其加入App VM2之中,并通知App VM2。
(5)、App VM2检测到有新的硬件设备被添加后将其挂载,并将该存储设备中的文件移动至某特定目录,移动完成之后将作为中间媒介的块设备卸载,并通知虚拟机管理模块“文件复制完成”。
(6)、虚拟机管理模块接收到来自App VM2的“文件复制完成”通知之后,将中间媒介的块设备在App VM2中移除,并通知App VM1“文件发送完成”。
4、网络虚拟机。
本系统中利用了硬件虚拟化技术(如Intel VT-d)将硬件网络设备(如WiFi、以太网适配器)直接分配于网络虚拟机,在提高了虚拟机网络吞吐量的同时保证了宿主操作系统的网络阻断。为了进一步提高安全性,网络虚拟机采用与应用虚拟机不同的客户操作系统。网络虚拟机结构如图4所示。
网络虚拟机拥有两个网络接口,其一通过硬件虚拟化(如Intel VT-d)设备直接分配技术与外部网络进行连接。宿主操作系统中,通过虚拟分布式以太网技术(VDE)创建虚拟以太网设备(TAP),同时通过VDE创建一个虚拟交换机(VSwitch),并将该TAP设备接入此VSwitch中。网络虚拟机的第二个网络接口与该TAP设备相连。当应用虚拟机需要连接网络时,仿真进程为该虚拟机提供虚拟网卡设备,并将该网卡连接至VSwitch中,以此实现应用虚拟机与网络虚拟机的连通。在网络虚拟机中,配置网络地址转换及防火墙规则,同时开启动态主机配置协议(DHCP)服务为应用虚拟机提供网络地址。
5、虚拟机管理模块。
该模块完成虚拟机的新建、删除、配置、启动、监控、关闭等操作,同时支持对应用虚拟机中应用程序的快速启动。本模块为每个虚拟机建立对应的配置文件,记录虚拟机的所有配置信息,通过管理所有配置文件实现对虚拟机的统一管理。
创建新的应用虚拟机时,按照用户提供的配置选项,自动生成与之对应的配置文件,同时创建该虚拟机的根文件系统的镜像文件root.img、写时复制文件系统的镜像文件cow.img及私有文件系统的镜像文件private.img。当删除某虚拟机时,系统将同时删除与该虚拟机对应的配置文件、cow.img及private.img镜像文件。当用户启动某虚拟机中应用程序时,该管理模块通过1中的共享内存通信机制向相应虚拟机发 送启动命令,启动指定的应用程序。

Claims (5)

1.一种基于操作系统内核虚拟化技术的安全保障系统,其特征在于:A虚拟桌面模块,负责客户操作系统和宿主操作系统的通讯,为用户提供无缝桌面功能;B多个应用虚拟机单元,负责存储和运行应用程序文件;C网络虚拟机单元,负责阻断宿主操作系统的对外网络连接;
D虚拟机管理模块,负责对应用虚拟机的增删改等管理和监控。
2.根据权利要求1所述的虚拟桌面模块包括虚拟机客户操作系统中运行的代理组件(Agent)和宿主操作系统中的服务组件(Server);Agent负责对客户操作系统中窗口变化进行监控,并对窗口内容进行获取、发送,同时负责对来自Server的事件进行响应;Server负责对由Agent发送的图像数据进行重绘,以窗口的形式展现在宿主操作系统桌面之上,同时监测用户操作事件,并将事件发送至相应的Agent。
3.根据权利要求1所述的多个应用虚拟机单元分别存储多个应用程序文件,每个应用虚拟机(App VM)包括写时复制(COW)设备和安全模型模块,所述COW设备用于当虚拟机客户操作系统对根文件系统进行读取时,可以正常读取其中的内容,以及当虚拟机客户操作系统对根文件系统进行写操作系统时,所写入的数据会存入另外一个块设备;所述安全模型模块用于对虚拟机间文件传递过程实施管理,各应用虚拟机均被标记为一定的安全等级,当App VM1欲发送文件至App VM2中时,运行在宿主操作系统之上的虚拟机管理模块根据发送方与接收方主客体的安全标记及安全策略规则,判断该操作是否合规,当操作不合规时予以拒绝,并将结果反馈于App VM1提醒用户。
4.根据权利要求1所述的网络虚拟机单元使用和管理支持硬件虚拟化技术(如Intel VT-d)的网络硬件,用于宿主操作系统的网络阻断;所述网络虚拟机拥有两个网络接口,第一个网络接口通过硬件虚拟化设备直接分配技术与外部网络进行连接,第二个网络接口与虚拟以太网设备(TAP)相连。
5.根据权利要求1所述的虚拟机管理模块完成虚拟机的新建、删除、配置、启动、监控、关闭操作,同时支持对应用虚拟机中应用程序的快速启动。
CN201610002063.XA 2016-01-06 2016-01-06 一种基于操作系统内核虚拟化技术的安全保障系统 Pending CN106951775A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610002063.XA CN106951775A (zh) 2016-01-06 2016-01-06 一种基于操作系统内核虚拟化技术的安全保障系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610002063.XA CN106951775A (zh) 2016-01-06 2016-01-06 一种基于操作系统内核虚拟化技术的安全保障系统

Publications (1)

Publication Number Publication Date
CN106951775A true CN106951775A (zh) 2017-07-14

Family

ID=59465150

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610002063.XA Pending CN106951775A (zh) 2016-01-06 2016-01-06 一种基于操作系统内核虚拟化技术的安全保障系统

Country Status (1)

Country Link
CN (1) CN106951775A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109117664A (zh) * 2018-07-19 2019-01-01 北京明朝万达科技股份有限公司 应用程序的访问控制方法和装置
CN111880846A (zh) * 2020-06-04 2020-11-03 普联国际有限公司 嵌入式系统快速启动方法、装置及设备
CN113626149A (zh) * 2021-08-03 2021-11-09 浙江中电远为科技有限公司 一种基于终端虚拟化的商业秘密保护方法及系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102004886A (zh) * 2010-11-15 2011-04-06 上海安纵信息科技有限公司 一种基于操作系统虚拟化原理的数据防泄漏方法
CN102339229A (zh) * 2010-07-15 2012-02-01 戴元顺 基于操作系统层的虚拟化方法
CN105117649A (zh) * 2015-07-30 2015-12-02 中国科学院计算技术研究所 一种用于虚拟机的防病毒方法与系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102339229A (zh) * 2010-07-15 2012-02-01 戴元顺 基于操作系统层的虚拟化方法
CN102004886A (zh) * 2010-11-15 2011-04-06 上海安纵信息科技有限公司 一种基于操作系统虚拟化原理的数据防泄漏方法
CN105117649A (zh) * 2015-07-30 2015-12-02 中国科学院计算技术研究所 一种用于虚拟机的防病毒方法与系统

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109117664A (zh) * 2018-07-19 2019-01-01 北京明朝万达科技股份有限公司 应用程序的访问控制方法和装置
CN109117664B (zh) * 2018-07-19 2020-11-10 北京明朝万达科技股份有限公司 应用程序的访问控制方法和装置
CN111880846A (zh) * 2020-06-04 2020-11-03 普联国际有限公司 嵌入式系统快速启动方法、装置及设备
CN111880846B (zh) * 2020-06-04 2023-12-15 普联国际有限公司 嵌入式系统快速启动方法、装置及设备
CN113626149A (zh) * 2021-08-03 2021-11-09 浙江中电远为科技有限公司 一种基于终端虚拟化的商业秘密保护方法及系统
CN113626149B (zh) * 2021-08-03 2024-05-10 浙江中电远为科技有限公司 一种基于终端虚拟化的商业秘密保护方法及系统

Similar Documents

Publication Publication Date Title
US11500670B2 (en) Computing service with configurable virtualization control levels and accelerated launches
CN104094231B (zh) 用于支持无限带网络中的虚拟机的动态迁移的系统和方法
KR101929048B1 (ko) 인메모리 기반 가상 데스크탑 서비스를 위한 장치 및 방법
CN104937546B (zh) 用于根据重启调度执行机器重启的方法和装置
CN108694014A (zh) 用来进行内存空间保留及管理的方法与装置
EP3811206A1 (en) Network-accessible computing service for micro virtual machines
US9804880B2 (en) Reservation for a multi-machine application
US11463306B2 (en) Fast provisioning in cloud computing environments
WO2016054049A1 (en) Allocation of shared system resources in order to mitigate side channel attacks
CN103685608B (zh) 一种自动配置安全虚拟机ip地址的方法及装置
US20100064044A1 (en) Information Processing System and Control Method for Information Processing System
CN113196237A (zh) 计算系统中的容器迁移
CN102088367A (zh) 虚拟化环境下快速部署方法
TW201232414A (en) Management of a data network of a computing environment
CN104901923A (zh) 一种虚拟机访问装置和方法
US9203700B2 (en) Monitoring client information in a shared environment
CN101656718A (zh) 网络服务器系统与其虚拟机器的建立与开启的方法
CN105245523A (zh) 应用于桌面虚拟化场景的存储服务平台及其实现方法
CN112748983B (zh) 一种基于OpenStack的虚拟私有云系统及其搭建方法
CN105592088A (zh) 一种虚拟机流量的监控方法及装置、终端
CN106951775A (zh) 一种基于操作系统内核虚拟化技术的安全保障系统
CN104468712B (zh) 轻量级可信计算平台及其通信方法、信任链建立方法
CN117909004A (zh) 一种多架构融合桌面云系统
CN106850695A (zh) 一种云计算环境下异地异构虚拟化管理方法、装置及系统
CN104598842B (zh) 一种虚拟机监控器信任域分割方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20170714

WD01 Invention patent application deemed withdrawn after publication