Basic terms and concepts
Vulnerability
Vulnerability
VUL,Vulnerability的缩写,泛指漏洞。漏洞是指计算机系统中存在可能被攻击者利用的弱点、缺陷或安全漏洞。这些漏洞允许未经授权的访问,如窃取敏感数据,或允许攻击者在目标计算机系统上执行任意操作,如安装恶意软件。此类漏洞可能表现在不同方面,包括软件代码、硬件组件、配置或设计。
CWE
CWE是社区开发的漏洞列表。它提供了一种标准化和结构化的方法来识别和分类这些漏洞,并为每个漏洞分配一个唯一的标识符。例如,CWE-119提到了臭名昭著的“缓冲区溢出”。遵循不同级别的概念抽象,CWE将漏洞组织在树状层次结构中,其中低级CWE ID与高级CWE ID相关联。例如,表示“越界写入”的CWE-787和表示“越界读取”的CWE-125都是属于CWE-119的较低级别类型。
POC
POC,Proof of Concept,中文意思是“概念证明”。这个短语会在漏洞报告中使用,漏洞报告中的POC则是一段说明或者一个攻击的样例,使得读者能够确认这个漏洞是真实存在的。
EXP
EXP,Ex ...
已经开发了各种方法来检测漏洞(Cui et al.,2022),包括静态、动态、一致性分析和模糊方法。正如我们将在相关工作部分进一步深入研究的那样,TrVD属于静态检测系列中基于学习的范式。在这种范式中,漏洞检测任务被公式化为一个分类问题。具体来说,在训练阶段,分类器 通过代码表示构建、特征提取和模型训练,从一组带有基本事实标签的训练样本中学习。在检测阶段,当出现一段可能看不见的源代码时, 执行代码表示构造和特征提取的相同过程。经过训练的分类器预测漏洞的存在,或者进一步精确定位特定的漏洞类型。
可用性
其他被广泛采用的代码表示包括CFG、PDG和各种基于图形的变体。这些表示更明确地描述了代码元素之间的控制或数据依赖关系,然而,当面对不可执行或不完整的代码片段时,很难精确推导出这些依赖关系。因此,它们可能并不总是适用于漏洞检测。按照约定,AST可以很容易地为任何代码片段构建,例如文件、函数或单个语句。
效率
与需要相对复杂和耗时的控制或依赖性分析的代码表示(例如CFG、PDG和代码小工具)相比,从代码构建AST要简单得多,重量轻,从而有助于提高整个检测方法的效率。
语义综合性
那些人工 ...
低秩分解的几何解释
低秩分解(Low-rank factorization)也可以通过几何的方式来解释,帮助我们理解其含义和应用。
假设我们有一个m×n的矩阵A,我们希望对其进行低秩分解,即将其分解为两个低秩矩阵的乘积:A ≈ UV^T。其中,U是一个m×k的矩阵,V是一个n×k的矩阵,k远远小于m和n。
几何上,可以将矩阵A视为描述一个向量空间中的点集。每一列可以看作是一个向量,而这些向量组成了一个n维的向量空间。低秩分解可以理解为通过两个低维的向量空间的点集的线性组合来近似表示原始向量空间中的点集。
具体地说,U矩阵的列向量可以看作是原始向量空间的基向量,它们将原始向量空间中的点集映射到一个低维的子空间。V矩阵的列向量则表示这个低维子空间中的基向量。通过对这两个子空间的基向量的线性组合,我们可以近似表示原始向量空间中的点集。
这个分解可以理解为以下几个几何步骤:
U矩阵的列向量将原始向量空间中的点集映射到一个低维的子空间。这个子空间具有较低的维度k。
V矩阵的列向量表示这个低维子空间中的基向量,用于描述子空间中的点集。
通过对U和V的线性组合,将低维子空间中的点集映射回原始向量空 ...
Deep Learning
未读Siamese网络
问题背景
分类问题:
分类数量较少,每一类的数据量较多,比如ImageNet、VOC等。这种分类问题可以使用神经网络或者SVM解决,只要事先知道了所有的类。
分类数量较多(或者说无法确认具体数量),每一类的数据量较少,比如人脸识别、人脸验证任务。
解决方法:
提出一种思路:将输入映射为一个特征向量,使用两个向量之间的距离来表示输入之间的差异,如图像语义上的差异。
Siamese网络,每次需要输入两个样本作为一个sample对计算损失函数。
提出Contrastive Loss用于训练。
应用场景
孪生神经网络用于处理两个输入"比较类似"的情况。伪孪生神经网络适用于处理两个输入"有一定差别"的情况。比如,我们要计算两个句子或者词汇的语义相似度,使用siamese network比较适合;如果验证标题与正文的描述是否一致(标题和正文长度差别很大),或者文字是否描述了一幅图片(一个是图片,一个是文字),就应该使用pseudo-siamese network。也就是说,要根据具体的应用,判断应该使用哪一种结构,哪一种L ...
可解释机器学习
作者:SkylaSun
链接:https://zhuanlan.zhihu.com/p/570926717
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
可解释机器学习
可解释性方法将机器学习模型的决策过程转变成人类更能理解的结果。通用可解释性方法一般仅基于特征进行解释,无法处理图结构信息,在处理漏洞发掘场景下的图数据时,作者将边的相关性分数传递到邻接节点中,从而产生一个节点级别的解释。
CAM(类别激活映射图),一种特征可视化技术,最初为解释CNN模型而设计,将深层网络中学习到的语义信息,通过权重与输出节点联系起来。
线性近似,通过梯度与输入,计算每个特征对分类输出的线性化贡献。
GradCAM,将线性近似方法应用于GNN层的中间激活函数,而非输入激活,产生了类似CAM的优势。
SmoothGrad,对多个噪声输入进行节点特征梯度平均,并且产生了抗噪声的解释。
IG(积分梯度),改进了线性近似,过程中参考了反事实基线输入G‘,并且使用延实际输入G的直线路径平均的梯度,以及G和G’之间的输入激活。
Gradient or Salie ...
Manuscripts
未读1.列表
{itemize}命令【无序列表】
{itemize}命令对文本进行简单的排列,不是采用序号,默认是用实心圆点符号进行排列。这个命令需要和\item配合使用。
默认为实心圆点符号
12345\begin{itemize} \item one \item two \item ...\end{itemize}
使用其他符号进行排列
12345\begin{itemize} \item[*] one \item[*] two \item[*] ...\end{itemize}
{enumerate}命令【有序列表】
{enumerate}命令采用序号对文本进行简单的排列,默认是用1,2,3进行排列。这个命令需要和\item配合使用。
12345\begin{enumerate} \item one \item two \item ...\end{enumerate}
使用其他形式的编号:
{en ...
Manuscripts
未读algorithm最后出现=0
解决方法:
注释掉"\usepackage{algpseudocode}"
因为\usepackage{algpseudocode} %This introduces extra zero at the end of algorithm
table位置问题
如果table默认置顶,在.sty文件中定义了table环境,那么可尝试将
1\begin{table}[h]
改为
1\begin{table}[pos=h]
Manuscripts
未读Editorial Manager®
C/C++
未读创建一个匿名函数并执行。Objective-C采用的是上尖号^,而C++ 11采用的是配对的方括号[]。实例如下:
12345678#include <iostream>using namespace std;int main(){ []{ cout << "Hello,Worldn"; }();}
我们也可以方便的将这个创建的匿名函数赋值出来调用:
12345678910#include <iostream>using namespace std;int main(){ int i = 1024; auto func = [](int i) { // (int i) 是指传入改匿名函数的参数 cout << i; }; func(i);}
捕获选项
[] Capture nothing (or, a scorched earth strategy?)
[&] Ca ...
Deep Learning
未读Triplet Loss
💡 TripletLoss案例
【对比学习】| Triplet loss
MXNet/Gluon 中 Triplet Loss 算法
1.什么是triplet loss 损失函数?
triplet loss 是深度学习的一种损失函数,主要是用于训练差异性小的样本,比如人脸,细粒度分类等;其次在训练目标是得到样本的embedding任务中,triplet loss 也经常使用,比如文本、图片的embedding。本文主要讨论,对于训练样本差异小的问题。
2.tripletloss原理
损失函数公式:
。输入是一个三元组,包括锚(Anchor)示例、正(Positive)示例、负(Negative)示例,通过优化锚示例与正示例的距离小于锚示例与负示例的距离,实现样本之间的相似性计算。a:anchor,锚示例;p:positive,与a是同一类别的样本;n:negative,与a是不同类别的样本;margin是一个大于0的常数。最终的优化目标是拉近a和p的距离,拉远a和n的距离。其中样本可以分为三类:
**easy triplets:**即
,这种情况不需要 ...