商业项目需求:请教如何禁用APP移动网络和WIFI

需求:公司是做DLP数据防泄漏的。竞品有禁止使用移动网络跟禁止使用wifi功能。我们这边也要做,大部分是基于CaptainHook做的。
竞品功能列表如下:


我们也是类似的平台。做个动态库,根据图中的配置,配置动态库里的功能,植入到APP中,达到数据防泄漏的目的。
想请教大家的就是如何做到禁止使用移动网络跟禁止使用wifi功能。
小弟的想法是先判断网络类型,然后根据需求直接禁用网络请求框架NSURLSession 的resume方法,不让它发起请求。老的网络请求也用这逻辑HOOK。还得禁用UIWEB和WKWEB的加载方法。
总是觉得不是很缜密,因为对网络层知之甚少。TCP,HTTP,socket理解的也不很深入,觉得自己的思路有所疏漏。想请教一下各位比较完美的切入点来实现禁用使用移动网络跟WIFI的功能。烦请赐教。

我个人感觉做一个静态的SDK静态连接到App本体或者甚至是魔改过的编译器编译时插桩是比这个安全模型更好的方案

我也不太熟悉,但我寻思:

  • socket
  • NSURLSession
  • NSURLConnection
  • WebKit
  • UIWebView
  • 各种可能涉及联网的xpc服务

我猜?

别的还好 socket怎么处理呢?而且好像是C语言。

fishhook之类的

你这个需求用MDM做是不是更合适一些?

有竞品的样本吗?? 发出来让我们来分析一波??

MDM我们有的,MDM是设备管理,禁用网络那整个手机都没网了。现在要做的主要是MAM:APP管理,一个是禁用4G,WIFI这种管控类型的操作,还有许多监测功能,比如监测用户截屏啊,监测用户复制粘贴什么的,防止某个敏感APP的内部资料被泄露,这样子。

有竞品样本,分分钟被复制

感觉可以从DNS解析入手,从这里就把网络请求干掉

emmmm。。。卑微的拿出了正向的NSURLProtocol。。