admin管理员组

文章数量:1534919

2024年6月16日发(作者:)

防火墙顾名思义就是作为内部网与外部网之间的一种访问控制设备, 常常安装在内部

网和外部网交界点上。而网络防火墙是一个位于计算机与它所连接的网络之间的软件。所

有网络通信在计算机里流入流出都要经过防火墙。而防火墙对流经它的网络通信进行扫描,

这样能够过滤掉一些攻击,以免其在目标计算机上被执行。重要的是防火墙还可以关闭不

使用的端口,而且它还能禁止特定端口的流出通信,封锁特洛伊木 马,也可以禁止来自特

殊站点的访问,从而防止来自不明入侵者的所有通信。

智能手机网络防火墙的现状

时下,随着科技迅速发展,智能手机也越来越普及,以及3G网络的快速发展,连4G

都出来服务了,也越来越多的移动用户使用移动智能手机快速上网。于此同时,各类恶意

软件也通过网络来盗取用户手机上的的隐私,甚至以此来控制用户的手机。因此,智能手

机上的防火墙也就应运而生了。

手机与PC端上的环境不同, Android手机上的网络环境相对于PC端没有那么复杂。

因此,现行主流的Android防火墙解决方案都是对手机里的应用设置网络访问权限,而不

会像PC上的防火墙那样提供强大的网络监视、数据包 过滤、端口监控等功能。

Android网络防火墙的几种实现方式

a) Android应用层:敏感函数hook

i. 绝大多数Android应用都是调用Android Framework来实现网络通讯。比如:

l(),e(),e()等。只需穷举

这些类的函数,并将它们都Hook住,这样就可实现拦截上网的功能了。

ii. 当然,如果想要Hook这些函数入口,有两种方式:1. 首先需要获得root权限,

然后通过进程注入,将Client代码注入到应用进程,在进程上网时,应用进程将会发起IPC

请求到Server进程,由Server进程来决定是否允许其访问网络。2. 通过修改应用本身来

加入Hook代码,从而避免了root手机,这样相对比较安全。

iii. 使用函数hook这种方案的优点是:简单、快速、可实现网络热开关(无需杀死进

程)。但缺点是也是有的,它不能拦截所有的网络访问入口。例如:某应用如果没有调用

Android的库,而是自己实现了一个访问网络的库,或者甚至用native代码来实现,那么

这时候这个方案将拦截不到任何的上网请求。

b) Android框架层:ET权限

i. 在Android系统中,任何想访问网络的应用都必须申请

ET权限。当Zygote在fork()一个

中带有这个权限的应用时,这个会将当前应用加到inet组中。而凡是一个进程的gid组中

有inet,那么这个应用就有权限上网。

本文标签: 网络防火墙应用实现