CN110798438A - 应用内防火墙实现方法、系统及存储介质 - Google Patents
应用内防火墙实现方法、系统及存储介质 Download PDFInfo
- Publication number
- CN110798438A CN110798438A CN201810903559.3A CN201810903559A CN110798438A CN 110798438 A CN110798438 A CN 110798438A CN 201810903559 A CN201810903559 A CN 201810903559A CN 110798438 A CN110798438 A CN 110798438A
- Authority
- CN
- China
- Prior art keywords
- function
- network connection
- white list
- behavior
- configuration file
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 24
- 238000004590 computer program Methods 0.000 claims description 3
- 230000006855 networking Effects 0.000 abstract 1
- 230000006399 behavior Effects 0.000 description 47
- 230000018109 developmental process Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000033772 system development Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/45—Network directories; Name-to-address mapping
- H04L61/4505—Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols
- H04L61/4511—Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols using domain name system [DNS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/0227—Filtering policies
- H04L63/0236—Filtering by address, protocol, port number or service, e.g. IP-address or URL
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1441—Countermeasures against malicious traffic
- H04L63/1466—Active attacks involving interception, injection, modification, spoofing of data unit addresses, e.g. hijacking, packet injection or TCP sequence number attacks
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开了应用内防火墙实现方法,包括:在待开发应用的资源目录下添加白名单配置文件;Hook自身进程的预设函数,判断是否存在网络连接行为;若存在网络连接行为,则分析判断所述网络连接行为是否存在于白名单配置文件中,若存在则放行,否则拦截该网络连接行为。同时,本发明公开了应用内防火墙实现系统。通过本发明所提供的技术方案能够有效管控应用程序开发者集成的第三方应用程序模块的恶意联网行为。
Description
技术领域
本发明涉及移动安全技术领域,尤其涉及一种应用内防火墙实现方法、系统及存储介质。
背景技术
目前移动App开发者开发App时,往往会集成各种第三方应用程序模块,用于完善App的各种功能及开发体验,这些集成的第三方应用程序模块在运行时便自然拥有了该App的所有权限,可以在App开发者不知情情况下将App的一些隐私数据回传到第三方的服务器中。这在一定程度上造成了该App的隐私数据被第三方应用程序模块窃取并可能被恶意利用。
发明内容
针对上述技术问题,本发明所述的技术方案通过在应用程序开发过程中,在资源目录下添加可配置的白名单,进而对应用程序的网络连接行为进行有效管控,对于白名单外的网络连接行为进行及时拦截。
本发明采用如下方法来实现:应用内防火墙实现方法,包括:
在待开发应用的资源目录下添加白名单配置文件;
Hook自身进程的预设函数,判断是否存在网络连接行为;
若存在网络连接行为,则分析判断所述网络连接行为是否存在于白名单配置文件中,若存在则放行,否则拦截该网络连接行为。
进一步地,所述白名单配置文件,具体包括允许通过的域名、IP、端口号。
更进一步地,所述预设函数,包括:connect函数、sendto函数、gethostbyname函数。
其中,若存在网络连接行为,则分析判断所述网络连接行为是否存在于白名单配置文件中,若存在则放行,否则拦截该网络连接行为,具体包括:
若发现调用connect函数的行为,则提取欲连接的IP、端口号,并判断所述IP和端口号是否存在于白名单配置文件中,若存在,则调用系统原connect函数进行连接操作,否则返回错误值并记录;
若发现调用sendto函数的行为,则提取欲连接的IP、端口号,并判断所述IP和端口号是否存在于白名单配置文件中,若存在,则调用系统原sendto函数进行发送操作,否则返回错误值并记录;或者,
若发现调用gethostbyname函数的行为,则提取欲连接的域名,并判断所述域名是否存在于白名单配置文件中,若存在,则调用系统原gethostbyname函数进行域名解析,否则返回错误值并记录。
本发明可以采用如下系统来实现:应用内防火墙实现系统,包括:
预配置模块,用于在待开发应用的资源目录下添加白名单配置文件;
网络行为判断模块,用于Hook自身进程的预设函数,判断是否存在网络连接行为;
白名单匹配模块,用于若存在网络连接行为,则分析判断所述网络连接行为是否存在于白名单配置文件中,若存在则放行,否则拦截该网络连接行为。
进一步地,所述白名单配置文件,具体包括允许通过的域名、IP、端口号。
更进一步地,所述预设函数,包括:connect函数、sendto函数、gethostbyname函数。
其中,所述白名单匹配模块,具体用于:
若发现调用connect函数的行为,则提取欲连接的IP、端口号,并判断所述IP和端口号是否存在于白名单配置文件中,若存在,则调用系统原connect函数进行连接操作,否则返回错误值并记录;
若发现调用sendto函数的行为,则提取欲连接的IP、端口号,并判断所述IP和端口号是否存在于白名单配置文件中,若存在,则调用系统原sendto函数进行发送操作,否则返回错误值并记录;或者,
若发现调用gethostbyname函数的行为,则提取欲连接的域名,并判断所述域名是否存在于白名单配置文件中,若存在,则调用系统原gethostbyname函数进行域名解析,否则返回错误值并记录。
本发明同时提出一种非临时性计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上任一所述的应用内防火墙实现方法。
综上,本发明给出应用内防火墙实现方法、系统及存储介质,该防火墙系统可以作为一个应用程序模块提供给应用程序开发者,应用程序开发者在开发应用程序时,需要在待开发应用的资源目录下配置白名单配置文件,并在应用程序应用的启动代码中启动该防火墙系统,该系统会hook应用程序自身进程的预设函数,继而判断是否存在网络连接行为,若存在则提取相关信息并判断所述网络连接行为是否为白名单配置文件中配置可以放行的网络连接行为,若是则放行,否则拦截该网络连接行为。通过本发明所提供的应用内防火墙实现方法、系统及存储介质,通过在白名单配置文件中声明当前的应用程序可以连接哪些服务的哪些端口,而在白名单配置文件以外的网络连接行为则将被禁止,保证了应用程序开发者对应用程序自身产生的网络连接行为的可控性。
附图说明
为了更清楚地说明本发明的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明提供的应用内防火墙实现方法实施例流程图;
图2为本发明提供的应用内防火墙实现系统实施例结构图。
具体实施方式
本发明给出了应用内防火墙实现方法、系统及存储介质的实施例,为了使本技术领域的人员更好地理解本发明实施例中的技术方案,并使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图对本发明中技术方案作进一步详细的说明:
移动应用的开发者在进行应用程序开发时,通常会集成第三方应用程序模块,用于完善应用程序的功能。例如:某开发者想在自己的密码管理App中实现一个人脸解锁功能,但限于自身能力,该开发者选择集成第三方的人脸识别应用程序模块。但是可能存在如下风险,比如在采集人脸信息时,该应用程序模块会不会把用户的人脸指纹信息上传到恶意的服务中,从而在其他场景中使用该人脸指纹信息可破解该密码管理应用程序所记录的加密信息。
为了解决上述问题,应用程序开发者可以采用本发明所提供的应用内防火墙,在该应用程序的资源目录下设置白名单配置文件,并配置仅用于用户统计功能的网络域名、IP和端口可用,其他网络数据流量均被拒绝,具体实施例如下:
本发明首先提供了一种应用内防火墙实现方法实施例,如图1所示,包括:
S101:在待开发应用的资源目录下添加白名单配置文件;其中,白名单配置文件中存储有允许当前应用程序进行网络连接的相关信息,具体包括但不限于:域名、IP或者端口号。
S102:Hook自身进程的预设函数,判断是否存在网络连接行为,若存在,则执行S103,否则继续执行S102;其中,所述预设函数为应用程序进行网络连接直接或间接需要调用的函数,包括但不限于:connect函数、sendto函数、gethostbyname函数。
S103:分析判断所述网络连接行为是否存在于白名单配置文件中,若存在则放行该网络连接行为,否则拦截该网络连接行为;具体包括但不限于:
若发现调用connect函数的行为,则提取欲连接的IP、端口号,并判断所述IP和端口号是否存在于白名单配置文件中,若存在,则调用系统原connect函数进行连接操作,否则返回错误值并记录;其中,所述connect函数用于tcp连接;
若发现调用sendto函数的行为,则提取欲连接的IP、端口号,并判断所述IP和端口号是否存在于白名单配置文件中,若存在,则调用系统原sendto函数进行发送操作,否则返回错误值并记录;其中,所述sendto函数用于udp连接;
或者,若发现调用gethostbyname函数的行为,则提取欲连接的域名,并判断所述域名是否存在于白名单配置文件中,若存在,则调用系统原gethostbyname函数进行域名解析,否则返回错误值并记录;其中,所述gethostbyname函数用于将域名信息转换为IP地址。
其中,上述所列函数仅为了具体说明本实施例的技术方案,而应用程序进行对外网络连接可能使用到的所有函数都可以被hook,进而实现对网络连接行为的监控,最终判断是否允许其通行。
本发明其次提供了应用内防火墙实现系统实施例,如图2所示,包括:
预配置模块201,用于在待开发应用的资源目录下添加白名单配置文件;
网络行为判断模块202,用于Hook自身进程的预设函数,判断是否存在网络连接行为;
白名单匹配模块203,用于若存在网络连接行为,则分析判断所述网络连接行为是否存在于白名单配置文件中,若存在则放行,否则拦截该网络连接行为。
优选地,所述白名单配置文件,具体包括允许通过的域名、IP、端口号。
更优选地,所述预设函数,包括:connect函数、sendto函数、gethostbyname函数。
其中,所述白名单匹配模块203,具体用于:
若发现调用connect函数的行为,则提取欲连接的IP、端口号,并判断所述IP和端口号是否存在于白名单配置文件中,若存在,则调用系统原connect函数进行连接操作,否则返回错误值并记录;
若发现调用sendto函数的行为,则提取欲连接的IP、端口号,并判断所述IP和端口号是否存在于白名单配置文件中,若存在,则调用系统原sendto函数进行发送操作,否则返回错误值并记录;或者,
若发现调用gethostbyname函数的行为,则提取欲连接的域名,并判断所述域名是否存在于白名单配置文件中,若存在,则调用系统原gethostbyname函数进行域名解析,否则返回错误值并记录。
本发明同时提出一种非临时性计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上任一方法实施例所述的应用内防火墙实现方法。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同或相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
如上所述,上述实施例给出了应用内防火墙实现方法、系统及存储介质的实施例,由于传统解决方法依赖于操作系统的防火墙环境,需要将实施代码模块集成到系统sdk中,或者需要获取系统的root权限才能够实现相关功能。而本发明所提供的上述实施例不需要在系统开发时进行源码修改,也不需要获取系统root权限,只是在应用程序开发时将本实施例的应用内防火墙作为一个软件模块集成到应用程序中,即可实现应用级别的恶意网络请求的拦截,进而解决现有应用开发中由于集成第三方模块从而造成隐私数据泄露的问题。
以上实施例用以说明而非限制本发明的技术方案。不脱离本发明精神和范围的任何修改或局部替换,均应涵盖在本发明的权利要求范围当中。
Claims (9)
1.应用内防火墙实现方法,其特征在于,包括:
在待开发应用的资源目录下添加白名单配置文件;
Hook自身进程的预设函数,判断是否存在网络连接行为;
若存在网络连接行为,则分析判断所述网络连接行为是否存在于白名单配置文件中,若存在则放行,否则拦截该网络连接行为。
2.如权利要求1所述的方法,其特征在于,所述白名单配置文件,具体包括允许通过的域名、IP、端口号。
3.如权利要求2所述的方法,其特征在于,所述预设函数,包括:connect函数、sendto函数、gethostbyname函数。
4.如权利要求3所述的方法,其特征在于,若存在网络连接行为,则分析判断所述网络连接行为是否存在于白名单配置文件中,若存在则放行,否则拦截该网络连接行为,具体包括:
若发现调用connect函数的行为,则提取欲连接的IP、端口号,并判断所述IP和端口号是否存在于白名单配置文件中,若存在,则调用系统原connect函数进行连接操作,否则返回错误值并记录;
若发现调用sendto函数的行为,则提取欲连接的IP、端口号,并判断所述IP和端口号是否存在于白名单配置文件中,若存在,则调用系统原sendto函数进行发送操作,否则返回错误值并记录;或者,
若发现调用gethostbyname函数的行为,则提取欲连接的域名,并判断所述域名是否存在于白名单配置文件中,若存在,则调用系统原gethostbyname函数进行域名解析,否则返回错误值并记录。
5.应用内防火墙实现系统,其特征在于,包括:
预配置模块,用于在待开发应用的资源目录下添加白名单配置文件;
网络行为判断模块,用于Hook自身进程的预设函数,判断是否存在网络连接行为;
白名单匹配模块,用于若存在网络连接行为,则分析判断所述网络连接行为是否存在于白名单配置文件中,若存在则放行,否则拦截该网络连接行为。
6.如权利要求5所述的系统,其特征在于,所述白名单配置文件,具体包括允许通过的域名、IP、端口号。
7.如权利要求6所述的系统,其特征在于,所述预设函数,包括:connect函数、sendto函数、gethostbyname函数。
8.如权利要求7所述的系统,其特征在于,所述白名单匹配模块,具体用于:
若发现调用connect函数的行为,则提取欲连接的IP、端口号,并判断所述IP和端口号是否存在于白名单配置文件中,若存在,则调用系统原connect函数进行连接操作,否则返回错误值并记录;
若发现调用sendto函数的行为,则提取欲连接的IP、端口号,并判断所述IP和端口号是否存在于白名单配置文件中,若存在,则调用系统原sendto函数进行发送操作,否则返回错误值并记录;或者,
若发现调用gethostbyname函数的行为,则提取欲连接的域名,并判断所述域名是否存在于白名单配置文件中,若存在,则调用系统原gethostbyname函数进行域名解析,否则返回错误值并记录。
9.一种非临时性计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-4中任一所述的应用内防火墙实现方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810903559.3A CN110798438A (zh) | 2018-08-09 | 2018-08-09 | 应用内防火墙实现方法、系统及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810903559.3A CN110798438A (zh) | 2018-08-09 | 2018-08-09 | 应用内防火墙实现方法、系统及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110798438A true CN110798438A (zh) | 2020-02-14 |
Family
ID=69425824
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810903559.3A Pending CN110798438A (zh) | 2018-08-09 | 2018-08-09 | 应用内防火墙实现方法、系统及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110798438A (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1818823A (zh) * | 2005-02-07 | 2006-08-16 | 福建东方微点信息安全有限责任公司 | 基于程序行为分析的计算机防护方法 |
CN102694817A (zh) * | 2012-06-08 | 2012-09-26 | 奇智软件(北京)有限公司 | 一种识别程序的网络行为是否异常的方法、装置及系统 |
CN102932375A (zh) * | 2012-11-22 | 2013-02-13 | 北京奇虎科技有限公司 | 网络访问行为的防护方法和装置 |
CN103716295A (zh) * | 2012-09-28 | 2014-04-09 | 株式会社得那 | 网络系统和非暂态计算机可读存储介质 |
US20150052595A1 (en) * | 2013-08-15 | 2015-02-19 | Mocana Corporation | User, device, and app authentication implemented between a client device and vpn gateway |
CN105580333A (zh) * | 2013-08-14 | 2016-05-11 | 丹尼尔·钱 | 评估可疑网络通信 |
-
2018
- 2018-08-09 CN CN201810903559.3A patent/CN110798438A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1818823A (zh) * | 2005-02-07 | 2006-08-16 | 福建东方微点信息安全有限责任公司 | 基于程序行为分析的计算机防护方法 |
CN102694817A (zh) * | 2012-06-08 | 2012-09-26 | 奇智软件(北京)有限公司 | 一种识别程序的网络行为是否异常的方法、装置及系统 |
CN103716295A (zh) * | 2012-09-28 | 2014-04-09 | 株式会社得那 | 网络系统和非暂态计算机可读存储介质 |
CN102932375A (zh) * | 2012-11-22 | 2013-02-13 | 北京奇虎科技有限公司 | 网络访问行为的防护方法和装置 |
CN105580333A (zh) * | 2013-08-14 | 2016-05-11 | 丹尼尔·钱 | 评估可疑网络通信 |
US20150052595A1 (en) * | 2013-08-15 | 2015-02-19 | Mocana Corporation | User, device, and app authentication implemented between a client device and vpn gateway |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109711168B (zh) | 基于行为的服务识别方法、装置、设备及可读存储介质 | |
US9240977B2 (en) | Techniques for protecting mobile applications | |
JP6559694B2 (ja) | 自動sdk受容 | |
US9361451B2 (en) | System and method for enforcing a policy for an authenticator device | |
US20180173869A1 (en) | Hardware-based device authentication | |
US8032920B2 (en) | Policies as workflows | |
RU2618946C1 (ru) | Способ блокировки доступа к данным на мобильных устройствах с использованием API для пользователей с ограниченными возможностями | |
US20140189781A1 (en) | Mobile enterprise server and client device interaction | |
US20170103200A1 (en) | Log Information Generation Apparatus And Recording Medium, And Log Information Extraction Apparatus And Recording Medium | |
US11310238B1 (en) | System and method for retrieval and analysis of operational data from customer, cloud-hosted virtual resources | |
US9172701B2 (en) | Techniques for secure debugging and monitoring | |
CN113646761A (zh) | 向应用提供应用安全、验证和特征分析 | |
JP2014505960A (ja) | アプリケーション証明のためのシステムおよび方法 | |
US20230199018A1 (en) | Risk based virtual workspace delivery | |
CN111444500A (zh) | 鉴权方法、装置、设备及可读存储介质 | |
US20160055344A1 (en) | Data loss prevention during app execution using e-mail enforcement on a mobile device | |
US20150150119A1 (en) | Framework for fine-grain access control from high-level application permissions | |
US20170193218A1 (en) | Reducing Unregulated Aggregation Of App Usage Behaviors | |
CN104702575A (zh) | 一种账号管理方法、管理平台及系统 | |
Kilinc et al. | Walldroid: Cloud assisted virtualized application specific firewalls for the android os | |
US10827349B2 (en) | SEALANT: security for end-users of android via light-weight analysis techniques | |
US10681031B2 (en) | Federating devices to improve user experience with adaptive security | |
US10853457B2 (en) | System and method for program security protection | |
US12093428B2 (en) | Restricting access to application functionality based upon working status | |
CN110798438A (zh) | 应用内防火墙实现方法、系统及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200214 |
|
RJ01 | Rejection of invention patent application after publication |