Graph U-Nets
关于图卷积神经网络池化方法论文 “Graph U-Nets” 的读书笔记。
图池化
图嵌入任务和图片像素级预测有着天然的对应关系,现在在图像识别领域,已经有像 U-Nets 成熟的编码解码器可以完成图像分类任务,但是在图数据上还没有相关的研究。
所以提出作者提出一种新型的图像池化(gPool)方法和图像上池化(gUnpool)方法。
gPool - 编码器
使用可训练的投影向量 p,将所有的点投影到 1d 上,获得投影向量 y
池化选取 y 中前 k 个
根据 2 中选取的 k 个节点,获取池化后子图所需要的特征矩阵、邻接矩阵
gUnpool - 解码器
在进行 gPooling 操作时需要记录选择的点的位置信息并利用这些信息将点放回原始位置
Graph U-Nets 架构
AI Sec 简介
华为 AI 安全白皮书读书笔记,AI Sec 简介。
AI 安全风险
根据华为 AI 安全白皮书中所述,AI 系统在设计上面临五大安全挑战:
软硬件安全(从软件到硬件到模型,都可能存在漏洞或者后门,攻击者能够利用这些漏洞实施高级攻击)
数据完整性(训练时可能被添加了恶意数据,查询数据被添加了恶意噪声,导致模型误判)
模型保密性(服务提供者只提供查询服务,不直接公布模型及参数,但是攻击者通过多次查询能够生成相似的模型)
模型鲁棒性(训练模型时样本往往覆盖性不足,使得模型的鲁棒性不足;面对恶意样本时,无法给出正确的判断结果)
数据隐私(在用户提供训练数据的场景下,攻击者能够通过反复查询训练好的模型获得用户的隐私信息)
AI 模型面临的典型攻击方式
闪避攻击
闪避攻击是指通过修改输入,让 AI 模型无法对其正确识别。闪避攻击是学术绝研究最多的一类攻击,下面是学术界提出的最具代表性的三种闪避攻击:
**对抗样本:**深度学习系统容易受到精心设计的输入样本的影响,通常是在正常样本上添加人眼难以察觉的微小扰动,欺骗模型误判。
**物理世界中的攻击:**在模型应用后,对真实世界中的路标进行涂改 ...
Pooling in Graph Convolutional Neural Networks
该论文对结合不同网络结构对图神经网络上的池化操作做了评估。在图分类数据集上对图卷积神经网络中的图卷积操作和图池化操作进行评估。
池化操作
池化操作是卷积神经网络中一个重要的操作,是一种非线性的下采样操作。在卷积神经网络中,池化曾可以对特征降维,因此可以降低计算量、内存占用和参数数量。
正因为如此,池化也使得深层网络成为可能,并且有助于控制过拟合。
图池化层
Sort Pooling
SortPooling 不使用求和与平均计算特征,而是根据固定一致的顺序对节点进行排序,输出一个具有固定集合的表示以便可以使用 CNN 进行进一步的训练。
节点排序依据该节点在图结构上的角色。利用图卷积和 Weisfeiler-Lehman 子树核之间的连接,SortPool 对最后一层的节点特征进行单独排序,然后根据前一层将序排列,最后选择前 k 个节点。
Differentiable Pooling
DiffPool 是一个微分图池化模块,它通过多个池化层聚合节点来学习图的层次表示。
与 GraphSAGE、SortPool 和某些图核方法相比,DiffPool 的预测准确度显著提高,尤其是当全局特征 ...
软件安全分析与应用:移动智能终端应用软件安全性分析
软件安全分析与应用第11章移动智能终端应用软件安全性分析读书笔记。
移动智能终端应用软件安全性分析
Android 系统安全框架
权限机制
沙箱
Android 软件典型安全问题
隐私窃取
应用重打包
组件安全问题
静态分析
权限分析
组件分析
代码分析
重打包应用检测
动态分析
数据流分析
数据流分析工具
动态行为分析
动态行为分析工具
实际案例
Android 系统安全框架
权限机制
权限机制是 Android 安全机制的基础,Android 系统通过权限机制来控制每个应用可访问的资源或可执行的操作。
沙箱隔离
Android 系统除了为每个应用分配了不同的 UID 以使用更细粒度的权限管理机制,还未每个应用分配了一个 Dalvik 虚拟机实例,每一个应用程序及其 Dalvik 虚拟机运行于一个独立的 Linux 进程空间。
底层 linux 系统的进程内存管理机制确保进程内容是独立的,而应用的权限确保不同应用的资源不能互相访问,于是形成了天然的隔离沙箱。
Android 软件典型安全问题
隐私窃取
在用户不知情的情况下获得用户信息。
应用重打 ...
软件安全分析与应用:网络协议逆向分析
软件安全分析于应用第10章网络协议逆向分析读书笔记。
网络协议逆向分析
格式逆向
字段划分
字段间关系识别
字段功能语义恢复
状态机恢复
消息类型识别
状态机推断和化简
格式逆向
字段划分
基于分隔符的划分方法
基于消息处理指令上下文差异的划分方法
基于字段来源回溯的划分方法
字段间关系识别
基于分隔符作用域的字段关系恢复
长度字段识别
字段功能语义识别
基于字符串比较指令分析的关键字识别
基于运行环境语义的字段语义恢复
状态机恢复
消息类型识别
基于关键字的消息类型识别
基于消息文本特征的分类方法
状态机推断和化简
遍历
合并
软件安全分析与应用:软件漏洞挖掘与分析
软件安全分析与应用第9章软件漏洞挖掘与分析读书笔记。
软件漏洞挖掘与分析
基础知识
典型漏洞类型
溢出(堆、栈、整数)
重用(use after free)
web漏洞(sql、xss)
漏洞利用
漏洞防护
软件漏洞机理分析
脆弱点分析
路径分析
内存分布分析
分析实例
软件漏洞利用
攻击链构造
攻击路径出发
保护机制绕过
基础
利用漏洞可以进行:
执行代码
信息窃取
权限提升
拒绝服务
认证绕过
典型漏洞类型
栈溢出
堆溢出
重用(use after free)
整数溢出
其他(sql、xss)
漏洞利用技术
内存喷射技术的代表技术是堆喷射技术(heap spray),主要用于攻击IE、Firefox浏览器等常用软件。传统堆喷射技术的关键在于,在内存中申请大量的具有固定大小的对象,在其中填入相同内容,每一个对象中间都含有若干NOP指令序列和攻击代码,这样使得进程的地址空间被大量的注入代码所占据。在程序的控制流被劫持时,大量的包含攻击代码的碎片能够提高EIP转移达到目标的概率,碎片中的NOP指令形成指令缓冲区,使得EIP转移目标仅需要在一定 ...
软件安全分析与应用:恶意代码检测与分析
软件安全分析与应用第8章恶意代码检测与分析读书笔记。
恶意代码检测与分析
恶意代码分析基础
恶意代码分类
恶意代码分析的目的
典型分析流程
软件漏洞利用分析
静态分析
杀毒软件扫描
文件类型确定
文件哈希计算
字符串信息提取
文件元数据提取
混淆代码识别
代码反汇编
动态分析
动态分析环境构建
动态行为分析
动态调试分析
反虚拟化分析对抗
反自动化分析对抗
恶意代码分类
蠕虫 worm
木马 trojan horse
后门 backdoor
僵尸程序 bot
下载器 downloader
rootkit
恐吓软件 scareware
勒索软件 ransomware
静态分析
使用现有工具进行静态分析,首先确认是否该样本已经被主流安全工具确认为恶意代码。
动态分析
静态分析获得恶意代码的初步信息后,可以使用动态分析技术,通过运行可以代码,观察其行为。
动态分析包含一下步骤:
动态分析环境构建
动态行为分析
动态调试分析
反虚拟化分析对抗
反自动化分析对抗
动态行为分析
系统、进程监控其实常用的系统级别分析软件,wireshark 是常用的网络流量监 ...
软件安全分析与应用:污点传播分析
软件安全分析与应用第7章污点传播分析读书笔记。
污点传播分析
基本原理
主要方法
污点源识别
污点内存映射
污点动态跟踪
传播规则设计
污点误用检测
典型系统
TaintCheck 系统
TEMU 系统
AOTA 系统
典型实例分析
分析环境搭建
污点传播过程
污点回溯分析
应用领域
主要应用领域有:
恶意代码检测(恶意代码通常依赖特定的外部数据)
软件漏洞挖掘(构造测试样本触发漏洞)
敏感数据泄漏(跟踪敏感数据)
主要方法
污点源识别
污点分析的第一项工作就是进行污点源的识别,而完整、高效的污点源识别是保证后续污点分析正确性的前提。
目前,主要的污点源识别方法分为两类:
无约束识别,所有外部数据识别为污点数据
有约束识别,只将特定数据识别为污点数据
污点内存映射
映射过程可以分为三种方法:
简单映射
页表映射
复杂映射
污点动态跟踪
污点动态跟踪是污点分析主要的中间过程,也是整个分析过程中最为复杂的一项。在动态跟踪过程中,一般需要涉及3个阶段,即:
污点指令监控
污点传播计算
污点状态更新(影子内存更新)
传播规则设计
规则的完备性和 ...
软件安全分析与应用:模糊测试
软件安全分析与应用第6章模糊测试读书笔记。
模糊测试
基本原理与组成
基础方法与技术
模糊测试优化方法
灰盒
白盒
基于反馈的模糊测试
分布式模糊测试
分布式控制结构
分布式模糊测试策略
动态适应机制
典型工具与案例
Peach
Sulley
系统组成
数据生成模块
负责批量生成测试用例,策略包含数据的语法格式与数据生成方法。数据生成方法包括字段数据的生成策略和字段数据的组合策略。
字段生成
约束字段计算
复合字段组装
文件生成
环境控制模块
负责测试对象的控制和运行环境的维护。测试对象控制的目标包含测试目标软件的启动、暂停、终止以及数据交互过程,此外还有测试服务目标网络连接的创建、传输、断开等。
进程管理
环境管理
测试数据交互
残余信息清理
状态监控模块
检测对象的运行状态,捕获程序执行过程中出现的异常,记录触发该异常的测试用例。
异常捕获
异常现场保存
流量捕获
进程监控
优化方法
灰盒
通过逆向分析程序二进制代码和输入数据的标准格式,生成有针对性的违背数据格式规范的测试数据,从而提高模糊测试的效率。
白盒
结合符号执行 ...
软件安全分析与应用:符号执行
软件安全分析与应用第5章符号执行读书笔记。
符号执行
基本模型
程序语义
符号执行树
动态符号执行技术
SAGE
并行符号执行技术
SCORE
Cloud9
SAGEN
选择符号执行技术
符号执行案例
基本模型
使用符号变量代替具体值作为程序或者函数的参数,并模拟执行程序中的指令,各指令的操作都基于符号变量进行,其中操作数的值由符号和常量组成的表达式来表示。
符号执行中的程序语义:
符号数据对象
程序语句(变量操作/跳转语句)
程序执行状态
符号执行树
执行树是用来描述程序执行路径的树形结构。执行树中的一个节点对应程序中的一条语句,程序语句之间的执行顺序或跳转关系对应执行树中节点间的边。
执行树具有以下特点:
每一个叶节点都有一组对应输入,使得程序执行到该逻辑分支
不存在两个叶节点存在相同的输入
约束求解
每个叶节点对应的执行路径可以由一组具体输入指导程序运行得到,这一组输入值可以借助约束求解值得到。
现在的主流约束求解器主要基于两种理论模型:
SAT问题(求解由布尔变量集合所构成的布尔函数,检验是否存在变量的一种分布使得该函数的取值为1)
S ...