原文链接:https://cloud.tencent.com/developer/news/215218

前言:

libvirt-4.3搭配qemu-2.12使用,如果使用默认的编译选项,可能会让qemu无法正常启动虚拟机。会报出来“qemu-system-x86_64: -sandbox on,obsolete=deny,elevateprivileges=deny,spawn=deny,resourcecontrol=deny: seccomp support is disabled”的错误。

1, seccomp support is disabled

在编译的时候,没有打开CONFIG_SECCOMP编译选项。

从configure文件上来看,如果安装了libseccomp就是默认打开的;再或者就是--enable-seccomp和--disable-seccomp来控制。

2,libvirt

/etc/libvirt/qemu.conf中通过seccomp_sandbox来控制。

0是关闭,1是打开,-1是自动检测。注意,如果这里没有配置,libvirt则会自动检测。

那么就会出现上文的状况,libvirt的检测逻辑中,没有发现当前版本的qemu不支持sandbox,启动参数中带有了sandbox配置,导致qemu报错。

解决办法就是安装libseccomp,执行congfigure时添加--enable-seccomp,清空/var/cache/libvirt/qemu/capabilities重启libvirtd即可。

3,libseccomp

下载代码https://github.com/seccomp/libseccomp

libseccomp的代码量比较小,大约有几部分:

a,本地的db。用来保存seccomp的规则。

b,bpf生成。用来生成bpf代码。

c,使用syscall加载到kernel。prctl(PR_SET_SECCOMP, SECCOMP_MODE_FILTER, program);

4, PR_SET_SECCOMP

看一段man page,大意是说通过prctl的 PR_SET_SECCOMP可以限制进程使用syscall。更多的话,需要参考内存文档。

5,gvisor

Google搞了一个大新闻,开源了gvisor,地址https://github.com/google/gvisor

套路复杂很多,主要是为了容器使用的。

容器是直接运行在host os上的,可以访问host上的所有syscall,安全性上确实还不够。gvisor可以在一定程度上弥补这一点。

相比之下,虚拟机则不是,qemu使用到syscall集中于epoll,pread,pwrite,ioctl等比较有限的范围内。

虚拟化安全 sandbox 技术分析的更多相关文章

  1. Docker学习笔记之浅谈虚拟化和容器技术

    0x00 概述 相信所有对 Docker 有所耳闻的朋友都知道,它是一款以容器虚拟化技术为基础的软件,因此在了解有关 Docker 的概念知识和使用方法之前,虚拟化和容器技术是我们不可或缺的基础知识. ...

  2. 微前端框架 qiankun 技术分析

    我们在single-spa 技术分析 基本实现了一个微前端框架需要具备的各种功能,但是又实现的不够彻底,遗留了很多问题需要解决.虽然官方提供了很多样例和最佳实践,但是总显得过于单薄,总给人一种&quo ...

  3. 蓝牙协议分析(7)_BLE连接有关的技术分析

    转自:http://www.wowotech.net/bluetooth/ble_connection.html#comments 1. 前言 了解蓝牙的人都知道,在经典蓝牙中,保持连接(Connec ...

  4. WaterfallTree(瀑布树) 详细技术分析系列

    前言 WaterfallTree(瀑布树) 是最强纯C#开源NoSQL和虚拟文件系统-STSdb专有的(版权所有/专利)算法/存储结构. 参考 关于STSdb,我之前写过几篇文章,譬如: STSdb, ...

  5. iOS直播的技术分析与实现

    HTTP Live Streaming直播(iOS直播)技术分析与实现 发布于:2014-05-28 13:30阅读数:12004 HTTP Live Streaming直播(iOS直播)技术分析与实 ...

  6. 横向技术分析C#、C++和Java优劣

    转自横向技术分析C#.C++和Java优劣 C#诞生之日起,关于C#与Java之间的论战便此起彼伏,至今不辍.抛却Microsoft与Sun之间的恩怨与口角,客观地从技术上讲,C#与Java都是对传统 ...

  7. tolua++实现lua层调用c++技术分析

    tolua++技术分析 cocos2dx+lua 前言 一直都使用 cocos2dx + lua 进行游戏开发,用 Lua 开发可以专注于游戏逻辑的实现,另外一方面可以实现热更新:而且 lua 是一个 ...

  8. 美链BEC合约漏洞技术分析

    这两天币圈链圈被美链BEC智能合约的漏洞导致代币价值几乎归零的事件刷遍朋友圈.这篇文章就来分析下BEC智能合约的漏洞 漏洞攻击交易 我们先来还原下攻击交易,这个交易可以在这个链接查询到. 我截图给大家 ...

  9. NetSarang软件中nssock2.dll模块被植入恶意代码技术分析与防护方案

    原文地址:http://blog.nsfocus.net/nssock2-dll-module-malicious-code-analysis-report/ NetSarang是一家提供安全连接解决 ...

随机推荐

  1. 串口通信,帧与帧之间的时间间隔问题?9600波特率,帧将各在20ms以上

  2. Python新利器之pipenv(转)

    pipenv 都包含什么? pipenv 是 Pipfile 主要倡导者.requests 作者 Kenneth Reitz 写的一个命令行工具,主要包含了Pipfile.pip.click.requ ...

  3. 决策树与树集成模型(bootstrap, 决策树(信息熵,信息增益, 信息增益率, 基尼系数),回归树, Bagging, 随机森林, Boosting, Adaboost, GBDT, XGboost)

    1.bootstrap   在原始数据的范围内作有放回的再抽样M个, 样本容量仍为n,原始数据中每个观察单位每次被抽到的概率相等, 为1/n , 所得样本称为Bootstrap样本.于是可得到参数θ的 ...

  4. 7.25 6figting!

    TEXT 82 Proton 马来西亚宝腾汽车 A fork in the road 何去何从?(陈继龙编译) Nov 30th 2006 | HONG KONG From The Economist ...

  5. 清华镜像站安装docker

    https://mirrors.tuna.tsinghua.edu.cn/help/docker-ce/

  6. 《GB/T 20988-2007:信息系统灾难恢复规范》[中](国家质检总局 & 国标委)阅读笔记

    第 0 章:引言 [感]GB/T 20988 引用了 SHARE 78 会议(标准)上的有关内容和思想,并结合国家重要信息系统行业技术发展和实践经验制定而成. GB/T 20988 提出了信息系统灾难 ...

  7. 高性能mysql第三版(文摘)

    第1章 mysql架构与历史 1.1处理和存储相分离,用户可以选择合适的存储引擎 1.2并发控制 表锁:开销小 行级锁:开销大 1.3事务 acid特性:原子性,一致性,隔离性,持久性 1.4 多版本 ...

  8. 懒人的ERP开发框架--2B&苦B程序员专用

    在企业内部的ERP系统开发中,如果使用MS的技术,那么Winform + DevExpress + IIS + WCF +EF 就是懒人的黄金组合了,EF使用数据库优先,一般ERP应用主要关注点在数据 ...

  9. 主键冲突异常 DuplicateKeyException

    org.springframework.dao.DuplicateKeyException Exception thrown when an attempt to insert or update d ...

  10. dojoConfig包的配置(7/26号夜)

    主页代码: <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> ...