Processing math: 100%
  • 中国精品科技期刊
  • CCF推荐A类中文期刊
  • 计算领域高质量科技期刊T1类
高级检索

基于异构算力节点协同的高效视频分发

鄂金龙, 何林

鄂金龙, 何林. 基于异构算力节点协同的高效视频分发[J]. 计算机研究与发展, 2023, 60(4): 772-785. DOI: 10.7544/issn1000-1239.202330004
引用本文: 鄂金龙, 何林. 基于异构算力节点协同的高效视频分发[J]. 计算机研究与发展, 2023, 60(4): 772-785. DOI: 10.7544/issn1000-1239.202330004
E Jinlong, He Lin. Efficient Video Distribution Based on Collaboration of Heterogenous Computing Nodes[J]. Journal of Computer Research and Development, 2023, 60(4): 772-785. DOI: 10.7544/issn1000-1239.202330004
Citation: E Jinlong, He Lin. Efficient Video Distribution Based on Collaboration of Heterogenous Computing Nodes[J]. Journal of Computer Research and Development, 2023, 60(4): 772-785. DOI: 10.7544/issn1000-1239.202330004
鄂金龙, 何林. 基于异构算力节点协同的高效视频分发[J]. 计算机研究与发展, 2023, 60(4): 772-785. CSTR: 32373.14.issn1000-1239.202330004
引用本文: 鄂金龙, 何林. 基于异构算力节点协同的高效视频分发[J]. 计算机研究与发展, 2023, 60(4): 772-785. CSTR: 32373.14.issn1000-1239.202330004
E Jinlong, He Lin. Efficient Video Distribution Based on Collaboration of Heterogenous Computing Nodes[J]. Journal of Computer Research and Development, 2023, 60(4): 772-785. CSTR: 32373.14.issn1000-1239.202330004
Citation: E Jinlong, He Lin. Efficient Video Distribution Based on Collaboration of Heterogenous Computing Nodes[J]. Journal of Computer Research and Development, 2023, 60(4): 772-785. CSTR: 32373.14.issn1000-1239.202330004

基于异构算力节点协同的高效视频分发

基金项目: 国家自然科学基金项目(62102224);北京市自然科学基金项目(4222026)
详细信息
    作者简介:

    鄂金龙: 1989年生. 博士,讲师. CCF会员. 主要研究方向为云/边缘计算、物联网和数据分析

    何林: 1991年生. 博士,助理研究员. CCF会员. 主要研究方向为下一代互联网、网络测量和可编程网络

    通讯作者:

    何林(he-lin@tsinghua.edu.cn

  • 中图分类号: TP393.02

Efficient Video Distribution Based on Collaboration of Heterogenous Computing Nodes

Funds: This work was supported by the National Natural Science Foundation of China (62102224), and Beijing Natural Science Foundation (4222026).
More Information
    Author Bio:

    E Jinlong: born in 1989. PhD, lecturer. Member of CCF. His main research interests include cloud/edge computing, Internet of things, and data analytics

    He Lin: born in 1991. PhD, assistant research professor. Member of CCF. His main research interests include next-generation Internet, network measurement, and programmable networks

  • 摘要:

    算力网络通过网络连接计算节点以突破单点算力限制,近年来正快速发展应用于越来越多的业务领域. 当前流行的视频直播依赖于大量视频帧传输和转码处理,探索算力网络实现高效视频分发具有重要的现实意义. 相比于传统的大规模数据处理,视频类应用对于传输时延和带宽的保障有更高要求. 然而当前各云服务提供的节点算力各不相同,同时节点间网络链路状态经常变化不定,使选择传输和转码综合性能最优节点实现低时延、高带宽的视频分发面临很大挑战. 为此,设计基于异构算力节点协同的高效视频分发方案,包括通过强化学习规划视频传输路径并合理选取处理转码节点;对不同视频分发任务采用优先级排队调度同时自适应调整资源以降低对节点资源的突发竞争;采用分层日志同步容错机制在节点故障后快速恢复数据一致性,最终部署多云服务分布式节点实现一个完整的视频分发系统. 大量超高清视频直播实验表明,该方案性能相比现有视频分发方法有明显改进.

    Abstract:

    Computing power network connects computing nodes through the network to break the limitation of single point of computing power, and it is rapidly developed and applied in more and more business fields in recent years. The popular live video broadcasting relies on the transmission and transcoding of a large number of video frames, and it is of great practical importance to explore computing power networks for efficient video distribution. Compared with the traditional large-scale data processing, video applications have higher requirements for transmission delay and bandwidth guarantee. However, the computing power of nodes provided by each cloud service varies, and the state of network links between nodes often varies. Therefore, it is a great challenge to realize low latency and high bandwidth video distribution by selecting nodes with the best combined transmission and transcoding performance. Therefore, we design an efficient video distribution scheme based on heterogeneous computing nodes, including planning video transmission paths and reasonably selecting transcoding nodes through reinforcement learning, using priority queuing scheduling for different video distribution tasks and adaptively adjusting node resources to reduce resource bursty competition, adopting a layered-log-synchronization fault tolerance mechanism to quickly restore data consistency after node failures, and finally deploying multi-cloud service distributed nodes to realize a complete video distribution system. A large number of live ultra-high definition video experiments show that the performance of this scheme is significantly improved compared with existing video distribution methods.

  • 随着信息技术的发展,作为信息交互的主要载体,软件已经成为日常生活中不可缺少的一部分,其可靠性、安全性也愈发得到人们的关注. 然而,随着软件功能的逐渐丰富,其代码结构愈发复杂,代码规模和种类日益增大,软件内部存在的漏洞数量也急剧增多,根据2021年国家信息安全漏洞共享平台CNVD(China national vulnerability database)统计,软件应用程序漏洞占到了总量的46.6%,位列影响对象分类统计的第一.

    软件漏洞通常表现为一段可被攻击者利用的代码,漏洞本身不会造成损害. 漏洞产生损害往往是因为漏洞被攻击者利用,编写出可以造成损害的漏洞利用代码,攻击者使用该代码实施恶意行为. 如2017年WannaCry勒索病毒利用“永恒之蓝”漏洞洗劫全球150多个国家,造成严重破坏;2019年WinRAR路径穿越漏洞构造恶意压缩文件达到代码执行效果,影响全球超过5亿用户;2021年Windows Print Spooler 服务之中存在PrintNightmare漏洞,攻击者利用此漏洞在目标设备上远程执行任意代码,所有版本的Windows系统均受影响. 上述这些事件严重危害了国家网络安全、关键基础设施安全及重要行业的信息安全,已经或者将要造成重大损失.

    因此,自漏洞出现以来,漏洞利用技术的研究即成为该领域研究的焦点,而漏洞自动化利用则是众多研究方向中最具挑战性的一个. 漏洞自动化利用是指由计算机自动生成一段代码,该代码可以在受害者不知道的情况下触发漏洞,完成攻击者预期行为. 本文将漏洞自动化利用过程分为4个步骤:1)分析漏洞成因,定位漏洞根源;2)确定利用点,搜索构造利用路径;3)消除副作用,编写漏洞利用原语(通常指具备攻击能力的利用单元或原子操作,表现形式为漏洞程序的一个特定输入,为具体攻击代码提供组成单元);4)突破防护机制,编写漏洞利用代码,漏洞自动化利用过程如图1所示.

    图  1  漏洞自动化利用流程图
    Figure  1.  Flowchart of automatic vulnerability exploitation

    当前漏洞利用普遍依赖手工分析,自动化利用技术需要克服的难题较多,目前适用的场景比较单一(主要集中在CTF类的比赛中,漏洞类型多以栈溢出、格式化字符串这种成因简单的类型为主),以及软件对象的类型和规模有限(多以4 MB以下文件处理类程序为主). 因此在实际应用方面,主要用于辅助漏洞危害性评估,也可用于辅助漏洞修复. 但是类似于雕版印刷必然取代手工临摹一样,漏洞自动化利用过程可以分解为4个标准化步骤,如图1所示,每个步骤内以及步骤之间的操作,均可通过技术实现自动化. 因此,漏洞自动化利用也必将取代当前以手工分析为主的漏洞利用方法. 因此,如何实现利用过程的自动化,是当前学术界研究的热点,研究的漏洞类型从最简单的栈溢出到复杂的UAF(use-after-free),软件对象从简单的CTF(capture the flag)赛题到复杂的Linux内核,安防机制也实现了从Canary绕过到DEP(data execution protection)和ASLR(address space layout randomization)对抗的升级[1-2]. 本文分析了该领域近30年的研究成果,重点梳理近10年在IEEE,ACM,Springer等期刊和安全会议中的代表性文献,从人机边界、攻防博弈、共性技术3个方面对成果进行归类和比较分析,尝试总结当前研究成果存在的不足,指出该领域可能的研究方向.

    纵观漏洞利用技术的发展历史,凡是漏洞利用技术遇到了瓶颈问题、新漏洞类型出现亟需新的利用思路、新的防护机制亟待绕防与突破时,都依赖 “天才般”的灵感去创造新的利用技术和技巧,而人在其中起到了“化腐朽为神奇”的作用,甚至是采用“切换视角”的方式用超越该问题维度的思维去解决该问题. 虽然“人”在漏洞利用中起着最为关键的作用,但是在涉及到计算、枚举、过程存储等环节时,“计算机”也起到了重要的辅助作用. 重复性、高算力的操作由“机器”完成,决策性、高智力参与的操作由“人”完成,“智力的参与度”决定了“人”与“机器”的协作“边界”[3]. 因此,从“人”与“计算机”在漏洞利用过程中所扮演角色的角度,可以将漏洞利用的发展过程分为2个阶段:依赖专家经验的人工漏洞利用阶段和基于模板知识的自动化漏洞利用阶段.

    该阶段主要依赖于专家经验. 作为一个精巧的工作过程,漏洞利用代码的完成涉及到众多细节,由人工来完成可以最大程度保证漏洞利用的高可靠性. 因此,目前几乎具备实用化水平的漏洞利用工具都是由人工来完成的.

    1988年,Morris利用UNIX Fingerd服务程序栈溢出漏洞实现了蠕虫病毒的快速传播,但是此时仅有少数研究人员理解内存布局,利用该类漏洞进行网络攻击的门槛较高. 1996年,Aleph[4]发表了“Smashing the Stack for Fun and Profit”,文中作者详细阐述了栈空间的结构以及溢出漏洞的利用技巧,降低了漏洞利用的门槛. 1997年,Smith在前人研究的基础上,收集了多种处理器架构下的Shellcode,并给出了在不同UNIX类系统中,利用栈溢出漏洞编写Exploit(漏洞利用代码)的详细过程. 1999年Dark等人将该方法成功移植到Windows系统中,自此漏洞利用成为一种多数攻击者可以掌握的网络攻击技术,利用漏洞也逐渐成为网络攻击的重要手段,如2000年和2001年微软IIS服务程序先后被爆出多个栈溢出漏洞,2003和2004年Windows RPC的2个漏洞更直接导致了“冲击波病毒”和“震荡波病毒”的快速传播.

    2004年开始,为了对抗该类漏洞利用代码,UNIX类操作系统和Windows操作系统先后引入了多种内存保护机制,如GS,SafeSEH,DEP等. 特别是DEP机制的广泛使用,直接阻断了传统缓冲区溢出漏洞利用代码的执行,导致90%以上的Exploit失效. 但是攻击者们并未停止对新攻击手段的探索. 2005年,研究人员提出Borrow Code Chunks(代码块借用)的攻击思路,利用内存空间中已经存在的可执行代码拼装成攻击代码,可以有效绕过DEP机制的防护,2007年该类技术趋于成熟,围绕ROP(return oriented programming)技术实现DEP对抗的攻击方法先后被实际应用. 2010年,研究人员证明ROP是图灵完备的,自此ROP成为对抗DEP机制的一种通用型技术.

    在攻防双方围绕DEP机制进行博弈的同时,2007年微软在Vista操作系统中正式采用ASLR防护机制,将系统防御能力提升到一个新的高度.ASLR增大了内存布局的随机性,而漏洞利用代码需要确定性的地址才能实现控制流劫持后的稳定跳转. 该技术的出现,再一次提高了漏洞利用的门槛. 尽管研究人员先后提出了多种稳定跳板地址信息泄露的方法,以及堆喷射、堆风水等ASLR对抗方法,但是至今未见对抗ASLR机制的通用型技术出现,ASLR等防护机制仍然是漏洞利用的关键屏障.

    综上分析可知,该阶段围绕漏洞利用展开的攻防博弈中,新型漏洞的发现、防护机制的出现与突破、创新型利用思想的提出,均是来源于由人的灵感、智慧凝结的专家经验,如Dark提出了“Jmp esp”的技巧,让Windows操作系统下的缓冲区溢出漏洞利用打开了一片天空,缓冲区溢出对抗技术中,各种漏洞利用缓解技术和反利用缓解技术的突破,至今都是由人来突破的. ROP方法的提出将漏洞利用技术提升到一个新的高度,其后出现的一些自动化的方法,形成的一些基于文档和经验的共同利用原理均是以人工构造的模板为基础.

    在专家经验驱动新漏洞利用方法产生的同时,10多年来研究人员也在不断尝试基于已有知识沉淀下的漏洞自动化利用技术,研究如何在有限条件下实现自动化的漏洞利用代码生成. 研究人员认为:具有相同机理的漏洞,其利用过程具有高度相似性,只要能将这种共性提取总结出来,形成指导性的原则,就可以用于指导机器去构造完成相应的漏洞利用代码. 其发展历经了3个阶段:

    第1个阶段以APEG[5]为起点漏洞利用自动化的初步尝试. 2008年基于补丁比对的漏洞利用代码自动生成方法APEG出现,依赖“机器判断”的结果,并由“机器生成”漏洞利用代码. 2009年提出的AXGEN[6]、2012年提出的Mayhem[7]、2013年提出的PolyAEG[8]、2014年提出的AEG[9]、2015年提出的FlowStitch[10]等,则是将“机器判断”提升至“机器分析”,实现了“机器能力”的增强. 但是该类方法针对简单内存破坏类漏洞进行,并且未考虑系统防护机制,实用化程度低.

    第2个阶段是以CGC为代表的实际应用. 2016年,由DARPA主办的CGC挑战赛吸引了全球安全研究人员的目光,在人工编写的赛题上,尝试目标探测、漏洞挖掘、漏洞分析、漏洞利用及漏洞修复等全流程自动化的可行性. 在该比赛中出现了比肩专家经验的漏洞利用“机器人”,如升级版的Mayhem,Mechanical Phish等. CGC比赛之后,漏洞利用代码自动化生成的研究出现了新的热潮,围绕不同软件对象,采用不同技术组合,针对多种系统防护机制的自动化利用技术先后出现. 该阶段的应用普遍以人工构造的漏洞案例为实验对象,如CGC比赛中将系统调用数目进行限制(7个系统调用),仅能够在类似于CTF赛题的软件中实现自动化利用. 但是作为漏洞自动化利用的第1次实际应用,也有力地推动了该领域的研究.

    第3个阶段是后CGC时代. 该阶段中针对真实软件和系统防护机制(内核SMEP,SMAP等)自动化突破方面均有相关研究成果出现. 但是该阶段仍处于“延长线”性质的研究. 虽然覆盖的漏洞类型种类有所增加,但对所处理问题的尺寸有限制,如FlowSwitch[10] ,Q[11],CRAX[12], HCSIFTER[13],Revery[14],AutoExp[15]等所能处理的程序规模基本都在3 MB以下. 此外,漏洞利用不是简单的已有知识复用,仅仅通过“机器分析”无法对精密复杂漏洞进行利用,如机器无法自动化构造CPU熔断和幽灵漏洞的侧信道信息泄露状态以及内存探测代码,更无法创造新的利用模板.

    自1988年第1次漏洞利用攻击出现以来,先后有多种系统防御机制被提出,同时攻击者也不断创造出新的漏洞利用方法,系统防御与漏洞利用呈螺旋式对抗趋势. 图2展示了漏洞防护技术发展阶段图,以操作系统为例,2000年以前,对漏洞利用基本处于无防护阶段,简单的缓冲区漏洞即可造成大范围的网络攻击. 2000—2010年,GS,SafeSEHR,DEP,ASLR,Safe Unlink等系统防御机制先后被提出,每一次防御机制的出现,都带来漏洞利用方法的升级. 这个阶段是攻击能力强于防御能力的阶段,可被称为“弱防护阶段”. 2010年以来,随着硬件性能的革命性提升,对用户使用体验影响较大的防御机制被操作系统默认开启,并且更加严格的内核、权限、程序控制流等保护机制也先后适配到不同的操作系统中. 漏洞利用的难度越来越大,这个阶段大有防御能力强于攻击能力的趋势,可被称为“强防护阶段”.

    图  2  漏洞防护技术发展阶段图
    Figure  2.  Development stage diagram of vulnerability protection technology

    系统防御机制的出现,不仅给漏洞利用带来了革命性的变化,也一直是漏洞自动化利用需要克服的难题. 针对不同的系统防御机制,研究人员先后提出了多种绕过和对抗方法.

    2014年Avgerinos 等人[9]提出的基于源码的漏洞自动化利用方法(automatic exploit generation, AEG),可以生成绕过DEP机制的漏洞利用代码,通过return-to-libc的方式实现控制流劫持,但是该方法无法突破ASLR的防护.

    因此,为解决ASLR机制给控制流劫持带来的障碍,Schwartz等人[11]于2011年的USENIX Security会议上,提出了一种返回导向编程的代码自动化生成方法Q. Q的工作流程是先收集目标程序中的Gadget,随后利用面向Gadget的编程方法,构建ROP漏洞利用链. 对9个小型真实软件漏洞进行实验,在开启DEP和ASLR机制后,Q自动生成的漏洞利用代码仍然可以稳定执行.

    上述方法是从控制流对抗的角度实现系统防御下的漏洞自动化利用. 2015年Hu等人[10]提出的FlowSwitch则是从数据流的角度实现漏洞自动化利用. FlowSwitch在维持原始程序控制流的基础下,对被测二进制程序中已发现的内存漏洞展开分析,并对正常数据流中敏感变量的内容做修改,通过该方法得出的漏洞利用代码被证实可达到提权和信息泄露等目的. 在实验中选取了8个带有漏洞的真实程序,结果表明FlowSwitch生成的19个漏洞利用代码均绕过了DEP以及细粒度CFI等系统保护机制.

    FlowSwitch和Q可针对用户态空间的系统防御机制进行自动化漏洞利用代码的生成. 2018年,Wu等人[16]提出针对内核SMEP防护机制下的漏洞自动化利用方法FUZE. 该工具需要关闭KASLR后才能够实现稳定绕过. 在FUZE的基础上,2020年Chen等人[17]提出KASLR绕过方法并开发了原型工具ELOISE,该方法采用对象识别的方法筛选候选内存分配点,进而利用污点分析和约束求解生成漏洞利用代码.

    2021年Liguori 等人[18]针对人工智能模型训练的问题,构建了Linux平台下的漏洞数据集IA32_shellcode,该数据集主要通过真实漏洞平台exploit-db和shell-storm,收集包含3200个具有规范格式汇编指令的例子和对应的自然语言注释. 该数据集可用于自动生成shellcode的机器翻译任务,能够自动从自然语言翻译生成漏洞利用的shellcode. 作为一次有效的尝试,该成果进一步推动了该方向的研究. 但目前该数据集的规模、规范性、多样性方面距离大规模模型训练的需要仍有一定差距.

    2022年Yang等人[19]提出了自动化shellcode生成模型DualSC. 该文作者提出对偶学习的概念,将shellcode的自动生成形式化为对偶任务求解,使用浅层Transformer和对偶学习进行训练,并设计归一化方法调整以适应这些低资源任务(即训练数据不足),提高模型的泛化能力. 最终DualSC在2个任务中均强于目前最优秀的自动化shellcode生成模型,但是DualSC在真实漏洞利用中的可靠性还亟待验证. 近年来更加严格的系统防护机制先后被提出,如控制流完整性(control flow integrity, CFI)保护机制、返回流保护(return flow guard, RFG)机制、内核沙箱机制等[20-21]. 目前未见针对这些新型防护机制的突破方法,给漏洞自动化利用带来了更大的挑战.

    软件漏洞利用代码的自动构造需要基于程序分析. 随着漏洞挖掘领域成功应用补丁比对、污点分析、符号执行和模糊测试等技术的发展,研究者开始尝试将这些技术用于漏洞自动化利用. 由于在漏洞自动化利用方面,这些技术具有通用性、基础性的特点,本文将其归纳为“共性”技术. 图3展示了2008—2021年的典型漏洞自动利用研究成果,图中虚线左侧的研究围绕如何在“已劫持/单步可控制劫持流”的前提下实现自动化的漏洞利用代码生成,虚线右侧的研究则围绕如何基于“代码生成与原语发现”方法进一步实现自动化的漏洞利用代码生成. 其共性技术类别可分为图3所示的7种.

    图  3  典型漏洞自动化利用研究成果分类图
    Figure  3.  Classification diagram of typical vulnerability automatic utilization research results

    补丁比对技术是攻击者常用的一种方法,其主要目的在于发现那些已经修复但尚未公开披露的漏洞,即1Day漏洞. 通常,安全公告或补丁说明中不会提及漏洞产生的根本原因,这给攻击者利用漏洞带来了困难. 然而,基于二进制文件在打补丁前后的对比差异可以确定产生漏洞的位置,并结合其他漏洞分析技术,进一步确定漏洞的根本原因,最终生成能够利用该漏洞的攻击代码.

    在IEEE S&P2008年会议上Brumley等人[5]提出了一种基于二进制补丁比对的漏洞利用自动生成方法APEG. 该方法的基本思想是,在补丁程序中引入了用于导致原始程序发生异常的过滤条件. 因此,APEG仅需要定位补丁程序中添加的过滤条件并构造不满足这些条件的“违规”输入,这个输入就可以被视为原始程序的一个实现漏洞利用的可行输入.

    APEG尝试自动化构建漏洞利用的工作,不但该方法思路相对直接明了,而且由于其高度可操作性,因此广受研究人员的认可. 然而,APEG方法存在2个主要不足:1)无法应对在补丁程序中未添加过滤判断的情况;2)支持能够自动实现利用的漏洞类型主要为拒绝服务类漏洞利用,这种利用仅导致原程序崩溃,无法实现控制流劫持的目标.

    数据流分析是一种信息分析技术,其目的在于获取程序执行路径上相关数据的信息. 由于程序数据流的数据依赖和控制依赖关系可能与漏洞紧密相关,因此也被用于漏洞分析. 数据流分析可对多种漏洞和缺陷进行检测分析,同时能够对其他漏洞分析方法提供支撑. 典型的基于数据流分析的自动漏洞利用工具包括AXGEN[6],PolyAEG[8],Q[11],HCSIFTER[13],Eloise[17],QED[22],ExpTracer[28],MinDOP[32]等. 将数据流分析应用到漏洞自动化利用中,需要涉及对程序进行数据结构恢复. 该过程需要消除程序对寄存器、栈帧等底层环境的依赖,对函数定义、引用、参数和返回值等进行恢复. 然而,在进行二进制程序的跨平台恢复时,存在无法完全还原用户自定义过程中产生的参数、变量等数据的问题. 为解决这一问题,中国科学院的马湘宁等人[67]于2002年提出了一种静态二进制翻译系统(XM翻译器)上的过程恢复技术. 该技术主要分为参数恢复及返回值恢复2个核心. 此外,他们还提出了一种新的简便方法来解决返回值恢复的问题,避免了传统方法中需要开展复杂的数据流和控制流分析. 该方法基于x86指令集本身的调用特性和实例进行分析,为实现返回值恢复提供了一种简单的方案. 2006年,解放军信息工程大学的付文等人[68]针对IA64体系结构的特点及其对过程调用的相关规定进行了研究,实现了对IA64过程的恢复. 同时,在大量的实践基础上,提出了一种浮点参数恢复的优化方法. 2009年,解放军信息工程大学的方霞等人[69]发现IA32体系结构中可执行程序在反编译过程存在寄存器参数恢复问题,并开展了针对性研究,他们基于IA32体系下的二进制函数调用约定,分析了寄存器参数的特征,并借鉴了数据流分析中的到达-定义分析和使用-定义链等经典方法. 通过利用寄存器定义和使用等信息,提出了一种识别、处理和实参恢复的寄存器参数方法.

    2008年,斯坦福大学的Martin等人[22]提出针对Web应用程序的XSS和SQL注入漏洞的自动漏洞利用工具QED,采用污点分析技术标记不受信任的数据来识别漏洞,并根据污点数据的路径构造漏洞利用.

    2009年,Heelan[6]设计了基于异常输入的自动化漏洞利用方法AXGEN,该方法结合了数据流分析和动态污点分析等技术,专注于针对缓冲区溢出类漏洞的利用程序的生成.

    Schwartz等人[11]在2011年的USENIX会议上,设计了一种高可靠性漏洞利用的ROP代码自动生成方法Q. Q的核心工作逻辑是在被测程序中提取gadget,并使用面向gadget的语言自动化编程生成ROP. 类似的方法还包括MinDOP[32].

    2013年,Wang等人[8]设计了一个自动化漏洞利用工具PolyAEG.该工具基于污点分析技术来进行动态分析并获取被测二进制程序中所有潜在的控制流劫持点. 研究人员通过构造多种跳转指令链以及对收集的路径约束进行求解,从而生成了多样化的漏洞利用样本. 类似的方案有HCSIFTER[13],ELOISE[17],ExpTracer[28].

    2015年,新加坡国立大学的Hu等人[10]设计了一种自动化漏洞利用方法——FlowSwitch,该方法基于数据流分析. 其核心原理是在维持程序原始控制流的情况下,基于对被测二进制程序中已发现的内存漏洞开展分析,通过修改原始数据流中关键变量的内容,以生成有效的漏洞利用代码,从而完成对目标主机的信息泄露和提权等功能.

    符号执行是一类程序分析技术,它基于对程序的分析来获取触发指定区域代码执行的输入. 在符号执行中,目标程序的输入视为符号变量. 当程序执行时,数据被视为条件表达式或其他操作的等效物,它的结果被逐步表示为对输入值的约束,以确保代码按照指定路径执行. 每当代码执行存在符号值的条件检查时,将需要进行分支执行,在真实路径上增加已满足的约束,而在其他路径上添加未满足的约束. 通过使用约束求解器最终寻找满足约束的具体值,从而生成程序的测试用例. 符号执行被广泛应用于自动化领域.

    自2008年提出起,直至最新的研究,符号执行在漏洞自动化利用中扮演重要角色. 常见的基于符号执行的自动漏洞利用工具有MAYHEM[8]、AEG[9]、CRAX[12]、Craxweb[26]、Chainsaw[31] 、Angr[33]、Repel等人[35]、Letteromb[38]、teEther[42]、Pangr[44]、PrimGen[47]、KEPLER[54]等.

    2012年的IEEE S&P会议上,Avgerinos及其团队[7]提出了一种名为AEG的有效漏洞自动挖掘和利用方法. 该方法使用了程序验证技术,寻找能够导致程序进入非安全状态且可被利用的输入. 这些非安全状态包括内存越界写入和恶意格式化字符串等情况;而可被利用主要指的是程序的EIP(执行指令指针)可被任意篡改. AEG方法结合了经过优化的动态指令插桩和符号执行技术,实现了软件漏洞从自动发现到自动利用的完整过程. 此外,AEG输出的利用样本直接具备劫持控制流的能力,是一个真正面向控制流漏洞利用的自动化构建方法. 相似的论文有CRAX[12]、AutoExp[15]、BAEG[37]、Shellswap[39]、Pangr[44]、Xu等人[41]所提方法、R2dlAEG[52]等.

    2012年,Cha等人[7]设计了漏洞利用自动生成方法Mayhem,该方法面向二进制程序.Mayhem结合了在线式符号执行中的速度快和离线式符号执行中的内存负载低2个特点并提出一种新的内存模型,该模型基于索引使得这种漏洞利用自动化方法更加实用.

    2013年,Huang等人[26]针对Web应用程序提出了自动漏洞利用工具Craxweb,通过检测对SQL服务器的符号查询或对HTTP服务器的符号响应来测试具有初始随机输入的Web应用程序. 在检测到符号输出之后,利用S2E符号执行生成攻击字符串并再现结果,从而模拟手动攻击行为. 类似的技术有Chainsaw[31],PrimGen[47].

    2015年,Do等人[29]提出了KEG方法,该方法能自动生成面向对象程序中信息流泄露漏洞利用代码. KEG将符号执行与自合成整合起来,为选定的程序位置的安全级别规范和信息流策略组成一个不安全公式. 之后通过不安全公式产生一个模型,用以生成漏洞利用的输入数据. 类似的技术有HAEPG[61].

    2016年,加州大学的Shoshitaishvili等人[33]在其研究中引入了面向二进制软件攻防的基础分析框架平台Angr,此平台通过模块化方法将现有的基础性软件分析方法实施起来,并构建了一个功能齐全的分析框架. 这个框架涵盖了动态分析执行、控制流图生成、符号执行以及值域分析等诸多内容.

    2017年,伦敦大学的Repel等人[35]针对堆漏洞的利用问题,提出了自动利用方法,在堆管理器或目标应用程序中,定位内存指针的控制流转移,并对符号输入施加约束,以便利用原语劫持指针. 最后合成漏洞利用的payload,并发出驱动代码,将其反馈给应用程序. 类似的技术有HADE[50],HS-Pilot[60].

    2017年,Garcia等人[38]在FSE会议上针对Android应用程序漏洞开发了自动漏洞利用工具Letteromb. Letteromb从漏洞识别点识别的易受攻击的语句开始执行反向静态符号执行(SSE),以确定Intent的负载,当发送到易受攻击的组件时,可能会执行每个易受攻击的语句. 类似的技术有Zhou等人[49]所提技术、Centaur[34]等.

    2018年,Zhang等人[43]提出一种面向RTL硬件程序漏洞的自动化利用代码生成方法Coppelia.该方法首先使用Verilator将RTL Verilog代码翻译成语义相同的C++代码. 然后,在测试平台中设置安全关键断言,并使用Clang编译器将新翻译的设计编译成LLVM字节码. 最后,该方法定义了违背安全关键断言的处理器状态,并利用符号执行技术定位到能够使目标软件从初始状态到达违反状态的漏洞路径.

    2018年USENIX顶会上Krupp等人[42]针对智能合约的研究提出了名为teEther的自动漏洞利用工具. 该工具首先将以太坊虚拟机(EVM)的字节码进行分解,并据此重新构建了相应的控制流图. 接着,对该控制流图进行分析,以获取关键指令和状态改变指令的信息. 随后,通过探索路径和运用符号执行的方法,生成了针对路径的约束条件. 最后,借助生成模块解决了组合约束,从而生成了对应的漏洞利用代码.

    2019年北京理工大学的Wei等人[56]针对面向返回编程ROP提出了自动ROP链生成工具ARG. ARG基于有向无环图(directed acyclic graph, DAG)的特性,分析输入(可用Gadget集)的语义,使用符号执行技术自动生成ROP链.

    2019年,宾夕法尼亚州立大学的Wu等人[54]针对广泛应用于Linux内核中的利用缓解机制展开了研究. 他们提出了一种名为“single-shot”的Linux内核利用技术,并基于部分符号执行技术,开发了名为KEPLER的原型系统,用于绕过缓解机制.

    2020年卡内基梅隆大学Schwartz等人[58]提出了一种通用的框架Limbo来在可执行文件中自动地实现代码复用攻击.Limbo查找代码重用攻击的问题可简化为SMC问题,使用可执行级别的concolic执行来解决该问题.

    2021年Wang等人[70]提出了一种绕过漏洞利用缓解措施生成可用漏洞代码的自动化解决方案AEMB. 首先根据程序执行环境识别当前系统中的漏洞利用缓解措施,然后通过符号执行来收集符号信息,最后使用求解器求解得到漏洞利用代码. 证明了AEMB可自动绕过漏洞利用缓解措施,并为13个应用程序中的11个成功生成实际可用的漏洞利用脚本. 但受限于约束求解器的求解能力,AEMB在大型复杂程序中求解约束会出现路径爆炸的问题,无法得到可用的漏洞利用代码.

    模糊测试(Fuzzing)系一种常见的软件测试技术,它的核心思想是首先自动生成或半自动生成测试样例,然后将这些样例输入到程序中,观察程序是否存在异常的行为,以发现潜在的程序错误. 安全研究人员常使用模糊测试来挖掘计算机软件或系统的安全漏洞. 经典的模糊测试流程包括3个环节:测试样例生成、崩溃状态检测和测试样例裁剪. 例如,FuzzGen[71],SIoTFuzzer[72]等都是以此测试流程为基础的代表性成果. 首先,模糊测试通过变异等方法生成符合输入规范的样例,并检查测试样例中所有可修改的部分. 在执行过程中,评估测试用例的执行是否会产生可被利用的影响. 一旦探测到新的漏洞时,将其输入样本进行最小化等价替换,并生成一个包含基本操作组的PoC代码,用作证明. 基于模糊测试的自动漏洞利用的代表性工具有SHRIKE[46],Slake[53],Gollum[55],ArcHeap[63] ,AURORA[64]等.

    2018年,哈佛大学Heelan等人[46]针对堆内存损坏漏洞提出基于伪随机黑盒搜索的自动漏洞利用工具SHRIKE,利用模糊测试从PHP的回归测试开始,发现与解释器堆交互的PHP代码片段,然后使用搜索算法将这些片段拼凑成程序,搜索实现所需堆布局的程序.

    2019年,Heelan[55]在CCS会议上提出了针对解释器进行自动堆漏洞利用的工具Gollum,挖掘代码中可能存在漏洞原语片段,使用懒惰解析算法和遗传算法进行堆布局,最终将算法集成到一个灰盒模块化的自动化漏洞利用工具.

    2019年,宾夕法尼亚州立大学的Chen等人[53]针对内核系统调用和缺乏SLAB布局知识,通过扩展LLVM和Syzkaller实现了Slake,主要分为2步:构建内核对象数据库和调整SLAB内存布局. Slake不仅可以使内核漏洞的利用方式多样化,而且有时还会提升内核漏洞的可利用性.

    2020年,波鸿鲁尔大学的Blazytko等人[64]针对二进制可执行文件崩溃的根源进行分析并实现了工具AURORA,首先创建一个多样化的程序行为的数据集,然后监控相关的输入行为,使用数据推断预测程序是否会崩溃.

    2020年,佐治亚理工学院的Yun等人[63]提出了一个可以自动化地系统性挖掘堆利用原语的工具ArcHeap,其遵循经典模糊化中的一种常见范式:测试生成、崩溃检测和测试缩减,但它是为堆利用而定制的. 每当ArcHeap发现新的漏洞利用时,它会最小化堆操作并生成PoC代码.

    单独利用符号执行进行自动漏洞利用可能会面临路径爆炸、约束求解困难等问题,因此一些论文开始关注将污点分析与符号执行相结合进行自动漏洞利用,主要工具包括BitBlaze[24]、扩展Avatar[30]、NAVEX[45]等.

    2010年,UCBerkely[24]开发了基于二进制信息的分析平台BitBlaze,该平台综合了二进制程序的信息流分析、污点分析和符号执行技术. 其主要目标是确定崩溃时受攻击者输入文件控制的寄存器和内存地址,并通过对NULL指针进行切片以快速排除可利用性.

    2016年,坎特伯雷大学的Ruffell等人[30]针对嵌入式系统进行自动化漏洞利用研究,通过扩展现有的动态分析框架Avatar,在目标设备上标记污点,利用污点分析执行直到硬件被初始化,然后将执行移动到仿真器以实施符号执行,实现了一种嵌入式系统固件漏洞利用代码自动生成的方法.

    2018年,伊利诺伊大学的Alhuzali等人[45]针对Web应用程序提出了自动漏洞利用工具NAVEX,其采用符号执行创建Web应用程序各个模块的行为模型作为指导,并利用污点分析标记出包含潜在漏洞点的模块,结合动态分析自动验证漏洞并构造可用Exploit.

    基于模糊测试与符号执行结合的自动漏洞利用代表性工具有Revery[14] 、FUZE[16]、Mechanical Phish[36]、Lu等人[40]所提工具、RELAY[65]、KOOBE[59]等.

    2016年,加州大学圣芭芭拉分校的安全团队的Shellphish等人提出了一种名为Mechanical Phish的自动化漏洞利用方法[36]. 该方法使用了结合动态符号执行和AFL的漏洞挖掘引擎Driller来进行漏洞自动化挖掘. 随后借助基于Angr的漏洞利用生成引擎Rex来实现漏洞利用样本自动生成. 最后,基于补丁生成引擎Patcher-ex得到补丁程序.

    2017年,佐治亚大学的Lu等人[40]针对内核栈变量未初始化漏洞利用问题,提出自动化定向栈喷射方法,采用定制的符号执行和引导型模糊测试来识别内核输入和利用Linux内核栈变量未初始化漏洞. 类似的技术有RELAY[65].

    2018年,Wu等人[16]提出了基于内核UAF漏洞的自动化方法FUZE. 该方法将符号执行、模糊测试、动态追踪等技术结合在一起,针对内核UAF漏洞自动生成漏洞利用样本. 类似的技术有KOOBE[59].

    为了解决程序崩溃现场无法利用的问题,Wang等人[14]在2018年提出了一种名为Revery的自动化漏洞利用. Revery利用模糊测试技术来寻找漏洞可利用状态的等效路径,并使用关键的内存操作指令来定位漏洞点. 随后,Revery通过污点分析技术在等效路径中寻找可利用的状态. 最后运用符号执行技术求解路径约束和漏洞利用约束等条件,以生成漏洞利用方案.

    还有一些自动漏洞利用工具未使用上述方法,此处进行集中论述,代表性工具有!exploitable[23],WAPTEC[25],KernelPET[27],BOPC[48],SQLMi[51],GuideExp[62],Autosploit[57],EXPRACE[66]等.

    2009年,微软公司基于其在Vista开发过程中使用模糊测试技术的经验开发了!exploitable工具[23]. 此工具旨在对崩溃现场自动进行分析和安全风险评估. 通过对比调用堆栈对应的散列值,该工具可以对崩溃情况进行分类,并通过分析崩溃上下文的语义信息来确定其可利用性级别.

    2011年,Bisht等人[25]在CCS会议上发表了针对Web应用的白盒攻击工具WAPTEC,首先使用约束引导搜索查找服务器控制路径,即导致敏感操作的路径;然后使用输入探测服务器检查结果控制路径上的敏感接收器,查找通向客户端拒绝的每个此类控制路径的输入.

    2015年李晓琦等人[27]针对Linux内核级提权漏洞提出了一种基于模拟攻击的漏洞检测思想,开发了漏洞自动利用系统KernelPET. 该系统包括漏洞测试和一键提权2个部分. 漏洞测试部分能够根据用户需求,选择性地读取Exploit代码;而一键提权部分则通过自动化的策略式读取,能够快速定位当前平台上可利用的攻击代码.

    2018年由Ispoglou等人[48]提出了一种仅依赖数据的面向块编程的攻击方法BOPC. 该方案将整个基本块视为程序代码的Gadgets,在不触发控制流完整性等防护措施的条件下,构造实现任意内存写操作的方法. 该方法剔除了不可达路径以降低搜索空间,并利用启发式方法来指导搜索可行路径,最终构建了具备任意内存写能力的Payload集合.

    2017年Jan等人[51]提出了一个名为SQLMi的基于求解器和变异的测试生成框架,专门针对XML注入攻击. 该框架通过应用一系列变异操作符对普通的XML消息进行操作,可以支持4种类型的XMLi攻击样本的生成,最终绕过XML网关并对后端网络服务开展攻击.

    2020年北卡罗来纳大学的Yilmaz等人[62]针对ActionScript虚拟机不能利用模糊测试和符号执行来生成漏洞利用问题,开发了一个引导式的漏洞利用工具GuideExp. GuidExp探索触发切片执行之后的所有可能的执行路径,检查当前漏洞利用的子目标是否在任何执行路径中实现,并根据错误类型显示错误消息,以取消后续生成的候选切片的资格.

    2020年Moscovich等人[57]实现了一个评估漏洞可利用性的自动化框架Autosploit,其可代替漏扫工具和传统的手工或人工使用工具进行渗透测试. Autosploit基于2种算法实现高效测试:广义二值分裂和Barinel,分别用于无噪声和有噪声环境. Autosploit能够在无噪声和有噪声环境中自动识别影响漏洞利用能力的系统属性.

    2021年Wang等人[73]提出了一种新型的自动化堆布局操作解决方案MAZE. 其以概念验证(proof of concept, POC)样本、预期堆布局和漏洞程序作为输入,首先提取可供用户操作堆的堆布局原语,然后基于污点分析识别原语依赖关系,使用符号执行分析原语语义,最后通过改进的Dig & Fill算法组装堆布局原语. MAZE将自动化堆布局问题转化为线性丢番图方程求解问题,达到生成目标堆布局的原始堆操作序列的目的. 该方案可以生成复杂的堆布局并且适应主流的堆分配器,辅助漏洞自动化利用方案生成. 但是该方案只支持特定的样本和特定的环境,面对真实程序复杂的堆空间,难以有效消除噪声生成准确的堆布局原语.

    2021年Kang等人[74]针对JIT的堆内存破坏漏洞提出了一个自动生成编译器漏洞利用代码的框架. 首先提取高层的漏洞利用原语,如任意读、任意写、劫持控制流等;然后在漏洞利用原语上构造出漏洞利用代码. 实现了对JIT生成漏洞利用代码,并在Javascript引擎上实现了原型验证. 但部分环节仍停留在理论推导中,缺乏实验数据的佐证,对JIT漏洞利用的复杂性和保护绕过等需要进一步研究.

    2021年,首尔大学的Lee等人[66]提出了一种针对内核非包含的多变量竞争的漏洞利用技术EXPRACE,首先划分易利用竞争和难利用竞争的内在条件,然后在利用过程中操纵中断机制(如rescheduling IPI,TLB shootdown IPI,membarrier IPI,hardware interrupts),将难以利用的竞争转变为容易利用的竞争.

    综上分析可知,当前漏洞自动化利用技术尽管整体呈现实用化的趋势,但是该领域的一些根本性难题仍然未得到解决甚至缓解. 本文从现有成果与技术实用化所面临的差距方面,总结2个方面的不足:

    1)从共性技术方法的实际能力来看,漏洞根源定位不准制约了全链自动化的实现. 如图4所示,当前主流的漏洞自动化利用技术往往是基于异常点(crash point)的分析,生成一条从异常点到利用点的路径(如BCD1). 但是实际应用时,需要构造一条从漏洞根源到达攻击点的路径(如ABCD1E),难以实现全链的自动化利用. 导致这种现象的主要原因是:程序深度理解、漏洞根源定位等基础性难题未得到有效解决.

    图  4  漏洞根源至攻击点路径示意图
    Figure  4.  Schematic diagram of path from vulnerability root to attack point

    2)从系统防御机制突破的自动化程度来看,现有方法难以实现复杂防御机制的突破. 漏洞自动利用的本质是可利用路径下的复杂约束条件求解. 现有的自动化生成均是在受限路径上的探索和规划,如现有的CRAX[12],Revery[14]等工具均可实现DEP机制的绕过,但是需要关闭ASLR,CFI等系统防御机制,降低约束条件求解的难度. 在真实场景下,该类“强约束”条件不仅无法满足,往往更加苛刻,如对漏洞利用代码的时效性等均有更高的要求. 使用现有基于异常点的漏洞自动化利用技术,“输入空间”受限,难以求解出满足“强约束”条件的输入,更无法实现复杂防御机制的突破.

    因此,从满足处理复杂结构软件对象,以及实现复杂类型漏洞的自动化利用的目标来看,未来需要重点围绕2个方面展开研究:

    1)如何提高漏洞成因深度分析能力,实现复杂场景下的漏洞可利用性判定. 现有研究成果难以实现漏洞利用过程的全链自动化,其根本原因是无法准确定位漏洞触发的根源点(root-cause). 漏洞根源直接反映了漏洞成因和漏洞的可利用性. 但是对于复杂结构软件、复杂类型漏洞,准确定位漏洞根源面临数据结构还原、代码控制流逆向等难题. 因此,以漏洞根源定位为核心的漏洞成因深度分析方向会是未来该领域研究的重点.

    2)研究如何提高约束求解能力,实现非线性条件下的路径约束条件的准确求解. 现有研究成果难以实现复杂防御机制的突破,其中一个关键因素是约束求解能力有限. 结合符号执行和约束求解的漏洞自动化利用技术是目前最为主流的技术,但是受限于目前约束求解方法的算力,难以准确求解出非线性条件下的复杂约束. 因此,作为一个基础性难题,该问题的研究是无法绕过的一个研究方向.

    本文综述了漏洞自动化利用技术的研究成果,将漏洞自动化利用分为典型的4个步骤:漏洞根源定位、可达路径搜索、漏洞原语生成、利用代码生成. 从人机边界、攻防博弈、共性技术3个角度分别对当前代表性成果进行论述,阐述每个成果的技术思路和适用对象. 从技术实用化的角度,对当前研究总结了2个方面的不足,提出了2个研究方向. 漏洞自动化利用是漏洞领域研究中最具挑战性,也最能体现研究价值的方向,该领域新思路、新方法、新技术的出现,必将有力推动漏洞研究领域的进步.

    作者贡献声明:武泽慧负责论文框架设计和核心内容撰写;魏强参与论文框架设计以及第1节和第2节内容撰写;王新蕾参与论文第4节内容撰写及全文规范性检查工作;王允超参与论文第3节内容撰写;燕宸毓参与全文的图片绘制、内容审校和修订;陈静负责正文和参考文献格式修订.

  • 图  1   典型视频直播场景的端到端工作流程

    Figure  1.   End-to-end workflow for a typical live video streaming scenario

    图  2   代表性云服务的算力节点间往返时延

    Figure  2.   RTTs of representative cloud services’ computing nodes

    图  3   4种配置和信息丰富度组合下单帧编解码用时

    Figure  3.   Per-frame encoding and decoding time for four pairs of configuration and information richness

    图  4   用于决策传输和转码节点的强化学习模型

    Figure  4.   A reinforcement learning model for deciding transmission and transcoding nodes

    图  5   多视频流分发请求排队调度过程

    Figure  5.   The input-queued scheduling process for distribution requests of multiple video streams

    图  6   基于分层日志同步的数据一致性恢复

    Figure  6.   Data consistency recovery based on layered log synchronization

    图  7   模型决策节点方案和两种比较基线在不同信息丰富度情况下视频传输码率对比

    Figure  7.   Comparisons of video transmission bitrates achieved by the model-deciding-node approach and two baselines with different information richness

    图  8   模型决策节点方案和两种比较基线用于典型视频分发过程中视频块处理时延变化情况

    Figure  8.   Comparisons of video chunks’ processing latency variations achieved by the model-deciding-node approach and two baselines

    图  9   模型训练算法和模型聚合机制对收敛时间的影响

    Figure  9.   Effect of model training algorithm and model aggregation mechanism on the convergence time

    图  10   多任务调度机制和两种常用调度算法的性能对比

    Figure  10.   Performance comparison between the multi-task scheduling mechanism and two common scheduling algorithms

    图  11   资源单元数量自适应变化和视频处理降低用时

    Figure  11.   Adaptive change of resource unit number and the corresponding reduction of video processing time

    图  12   不同故障节点数nf时分层日志同步机制降低时延

    Figure  12.   Reduction of delay brought by the layered-log-synchronization mechanism with different fault node numbers nf

    图  13   控制器在处理视频分发过程中资源使用率变化

    Figure  13.   Variations of the controller’s resource utilization rate during processing video distribution

    表  1   3种主流云服务商在全球提供的算力节点的区域分布

    Table  1   Region Distribution of Computing Nodes Worldwide Provided by Three Mainstream Cloud Service Providers

    云服务商区域类别节点位置集合
    阿里云国内(华北)青岛、北京、张家口、呼和浩特、乌兰察布;(华东)杭州、上海、南京、福州;(华南)深圳、河源、广州;(西南)成都;(中国特区)香港
    国外(亚洲)新加坡、吉隆坡、雅加达、马尼拉、曼谷、东京、首尔、迪拜、孟买;(欧洲)法兰克福、伦敦;(北美洲)硅谷、弗吉尼亚;(大洋洲)悉尼
    腾讯云国内(华北)北京;(华东)上海、南京;(华南)广州;(西南)成都、重庆;(中国特区)香港
    国外(亚洲)首尔、东京、新加坡、曼谷、雅加达、孟买;(欧洲)法兰克福、莫斯科;(北美洲)硅谷、弗吉尼亚、多伦多;(南美洲)圣保罗
    华为云国内(华北)北京、乌兰察布;(华东)上海;(华南)广州;(西南)贵阳;(中国特区)香港
    国外(亚洲)曼谷、新加坡、雅加达;(非洲)约翰内斯堡;(北美洲)墨西哥城;(南美洲)圣保罗、圣地亚哥
    下载: 导出CSV

    表  2   3种主流云服务商的几种典型资源配置

    Table  2   Some Typical Resource Configurations of Three Mainstream Cloud Service Providers

    机型实例规格资源配置按量价格/(CNY·h−1)
    普通计算型阿里ecs.c6.xlarge4核vCPU@2.5GHz,8GB内存0.78
    腾讯c6.large84核vCPU@3.2GHz,8GB内存0.73
    华为s6.xlarge.24核vCPU@2.6GHz,8GB内存0.73
    GPU计算型阿里ecs.gn5i-c4g1.xlarge4核vCPU@2.5GHz,16GB内存,1*NVIDIA P49.69
    腾讯gn7.large204核vCPU@2.5GHz,20GB内存,1/4*NVIDIA T43.39
    华为g6.xlarge.44核vCPU@3.0GHz,16GB内存,1*NVIDIA T46.33
    下载: 导出CSV
  • [1]

    Tang Xiongyan, Cao Chang, Wang Youxiang, et al. Computing power network: The architecture of convergence of computing and networking towards 6G requirement[J]. China Communications, 2021, 18(2): 175−185 doi: 10.23919/JCC.2021.02.011

    [2] 贾庆民,胡玉姣,张华宇,等. 确定性算力网络研究[J]. 通信学报,2022,43(10):55−64

    Jia Qingmin, Hu Yujiao, Zhang Huayu, et al. Research on deterministic computing power network[J]. Journal of Communications, 2022, 43(10): 55−64 (in Chinese)

    [3]

    Subcommittee on Future Advanced Computing Ecosystems of the National Science and Technology Council (NSTC). Pioneering the future advanced computing ecosystem: A strategic plan[R]. Washington D. C. : NSTC, 2020

    [4]

    The European Commission. 2030 digital compass: The European way for the digital decade[R]. Brussels, Belgium: European Commission, 2021

    [5] 国家发展改革委, 中央网信办, 工业和信息化部, 等. 全国一体化大数据中心协同创新体系算力枢纽实施方案[R]. 北京: 国家发展改革委, 2021

    National Development and Reform Commission, Cyberspace Administration of China, Ministry of Industry and Information Technology, et al. Implementation plan of computing power hub of national integrated big data center collaborative innovation system[R]. Beijing: National Development and Reform Commission, 2021 (in Chinese)

    [6] 中国联合网络通信集团有限公司. 中国联通算力网络白皮书[R]. 北京: 中国联合网络通信集团有限公司, 2019

    China United Network Communication Group Co., Ltd. Computing power network whitepaper of China Unicom[R]. Beijing: China United Network Communication Group Co., Ltd. , 2019 (in Chinese)

    [7] 中国移动通信集团有限公司. 算力网络技术白皮书[R]. 北京: 中国移动通信集团有限公司, 2021

    China Mobile Communications Group Co., Ltd. Computing Force Network Technology Whitepaper[R]. Beijing: China Mobile Communications Group Co. , Ltd, 2021 (in Chinese)

    [8] 中国电信集团有限公司. 云网融合2030技术白皮书[R]. 北京: 中国电信集团有限公司, 2020

    China Telecommunications Group Co., Ltd. Cloud Network Integration 2030 Technology Whitepaper[R]. Beijing: China Telecommunications Group Co., Ltd, 2020 (in Chinese)

    [9] 华为技术有限公司. 算力网络[R/OL]. 深圳: 华为技术有限公司, 2022 [2023-02-19].https://support.huawei.com/enterprise/zh/doc/EDOC1100249555/ec4b1f21

    Huawei Technologies Co. , Ltd. Computing Power Network[R/OL]. Shenzhen: Huawei Technologies Co. , Ltd. , 2022 [2023-02-19].https://support.huawei.com/enterprise/zh/doc/EDOC1100249555/ec4b1f21 (in Chinese)

    [10] 中国移动研究院. 算力网络视频应用白皮书[R]. 北京: 中国移动通信集团有限公司, 2022

    China Mobile Research Institute. Video Applications of Computing Force Network Whitepaper[R]. Beijing: China Mobile Communications Group Co. , Ltd, 2022 (in Chinese)

    [11] 国务院. “十四五”数字经济发展规划[R]. 北京: 国务院, 2021

    The State Council. “14th Five Year Plan” for Digital Economy Development[R]. Beijing: The State Council, 2021 (in Chinese)

    [12]

    International Telecommunication Union Telecommunication (ITU-T). Y. 2501: Computing Power Network – Framework and Architecture[S]. Geneva, Switzerland: ITU-T, 2021

    [13] 中国通信标准化协会. 算力网络总体技术要求[S]. 北京: 中国通信标准化协会, 2021

    China Communications Standards Association. General Technical Requirements of Computing and Network Convergence[S]. Beijing: China Communications Standards Association, 2021 (in Chinese)

    [14]

    Król M, Mastorakis S, Oran D, et al. Compute first networking: Distributed computing meets ICN[C] //Proc of the 6th ACM Conf on Information-Centric Networking. New York: ACM Press, 2019: 67−77

    [15]

    Chen Huan, Tao Yu, Zhu Yi. NSACS-PS: A named service access control scheme based on proxy signature in named computing first networking[C] //Proc of 2021 4th Int Conf on Hot Information-Centric Networking (HotICN). Piscataway, NJ: IEEE, 2021: 81−85

    [16]

    Balakrishnan H, Banerjee S, Cidon I, et al. Revitalizing the public Internet by making it extensible[J]. ACM SIGCOMM Computer Communication Review, 2021, 51(2): 18−24 doi: 10.1145/3464994.3464998

    [17] 中兴通讯技术(简讯). 视频算力网络, 使能全场景视频应用[R/OL]. 深圳: 中兴通讯股份有限公司, 2022 [2023-02-19].https: //www.zte.com.cn/china/about/magazine/zte-technologies/2022/10-cn/_3/_.html

    ZTE Technology. Computing Power Network for Videos, Enabling Full-Scenario Video Applications[R/OL]. Shenzhen: ZTE Corporation, 2022 [2023-02-19].https://www.zte.com.cn/china/about/magazine/zte-technologies/2022/10-cn/_3/_.html (in Chinese)

    [18]

    Mao Hongzi, Netravali R, Alizadeh M. Neural adaptive video streaming with pensieve[C] //Proc of the Conf of the ACM Special Interest Group on Data Communication, New York: ACM, 2017: 197–210

    [19]

    Yeo H, Jung Y, Kim J, et al. Neural adaptive content-aware internet video delivery[C] //Proc of 13th USENIX Symp on Operating Systems Design and Implementation. Berkeley, CA: USENIX Association, 2018: 645–661

    [20]

    Fouladi S, Emmons J, Orbay E, et al. Salsify: Low-latency network video through tighter integration between a video codec and a transport protocol[C] //Proc of 15th USENIX Symp on Networked Systems Design and Implementation. Berkeley, CA: USENIX Association, 2018: 267–282

    [21]

    Kim J, Jung Y, Yeo H, et al. Neural-enhanced live streaming: Improving live video ingest via online learning[C] //Proc of the Annual conf of the ACM Special Interest Group on Data Communication. New York: ACM, 2020: 107–125

    [22]

    Mukerjee M K, Naylor D, Jiang Junchen, et al. Practical, real-time centralized control for CDN-based live video delivery[C] //Proc of the Annual conf of the ACM Special Interest Group on Data Communication. New York: ACM, 2015: 311–324

    [23]

    Han Bo, Qian Feng, Ji Lusheng, et al. MP-DASH: Adaptive video streaming over preference-aware multipath[C] //Proc of the 12th Int on Conf on Emerging Networking Experiments and Technologies. New York: ACM, 2016: 129–143

    [24]

    Zheng Zhilong, Ma Yunfei, Liu Yanmei, et al. XLINK: QoE-driven multi-path QUIC transport in large-scale video services[C] //Proc of the Annual Conf of the ACM Special Interest Group on Data Communication. New York: ACM, 2021: 418−432

    [25]

    Baig G, He Jian, Qureshi M A, et al. Jigsaw: Robust live 4K video streaming[C] //Proc of the 25th Annual Int Conf on Mobile Computing and Networking. New York: ACM, 2019: 1–16

    [26]

    He Jian, Qureshi M A, Qiu Lili, et al. Rubiks: Practical 360-degree streaming for smartphones[C] //Proc of the 16th Annual Int Conf on Mobile Systems, Applications, and Services. New York: ACM, 2018: 482–494

    [27]

    Sodagar I. The MPEG-DASH standard for multimedia streaming over the Internet[J]. IEEE Multimedia, 2011, 18(4): 62−67 doi: 10.1109/MMUL.2011.71

    [28]

    Cui Yong, Dai Ningwei, Lai Zeqi, et al. TailCutter: Wisely cutting tail latency in cloud CDNs under cost constraints[J]. IEEE/ACM Transactions on Networking, 2019, 27(4): 1612−1628 doi: 10.1109/TNET.2019.2926142

    [29]

    E Jinlong, Cui Yong, Ruan Mingkang, et al. HyCloud: Tweaking hybrid cloud storage services for cost-efficient filesystem hosting[C] //Proc of IEEE Int Conf on Computer Communications. Piscataway, NJ: IEEE, 2019: 2341−2349

    [30]

    Xiph.Org Foundation. Video test media [derf’s collection][R/OL]. Somerville, MA: Xiph.Org Foundation, 1994 [2023-02-19]. https://media.xiph.org/video/derf/

    [31]

    International Telecommunication Union Telecommunication (ITU-T). H. 264: Advanced Video Coding for Generic Audiovisual Services[S]. Geneva, Switzerland: ITU-T, 2021

    [32]

    Agarwal S, Dunagan J, Jain N, et al. Volley: Automated data placement for geo-distributed cloud services[C] //Proc of 20th USENIX Symp on Networked Systems Design and Implementation. Berkeley, CA: USENIX Association, 2010: 17−32

    [33]

    Pirotta M, Restelli M, Bascetta L. Adaptive step-size for policy gradient methods[C] //Proc of the 27th Conf on Neural Information Processing Systems. San Diego, CA: NIPS, 2013: 1394–1402

    [34]

    Schulman J, Wolski F, Dhariwal P, et al. Proximal policy optimization algorithms[J]. arXiv preprint, arXiv: 1707.06347, 2017

    [35]

    McMahan H B, Moore E, Ramage D, et al. Communication-efficient learning of deep networks from decentralized data[C] //Proc of 20th Int Conf on Artificial Intelligence and Statistics. AISTATS, 2017: 1273−1282

    [36]

    Ongaro D, Ousterhout J. In search of an understandable consensus algorithm[C] //Proc of Annual Technical Conf. Berkeley, CA: USENIX Association, 2014: 305−320

    [37]

    Merkle R C. Protocols for public key cryptosystems[C] //Proc of the IEEE Symp on Security and Privacy. Piscataway, NJ: IEEE, 1980: 122−134

    [38] GitHub. 非拜占庭节点的分布式共识算法Raft的Python实现[CP/OL]. [2023 − 02-19]. https://github.com/hangsz/raft

    GitHub. Python implementation of non-Byzantine nodes’ distributed consensus algorithm Raft[CP/OL]. [2023-02-19]. https://github.com/hangsz/raft (in Chinese)

    [39]

    LaValle S M, Branicky M S, Lindemann S R. On the relationship between classical grid search and probabilistic roadmaps[J]. The International Journal of Robotics Research, 2004, 23(7-8): 673−692 doi: 10.1177/0278364904045481

    [40]

    Kingma D P, Ba J. Adam: A method for stochastic optimization[J]. arXiv preprint, arXiv: 1412.6980, 2017

图(13)  /  表(2)
计量
  • 文章访问数:  0
  • HTML全文浏览量:  0
  • PDF下载量:  0
  • 被引次数: 0
出版历程
  • 收稿日期:  2023-01-02
  • 修回日期:  2023-02-18
  • 网络出版日期:  2023-02-26
  • 刊出日期:  2023-04-17

目录

/

返回文章
返回