热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

国内第一个吃螃蟹的内存安全公司:如何做安全的最后一道防线?

你可能不知道,你的一举一动总是逃不过黑客的眼睛。不久前,马斯克和美国宇航局NASA首次发射了载人火箭,创造了航天史上的又一个奇迹。不料又被黑客盯上了,一个名为 DopplePaym

你可能不知道,你的一举一动总是逃不过黑客的眼睛。

不久前,马斯克和美国宇航局 NASA 首次发射了载人火箭,创造了航天史上的又一个奇迹。不料又被黑客盯上了,一个名为 DopplePaymer 的勒索团伙“高调”宣布他们入侵了一家名为 DMI 的公司内网,还留下了祝贺信息挑衅。而巧合的是,这家公司正是 NASA 的一家 IT 供应商,这家公司的客户名单里不乏全美前 100 强的公司和政府机构。

国内第一个吃螃蟹的内存安全公司:如何做安全的最后一道防线?

图片来源于ZDNet

而按照黑客的惯常思维,一般做法是要企业破财免灾,否则他们就会在泄密网站上公开所有文件作为报复。

一旦文件被泄露,后果怎样,你懂的,所以企业的一般做法就是乖乖交赎金。

同期,Google 工程师统计了 2015 年以来,Chrome 稳定分支中修复级别为 "high" 或 "critical" 的 912 个安全错误,结果发现约 70% 是内存安全漏洞。 

国内第一个吃螃蟹的内存安全公司:如何做安全的最后一道防线?

但事实上,不只是 Google,内存安全漏洞是很多科技公司都头疼的问题,微软工程师也曾公开表示:在过去 12 年中,微软产品的安全更新中,约有 70% 也是在解决内存安全漏洞。

随着攻防对抗的发展,基于内存的攻击方法越来越多,比如 UAF、DoubleFree、堆栈溢出等类型漏洞都属于内存破坏型漏洞,我们所熟悉的心脏滴血、永恒之蓝等大规模安全事件,就是内存安全漏洞引发,而内存攻击的特性是没有文件,所以即使企业或者组织采购了一系列安全产品,但是狡猾的攻击者可以绕过这些安全产品。

于是,为了解决内存安全问题,技术大佬们也是日思夜想,终于被他们找到了一条新的突破点:既然攻击者狡猾,那我们就一个也不放过,从电脑的核心开始保护。

那么,这套内存保护系统到底是什么?要怎么搞呢?

国内第一个吃螃蟹的内存安全公司

故事还要从两个安全大佬的梦想说起。

2005 年,喜欢研究计算机病毒的姚纪卫进入了一家反病毒安全公司施展抱负,2007 年便创作发布了 LinxerUnpacker 软件。值得一提的是,该软件是全球首款基于反病毒虚拟机的通用脱壳软件。

国内第一个吃螃蟹的内存安全公司:如何做安全的最后一道防线?

安芯网盾 CTO 姚纪卫 

2008 年又创作了 PChunter,该软件基于国际领先的系统底层技术,同时也被国外媒体评为全球最优秀的 AntiRootkit 软件。

彼时,姜向前在哈尔滨工程大学留校工作,主导高校信息化建设,在学校时两人便是极要好的朋友,工作之后也一直保持着密切的交流,探讨着安全行业的未来发展趋势。

当时,杀毒软件基本上还是利用特征码去匹配,时效性不高,一旦出现新病毒或变种就需要不断把它们的特征码加入到病毒库中,一来具有滞后性和被动性,二来病毒库将越来越庞大,消耗用户内存资源,治标不治本。

所以,为了改变现状,两人便萌生了创业的想法。

2009 年,两人联合创立了一个安全实验室,专心做杀毒引擎。没想到第一款产品就受到了国际认可,他们开发的基于代码动态执行分析分析的未知威胁文件检测系统,在国际权威测评机构 VB100 的未知病毒检测测评中获得了全球第二的成绩,并为 Google、华为等知名企业提供安全引擎。后来,受到免费杀毒软件的冲击,国内企业级安全引擎市场逐步萎缩。

“在第一次创业后我们两人还是在安全行业深耕,我还是继续专研未知病毒的检测与防护技术,也研究了很长时间的虚拟化技术。第二次创业缘起于我们的一次游泳,当时我们聊起当前的安全产品虽多,但是企业安全防御建设还是面临大考。”姚纪卫介绍。

2019 年两人再次合伙,结合两人这十来年在安全领域的摸索和经验,决定要继续自己的梦想。

这一次他们的创业方向是内存安全,将未知威胁检测和硬件虚拟化结合在一起,在系统的最后一道防线来拦截威胁。即利用内存虚拟化技术来做内存保护。

“我们敢于去做这样的尝试,都是基于我们在未知威胁的程序行为分析、虚拟化技术研究这方面花了很长时间去研究,并总结了一套方法论,这也是短期内难以被复制的。”姚纪卫回忆起创业初衷时如是说。

值得注意的是,内存保护技术首次提出是在 2016 年,IT 咨询公司 Gartner 将基于非签名方法的终端防御技术(内存保护技术和漏洞利用阻断技术)列为面向未来的十大信息安全技术之一,但是那时候并没有相关的产品出现。

据了解,内存保护系统不仅需要了解计算机体系结构和操作系统,还需要了解安全技术。这些技术要求背后隐藏的是人才要求,内存保护系统的实现需要有信息安全和计算机系统这两个方面的技术专家。安芯网盾团队刚好符合这两个要求。

姚纪卫对此解释道:“不论威胁代码如何变化,但是万变不离其宗,不管攻击方式怎么变,最后都要落到内存读、写、执行上,理论上基于 CPU 指令集和内存这一层面实现的安全方案可以有效防御所有威胁,只要盯住内存,就能发现威胁的一举一动。”

谈及内存安全产品获得关注的原因,姚纪卫从攻防对抗的角度进行了解释。

首先,攻击者比之前更狡猾了,他们所使用的技术相比之前也更强大,目前有 80% 以上的攻击者会熟练采用各式各样工具突破层层网络边界防护,将恶意代码植入到主机内存上;其次是攻击范围更大,典型的例子是一些黑客将恶意代码植入之后,可以长达几个月甚至一两年的时间不做任何动作,在长久的潜伏之后进行攻击,被攻击者的业务往往遭受毁灭型的打击,这就意味着用户需要更有效的安全方案应对威胁。

在国外,解决内存安全问题的相关内存安全产品应用已经初具规模,美国公司 Virsec 也大致在同时期发布了内存安全产品 AMFW,2018 年美国著名 IT 杂志 CRN将 内存保护产品评为 20 个关键创新热门安全产品中的 top1 。所以这样说来安芯网盾算是国内内存安全领域第一个吃螃蟹的公司。

做安全的最后一道防线

各种安全产品就像一道道墙,每一道墙都是一套解决方案,不同于其他安全公司的产品,安芯网盾要做的是在最危险的地方做守卫兵,从最底层守住安全防线。

那么,什么是内存安全?

据姚纪卫介绍,内存安全的核心原理是从计算机的体系结构出发,任何需要 CPU 执行的代码、处理的数据都需要经过内存进行存储。内存安全由内存监控、程序行为监控、智能分析、系统安全增强和安全响应等构成,可阻止异常内存访问和恶意代码执行等攻击行为,为计算机系统构建一个完整的内存安全环境。

国内第一个吃螃蟹的内存安全公司:如何做安全的最后一道防线?

守护主机的最后一道安全防线(受访者供图)

举个栗子,以前敌人进攻的路径大家是熟悉的,所以安全软件在敌人必经点设置了路障,自然就可以拦截,但现在情况不一样了,随着防御技术的升级,敌人的攻击路径也开始裂变,出现了多种未知威胁,对于这些未知威胁就需要全面排查,而安芯网盾做的就是在敌人入侵的最底层进行防护,实时监测内存状态和程序行为状态,每当敌人想要入侵时,就可以并在第一时间识别威胁且进行响应。

据最新数据,内存保护系统在未知威胁方面的拦截能力能达到 99% 。那么,内存保护系统是如何达到高效的防护效果的?

内存上的动作传统方法很难监控,安芯网盾的内存安全产品基于实时的程序行为监控、内存操作监控等技术实现了进程级别的内存保护,确保用户核心业务应用程序只按照预期的方式运行,不会因病毒窃取、漏洞触发而遭受攻击。不同于常规安全产品只运行在应用层或者系统层,安芯神甲智能内存保护系统能够在应用层、系统层、硬件层提供有机结合的立体防护。

简单来说,内存安全产品就是通过监控 CPU 指令、内存访问可以监控内存代码和数据状态以及内存的读、写、执行行为,对系统行为做监控,基本可以监控系统所有的 API 调用(只要进内核就会被监控到,不进内核的 API 其实也干不了什么事情),还可以监控一些异常的内存数据流动,大量的行为数据可以极大的提高恶意代码的检出率,还能极大的规避误报。同时,还避免了其他安全产品所面临的兼容性问题,以及安全软件之间的冲突问题。

除此之外,内存保护系统基于 Agent 架构,启动相关服务和脚本即可运行,而且在运行时 CPU 占用率不超过 5%,内存占用率不超过 100M。而且,这款产品在运行时对客户来说几乎是无感知的——由于实时响应的特性,用户在最后看到的只是一份报告/日志用以定期查阅,但在系统运行过程中已经帮助客户抵御了许多攻击。

在内存产品的应用场景方面,姚纪卫认为,前景是十分广阔的。

国内第一个吃螃蟹的内存安全公司:如何做安全的最后一道防线?

安芯网盾内存安全产品核心优势(受访者供图)

结合当前的大环境来讲,新基建推动信创产业提速发展,它包含了从 IT 底层基础软硬件到上层应用软件的全产业链的安全可控。这拓宽了安芯网盾内存安全产品的应用场景和市场,目前,安芯网盾的产品已经支持 X86 和 arm 架构的 CPU,以后将逐步适配更多国产架构的 CPU。

 随着“等保”、“关保”等政策的落地,以及新基建将信息安全提到一个新高度,不再像以往一样先系统运行,再购买产品服务层层的打补丁。现在要求关口前移,在设计之初就统筹规划安全。这给了新产品新技术一个大好机会,一些真正有效的预警、检测、防御等产品,比如内存防火墙这类创新产品也正受到越来越多 CSO 的青睐。

雷锋网雷锋网(公众号:雷锋网)雷锋网

参考资料:

【1】https://www.zdnet.com/article/chrome-70-of-all-security-bugs-are-memory-safety-issues/

【2】https://www.zdnet.com/article/ransomware-gang-says-it-breached-one-of-nasas-it-contractors/


推荐阅读
  • 在Docker中,将主机目录挂载到容器中作为volume使用时,常常会遇到文件权限问题。这是因为容器内外的UID不同所导致的。本文介绍了解决这个问题的方法,包括使用gosu和suexec工具以及在Dockerfile中配置volume的权限。通过这些方法,可以避免在使用Docker时出现无写权限的情况。 ... [详细]
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
  • Go Cobra命令行工具入门教程
    本文介绍了Go语言实现的命令行工具Cobra的基本概念、安装方法和入门实践。Cobra被广泛应用于各种项目中,如Kubernetes、Hugo和Github CLI等。通过使用Cobra,我们可以快速创建命令行工具,适用于写测试脚本和各种服务的Admin CLI。文章还通过一个简单的demo演示了Cobra的使用方法。 ... [详细]
  • 本文分析了Wince程序内存和存储内存的分布及作用。Wince内存包括系统内存、对象存储和程序内存,其中系统内存占用了一部分SDRAM,而剩下的30M为程序内存和存储内存。对象存储是嵌入式wince操作系统中的一个新概念,常用于消费电子设备中。此外,文章还介绍了主电源和后备电池在操作系统中的作用。 ... [详细]
  • ShiftLeft:将静态防护与运行时防护结合的持续性安全防护解决方案
    ShiftLeft公司是一家致力于将应用的静态防护和运行时防护与应用开发自动化工作流相结合以提升软件开发生命周期中的安全性的公司。传统的安全防护方式存在误报率高、人工成本高、耗时长等问题,而ShiftLeft提供的持续性安全防护解决方案能够解决这些问题。通过将下一代静态代码分析与应用开发自动化工作流中涉及的安全工具相结合,ShiftLeft帮助企业实现DevSecOps的安全部分,提供高效、准确的安全能力。 ... [详细]
  • Mono为何能跨平台
    概念JIT编译(JITcompilation),运行时需要代码时,将Microsoft中间语言(MSIL)转换为机器码的编译。CLR(CommonLa ... [详细]
  • 一、Hadoop来历Hadoop的思想来源于Google在做搜索引擎的时候出现一个很大的问题就是这么多网页我如何才能以最快的速度来搜索到,由于这个问题Google发明 ... [详细]
  • 本文介绍了数据库的存储结构及其重要性,强调了关系数据库范例中将逻辑存储与物理存储分开的必要性。通过逻辑结构和物理结构的分离,可以实现对物理存储的重新组织和数据库的迁移,而应用程序不会察觉到任何更改。文章还展示了Oracle数据库的逻辑结构和物理结构,并介绍了表空间的概念和作用。 ... [详细]
  • Android Studio Bumblebee | 2021.1.1(大黄蜂版本使用介绍)
    本文介绍了Android Studio Bumblebee | 2021.1.1(大黄蜂版本)的使用方法和相关知识,包括Gradle的介绍、设备管理器的配置、无线调试、新版本问题等内容。同时还提供了更新版本的下载地址和启动页面截图。 ... [详细]
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
  • 网卡工作原理及网络知识分享
    本文介绍了网卡的工作原理,包括CSMA/CD、ARP欺骗等网络知识。网卡是负责整台计算机的网络通信,没有它,计算机将成为信息孤岛。文章通过一个对话的形式,生动形象地讲述了网卡的工作原理,并介绍了集线器Hub时代的网络构成。对于想学习网络知识的读者来说,本文是一篇不错的参考资料。 ... [详细]
  • Java 11相对于Java 8,OptaPlanner性能提升有多大?
    本文通过基准测试比较了Java 11和Java 8对OptaPlanner的性能提升。测试结果表明,在相同的硬件环境下,Java 11相对于Java 8在垃圾回收方面表现更好,从而提升了OptaPlanner的性能。 ... [详细]
  • 本文概述了JNI的原理以及常用方法。JNI提供了一种Java字节码调用C/C++的解决方案,但引用类型不能直接在Native层使用,需要进行类型转化。多维数组(包括二维数组)都是引用类型,需要使用jobjectArray类型来存取其值。此外,由于Java支持函数重载,根据函数名无法找到对应的JNI函数,因此介绍了JNI函数签名信息的解决方案。 ... [详细]
  • 本文介绍了在Ubuntu 11.10 x64环境下安装Android开发环境的步骤,并提供了解决常见问题的方法。其中包括安装Eclipse的ADT插件、解决缺少GEF插件的问题以及解决无法找到'userdata.img'文件的问题。此外,还提供了相关插件和系统镜像的下载链接。 ... [详细]
  • x86 linux的进程调度,x86体系结构下Linux2.6.26的进程调度和切换
    进程调度相关数据结构task_structtask_struct是进程在内核中对应的数据结构,它标识了进程的状态等各项信息。其中有一项thread_struct结构的 ... [详细]
author-avatar
俺是个大老粗
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有