2013-11-04 78 views
1

我正在开发基于应用程序的防火墙,拦截由应用程序启动的传出Internet请求,以通知用户外部服务器和端口正试图从他的设备(来自这些应用程序)进行访问。此安全功能将最终保护用户免遭窃取个人数据的恶意软件。适用于Android的基于应用程序的防火墙

我正在使用Linux安全模块(LSM)框架,以便能够在内核级别拦截互联网套接字请求以允许或拒绝连接。该请求通过unix域套接字发送给用户。有一个应用程序充当deamon,等待请求警报(unix域套接字服务器),它向用户显示请求信息。这决定接受或拒绝连接,并将此选项发送回挂接功能(LSM)。

不幸的是,用户被迫安装一个新内核来使用这个特性,因为LSM钩子函数是在编译时安装的(不再作为内核模块了)。

是否有任何其他方式来使用互联网套接字来允许或拒绝连接?

+0

[DroidWall](https://play.google.com/store/apps/details?id=com.googlecode.droidwall.free&hl=en)是一款应用程序,可在使用Linux工具iptables的根设备上工作实现与您所描述的内容非常相似的内容。 – FoamyGuy

回答

2

我开发一个应用程序的防火墙

如果“基于应用防火墙”,你的意思是你想这样做,因为没有root权限的SDK应用程序,你可以得到的最接近是创建一个代理,但这需要一定量的用户配置才能启用。

如果你有可能写你的应用程序,否则没有根,这本身就是Android的安全缺陷,需要修复。

+0

“基于应用程序的防火墙”我的意思是一个防火墙,基于应用程序通信而不是网络数据包,就像普通的防火墙一样。 将其作为SDK应用程序来实现它可能是不可能的,因为它需要拒绝套接字连接,这在内核级别是可能的(我猜)。最终部署此功能将像Cyanogenmod一样定制ROM,允许内核修改。 对吗? – rmgoncalo

+0

@rmgoncalo:“我说得对吗?” - 很可能。我不能排除仅在根植设备上使用定制内核的可能性,因为这超出了我的专业领域。 – CommonsWare

相关问题