类型 | 内容 |
---|---|
标题 | Neural packet classification |
时间 | 2019 |
会议 | SIGCOMM ‘19: ACM SIGCOMM 2019 Conference |
DOI | 10.1145/3341302.3342221 |
在MacTeX官网安装TeXShop
搜索扩展LaTeX WorkShop
使用快捷键cmd
+ ,
打开VScode的设置,点击拓展
->LaTeX
,或者直接在搜索栏中输入recipes
或tools
然后点击在setting.json中设置
修改两项:latex-workshop.latex.tools
和latex-workshop.latex.recipes
"latex-workshop.latex.tools": [
{
"name": "xelatex",
"command": "xelatex",
"args": [
"-synctex=1",
"-interaction=nonstopmode",
"-file-line-error",
"-pdf",
"%DOC%"
]
},
{
"name": "latexmk",
"command": "latexmk",
"args": [
"-synctex=1",
"-interaction=nonstopmode",
"-file-line-error",
"-pdf",
"%DOC%"
]
},
{
"name": "pdflatex",
"command": "pdflatex",
"args": [
"-synctex=1",
"-interaction=nonstopmode",
"-file-line-error",
"%DOC%"
]
},
{
"name": "bibtex",
"command": "bibtex",
"args": [
"%DOCFILE%"
]
}
],
"latex-workshop.latex.recipes": [
{
"name": "xelatex -> bibtex -> xelatex*2", //如果带有BibTeX,要编译三次
"tools": [
"xelatex",
"bibtex",
"xelatex"
]
},
{
"name": "pdflatex -> bibtex -> pdflatex*2",
"tools": [
"pdflatex",
"bibtex",
"pdflatex",
"pdflatex"
]
},
]
\textbf{XXX}
\emph{XXX}
\underline{XXX}
\textbf{\emph{\underline{XXX}}}
\usepackage{caption}
\usepackage{graphicx, subfig}
\begin{document}
\begin{figure}
\centering
\includegraphics[width=.8\textwidth]{1.png} %1.png是图片文件的相对路径
\caption{best} %caption是图片的标题
\label{img} %此处的label相当于一个图片的专属标志,目的是方便上下文的引用
\end{figure}
\end{document}
\includegraphics [width=0.80\textwidth]{graphics.eps}
使得插入图形的宽度为文本行宽的 80%。
当与 calc 宏包配合使用 时,下面的命令可令图形的宽度比文本行宽少 2 英寸:
\includegraphics [width=\textwidth-2.0in]{graphics.eps}
创建bib文件
\bibliographystyle{ieee_fullname}
\bibliography{egbib} %bib文件名
需要编译4次引用才能正确显示!
如果PDF中有非参考文献部分的格式错误,可以再执行编译一次pdfLaTeX.这样所有的格式都正确了。
记录一次赏金,内容主要是用pandas处理数据并做回归,美国某大学的作业 题目地址:https://github.com/tylerharter/cs320/tree/master/s20/p6
todo….
类型 | 内容 |
---|---|
标题 | Understanding Linux Malware |
时间 | 2018 |
会议 | 2018 IEEE Symposium on Security and Privacy (S&P) |
DOI | 10.1109/SP.2018.00054 |
作者共4位,3位来自Eurecom,一位来自思科公司
文章提出了为Linux下恶意软件定制的恶意软件分析管道收集的10548个恶意样本的研究结果
以往恶意软件主要在Windows系统上,且安全界都把精力放在Windows的恶意软件上。 目前由于Iot设备的推广,还有嵌入式设备,Linux下的恶意软件增多
文章贡献:
分析Linux恶意软件有很多挑战
基于Linux的恶意软件可以针对不同的目标,如路由器、打印机、监控摄像头、智能电视或医疗设备。这使分析的过程非常复杂。实际上,如果没有关于目标的正确信息,很难正确配置正确的执行环境。
计算机体系结构:Linux支持数十种不同的体系结构,例如一篇关于Mirai僵尸网络的论文1,支持了MIPS32,ARM32,X86三种结构,但这三种结构只占总数据集的32%。且ARM有很多不同的CPU结构。
加载库:被分析的环境缺少一些动态链接库,如uClibc或musl
操作系统:要区分ELF程序是为Linux系统设计还是其他如FreeBSD或安卓设计的非常困难。
一些恶意软件使用静态链接,将所需要的依赖项都编译进二进制文件中,使得其更具移植性(其实目标环境没有安装该依赖项,也将正确执行)。但是兼容性较差,如果内核ABI和它们期望的不同,将导致程序崩溃。
一些恶意软件是假设以Root权限运行的(对于某些嵌入式目标)。而沙盒通常是以普通用户的身份执行恶意软件,如果给管理权限将会使程序行为的观察变得复杂,
这是第一个对恶意软件进行全面分析的工作,并且缺乏全面的数据集。少数基于Linux恶意软件的研究只关注僵尸网络,因此使用蜜罐来构建一个具有代表性的数据集
使用VirusTotal Intelligence API来获取在2016年11月至2017年11月之间提交的ELF文件的报告。根据报告的内容,我们每天下载200个候选样本,为每天观察到的每个系列选择至少一个样本。 我们还将我们的选择分为两组:从具有超过五个AV阳性匹配项的样本中抽取140个样本,以及在AV分数介于1-5之间的60个样本。
ELF文件格式中包含的某些字段在运行时是操作系统所必需的,因此需要提供有关应用程序应在其上运行的体系结构以及文件中包含的代码类型(例如,可执行或共享对象)的信息。我们实现了ELF格式的自定义解析器,因为现有的解析器常常无法处理格式错误的字段、意外值或丢失的信息。
两个目的:首先,筛选出与我们的分析无关的文件。例如共享库、核心转储、损坏的文件或为其他操作系统设计的可执行文件(例如,当样本导入Android库时)。其次,识别异常的文件结构,这些结构虽然不会阻止样本运行,但可以用作反分析例程,并阻止现有工具正确处理该文件。
从VirusTotal报告中提取每个样本的AV标签,输入到AVClass工具中,获取这个恶意软件家族的规范化名称。 AVClass2实现了一种最先进的技术,根据恶意软件的样本检测出一组AV标签中的别名。因此,每当它能够输出一个名称时,就意味着不同的杀毒软件对该恶意软件所属的类(族)有一个普遍的共识。
我们的静态分析阶段包括两个任务:二进制代码分析和包检测。
两种:在模拟器中执行五分钟和自定义打包分析和解包尝试。 对于仿真实现了两种类型的动态沙盒:1. 基于KVM的沙箱,支持X86和X86-64。2. 基于QEMU的沙箱,支持ARM 32位小字节序,MIPS 32位大字节序,和PowerPC 32位。 这五个沙箱在一个外部虚拟机中,根据结构分配不同的恶意软件样本,并设置了多个快照,每个快照对应着不同的配置(例如在普通用户或root下执行,使用glibc或uClibc)
使用SystemTap3来实现内核探测(kernel probes,kprobes)和用户探测(user probes,uprobes)。根据其文档,SystemTap应该在各种不同的体系结构(如x86、x86-64、ARM、aarch64、MIPS和PowerPC)上受支持,但实际上我们需要修补它的代码,以使用o32 ABI支持ARM和MIPS。我们的补丁包括对系统调用号、CPU寄存器命名和偏移量的修复,以及从堆栈中提取系统调用参数所需的例程。 我们使用了SystemTap来收集每个系统调用及其参数和返回值,以及从中调用syscall的指令指针。我们还将glibc重新编译以添加uprobes功能,以便在可能的情况下收集有关字符串和内存操作函数的附加信息。
在执行结束时,每个沙箱都会返回一个文本文件,其中包含系统调用和用户空间功能的完整跟踪。 然后立即对该跟踪进行解析,以识别沙箱的有用反馈信息。 例如,此初步分析可以标识缺少的组件(例如库和加载程序),或者检测样本是否测试了其用户权限或尝试执行由于权限不足而失败的操作。 在这种情况下,我们的系统将立即重复执行样本,但这次具有root特权。 如第V-D节所述,我们稍后将比较不同用户收集的两条跟踪作为差异分析的一部分,以识别特权如何影响样本行为。 最后,初步跟踪分析还可以向分析人员报告导致样本无法在我们的系统中运行的任何错误。 作为这些警告的样本,我们遇到了许多ARM样本,这些样本由于其LOAD段的物理地址和虚拟地址之间的四字节未对齐而崩溃。 这些样本可能旨在感染基于ARM的系统,该系统的内核将通过考虑其物理地址来存储映射段,而这在常见的桌面Linux发行版中是不会发生的。 我们扩展了系统,其组件旨在通过查看ELF标头来识别这些情况,并在将数据传递至动态分析阶段之前修复数据对齐方式。
为了避免妨碍执行和丢失重要的代码路径,我们提供了部分网络访问样本,同时监视通信量以查看是否有滥用的迹象。尽管不是一个理想的解决方案,但在其他行为分析实验中已经采用了类似的方法14,因为这是观察样本全部行为的唯一方法。
最后,为了动态地解压未知的UPX变体,我们开发了一个基于Unicorn的工具。系统在多个体系结构上模拟指令,其行为类似于一个小内核,在解包期间导出UPX使用的有限系统调用集(支持不同系统调用表和系统调用ABIs的组合)。正如我们在第V-E节中所解释的,这种方法允许我们在数据集中自动解包除三个恶意软件样本之外的所有样本。
Antonakakis et al., “Understanding the Mirai Botnet,” inProceedings of the USENIX Security Symposium, 2017. ↩ ↩2
M. Sebasti ́an, R. Rivera, P. Kotzias, and J. Caballero, “AVclass: A Tool for Massive Malware Labeling,” inRAID, 2016. ↩
SystemTap.” https://sourceware.org/systemtap/. ↩
“Malware analysis sandbox aggregation: Welcome Tencent HABO.” http: //blog.virustotal.com/2017/11/ malware-analysis-sandbox-aggregation. html. ↩