等保检测ipa包存在注入攻击风险

攻击者通常有两种手段进行攻击,第一种是修改app的二进制文件增加攻击代码,第二种是通过注入外部库,即启动前通过设置DYLD_INSERT_LIBRARIES环境变量指定第三方库文件,加载前会优先加载第三方库文件。攻击者可以通过注入攻击将一段恶意代码写到目标进程,这段代码可以加载其它可执行程序,进而实施hook,监控程序运行、获取敏感信息等。常见的动态注入,可以实现窃取输入的登录账号、密码、支付密码,修改转账的目标账号、金额,窃取通讯数据等。

以下两种方式任选其一:

1.xcode设置Other Linker Flags 参数 release模式下增加 

-Wl,-sectcreate,_RESTRICT,_restrict,/dev/null

这里按一整行设置,不要分行设置!

//注意是release模式,不然模拟机运行会报错(DYLD_ROOT_PATH not set for simulator program)


2.代码DYLD_INSERT_LIBRARIES 检测是否越狱

char *env = getenv("DYLD_INSERT_LIBRARIES");

If(env !=null)

{ NSLog(@"不为空表示通过环境变量有注入模块%s",env); }

env 会打印  我的工程会打印这个 "/usr/lib/libMTLCapture.dylib" ,不知道为啥,有知道的给我说下谢谢了


3.如果有遇到报错

编译报错:dyld:Library not loaded:/user/lib/libMTLCapture.dylib


//是否越狱

+ (BOOL)isJailBreak {

    BOOL isjb = NO;

    FILE *f = NULL;

    if ((f = fopen("/bin/bash", "r"))) {

        //Device is jailbroken

        isjb = YES;

        fclose(f);

        f = NULL;

    }

    return isjb;

}

你可能感兴趣的:(等保检测ipa包存在注入攻击风险)