宁波上元职业培训中心
招生热线:400-656-3385

学校地址:浙江省宁波市天一广场天一豪景

Android系统中实现网络防火墙的方法

  防火墙顾名思义就是作为内部网与外部网之间的一种访问控制设备, 常常安装在内部网和外部网交界点上。而网络防火墙是一个位于计算机与它所连接的网络之间的软件。所有网络通信在计算机里流入流出都要经过防火墙。而防火墙对流经它的网络通信进行扫描,这样能够过滤掉一些攻击,以免其在目标计算机上被执行。重要的是防火墙还可以关闭不使用的端口,而且它还能禁止特定端口的流出通信,封锁特洛伊木 马,也可以禁止来自特殊站点的访问,从而防止来自不明入侵者的所有通信。

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

  时下,随着科技迅速发展,智能手机也越来越普及,以及3g网络的发展,连4g都出来服务了,也越来越多的移动用户使用移动智能手机上网。于此同时,各类恶意软件也通过网络来盗取用户手机上的的隐私,甚至以此来控制用户的手机。因此,智能手机上的防火墙也就应运而生了。

  手机与pc端上的环境不同, android手机上的网络环境相对于pc端没有那么复杂。因此,现行主流的android防火墙解决方案都是对手机里的应用设置网络访问权限,而不会像pc上的防火墙那样提供强大的网络监视、数据包 过滤、端口监控等功能。

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

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

  i. 绝大多数android应用都是调用android framework来实现网络通讯。比如:webview.loadurl(),httpclient.execute(),defaulthttpclient.execute()等。只需穷举这些类的函数,并将它们都hook住,这样就可实现拦截上网的功能了。

  ii. 当然,如果想要hook这些函数入口,有两种方式:1. 首先需要获得root权限,然后通过进程注入,将client代码注入到应用进程,在进程上网时,应用进程将会发起ipc请求到server进程,由server进程来决定是否允许其访问网络。2. 通过修改应用本身来加入hook代码,从而避免了root手机,这样相对比较安全。

  iii. 使用函数hook这种方案的优点是:简单、、可实现网络热开关(无需杀死进程)。但缺点是也是有的,它不能拦截所有的网络访问入口。例如:某应用如果没有调用android的库,而是自己实现了一个访问网络的库,或者甚至用native代码来实现,那么这时候这个方案将拦截不到任何的上网请求。

  b) android框架层:android.permission.internet权限

  i. 在android系统中,任何想访问网络的应用都必须申请android.permission.internet权限。当zygote在fork()一个androidmanifest.xml中带有这个权限的应用时,这个会将当前应用加到inet组中。而凡是一个进程的gid组中有inet,那么这个应用就有权限上网。

  ii. 因此有两种方式禁止应用上网:1. 修改应用的androidmanifest.xml,使其没有android.permission.internet权限。2. 获得root权限,然后注入zygote进程,使其在fork()之后,不要将inet设到应用的gid组中。

  iii. 这个方案相对于第 一个方案来说,它可以彻底的屏蔽一个应用上网。实现起来也没想象中那么复杂,但是gid组一旦设定后,应用进程将再也无权限修改。因此被禁止掉上网权限的进程,若想要再次获得上网权限,则必须被杀死,然后重新由zygote进程fork()生成。

  c) linux内核层:iptables

  i. 在linux内核中,networkfilter在tcp/ip的协议栈中加了相应的hook。我们通过这些hook可以对网络数据包可以进行过滤,丢弃,修改等。但直接使用起来相对麻烦。可linux给我们提供了一个非常强大的工具:iptables,它是用来简化这一过程。iptables,是一个linux命令,通过这个命令,可以对整个系统发出去的包,接收到的包,以及转发的包进行拦截,修改,拒绝等操作。具体起使用方法,这里不再一一展开了,有兴趣可以查找资料学习。

  ii. iptable不仅可以按照uid来禁用应用上网,还可以分别禁用某个uid的3g上网和wifi上网。这给用户带来的极大的方便。

  iii. 使用这个方案的优点是,在这不需要进程注入,所以实现起来会相对简单。而且能够同时禁用3g网络和wifi网络,如此一来用户的体验也更加好。此外,iptables的功能还有很多,基于iptables可以实现功能更加强大的防火墙。但是iptable虽然好,可也是有缺点的,运行iptables需要root权限。目前基于iptables的android防火墙有很多。主流安全软件的联网拦截功能,如360手机卫士,手机du霸等都是使用这一方案。

  总结

  上文主要通过三个层面来控制一个应用的上网。具体使用哪一种,这需要看用户的需求,以及手机的系统环境而定。

  a) 如果不能获得root权限,基本思路就是定制修改apk,可以考虑加入hook代码,或者是压根在androidmanifest.xml里将android.permission.internet权限去除。

  b) 如果能获得root权限,可以考虑注入zygote,使之fork()之后不加入inet组,还可以注入应用进程加上敏感函数的hook。此外还可以使用iptables命令。

  c) 用户如果希望不杀死进程也能实现上网权限的开关,并且要求可以分别禁用3g网络和wifi网络的话,那么非iptables不可了。

  其实比较下来,还是基于iptables的方案相对较好。它似乎只有一个缺点就是需要root权限。但大家也知道一旦手机被root以后,安全性反而将大大降低。那么我们可否找到一种手机既不被root,又能使用iptables的方案呢?

  这个其实是有的。只是这无法通过第三方的应用来实现这个目标,这个是必须有手机厂商对android系统进行定制化修改,添加一个具有root权限的service来负责iptables命令的操作。其他进程只有向这个service提出请求,才能间接调用iptables。当然app应用要和这个service沟通,必须遵循一定的协议和获得相应的授 权才行,否则又会变的不安全了。

  上述方案,我们已经实现了,并且实现效果还不错。我们在init.rc里添加了一个service,并且授予这个service root权限。这个service起来之后,会等待client端请求。对于这个client端,我们对外提供了一套sdk,应用程序只需调用这套sdk api就可以和这个root service进行通信了,然后就可以间接执行iptables命令。

  以下是我们的sdk api接口。uid指应用的uid。type是针对的网络类型,可以是3g网络或者是wifi网络。blocked表示禁用还是启用网络。

  public static final int mobile_network = 1;

  public static final int wifi_network = 2;

  public void setapplicationpolicy(int uid, int type, boolean blocked); //设置拦截状态

  public boolean getapplicationpolicy(int uid, int type); //获得当前的拦截状态

  通过上文,我们可以知道不管是pc端的安全还是手机端的安全都是必须要考虑的,而现在我们在智能手机上安装各式各种应用app,很少有人考虑过那些手机应用的安全性,那么上文所讲到的个人信息或者隐私安全也是非藏重要的,总结上文,主要是介绍了智能手机网络防火墙的现状、android网络防火墙的几种实现方式中的三个方式,分别是android应用层:敏感函数hook、android框架层:android.permission.internet权限和linux内核层:iptables,详细的介绍看回原文。


文中图片素材来源网络,如有侵权请联系删除
申请试听
为您选课

电脑组装维修培训

电脑组装维修培训/目标

让学员熟练掌握解决各种电脑故障的技能,能够从事电脑硬件、软件方向的工作。

电脑组装维修培训/内容

计算机硬件组装:计算机的工作原理;CPU、主机板、内存、硬盘、光驱、软驱、优盘、显示卡、显示器、声卡、键盘、鼠标、打印机、机箱、电源等硬件的介绍及安装;组装实习。

计算机软件安装:BIOS的设置; DOS启动盘的制作,DOS命令的应用;分区格式化工具软件F32的应用; WINDOWS98/ME/WINDOWS2000/XP的安装,应用软件的安装,WINDOWS注册表的分析及辅助工具软件的应用(优化大师、REGEDIT的应用);计算机安全防护;数据的备份工作(GHOST软件的应用);工具软件的介绍及应用(WINZIP/WINRAR/测试工具等)。

计算机维护维修:计算机维护维修工具应用,维修原则和方法;案例分析:电脑黑屏的处理(CPU、主板、内存、显示卡);硬盘的故障(低级格式化LOW,坏道修复FBDISK);打印机的故障判断,光驱、显示器等。

培训费用

宁波电脑组装维修培训费用:880元。

电脑组装维修培训/考试认证

经考试合格者,获得劳动和社会保障部中国就业培训技术指导中心颁发的职业培训合格证书,全国通用,就业有效。

组装

电脑组装就是将计算机的各个配件,合理的组装在一起。下面是电脑组装的过程:(1) 机箱的安装,主要是对机箱进行拆封,并且将电源安装在机箱里。 (2) 主板的安装,将主板安装在机箱主板上。 (3) CPU的安装,在主板处理器插座上插入安装所需的CPU,并且安装上散热风扇。 (4)内存条的安装,将内存条插入主板内存插槽中。 (5) 显卡的安装,根据显卡总线选择合适的插槽。 (6) 声卡的安装,现在市场主流声卡多为PCI插槽的声卡。 (7) 驱动器的安装。 (8) 机箱与主板间的连线,即各种指示灯、电源开关线。

宁波电脑组装培训哪家好,上元教育教你通过认证。

关于上元

专注学习效果的职业教育机构

做有态度的职业教育培训

印象上元

上元教育成立于2005年,总部位于苏州,是职业教育培训行业的领跑者。以品牌化运营模式和出色的办学能力发展成为强大的职业培训综合体,是华东区域颇具影响力的职业培训机构,更将成为中国职业培训学校的标杆。

发展十余年来,已经先后在江苏的苏州、南京、无锡、常州、扬州、泰州、徐州、宿迁、浙江的杭州、宁波、金华、嘉兴、绍兴,安徽的芜湖、滁州、以及上海等地成立了分校,截止到2017年9月,上元教育的发展版图上已经有近60多所分校,未来还将继续发展壮大,到2019年,分校数量将达到100所以上。上元教育目前每年学员数量超120000人次,累计为社会培养各类人才达1200000人。

上元精神

教育精神:优质教学 感恩奉献 教育兴国 立德树人

服务精神:学员至上 热情服务 真诚沟通 有求必应

业务精神:自动自发 结果导向 坚持不懈 永葆激情

团队精神:尊重友爱 协作互助 勇于担当 兼容并包

学习精神:空杯心态 日积跬步 学以致用 超越自我

上元发展

上元在线,是上元集团斥重资打造的在线教育平台。以互联网思维教学,营造上元独特的学习生态环境。建立云智能循环在线学习系统,细分子品牌包括上元在线、上元云课堂和云学酷。

上元理想

对企业 | 成为企业挚友,为企业提供的人才培训服务。
对学员 | 成为学员的取之不尽,用之不竭的知识源头。
对员工 | 使上元教育成为员工的骄傲、自豪的资本。

上元人物

在上元,有一群拼搏在前线,深耕职业培训市场,细作教学服务的风云校长和的老师

上元理念

在上元工作的快乐

这里没有办公室政治,这里还鼓励办公室恋情,是的,你没听错,单身没着落,还在自嘲自己是单身狗的,是时候改变自己了!

这里没有领导指示,打压政策,给予你充分的空间和自由,领导把握方向,至于怎么去飞,就是你的事啦!

这里有创业公司的激情,因为我们每天都在为自己变得更好而奋斗,不久之后我们将上市,将承担更大的责任,也将迸发更大的发展空间。

这份工作的意义,让你责任重大的同时,也具有爆棚的满足感和成就感,因为我们真正在为即将成为社会中坚人群提供能量,让那么多处在人生转折点的人找到前行的方向,是多么有成就感的事。

这里的企业文化很重要的一条是——成就员工,是的,我们培养人才,也信任人才,不论你是哪一型,你都能找到自己的位置。房车?这些只是小事,更重要的是这里将成就你的事业和人生。

我们没有所谓的加班文化,更推崇在上班时间内率的完成工作,所以准时下班so easy,so happy。

听说过客下午茶,告诉你这里还有上元下午茶,每天16:00-16.30,文艺青年们可以去道前街散散步,阳光正好的时候再随手来几张街拍,吃货们可以下楼扫荡全家超市。

以上就是电脑维护培训课程的全部内容介绍,如需了解更多的电脑维护培训班、课程、价格、试听等信息,也可以点击进入 电脑维护 相关频道,定制专属课程,开始您的学习之旅。

申请免费试听
全国招生热线