摘要:本文提出了基于异构信息网络(HIN, Heterogeneous Information Network)的网络威胁情报框架——HINTI,旨在建模异构IOCs之间的相互依赖关系,以量化其相关性,对CTI进行建模和分析。

本文分享自华为云社区《[论文阅读] (07) RAID2020 Cyber Threat Intelligence Modeling GCN》,作者:eastmount。

原文作者:Jun Zhao, Qiben Yan, Xudong Liu, Bo Li, Guangsheng Zuo
原文标题:Cyber Threat Intelligence Modeling Based on Heterogeneous Graph Convolutional Network
原文链接:https://www.usenix.org/system/files/raid20-zhao.pdf
发表会议:RAID 2020 / CCF B

注意,本文代码采用GPU+Pycharm实现,如果你的电脑是CPU实现,将相关GPU操作注释即可。这里仅做简单的对比实验,不进行参数优化、实验原因分析及详细的效果提升,后面文章会介绍优化、参数选择、实验评估等。

1、摘要

网络威胁情报(CTI,Cyber Threat Intelligence)已在业界被广泛用于抵御流行的网络攻击,CTI通常被看作将威胁参与者形式化的妥协指标(IOC)。然而当前的网络威胁情报(CTI)存在三个主要局限性:

  • IOC提取的准确性低
  • 孤立的IOC几乎无法描述威胁事件的全面情况
  • 异构IOC之间的相互依存关系尚未得到开发,无法利用它们来挖掘深层次安全知识

本文提出了基于异构信息网络(HIN, Heterogeneous Information Network)的网络威胁情报框架——HINTI,旨在建模异构IOCs之间的相互依赖关系,以量化其相关性,对CTI进行建模和分析。

本文的主要贡献如下:

  • 提出了基于多粒度注意力机制( multi-granular attention)的IOC识别方法,可以从非结构化威胁描述中自动提取网络威胁对象,并提高准确性
  • 构建一个异构信息网络(HIN)来建模IOCs之间的依赖关系
  • 提出一个基于图卷积网络(Graph Convolutional Networks)的威胁情报计算框架来发现知识
  • 实现了网络威胁情报(CTI)原型系统

实验结果表明,本文提出的IOC提取方法优于现有方法,HINTI可以建模和量化异构IOCs之间的潜在关系,为不断变化的威胁环境提供了新的线索。

IOC(Indicator of Compromise)是MANDIANT在长期的数字取证实践中定义的可以反映主机或网络行为的技术指示器。

2、前言

Introduction是论文的开头,是极为重要的部分,介绍了为什么要做这份工作,建议大家仔细阅读,尤其是写英文论文的读者。因此,作者将该部分进行了详细总结。

当今社会,我们正在目睹复杂的网络威胁攻击(如0-day攻击、高级持续威胁攻击 APT)的快速增长。这些攻击可以轻易绕过传统防御,如防火墙和入侵检测系统(IDS),破坏关键基础设施,并造成灾难。为了应对这些新出现的威胁,安全专家提出了 网络威胁情报(CTI),并包含 IOCs指标

与著名的安全数据库(如CVEExploitDB)不同,当系统遇到可疑威胁时,CTI可以帮助组织主动发布更全面和更有价值的威胁警告(例如,恶意IP、恶意DNS、恶意软件和攻击模式等)。

  • http://cve.mitre.org/
  • https://www.exploit-db.com/

近年来,CTI越来越多地被安全人员和行业用来分析威胁环境。原始的CTI提取和分析需要对攻击事件描述进行大量的手动检查,耗时耗力。最近提出了从非结构化安全文本中提取CTI的自动化方法,如 CleanMXPhishTankIOC Finder 和 Gartner peer insight ,并且都遵循OpenIOC标准,并利用正则表达式提取特定类型的IOC(如恶意IP、恶意软件、文件哈希等)。

然而,这种提取方法面临着三个主要的限制。

  • 首先,IOC提取的精度低,不可避免地导致关键威胁对象遗漏。
  • 其次,孤立的IOC没有全面描述威胁事件的概况,这使得CTI用户无法对即将到来的威胁获得完整的了解。
  • 最后,缺乏一个有效的计算框架来有效地衡量异构IOCs之间的交互关系。

为了应对这些限制(To combat these limitations):
本文提出了一种基于异构信息网络的威胁情报框架HINTI,来对CTI进行建模和分析。值得注意的是,HINTI提出了一种基于多粒度注意力机制的IOC识别方法,以提高IOC提取的准确性。

然后,HINTI利用HIN来建模异构IOC之间的依赖关系,这可以描述一个更全面的威胁事件。此外,本文提出了一个新的CTI计算框架来量化IOC之间相互依赖的关系,这有助于发现新的安全信息(security insights)。

综上,本文的主要贡献总结如下:

  • 基于多粒度注意力机制的IOC识别(Multi-granular Attention based IOC Recognition)
    可以从多源威胁文本中自动提取网络威胁对象,学习不同尺度的特征,提高准确率和召回率,共从非结构化的威胁描述中提取397730个IOCs。
  • 异构威胁智能建模(Heterogeneous Threat Intelligence Modeling)
    使用异构信息网络来建模不同类型的IOC,引入各种元路径捕获异构IOC之间的相互依赖关系,描述更全面的网络威胁事件概况。
  • 威胁智能计算框架(Threat Intelligence Computing Framework)
    提出网络威胁智能计算的概念,设计一个通用的计算框架。该框架利用基于权重学习的节点相似度来量化异构IOCs之间的依赖关系,然后利用基于注意力机制的异构图卷积网络来嵌入IOCs及交互关系。
  • 威胁情报原型系统(Threat Intelligence Prototype System)
    实现了一个CTI原型系统,确定6类攻击对象之间的1262258种关系,包括攻击者、漏洞、恶意文件、攻击类型、设备和平台。

3、背景

3.1动机

本研究的主要目标是通过建模异构IOCs之间的依赖关系来解决现有CTI分析框架的局限性。举一个有趣的安全示例:

Last week, Lotus exploited CVE-2017-0143 vulnerability to affect a larger number of Vista SP2 and Win7 SP devices in Iran. CVE-2017-0143 is a remote code execution vulnerability including a malicious file SMB.bat.

大多数现有的CTI框架可以提取特定的IOC,但却忽略了它们之间的关系,如图1所示。很明显,这些IOC无法全面了解威胁形势,更不用说量化它们的互动关系以进行深入的安全调查。

与现有的CTI框架不同,HINTI旨在实现一个CTI计算框架,它不仅可以有效提取IOC,而且还可以建模和量化它们之间的关系。


在这里,我们使用该示例来说明HINTI是如何一步一步工作(四个步骤)。

  • (i) 首先,通过B-I-O序列标注方法对安全相关帖子进行标注,用于构建IOC提取模型。
    其中,B-X表示X类型的元素位于片段的开头,I-X表示X类型的元素位于中间片段,O表示其他类型的非基本元素。在研究中,我们从5000个威胁描述文本中标注了3万个这样的训练样本,这些文本是用来构建我们IOC提取模型的原始材料。

  • (ii) 然后将标记的训练样本输入我们提出的神经网络,如图6所示,以训练提出的IOC提取模型。
  • (iii) HINTI利用句法依赖性解析器(e.g.,主-谓-宾,定语从句等)提取IOC之间的关联关系,每个关系都表示为三元组(IOC_iIOCi​、关系、IOC_jIOCj​)。在此实例中,HINTI提取三元组关系如下:
    – (Lotus, exploit, CVE-2017-0143)
    – (CVE-2017-0143, affect, VistaSP2)

注意,提取的关系三元组可以增量地合并到一个HIN中,以模拟IOCs之间的交互作用,从而描述一个更全面的威胁环境。图3以图形表示显示了从示例中提取IOC描述之间的交互关系,g该图表示攻击者利用CVE-2017-0143漏洞入侵VistaSP2和Win7SP1设备。CVE-2017-0143是一个涉及恶意文件“SMB.bat”的远程代码执行漏洞。与图1相比,很明显,HINTI可以描绘一个比以往方法更直观、更全面的威胁环境。在本文中,我们主要考虑6种不同类型的IOC之间的9个关系(R1∼R9)(详见第4.2节)。

  • (iv) 最后,HINTI集成了基于异构图卷积网络的CTI计算框架(见第4.3节),以有效量化IOC之间的关系并进行知识发现。
    特别是,本文提出的CTI计算框架描述了IOC及其在低维嵌入空间(low-dimensional embedding space)中的关系,在此基础上,CTI用户可以使用任何分类(如SVM、朴素贝叶斯)或聚类算法(K-Means、DBSCAN)来获得新的威胁见解,例如预测哪些攻击者可能入侵其系统,以及在没有专家知识的情况下识别哪些漏洞属于同一类别。

3.2前期工作

  • Definition 1 Heterogeneous Information Network of Threat Intelligence (HINTI)
  • Definition 2 Network Schema
  • Definition 3 Meta-path

威胁智能的异构信息网络(HINTI)被定义为有向图 G=(V, E, T),其中v表示对象,e表示链接,r表示关系类型。具有对象类型映射函数ϕ:V→M和链路类型映射函数Ψ:E→R。本文重点研究了6种常见类型,连接不同对象的链接代表了不同的语义关系。

  • attacker (A)
  • vulnerability (V)
  • device (D)
  • platform (P)
  • malicious file (F)
  • attack type (T)

接着采用模式描述元关系的网络架构,图4展示了网络模式(知识图谱中本体概念)和一个网络实例。比如“软件设备属于系统平台”为模式图,“Office2012属于Windows系统软件”为实例。

最后定义元路径,指网络模式S=(N, R)的路径序列,其定义了符合关系。表1显示了HINTI中所考虑的元路径。例如,“攻击者(A)利用相同的漏洞(V)”的关系可以通过长度为2的元路径表示:

称为 AVA^T(P_4)AVAT(P4​) 来描述,这意味着两个攻击者利用相同的漏洞。同样, AVDPD^TV^TA^T(P_{17})AVDPDTVTAT(P17​) 描绘了IOC之间的密切关系,即“两个利用同一漏洞的攻击者入侵同一类型的设备,并最终摧毁同一类型的平台”。

4、HINTI总体架构

HINTI作为一个网络威胁智能提取和计算框架,能够有效地从威胁描述中提取IOC,并描述异构IOC之间的关系,以揭开新的威胁见解。如图5所示,HINTI由四个主要部件组成,包括:

  • 收集与安全相关的数据并提取即IOC
    使用Xpath提取安全数据(博客、安全论坛、新闻、公告),利用基于多粒度注意力机制的IOC识别方法收集信息。
  • 将IOC之间的相互依存关系建模为异构信息网络
    该网络可以自然地描述异构IOC之间的相互依赖关系。比如图4显示的模型,它可以捕获攻击者、漏洞、恶意文件、攻击类型、平台和设备之间的交互式关系。
  • 使用基于权重学习的相似性度量将节点嵌入到低维向量空间中
    元映射是构造HIN中IOC语义关系的有效工具。本文设计了17种元路径(见表1)来描述IOC之间的相互依赖关系,利用这些元路径,提出了一种基于权重学习的相似计算方法来将节点嵌入到这些关系,作为威胁智能计算的前提。
  • 基于图卷积网络和知识挖掘来计算威胁情报
    通过图卷积网络(GCN)来量化和测量IOC之间的相关性,本文提出的威胁情报计算框架可以在更全面的威胁环境中揭示更丰富的安全知识。

5、方法论

5.1基于多粒度注意力的IOC提取

近年来,BiLSTM+CRF在命名实体识别领域取得良好的性能,但不能直接应用于IOC提取,因为威胁文本通常包含大量不同尺寸和规则结构的对象。因此,本文提出一种基于多粒度注意机制的IOC提取方法,它可以提取具有不同粒度的威胁对象。

此外,它引入了具有不同粒度的新词嵌入功能,以捕获具有不同大小的IOC的特征,其模型如图6所示,利用自注意力机制来学习功能的重要性,以提高IOC提取的准确性。

由图可知,它将句子分割成了char(字符级)、1-gram、2-gram、3-gram,从而从多粒度注意力机制训练数据。LSTM计算公式如下:

接下来是多粒度注意力机制及LSTM+CRF的计算过程。同时,本文设计了一个客观的目标函数来最大化概率p(Y|X),以实现针对不同IOC的最高标签得分。通过求解目标函数,我们为n-gram分量分配正确的标签,根据这些标签,我们可以识别不同长度的IOC。我们基于多粒度注意力机制的IOC提取方法能够识别不同类型的IOC,其评估方法在第5部分提出。

5.2网络威胁情报建模

CTI建模是探索异构IOC之间复杂关系的一个重要步骤。本文通过引入HIN,以探索不同类型的IOC之间的交互关系。为了模拟IOCs之间复杂的依赖关系,我们在6种类型的IOC之间定义了以下9种关系:

  • R1:attacker-exploit-vulnerability
    攻击者利用漏洞
  • R2:attacker-invade-device
    攻击者入侵设备
  • R3:attacker-cooperate-attacker
    攻击者之间合作
  • R4:vulnerability-affect-device
    漏洞影响设备
  • R5:vulnerability-belong-attack type
    脆弱性属于攻击类型
  • R6:vulnerability-include-file
    漏洞包括恶意文件
  • R7:file-target-device
    恶意文件针对设备
  • R8:vulnerability-evolve-vulnerability
    脆弱性演化脆弱性
  • R9:device-belong-platform
    设备属于平台

基于上述9种关系,HINTI利用句法依赖解析器(the syntactic dependency parser)从威胁描述中自动提取IOC之间的9种关系,每种关系用三元组(IOCi,relation,IOCj)表示。同时进一步定义表1所示的17种元路径,以调查攻击者、漏洞、恶意文件、攻击类型、设备、平台之间的相互依赖关系。通过检查17种类型的元路径,HINTI能够传达更丰富的事件上下文,并揭示异构IOC的深层信息。

5.3威胁情报计算

本节说明了威胁智能计算的概念并设计了一个基于异构图卷积网络的一般威胁智能计算框架,它通过分析基于元路径的语义相似性来量化和衡量IOCs之间的相关性。在此,我们首先提供了一个基于异构图卷积网络的威胁智能计算的正式定义:

  • 给定威胁情报图G =(V,E)和元路径集M = {P1,P2,…,Pi}
  • i)基于元路径Pi计算IOC之间的相似度,以生成相应的邻接矩阵Ai
  • ii)通过将IOC的属性信息嵌入到向量空间中,构造节点Xi的特征矩阵
  • iii)进行图卷积GCN(Ai,Xi),通过遵循元路径Pi量化IOC之间的相互依赖关系,将其嵌入到低维空间中

威胁智能计算的目的是对IOC之间的语义关系进行建模,并基于元路径度量其相似度,可用于高级安全知识发现,如威胁对象分类、威胁类型匹配、威胁进化分析等。直观地说,由最重要的元路径连接的对象往往具有更相似的。

在本文中,我们提出了一种基于权重学习的威胁智能相似度测量方法,它利用自注意力机制来提高任意两个IOC之间的相似度测量方法的性能。此方法的形式化定义如下,定一组对称元路径集合 P=[P_m]_{m=1}^{M'}P=[Pm​]m=1M′​ ,任意两个IOC(hi和hj)之间的相似度S(hi,hj)定义为:

利用交叉熵损失来优化提出的威胁情报框架的性能:

使用这个框架,安全组织能够挖掘隐藏在iOC之间相互依赖的关系中的更丰富的安全知识。

6、数据集及实验结果

本文开发了威胁数据收集器,自动收集网络威胁数据,包括73个国际安全博客(例如,fireeye,cloudflare),黑客论坛帖子(例如,Blackhat,Hack5),安全公告(例如,Microsoft,Cisco),CVE详细说明和ExploitDB。已经收集了超过245,786个描述威胁事件的与安全相关的数据。为了训练和评估我们提出的IOC提取方法,利用B-I-O序列标记方法对5,000个文本中的30,000个样本进行了标注(60%训练集,20%验证集,20%测试集)。

最终模型最佳执行的超参数如表2所示,学习率对比了0.001,0.005,0.01,0.05,0.1,0.5。

本文提取的13种主要的IOC性能如表3所示。总的来说,我们的IOC提取方法在精确率、召回率、平均F1字都表现出了优异的性能。然而,我们观察到在识别软件和恶意软件时的性能下降,这是因为大多数软件和恶意软件是由随机字符串命名,如md5。

为了验证多粒度嵌入特征的有效性,我们评估了具有不同粒度(字符级、1-gram、2-gram、3-gram和多粒度特征)的提取性能。实验结果如图7所示,从图中可以观察到提出的多粒度嵌入特征优于其他特征,因为它利用注意机制同时学习多粒度的IOC特征的不同模式。

表4是本文方法与其他命名实体识别方法的性能对比,本文方法的效果更好。

  • (1) 与Standford NER和NLTK NER方法相比,它们一般使用新闻语料库训练,本文使用自定义收集的安全语料训练模型。
  • (2) 与基于规则的提取方法(如iACE和Stucco)不同,本文提出的基于深度学习的方法提供了一个性能更好的端到端系统来表示各种IOC。
  • (3) 与基于RNN的方法(如BiLSTM和BiLSTMCRF)相比,本文的方法引入了多粒度嵌入尺寸(字符级、1-gram、2-gram和3-gram),以同时学习不同大小和类型的IOC特征,可以识别更复杂和不规则的IOC。
  • (4) 本文的方法利用注意机制来学习不同尺度特征的权重,以有效地描述不同类型的特征,进一步提高了IOC识别的准确性。

7、威胁智能计算技术的应用

本文提出的基于异构图卷积网络的威胁智能计算框架可以用来挖掘异构IOC背后新的安全知识。在本节中,我们使用三个真实世界的应用程序来评估它的有效性和适用性:

  • CTI威胁分析和排名
  • 攻击偏好建模
  • 漏洞相似性分析

不同类型IOC的排名如表5所示,具有不同元路径的攻击偏好实验结果如图8所示。具体而言,本文首先利用提出的威胁智能计算框架将每个攻击者嵌入到一个低维向量空间中,然后对嵌入式向量执行DBSCAN算法,将具有相同偏好的攻击者聚集到相应组中。

图8显示了不同类型元路径下的前3个聚类结果,其中元路径 AVDPDTVTAT(P17) 在紧凑和分离良好的集群中性能最好,这表明它比其他元路径在描述攻击偏好方面具有更丰富的语义关系。


为了验证攻击偏好建模的有效性,我们确定了5297个不同的攻击者(每个唯一的IP地址被视为一个攻击者)。在标记样本和清洗数据后,进一步评估不同元路径在模型上的性能。在攻击建模场景中,我们只关注起始节点和结束节点都是攻击者元路径的情况,实验结果详见表6。显然,不同的元路径在描述网络入侵者的攻击偏好方面表现出不同的能力。使用P17的性能要优于其他元路径,这表明P17在描述网络罪犯攻击偏好时具有更高价值的信息,因为P17包含P1、P4、P5和P12∼P15的语义信息。

最后是漏洞相似性分析,基于不同元路径的漏洞相似性分析如图9所示。其中漏洞i可以简化为二维空间(xi、yi),每个集群表示特定类型的漏洞,聚类的准确率如表7所示。

讨论

  • Data Availability
  • Model Extensibility
  • High-level Semantic Relations
  • Security Knowledge Reasoning.

8、结论

本文的工作探索了威胁智能计算的一个新方向,旨在发现不同威胁向量之间关系的新知识。我们提出了一个网络威胁情报框架HINTI,通过利用异构图卷积网络来建模和量化不同类型IOC之间的依赖关系。我们开发了一个多粒度注意力机制来学习不同特征的重要性,并使用HIN来建模IOC之间的依赖关系。此外,本文提出了威胁智能计算的概念,并设计了一个基于图卷积网络的通用智能计算框架。

实验结果表明,基于多粒度注意力机制的IOC提取方法优于现有的先进方法,提出的威胁智能计算框架可以有效挖掘隐藏在IOC之间相互依赖关系中的安全知识,使关键的威胁智能应用,如威胁分析和排序、攻击偏好建模和脆弱性相似性分析。

在未来,我们计划开发一个基于HINTI的预测和推理模型,并探索预防性的应对措施,以保护网络基础设施免受未来的威胁。我们还计划增加更多类型的IOC和关系,以描述一个更全面的威胁环境。此外,我们将利用元路径和元图来表征IOC及其交互作用,以进一步提高嵌入性能,并在模型的准确性和计算复杂度之间取得平衡,还将研究基于HINTI的安全知识预测的可行性,以推断漏洞和设备之间潜在的潜在关系。

点击关注,第一时间了解华为云新鲜技术~

带你读AI论文丨RAID2020 Cyber Threat Intelligence Modeling GCN的更多相关文章

  1. 带你读AI论文丨ACGAN-动漫头像生成

    摘要:ACGAN-动漫头像生成是一个十分优秀的开源项目. 本文分享自华为云社区<[云驻共创]AI论文精读会:ACGAN-动漫头像生成>,作者:SpiderMan. 1.论文及算法介绍 1. ...

  2. 带你读AI论文丨用于目标检测的高斯检测框与ProbIoU

    摘要:本文解读了<Gaussian Bounding Boxes and Probabilistic Intersection-over-Union for Object Detection&g ...

  3. 带你读AI论文丨LaneNet基于实体分割的端到端车道线检测

    摘要:LaneNet是一种端到端的车道线检测方法,包含 LanNet + H-Net 两个网络模型. 本文分享自华为云社区<[论文解读]LaneNet基于实体分割的端到端车道线检测>,作者 ...

  4. 带你读AI论文:NDSS2020 UNICORN: Runtime Provenance-Based Detector

    摘要:这篇文章将详细介绍NDSS2020的<UNICORN: Runtime Provenance-Based Detector for Advanced Persistent Threats& ...

  5. 一文带你读懂什么是vxlan网络

    一个执着于技术的公众号 一.背景 随着云计算.虚拟化相关技术的发展,传统网络无法满足大规模.灵活性要求高的云数据中心的要求,于是便有了overlay网络的概念.overlay网络中被广泛应用的就是vx ...

  6. 少啰嗦!一分钟带你读懂Java的NIO和经典IO的区别

    1.引言 很多初涉网络编程的程序员,在研究Java NIO(即异步IO)和经典IO(也就是常说的阻塞式IO)的API时,很快就会发现一个问题:我什么时候应该使用经典IO,什么时候应该使用NIO? 在本 ...

  7. 实战 | 一文带你读懂Nginx反向代理

    一个执着于技术的公众号 前言 在前面的章节中,我们已经学习了nginx基础知识: 给小白的 Nginx 10分钟入门指南 Nginx编译安装及常用命令 完全卸载nginx的详细步骤 Nginx 配置文 ...

  8. 带你读Paper丨分析ViT尚存问题和相对应的解决方案

    摘要:针对ViT现状,分析ViT尚存问题和相对应的解决方案,和相关论文idea汇总. 本文分享自华为云社区<[ViT]目前Vision Transformer遇到的问题和克服方法的相关论文汇总& ...

  9. 跟我读论文丨Multi-Model Text Recognition Network

    摘要:语言模型往往被用于文字识别的后处理阶段,本文将语言模型的先验信息和文字的视觉特征进行交互和增强,从而进一步提升文字识别的性能. 本文分享自华为云社区<Multi-Model Text Re ...

随机推荐

  1. CF1437A Marketing Scheme 题解

    Content 有 \(t\) 组询问,每组询问给定两个整数 \(l,r\),问是否存在一个 \(a\),使得 \(\forall x\in[l,r]\),都有 \(x\mod a\geqslant\ ...

  2. JS获取url中query_str JavaScript RegExp 正则表达式基础详谈

    面我们举例一个URL,然后获得它的各个组成部分:http://i.cnblogs.com/EditPosts.aspx?opt=1 1.window.location.href(设置或获取整个 URL ...

  3. Spring学习(四)在Web项目中实例化IOC容器

    1.前言 前面我们讲到Spring在普通JAVA项目中的一些使用.本文将介绍在普通的Web项目中如何实例化Spring IOC容器.按照一般的思路.如果在Web中实例化Ioc容器.这不得获取Conte ...

  4. JAVA获取文件byte数组并输出进行展示和文件下载

    /** * 文件下载 */ @GetMapping(value = "/download") public void download(HttpServletResponse re ...

  5. Apache Shiro使用官方自带的生成AES密钥

    package test; import org.apache.shiro.codec.Base64; import javax.crypto.KeyGenerator; import javax.c ...

  6. 【LeetCode】284. Peeking Iterator 解题报告(Python)

    作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 题目地址:https://leetcode.com/problems/peeking-i ...

  7. 【剑指Offer】变态跳台阶 解题报告(Python)

    题目地址:https://www.nowcoder.com/ta/coding-interviews 题目描述: 一只青蛙一次可以跳上1级台阶,也可以跳上2级--它也可以跳上n级.求该青蛙跳上一个n级 ...

  8. 【LeetCode】91. Decode Ways 解题报告(Python)

    [LeetCode]91. Decode Ways 解题报告(Python) 标签(空格分隔): LeetCode 作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fux ...

  9. ZOJ 3960:What Kind of Friends Are You?

    What Kind of Friends Are You? Time Limit: 1 Second Memory Limit: 65536 KB Japari Park is a large zoo ...

  10. CS5210|低成本HDMI转VGA方案|CS5210参数说明

    Capstone最新推出的一款HDMI转VGA音视频转接线或者转换器方案芯片CS5210. 其设计的优势在于内置晶振,外围电路器件较少设计简单,芯片封装集成度较高,方案BOM成本低,相比其他方案产品更 ...