Let's GoSSIP!第四届GoSSIP安全暑期学校小记

2018年7月18日-22日,由上海交通大学密码与计算机安全实验室(LoCCS)主办的第四届“软件与移动智能系统安全”暑期学校在上海交通大学闵行校区如期举行,本次暑期学校从系统安全、应用安全和密码软件安全三个方面设置了若干主题讲座,由国内外软件安全研究领域的著名研究专家主讲,通过学术前沿讨论、现实案例分析,以及热门技术实践等形式,深入浅出的覆盖了二进制安全分析、移动应用安全分析、智能设备安全分析、密码应用安全分析等多方面的安全分析技术教学。我们对整个暑期学校的内容进行了记录,在此分享给所有关注我们的同学和同行,希望能让更多人了解活动的全貌。

图为签到现场

Day 1

7月18日上午9点,第四届“软件与移动智能系统安全”暑期学校正式开幕,上海交通大学密码与计算机安全实验室软件与系统安全小组(GoSSIP)负责人张媛媛教授致开幕词。


上午的课程由来自加州大学河滨分校的钱志云教授主讲,题目是“攻击现代操作系统的网络协议栈”。钱志云教授目前为加州大学河滨分校终身教授,在国际四大顶级安全会议上发表了多篇论文,他所感兴趣的研究点为网络安全,侧信道攻击和程序分析,尤其对漏洞挖掘情有独终。下图右一为钱志云教授。

钱教授在课程上介绍了通过TCP协议实现中的一些特性,完成对世界上任意两IP地址之间TCP连接的劫持攻击。学习过计算机网络基础的人都知道TCP包中包含一个TCP序列号,对于每一个TCP连接,TCP序列号的初始值都是随机的。劫持一个TCP连接需要正确发送接收方所期望的序列号的值,而这也是钱教授的研究所提到的侧信道攻击中的主要内容。针对这一目标,他们提出了几种攻击方法:

  1. 通过在目标客户端放置恶意的后台程序,监控收到的错误序列号包的数量从而得到是否为正确序列号的信息;
  2. 通过某些路由器的特性,即丢掉序列号不正确的包,来得到该信息;
  3. 通过某些操作系统会对不正确的数据包作出响应,从而得到该信息;
  4. 通过Wi-Fi的半双工信道通信特征放大以得到可以测量的时间差,从而得到该信息。

值得一提的是第四种攻击方法不依赖于任何客户端软件,操作系统。它所依赖是WIFI通信的基本特性,而这一特征是WIFI通信的基础,因此该漏洞现在仍然是可以利用的,并且在将来五到十年内几乎没有办法妥善的解决。


下午的课程由来自东南大学的凌振教授讲授,题目为“匿名网络的神秘流量揭秘”。凌振教授的研究兴趣为IoT设备,移动设备以及网络安全。在暗网通讯协议分析研究领域,凌教授走在中国乃至世界的前列。

凌教授首先向大家介绍了什么是暗网通讯,暗网通讯的主要的应用Tor以及展示了一些暗网通讯的实例。随后,凌教授详细阐述了Tor Cell Format与Tor Relay Cell Format(Tor 协议包结构),让大家对暗网通讯协议有一个清晰的框架结构。紧接着,凌教授向大家讲述Tor通讯协议中所用到的密码学组件的使用,TLS安全套接字层在Tor协议通讯中所扮演的角色,Tor协议通讯的步骤,向大家完整的展现了Tor暗网通讯的方方面面。最后,凌教授讲述如何通过搭建网关路由,并以中间人攻击的方式攻击Tor通讯协议。凌教授讲到他们的团队曾经搭建了一个网关路由用以检测Tor通讯并尝试对Tor通讯进行审查 。


Day 2

7月19日上午的课程是由来自于俄亥俄州立大学网络系统与计算机安全实验室的林志强教授为我们带来,课程的题目是“二进制代码的自动化重写技术”。林志强教授是美国俄亥俄州立大学网络系统与计算机安全实验室(SecLab)负责人,在移动与IoT安全、软件安全和系统安全研究领域取得了令人瞩目的成就,在过去的5年时间内在国际顶级安全学术会议(Oakland,Usenix Security,CCS,NDSS,ACSAC,RAID)上发表了超过20篇学术论文,同时还在ISCA,FSE,ISSTA,WWW,CGO,VEE,USENIX-ATC,DSN等知名学术会议上发表了大量研究论文。此外,林教授在过去一段时间内担任过CCS,NDSS,Usenix Security,WWW,ACSAC,RAID,AsiaCCS的程序委员会成员,并长期担任IEEE Transactions on Dependable and Secure Computing (TDSC)期刊的编辑工作,是国际信息安全研究领域活跃的学术专家。下图右一为林志强教授。

林志强教授给我们带来的课程的内容是关于二进制代码的自动化重写技术,其中的关键技术就是二进制代码的重构与恢复。林教授在课程中首先带领大家熟悉了常见的二进制代码分析工具的使用,例如静态分析工具IDA Pro,动态分析工具PIN和QEMU,以及符号执行所使用到的工具Angr等。其中,林教授重点给我们介绍了PIN和QEMU这两款重量级工具,以及相应的插件开发。最后,林教授还给我们分享了关于二进制代码重写技术所面临的挑战,并给出了相应的解决方案(也是他们发表在NDSS'18的研究工作)。


下午课程的题目是“二十年目睹ptmalloc攻击之怪现状”,由来自于腾讯科恩实验室的谢天忆主讲。谢天忆是腾讯科恩实验室的高级研究员,国际顶级的CTF(Capture The Flag) 选手,现任腾讯eee及腾讯A0E战队的队长,他也是我们GoSSIP小组培养的优秀毕业生(2015届),曾任上海交通大学0ops战队队长。谢天忆率领战队先后获得过CodeGate CTF 2015冠军、DEF CON CTF 2016亚军、DEF CON CTF 2017季军等国际顶级CTF赛事的荣誉,并曾获得过Mobile Pwn2Own总冠军Master of Pwn(世界破解大师)。


在授课过程中,谢天忆详细的讲解了关于Linux上内存分配函数的过去、现在以及将来,并给我们现场演示了堆溢出的各种场景以及相应的利用方式。中间的技术细节囊括了从Arena结构和各种Bin(包括FastBin、NormalBin、LargeBin和UnsortBin等)的作用到各种堆溢出技术以及每一种溢出方式所对应的利用手段等。


Day 3

7月20日上午课程的题目是“深入挖掘移动App中的隐私泄漏问题”,由来自复旦大学计算机科学技术学院的张源副教授为我们带来。张教授于2009年获得南京大学学士学位,并于2014年获得复旦大学博士学位,目前是复旦大学系统软件与安全实验室的负责人。张教授的研究兴趣遍及系统安全和软件分析的各个领域,特别是Android安全性,静态代码分析,管理运行时,他曾多次担任IEEE Transactions on Information Forensics and Security,IEEE Transactions on Mobile Computing,ACM Transactions on Information Systems,Computer & Security,SCIENCE CHINA Information Sciences等期刊的评审以及NDSS,ACSAC,AsiaCCS,SecureComm,RAID,WiSec,SPSM等会议的评审。

张教授在本次课程中从用户隐私保护、恶意软件对抗、软件漏洞与缺陷三个方面由浅入深地向我们讲述了当今移动APP存在的问题,并分享了他在这个领域多年的研究成果和当今的针对侵犯隐私的移动APP有效地检测方案。

课程的开始,张教授从移动平台特性、生态进行分析,将其归纳为高价值、低门槛的攻击目标,也针对这些问题指出了在解决移动APP隐私泄露问题中的挑战。接着,张教授介绍了隐私泄露分析和防御的方法,重点介绍了污点分析技术的原理,并对动态污点分析和静态污点分析进行了比较。之后,张教授介绍了几个基于污点分析的隐私泄露检测系统:TaintDroid,VetDroid,AppIntent与Cashtags,通过对这些系统设计目标、设计原理的讲解,一步步地对移动App软件的隐私泄露的程序行为和检测方法进行更深入的分析。


下午的课程是由上海交通大学并行与分布式系统研究所(IPADS)的副教授夏虞斌为我们带来,课程的题目是“从硬件出发构建安全系统应用”。夏教授于2004年7月在复旦大学获得学士学位,2010年7月在北京大学计算机科学与技术系获得博士学位,专业为计算机系统结构,他是IEEE计算机学会会员,ACM会员,计算机学会CCF会员,主要的研究对象是操作系统、系统虚拟化与系统结构,研究方向是移动安全和云计算安全,研究成果发表在ISCA、HPCA,EuroSys,MobiSys,FAST,CCS,NDSS等高水平学术会议,目前主要研究基于硬件扩展的可信执行环境(TEE)。夏教授在移动安全方面,带领团队开发了支持TrustZone的安全操作系统T6;在x86平台基于Intel SGX,在虚拟化等方面实现了系统软件的支持。

在本次课程中,为了照顾对虚拟化不太了解的同学,夏教授首先贴心地对虚拟化的基础知识进行简短介绍。然后,夏教授从近期爆出的Meltdown硬件安全漏洞进行切入,介绍了针对8种不同的假设的8种不同的安全系统架构,包括隔离全部应用、分别隔离应用和关键代码、隔离VM和不可信VMM等。夏教授认为基于硬件虚拟化得隔离已经研究的比较充分,用新的硬件特性曾倩隔离能力成为趋势,像是Intel、AMD和ARM各自都推出了相应的新硬件特性,而这些新的硬件安全特性还有很大的改进空间,它们带来了新的安全问题。在课程结束时,夏教授也提出了对正在从事和以后将要从事这方面的人必须利用硬件提高隔离域间的交互性能的期望。


Day 4

7月21日上午的课程由来自于蚂蚁金服光年安全实验室的周智研究员为我们带来,课程题目是“基于Frida的全平台逆向工具开发实践”。周智是蚂蚁金服光年安全实验室的高级安全工程师,主要研究方向包括 Web 安全,桌面、移动和物联网终端平台软件的漏洞挖掘。他曾协助多个知名厂商发现并修复了安全漏洞,并在知名安全会议 BlackHat US,XDEF 上发表过主题演讲。同时,他还是知名 iOS 应用渗透开源工具 passionfruit 的开发维护者。

在课程的开始,周智研究员为方便课程的讲解,贴出了本次课程所用到的代码的Github网址。然后,他开始介绍课程的核心分析框架——Frida的基本情况,包括其插桩实现、整体架构及支持的语言等,并比较了Frida和Xposed、Cycript的优缺点及适用场景;随后,他介绍了Frida的JS引擎,内容丰富详实;接着他介绍了Frida框架与本地代码交互的情况,从指针和内存管理、内存读写、Unicode和ANSI编码等方面介绍了重要的知识点以及可能遇到的“坑”,并介绍了跨平台操作实例;最后周智研究员从iOS/macOS XPC通信、iOS/macOS XPC定位伪造、windows服务端抓包这几个方面进行了进一步的讲解与说明。


下午的课程是由我们GoSSIP安全小组的李昶蔚(a.k.a b1gtang)为我们带来,他是密码与计算机安全实验室软件与系统安全小组物联网安全研究方向的Tech Leader,研究方向包括智能设备的私有协议分析,智能设备的软件安全分析等。他针对于无线安全的研究工作,在首届DEF CON China发表了唯一关于物联网安全研究主题的演讲,成果同时被WiSec'18学术会议录用,被大量国内媒体报道。李昶蔚同时是活跃的CTF竞赛选手,曾担任西安电子科技大学L-Team战队的队长,是上海交通大学0ops战队的现役成员。

本次课程的题目为“智能物联网设备安全分析”。李昶蔚从研究背景、研究方法、智能家居设备的安全研究、无线安全的研究这几个方面进行介绍。课程中,他首先为我们介绍了智能物联网设备的安全研究背景,详细介绍了分析智能物联网设备安全的所需的五个步骤:信息收集、嗅探、app逆向分析、硬件设备分析以及固件分析。

接着以智能家居为例,举例说明了可能存在的安全问题及隐私问题,包括未保护Flash、未进行加密或认证、可进行重放攻击等。为照顾到对无线配网方案不熟悉的同学,李昶蔚对SmartCfg配网方案进行了简单的说明,并列出了威胁模型及所面临的挑战;接着循序渐进,对SmartCfg的安全性分析方法进行了阐述,包括基于SDK代码的安全分析及单纯基于流量的分析;最后提出了安全防护对策。


在课程的最后,上海交通大学密码与计算机安全实验室软件与系统安全小组的金宣成为我们简单介绍了一下CTF比赛,包括二进制漏洞利用、逆向分析、密码分析等方面的基本概念,并介绍了本次暑期学校举办的小型安全挑战赛,鼓励大家参与其中。


Day 5

7月22日是本次暑期学校的最后一天,尽管今天上海受到台风的正面袭击,课程日程安排只有早上半天,但是依然没有影响大家的热情。课程的题目是“Rust, Memory-Safety, and Beyond”,由来自于百度安全实验室(X-Lab)的孙茗珅博士主讲。孙茗珅博士是百度安全实验室(Baidu X-Lab)高级安全研究员,他毕业于香港中文大学,多次在国际顶级学术安全会议 (CCS, RAID, ACSAC 等)上发表论文,在移动安全领域取得了诸多研究成就。目前,孙茗珅博士致力于开发安全的系统软件,他是MesaLock Linux Project(一个基于Rust实现的内存安全Linux发行版)的主要维护人。

本次课程的核心内容是关于Rust这一种新兴的程序设计语言,以及Rust对于内存安全的保护机制。如果一个计算机程序在无意中修改了一个内存地址中的内容,就会导致内存损坏。孙博士首先介绍了内存错误的分类以及修补内存损坏错误的各种方法,随后再一一指出这些方法中存在的缺陷,并最终得出结论:使用Rust、Go等内存安全的程序设计语言能够从根本上避免开发者写出存在内存损坏风险的代码。

Rust是近几年创建的由开源社区驱动的内存安全语言,是一种系统编程语言。孙博士指出产生内存错误的根本原因在于一块内存区域同时拥有Aliasing与Mutation这两个性质。孙博士通过向我们展示了真实的代码实例,阐述了Rust是如何通过Ownership、Borrowing与Lifetime这三条特性,从根本上保证了程序的内存安全。接着,孙博士介绍了Rust中Unsafe Rust、Rust Macro等高级特性,并对于Ion shell、Rusqlite等Case Study进行了分析。最后,孙博士列举了与Rust相关的参考资料,结束了本次课程。


当天下午,张媛媛教授主持了此次暑期学校的闭幕式,并宣布暑期学校举办的小型安全挑战赛取得冠军的选手是来自电子科技大学的林泊儒同学,为林同学颁奖(奖品为3D高清华为全景相机)。至此,第四届GoSSIP安全暑期学校圆满结束。


写在最后

时间飞逝,在精彩的2018年的“软件与移动智能系统安全”暑期学校一周活动后,我们又要和大家相约2019了。在这里,我们不仅要感谢来自世界各地的课程讲师的精心准备,感谢暑期学校工作人员的辛勤付出,同时也特别感谢所有参与本次暑期学校的同学的积极参与。本次暑期学校的课程资料将会在网站(loccs.sjtu.edu.cn/summe)上陆续更新,大家有什么问题也可以邮件咨询我们(至loccs at sjtu.edu.cn )。让我们明年暑期学校再会!

编辑于 2018-09-30

文章被以下专栏收录