Intel MPX Security Test
实验环境
RIPE Test Bed:
git clone https://github.com/johnwilander/RIPE.git
系统配置
Ubuntu 16.04 i386 2GB内存
Ubuntu 16.04 x64 2GB内存
参数修改
通过对MAKEFILE中的CFLAGS和LDFLAGS进行修改,添加MPX编译支持,比较运行结果
CFLAGS+=-g -Wall -O2 -mmpx -fcheck-pointer-bounds
LDFLAGS+=-lmpx -lmpxwrappers
问题修正
在64位OS中,由于RIPE在MAKEFILE中加入了 -m32
选项强制进行32位编译,直接make会报错.
Fedora 29:
gnu/stubs-32.h:No such file or directory
添加支持 yum install glibc-devel.i686
Ubuntu 16.04:
fatal error: sys/cdefs.h: No such file or directory
添加支持 sudo apt-get install glibc6-dev-i386
Fedora 29下,添加MPX编译选项后,make报错:
直接将/usr/lib64
路径下对应的两个.so文件拷贝到/usr/lib
下并不能解决问题:
此时研判是缺失32位的MPX连接库文件,访问
并安装rpm包,解决问题。
运行结果
Ubuntu 16.04 i386
Native
OK/SOME | FAIL | NP | |
---|---|---|---|
direct | 89/0 | 241 | 1590 |
indirect | 0/0 | 520 | 1400 |
both | 89/0 | 761 | 2990 |
MPX
OK/SOME | FAIL | NP | |
---|---|---|---|
direct | 60/0 | 270 | 1590 |
indirect | 0/0 | 520 | 1400 |
both | 60/0 | 790 | 2990 |
Ubuntu 16.04 x64
Native
OK/SOME | FAIL | NP | |
---|---|---|---|
direct | 89/1 | 240 | 1590 |
indirect | 0/0 | 520 | 1400 |
both | 89/1 | 760 | 2990 |
MPX
OK/SOME | FAIL | NP | |
---|---|---|---|
direct | 60/0 | 270 | 1590 |
indirect | 0/0 | 520 | 1400 |
both | 60/0 | 790 | 2990 |