CN112257032A - 一种确定app责任主体的方法及*** - Google Patents
一种确定app责任主体的方法及*** Download PDFInfo
- Publication number
- CN112257032A CN112257032A CN202011041584.9A CN202011041584A CN112257032A CN 112257032 A CN112257032 A CN 112257032A CN 202011041584 A CN202011041584 A CN 202011041584A CN 112257032 A CN112257032 A CN 112257032A
- Authority
- CN
- China
- Prior art keywords
- app
- domain name
- information
- enterprise
- website
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 49
- 230000009193 crawling Effects 0.000 claims abstract description 80
- 238000004458 analytical method Methods 0.000 claims abstract description 29
- 238000000605 extraction Methods 0.000 claims abstract description 28
- 230000008569 process Effects 0.000 claims abstract description 26
- 238000007405 data analysis Methods 0.000 claims abstract description 14
- 238000009434 installation Methods 0.000 claims description 15
- 244000035744 Hura crepitans Species 0.000 claims description 13
- 238000004088 simulation Methods 0.000 claims description 10
- 230000003068 static effect Effects 0.000 claims description 10
- 230000002159 abnormal effect Effects 0.000 claims description 9
- 239000000284 extract Substances 0.000 claims description 5
- 238000013480 data collection Methods 0.000 claims description 4
- 238000012423 maintenance Methods 0.000 claims description 3
- 238000012544 monitoring process Methods 0.000 claims description 3
- 239000004576 sand Substances 0.000 claims description 2
- 238000012163 sequencing technique Methods 0.000 claims description 2
- 238000001914 filtration Methods 0.000 abstract description 3
- 230000006870 function Effects 0.000 description 8
- 238000012545 processing Methods 0.000 description 4
- 230000001360 synchronised effect Effects 0.000 description 3
- 230000001960 triggered effect Effects 0.000 description 3
- 238000004140 cleaning Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000004573 interface analysis Methods 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 230000008092 positive effect Effects 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 230000004083 survival effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
- G06F21/121—Restricting unauthorised execution of programs
- G06F21/125—Restricting unauthorised execution of programs by manipulating the program code, e.g. source code, compiled code, interpreted code, machine code
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/951—Indexing; Web crawling techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/953—Querying, e.g. by the use of web search engines
- G06F16/9536—Search customisation based on social or collaborative filtering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/955—Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
- G06F16/9558—Details of hyperlinks; Management of linked annotations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
- G06F21/53—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Computer Hardware Design (AREA)
- Technology Law (AREA)
- Multimedia (AREA)
- Information Transfer Between Computers (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明提供了一种确定APP责任主体的方法及***,属于应用程序APP资源管理技术领域。本发明***包括配置模块、数据采集模块、域名提取模块以及数据分析模块。本发明方法包括:配置爬取任务并下发;对接收到的爬取任务进行解析,开启爬虫进程采集应用信息;域名提取模块启动APK分析程序;从URL链接中提取域名,过滤掉第三方SDK库中的域名;启动爬虫进程,根据域名爬取网站信息以及网站的企业主体;数据分析模块统计各域名出现的次数,分析APP责任主体。本发明能有效实现自动化分析以及主动获取APP责任主体,从多源来获取APP的潜在责任主体信息,可从隐藏的信息中发现责任主体,提高了发现责任主体信息的效率。
Description
技术领域
本发明属于应用程序APP资源管理领域,涉及一种确定APP责任主体的方法和***。
背景技术
目前市场上常见的确定APP责任主体的方式是通过各大应用市场中的开发者信息来确定该款APP的责任主体,虽然大部分APP在应用市场中进行了实名认证,但是还是会有一些APP没有入驻应用市场,或者使用了伪冒的身份信息。明确APP的责任主体有助于打击违法应用APP,保护用户的隐私。
现有的确定APP责任主体的方法主要从APP应用市场中的开发者信息来确定。在正规的应用市场中进行了开发者认证功能,其责任主体准确率较高,但是没有认证的无法确定其责任主体,并且有的APP没有在应用市场中发布,也无法确定其责任主体。
针对以上情况,需要通过主动分析技术来确定APP的责任主体信息。
发明内容
针对上述需求,为了确定APP的责任主体,本发明提供了一种确定APP责任主体的方法及***,通过主动方式构建第三方SDK资源库,并且通过主动爬取技术和分析技术,收集多源数据,通过对多源数据分析处理确定APP的责任主体。
本发明提供了一种确定APP责任主体的***,包括:配置模块、数据采集模块、域名提取模块以及数据分析模块。
用户通过配置模块配置APP爬取任务并下发给数据采集模块,APP爬取任务的信息包括待爬取的网址、APP应用市场名称、XML路径语言Xpath解析字段以及爬取周期。
数据采集模块解析接收到的APP爬取任务,首先爬取APP应用信息以及下载APP的应用程序包APK存储在APP应用信息库中;其次,数据采集模块开启爬虫进程进行网站数据采集,获取网站信息以及网站的企业主体;所述的APP应用信息包括:APP名称、主包名称、开发者信息、APK下载地址、发布时间、下载量以及版本信息;并下载APP的APK;将所采集的信息及下载的APK存入APP应用信息库;
域名提取模块定期扫描APP应用信息库,当有新的APP应用信息时,获取相应的APK,进行APP信息采集,包括:(1)模拟APP运行并抓包分析,获取APP在运行期间访问的统一资源定位符URL链接;(2)基于沙盒APP分析静态源码,提取APP中包含的所有域名;域名提取模块从获取的URL链接中提取域名;域名提取模块对提取的各域名,检测是否属于第三方软件开发工具包SDK库中的域名,若是过滤掉,若不是,将域名推送给数据采集模块,调用爬虫进程进行网站数据采集;
数据分析模块接收数据采集模块爬取的APP应用信息、域名提取模块提取的域名、根据域名爬取的网站信息以及域名的企业主体,对域名的出现次数进行统计,并为不同网站获得的企业主体设置不同权重,将权重与对应的域名出现次数相乘作为企业主体的优先级数值,优先级数值越大,表示企业主体是APP的责任主体的概率越大;根据计算的优先级数值,对企业主体进行排序,保留在超过阈值的企业主体,作为APP的责任主体。
所述的数据采集模块在开启爬虫进程进行网站数据采集时,爬虫进行首先判断域名是否合法,若不合法不进行爬取,若合法,判断域名是否有对应的网站,若有,爬取网站源码,分析源码发现对应的企业主体,若不存在网站,则通过在记录企业信息的网站上根据域名爬取对应的企业主体。
相应地,本发明提出的一种确定APP责任主体的实现方法,包括以下步骤1~8:
步骤1:通过配置模块配置APP爬取任务并下发;其中,APP爬取任务的信息包括待爬取的网址、APP应用市场名称、Xpath解析字段以及爬取周期;
步骤2:数据采集模块对接收到的APP爬取任务进行解析,开启爬虫进程采集APP应用信息,包括:APP名称、主包名称、开发者信息、APK下载地址、发布时间、下载量以及版本信息;并下载APP的APK;将所采集的信息及下载的APK存入APP应用信息库;
步骤3:域名提取模块启动APK分析程序,每隔设定时间间隔扫描一次APP应用信息库,查找新增的APP应用信息,对下载的APK基于沙盘进行静态源码解析以及模拟运行,在模拟运行时调用抓包工具抓取访问的URL链接,在静态源码解析时提取APP包含的所有域名;
步骤4:监控数据采集模块的APK分析程序,每当APK安装包分析完成后,域名提取模块从步骤3抓取的URL链接中提取域名;
步骤5:域名提取模块对步骤3和4中提取的域名进行过滤,若域名属于第三方SDK库中的域名,过滤掉,否则将域名发送给数据采集模块;
步骤6:数据采集模块启动爬虫进程,根据域名爬取网站信息以及网站的企业主体;
步骤7:数据分析模块获取APP的应用信息、经域名提取模块过滤后的APP的所有域名、域名对应的网站信息、以及网站对应的企业主体,然后统计各域名出现的次数,根据企业主体获取的源不同设置权重,将域名出现的次数与设置的权重相乘作为企业主体的优先级数值,数值越高表示企业是APP的责任主体的概率越高;数据分析模块对APP保留超过设置阈值的企业主体;
步骤8:当用户查询APP的责任主体时,按照优先级数值从高到低的顺序显示企业主体。
本发明方法及***与现有技术相比,具有如下优点和积极效果:
(1)本发明通过主动爬取APP的源码以及进行模拟APP运行,来分析其责任主体,能有效实现自动化分析以及主动获取APP责任主体。通过为不同网站源获取的企业主体设置不同的权重,也利于发现APP的大概率的责任主体。
(2)本发明从多源来获取APP的潜在责任主体信息,通过基于模拟器模拟APP的运行,并在底层对APP进行流量的抓包,可以更好的分析出该APP中包含的所有的域名数据,发现隐藏的可以发现企业主体的信息;此外,在模拟APP运行时,采用自动注册的方式,针对需要注册的APP进行注册,可更好的模拟APP的运行,以提高发现企业主体信息的效率。
(3)本发明采用分布式方式部署爬虫进程和任务下发模块,可根据爬取任务的情况,动态进行服务器的扩展,提高了数据爬取的效率,提高了***的稳定性与健壮性。
附图说明
图1为本发明实现的确定APP责任主体***的一个整体结构示意图;
图2为本发明***中模拟APP运行并抓包分析功能实现流程图;
图3为本发明基于沙盒APP分析静态源码功能实现流程图;
图4为本发明***中分布式爬虫功能实现流程图。
具体实施方式
下面结合附图和实施例来说明本发明的技术方案。
本发明的APP责任主体的确定过程中,由于数据都隐藏在APP的内部,需要采用基于沙盒的APP源码解析的方式处理,并且结合模拟APP应用,对APP源码进行抓包处理,获取其域名数据。另外还需要结合完备的第三方软件开发工具包SDK库、爬取各大应用市场APP信息工具、基于域名的爬虫工具、基于域名的网站解析工具等,通过对以上工具爬取收集数据以及清洗等方法,确定APP的责任主体。第三方SDK库通过爬取SDK资源网站以及对应域名在不同应用出现的频次来判断该域名是否为公共SDK的域名,从而构建第三方SDK库。
本发明提供的确定APP责任主体的方法和***,采用了基于分布式部署任务以及分布式部署爬虫的方法,通过对应用市场数据爬取,基于APK的代码分析和基于模拟应用APP应用的主体进行分析,再通过获取的数据,进行分析处理获得主体信息。
如图1所示,本发明公开的一种确定APP责任主体的***,主要功能模块包括:数据采集模块、配置模块、数据分析模块、域名提取模块以及第三方SDK库。
配置模块主要用于维护***的配置信息并存储在配置数据库中,配置信息主要包括应用市场信息、界面解析信息等,用户通过配置模块下发APP爬取任务。APP爬取任务的信息包括待爬取的网址、APP应用市场名称、Xpath解析字段以及爬取周期。在配置模块中,实现的功能包括下发配置、启动配置、配置维护、记录配置日志等。
数据采集模块,定时解析接收到的APP爬取任务的配置信息,对任务情况进行自动分配,基于分布式爬虫保证数据爬取的效率。如图1所示,数据采集模块在接收到配置模块下发的APP爬取任务命令,并解析命令后,首先遍历配置数据库,获取新任务的配置信息,解析配置信息,验证配置信息的准确性,如果配置信息准确无误,则开启新的爬虫进程,将解析获得的数据爬取任务分发给分布式爬虫进程,对数据进行爬取,同时记录该任务的开始时间、爬取进度、爬取数量、是否异常、是否完成、结束时间以及异常日志等详细信息。爬虫在出现问题后,会记录爬取的详细信息,并且可以从断点继续爬取,保证任务执行的稳定性与高效性。数据采集模块还对爬取的数据进行下载、清洗和解析。数据采取模块爬取的APP应用信息包括:APP名称、主包名称、开发者信息、APK安装包下载地址、发布时间、下载量、版本信息等。针对APK的下载地址,开启单独的线程对APK安装包下载。将采集的APP应用信息及下载的APK安装包都存储在APP应用信息库中。
本发明***中对APP进行两方面的数据采集,一种是APP信息采集,一种是APP对应的网站数据采集,二者通过不同的方式来进行触发,可以以任务形式自动处理,也可以通过主动方式进行触发。如图1所示,本发明实施例中,设置APP信息采集在域名提取模块中,实际上也可以设置在数据采集模块中,可根据需要来设置所属功能模块;网站数据采集设置在数据采集模块中。
域名提取模块定期扫描APP应用信息库,当有新的APP应用信息时,获取相应的APK,对数据采集模块采集的APP应用信息以及APK进行APP信息采集。APP的信息采集分两部分:模拟APP运行并抓包分析,基于沙盒APP分析静态源码。
模拟APP运行并抓包分析,主要利用APP模拟器模拟APP的运行,并通过Android控制台adb命令进行人工的模拟操作。如图2所示,在模拟APP运行过程中,会产生URL(统一资源定位符)的访问,在服务器端按照tcpdump的方式对数据进行抓包,获取该APP在运行期间访问的URL链接。
沙盒是一种安全机制,用于防止不同应用之间互相访问。iOS***下每个应用都有自己对应的沙盒,每个沙盒之间都是相互独立的,互不能访问。沙盒的作用就是存储数据,每个沙盒就相当于一个应用的***目录。沙盒目录中包含:Documents、Library、tmp和一个xxx.app文件。基于沙盒的APP分析静态源码,是指通过沙盒原理对APP进行分析,提取APP中包含的所有域名信息。如图3所示,在获得APP的Android应用程序包(简称APK)的下载地址后,启动单独的下载任务下载APK安装包。对APK文件进行静态分析,包括:反编译APK文件,获取软件基本信息,分析应用权限、分析四大组件和敏感函数等。图3中还展示了模拟APP运行的动态分析。
域名提取模块对获取的APP访问的URL链接等,先进行预处理,排除错误数据、异常数据,以保证域名的合法性与正确性,然后提取域名地址。域名提取模块先从APP信息中获取的域名进行过滤,判断域名是否属于第三方SDK库,过滤掉域名为第三方SDK库中的域名。对不属于第三方SDK库的域名,调用数据采集模块的爬虫程序,爬取域名对应的网站源码信息,并从中获得可能的企业主体信息。
网站数据采集是通过将域名下发给爬虫进程,爬虫进程首先判断域名是否合法,如果不合法则任务不启动,再次判断该域名是否有对应的网站信息。如果有网站信息,爬取网站中的源码,分析源码发现对应的企业信息。如果不存在网站,则继续通过在天眼查等记录企业信息的网站上面爬取域名信息对应的企业信息。对上述结果进行汇总分析,进而获得域名与企业的原始数据。
数据分析模块接收数据采集模块爬取的APP应用信息、从域名提取模块中提取的域名(不包含过滤掉的域名)、以及根据域名爬取的网站信息和对应的企业主体,然后统计域名的出现次数,对从不同网站获得的企业主体设置权重,例如,设置从记录企业信息的网站上获取的企业主体的权重较大,从其他网站获取的企业主体的权重较小;接着,将权重与对应的域名出现次数相乘作为企业主体的优先级数值,对域名对应的企业主体进行优先级计算,再把计算的优先级数值与设置的阈值比较,保留超过阈值的企业主体,作为APP的责任主体。
如图4所示,为数据采集模块中的爬虫程序实现策略,主要分为服务端和客户端两部分:
(1)服务端开启后,启动爬虫规则维护线程,同步T_BASE_CRAWLER_CONTENT中的URLMD5到Redis中,执行定时任务。
服务端有两个定时任务,分别为(1.1)和(1.2)。(1.1)每5小时将规则爬取状态重置,如图4所示,本发明实施例中,把最近爬取时间在5小时之前的规则对应的ISSYNC置为0,重新爬取。(1.2)每1分钟同步规则到Redis(远程字典服务)库中,供客户端爬虫获取规则数据;如图4所示,本发明实施例中,每1分钟同步爬虫规则到redis队列,队列list中只存储规则识别码(ruleid),获取mysql(关系型数据库管理***)的规则方式是:根据约束ISSYNC=0,STATUS=1按照生存时间(order by save_time)对规则排序,获取新增和修改的爬虫规则。在新增或修改爬虫规则表时,设置ISSYNC=0。
图4中,ISSYNC用于表示数据是否同步,T_BASE_CLIENT表示爬虫客户端信息表,SAVETIME表示保存时间;STATUS表示状态。T_BASE_CRAWLER_CONTENT表示客户端爬取数据表,用来查看每个客户端的任务执行信息。URLMD5表示待爬取的URL地址的MD5值。
本发明实施例中,Redis有4种存储方式:规则ID队列list,存放规则识别码;存放URLMD5的集合set,用于去重;规则详情表hash,存放从mysql获取的规则详细信息,每个ruleid有一个字段filed和值value;客户端正在爬取的规则表string,表示为客户端和规则关联的键值对,如client[clientID]-‘ruleid1,ruleid2’。
(2)客户端通过GET RULE指令获取服务端的规则信息,如果没有规则信息,则返回等待指令,如果有规则信息,客户端从Redis队列中取出规则,触发爬取指令,对数据进行爬取,爬取完成后,从客户端的规则队列中删除对应规则记录,并将该条规则数据的状态重置,保存爬取数据结果。
如图4所示,客户端通过GET RULE指令从服务端获取规则,服务端根据要获取的规则数,在redis队列中pop出几条规则,若队列中没有规则,则服务端返回等待指令WAITING给客户端。若队列中有规则,则根据pop出的ruleid,从爬虫规则表redis hash(哈希表)中获取规则详情,新增redis客户端和规则关联键值对(key-value)在表string中,并在客户端断开连接时,把对应的规则重新push到redis规则队列中;然后根据ruleid设置T_BASE_CLIENT表的状态STATUS=1,表示规则爬取状态为爬取中,规则执行的客户端clienthost更新为当前客户端,若规则没有执行人,则为其新增CLIENT表记录,然后返回规则爬取指令CRAWLING到客户端。
客户端若在接收到WAITING指令时,过10s再次向服务端请求。客户端若在接收到CRAWLING指令时,根据规则数量启动对应数量的线程,每个线程按照各自规则爬取网站数据,从列表页获取所有详情页URL,每提取一个详情页,将扫描条数自增1,并读取redis库判断详情页是否是重复数据,若是,则不处理此详情页URL,若不是重复数据,则把详情页写入redis的去重队列中,成功进行下一步操作,即根据规则爬取详情页内容,***去重队列中。对所有详情页URL进行去重判断和内容爬取。当前列表页内的详情页都处理完后,发送指令ADDING到服务端,将爬取到的数据,包括扫描条数和详情页内容列表,发送给服务器,客户端将当前的详情页内容列表清空,将扫描条数清空,然后继续读取下一列表页。当所有列表页内的详情页都处理完后,返回客户端抓取完成指令FINISHED给服务端。
服务端在接收到ADDING指令时,将接收到的爬取数据存入mysql数据库中的客户端爬取数据表T_BASE_CRAWLER_CONTENT中,更新表中信息,包括爬取内容,扫描条数scannum,***条数insertnum。服务器在接收到FINISHED指令时,删除redis中客户端对应规则当前ruleid记录,并根据ruleid更新T_BASE_CRAWLER_CLIENT表,设置规则的状态status=0。当客户端与服务端断开连接时,服务端将redis中客户端对应的规则记录删除,将对应规则重新push到规则ID队列中。
使用Reids维护可用的ClientID数据,这个数据是爬虫客户端的一些基本信息。
本发明提供的确定应用程序APP责任主体的方法,一个实施步骤如下1~10所述。
步骤1:在配置模块中配置APP爬取任务并下发。
配置模块中配置待爬取的数据和爬取策略,包括待爬取的网址、待爬取的应用市场名称、爬取周期、以及Xpath解析字段等。
在本步骤中,还需要配置针对应用市场的详细解析方式,字段对应的XPath信息,是为后续的爬虫程序解析html界面配置的。通过配置模块,可以精准地提取指定字段。
步骤2:启动APP爬取任务后,数据采集模块获取该任务的详细信息,进行APP信息和网站数据爬取,爬取任务的负载由爬虫内部自己处理,保证任务的高效性。
数据采取模块通过分布式爬虫程序来爬取数据。爬取的APP应用信息包括:APP名称、主包名称、开发者信息、APK安装包下载地址、发布时间、下载量、版本信息等。针对APK的下载地址,开启单独的线程对APK安装包下载。将采集的APP应用信息及下载的APK安装包都存储在APP应用信息库中。
对爬取任务还记录:开始时间、爬取进度、爬取数量、是否异常、是否完成、结束时间以及异常日志,以保证爬取任务的完成的稳定性与高效性。
步骤3:域名提取模块启动APK分析程序,每隔设定的30分钟时间,扫描一次APP应用信息库,查找新增的APP应用信息,扫描下载的APK安装包,进行两部分的操作:1.对安装包进行沙盒分析,分析提取该安装包中的API(应用程序编程接口)地址,主要提取源码中包含的所有域名地址。2.对APP程序安装包通过模拟器进行模拟,并通过adb命令模拟运行,通过tcpdump的方式进行抓包,获得PCAP(过程特性分析软件包)文件。
PCAP文件格式是常用的数据包存储格式,包括wireshark在内的主流抓包软件都可以生成这种格式的数据包。
APK分析程序在进行分析前,先查找APK是否已有其他版本的分析数据,若有,对APK的分析数据进行清洗。
步骤4:解析PCAP文件,对http请求进行还原,提取包含域名信息的URL数据。监控数据采集模块的APK分析程序,每当APK安装包分析完成,域名提取模块对提取的URL数据进行域名提取。
步骤5:域名提取模块对步骤3和4提取的域名,根据第三方SDK库进行过滤及识别。将属于第三方SDK库中的域名过滤掉,将不属于第三方SDK库中的域名,推送给数据采集模块,数据采集模块启动爬虫进程。
第三方SDK库构建时设置有判断是否为公共SDK域名的阈值,当域名在不同应用程序出现的频次达到设置的这个阈值时,则判断域名为公共SDK域名。当新识别一个公共SDK域名时,发送到第三方SDK库进行存储。
步骤6:爬虫进程根据接收到的域名进行网站数据采集任务,首先爬取域名的网站源码信息,如果该域名有网站,则爬取该网站的头部Head,底部Footer以及网站介绍,公司简介等信息,对爬取的数据进行二次分析,识别出该网站对应的企业信息。若不存在网站,从天眼查等网站中通过域名查询对应的企业信息。
步骤7:数据采集模块将域名提取模块所下发的APP的所有域名、爬取的域名对应的网站信息、以及网站对应的企业主体、APP的应用信息等数据推送给数据分析模块;数据分析模块对域名对应的企业主体进行优先级标注,并根据设置的阈值来获取APP的责任主体。
将域名出现的频次与对应的企业主体的权重相乘作为企业主体的优先级数值,数值越高,表示该企业是APP的责任主体的可能性越高。
本发明实施例中,对于从网站、天眼查爬取的企业信息,统计域名的出现频次。同时为了更好的识别出APP的责任主体,设置通过天眼查查询出来的企业主体,设置权重为0.5,通过其他网站查询出来的企业,为域名出现的频次设置的权重要偏低,设为0.1。权重的设置,可以更好更准确地识别出APP的责任主体。
本发明设置了优先级阈值,对APP查找到的企业主体,保留超过优先级阈值的企业主体,并存入APP应用信息库中,以便于后续的查询。
步骤8:通过查询界面查询APP的责任主体。如果所查询的APP存在,按照优先级数值从高到低的顺序显示企业主体,作为查询结果。
步骤9:如果现有***中不存在所要查询的APP,则通过配置模块配置APP爬取任务,通过数据采集模块开启爬虫进程,爬虫在搜索引擎中进行APP的查找,如果搜索引擎找到APP的网站是应用市场,且在APP应用信息库中不存在,则爬取APP应用信息存储到APP应用信息库中,并下载APP的安装包;如果不是应用市场,则直接下载该APP的安装包。然后执行步骤3~7,获得待查询APP的责任主体信息。
步骤10:对于异常的APP,如无法获取责任主体时,采用人工处理的补偿机制,由人工判断该APP的信息,对APP的信息进行补充,修改相关信息,对程序进行优化,重新爬取数据。
通过上面的步骤,本发明可使APP的责任主体的确定覆盖率以及准确度都进行优化。
相比于现有技术,本发明通过对互联网中零散的数据进行分析整合,并且孵化处理一套完整的流程来主动确定APP的责任主体信息,并形成了完整的APP应用信息库,同时,采用异步的大范围的分布式爬虫,实现负载均衡,实现较高的爬取效率,具有较高的鲁棒性和稳定性。
Claims (9)
1.一种确定应用程序APP责任主体的***,其特征在于,包括:配置模块、数据采集模块、域名提取模块以及数据分析模块;
用户通过配置模块配置APP爬取任务并下发给数据采集模块,APP爬取任务的信息包括待爬取的网址、APP应用市场名称、XML路径语言Xpath解析字段以及爬取周期;
数据采集模块解析接收到的APP爬取任务,首先爬取APP应用信息以及下载APP的应用程序包APK存储在APP应用信息库中;其次,数据采集模块开启爬虫进程进行网站数据采集,获取网站信息以及网站的企业主体;所述的APP应用信息包括:APP名称、主包名称、开发者信息、APK下载地址、发布时间、下载量以及版本信息;并下载APP的APK;将所采集的信息及下载的APK存入APP应用信息库;
域名提取模块定期扫描APP应用信息库,当有新的APP应用信息时,获取相应的APK,进行APP信息采集,包括:(1)模拟APP运行并抓包分析,获取APP在运行期间访问的统一资源定位符URL链接;(2)基于沙盒APP分析静态源码,提取APP中包含的所有域名;域名提取模块从获取的URL链接中提取域名;域名提取模块对提取的各域名,检测是否属于第三方软件开发工具包SDK库中的域名,若是过滤掉,若不是,将域名推送给数据采集模块,调用爬虫进程进行网站数据采集;
数据分析模块接收数据采集模块爬取的APP应用信息、域名提取模块提取的域名、根据域名爬取的网站信息以及域名的企业主体,对域名的出现次数进行统计,并为不同网站获得的企业主体设置不同权重,将权重与对应的域名出现次数相乘作为企业主体的优先级数值,优先级数值越大,表示企业主体是APP的责任主体的概率越大;根据计算的优先级数值,对企业主体进行排序,保留超过阈值的企业主体,作为APP的责任主体。
2.根据权利要求1所述的***,其特征在于,所述的数据采集模块开启分布式爬虫进程进行数据爬去,同时记录任务的信息,包括:开始时间、爬取进度、爬取数量、是否异常、是否完成、结束时间以及异常日志;当爬虫出现问题时,将根据异常日志从断点继续爬取。
3.根据权利要求1所述的***,其特征在于,所述的第三方SDK库预先设置,其中包含公共SDK域名,通过爬取SDK资源网站以及查找域名在不同应用程序出现的频次来判断域名是否为公共SDK域名,从而构建第三方SDK库。
4.根据权利要求1所述的***,其特征在于,所述的数据采集模块在开启爬虫进程进行网站数据采集时,爬虫进行首先判断域名是否合法,若不合法不进行爬取,若合法,判断域名是否有对应的网站,若有,爬取网站源码,分析源码发现对应的企业主体,若不存在网站,则通过在记录企业信息的网站上根据域名爬取对应的企业主体。
5.根据权利要求1或4所述的***,其特征在于,所述的数据分析模块,在计算企业主体的优先级时,设置通过在记录企业信息的网站上查询的企业主体的权重为0.5,通过在其他网站查询出来的企业主体的权重为0.1。
6.根据权利要求1或4所述的***,其特征在于,所述的数据采集模块采用异步分布式爬虫程序,爬虫程序包含服务端和客户端两部分:
(1)服务端启动爬虫规则维护线程,执行两个定时任务,分别为:每5小时将规则爬取状态重置;每1分钟同步规则到Redis规则队列中,供客户端爬虫获取规则;
(2)客户端发送规则获取指令给服务端;服务端若没有规则信息,则返回等待指令给客户端;服务端如果有规则信息,客户端从Redis规则队列中取出规则,触发爬取指令,对数据进行爬取。
7.一种确定APP责任主体的方法,其特征在于,包括如下步骤:
步骤1:通过配置模块配置APP爬取任务并下发;其中,APP爬取任务的信息包括待爬取的网址、APP应用市场名称、Xpath解析字段以及爬取周期;
步骤2:数据采集模块对接收到的APP爬取任务进行解析,开启爬虫进程采集APP应用信息,包括:APP名称、主包名称、开发者信息、APK下载地址、发布时间、下载量以及版本信息;并下载APP的APK;将所采集的信息及下载的APK存入APP应用信息库;
步骤3:域名提取模块启动APK分析程序,每隔设定时间间隔扫描一次APP应用信息库,查找新增的APP应用信息,对下载的APK基于沙盘进行静态源码解析以及模拟运行,在模拟运行时调用抓包工具抓取访问的URL链接,在静态源码解析时提取APP包含的所有域名;
步骤4:监控数据采集模块的APK分析程序,每当APK安装包分析完成后,域名提取模块从步骤3抓取的URL链接中提取域名;
步骤5:域名提取模块对步骤3和4中提取的域名进行过滤,若域名属于第三方SDK库中的域名,过滤掉,否则将域名发送给数据采集模块;
步骤6:数据采集模块启动爬虫进程,根据域名爬取网站信息以及网站的企业主体;
步骤7:数据分析模块获取APP的应用信息、经域名提取模块过滤后的APP的所有域名、域名对应的网站信息、以及网站对应的企业主体,然后统计各域名出现的次数,根据企业主体获取的源不同设置权重,将域名出现的次数与设置的权重相乘作为企业主体的优先级数值,数值越高表示企业是APP的责任主体的概率越高;数据分析模块对APP保留超过设置阈值的企业主体;
步骤8:当用户查询APP的责任主体时,按照优先级数值从高到低的顺序显示企业主体。
8.根据权利要求7所述的方法,其特征在于,所述的步骤6中,爬虫进程进行首先判断域名是否合法,若不合法不进行爬取,若合法,判断域名是否有对应的网站,若有,爬取网站源码,分析源码发现对应的企业主体,若不存在网站,则通过在记录企业信息的网站上根据域名查询对应的企业主体。
9.根据权利要求7或8所述的方法,其特征在于,所述的步骤7中,若企业主体是通过在记录企业信息的网站上查询得到,设置权重为0.5,否则,设置权重为0.1。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911001651 | 2019-10-21 | ||
CN2019110016511 | 2019-10-21 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112257032A true CN112257032A (zh) | 2021-01-22 |
CN112257032B CN112257032B (zh) | 2023-07-14 |
Family
ID=74234274
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011041584.9A Active CN112257032B (zh) | 2019-10-21 | 2020-09-28 | 一种确定app责任主体的方法及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112257032B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113132383A (zh) * | 2021-04-19 | 2021-07-16 | 烟台中科网络技术研究所 | 一种网络数据采集方法及*** |
CN113691492A (zh) * | 2021-06-11 | 2021-11-23 | 杭州安恒信息安全技术有限公司 | 违法应用程序的确定方法、***、装置及可读存储介质 |
CN113986447A (zh) * | 2021-12-24 | 2022-01-28 | 畅捷通信息技术股份有限公司 | 一种本地应用服务与浏览器的交互方法、装置及存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120240236A1 (en) * | 2008-10-21 | 2012-09-20 | Lookout, Inc. | Crawling multiple markets and correlating |
CN104038363A (zh) * | 2013-10-24 | 2014-09-10 | 南京汇吉递特网络科技有限公司 | 一种对ccdn提供商信息进行采集及统计的方法 |
CN104080058A (zh) * | 2014-06-16 | 2014-10-01 | 百度在线网络技术(北京)有限公司 | 信息处理方法及装置 |
CN107590265A (zh) * | 2017-09-22 | 2018-01-16 | 杭州安恒信息技术有限公司 | 一种基于网络爬虫的网站行政归属识别方法 |
CN109885744A (zh) * | 2019-01-07 | 2019-06-14 | 平安科技(深圳)有限公司 | 网页数据爬取方法、装置、***、计算机设备及存储介质 |
CN110008390A (zh) * | 2019-02-27 | 2019-07-12 | 深圳壹账通智能科技有限公司 | 应用程序的评估方法、装置、计算机设备及存储介质 |
CN110245273A (zh) * | 2019-06-21 | 2019-09-17 | 武汉绿色网络信息服务有限责任公司 | 一种获取app业务特征库的方法及相应的装置 |
-
2020
- 2020-09-28 CN CN202011041584.9A patent/CN112257032B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120240236A1 (en) * | 2008-10-21 | 2012-09-20 | Lookout, Inc. | Crawling multiple markets and correlating |
CN104038363A (zh) * | 2013-10-24 | 2014-09-10 | 南京汇吉递特网络科技有限公司 | 一种对ccdn提供商信息进行采集及统计的方法 |
CN104080058A (zh) * | 2014-06-16 | 2014-10-01 | 百度在线网络技术(北京)有限公司 | 信息处理方法及装置 |
CN107590265A (zh) * | 2017-09-22 | 2018-01-16 | 杭州安恒信息技术有限公司 | 一种基于网络爬虫的网站行政归属识别方法 |
CN109885744A (zh) * | 2019-01-07 | 2019-06-14 | 平安科技(深圳)有限公司 | 网页数据爬取方法、装置、***、计算机设备及存储介质 |
CN110008390A (zh) * | 2019-02-27 | 2019-07-12 | 深圳壹账通智能科技有限公司 | 应用程序的评估方法、装置、计算机设备及存储介质 |
CN110245273A (zh) * | 2019-06-21 | 2019-09-17 | 武汉绿色网络信息服务有限责任公司 | 一种获取app业务特征库的方法及相应的装置 |
Non-Patent Citations (1)
Title |
---|
郭静 等;: "电力***移动应用安全测试技术研究", 电力工程技术, vol. 37, no. 04, pages 102 - 108 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113132383A (zh) * | 2021-04-19 | 2021-07-16 | 烟台中科网络技术研究所 | 一种网络数据采集方法及*** |
CN113132383B (zh) * | 2021-04-19 | 2022-03-25 | 烟台中科网络技术研究所 | 一种网络数据采集方法及*** |
CN113691492A (zh) * | 2021-06-11 | 2021-11-23 | 杭州安恒信息安全技术有限公司 | 违法应用程序的确定方法、***、装置及可读存储介质 |
CN113691492B (zh) * | 2021-06-11 | 2023-04-07 | 杭州安恒信息安全技术有限公司 | 违法应用程序的确定方法、***、装置及可读存储介质 |
CN113986447A (zh) * | 2021-12-24 | 2022-01-28 | 畅捷通信息技术股份有限公司 | 一种本地应用服务与浏览器的交互方法、装置及存储介质 |
CN113986447B (zh) * | 2021-12-24 | 2022-03-29 | 畅捷通信息技术股份有限公司 | 一种本地应用服务与浏览器的交互方法、装置及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112257032B (zh) | 2023-07-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112257032B (zh) | 一种确定app责任主体的方法及*** | |
CN110569214B (zh) | 用于日志文件的索引构建方法、装置及电子设备 | |
CN105095207B (zh) | 检索、获取应用软件内容的方法和装置 | |
CN107341395B (zh) | 一种拦截爬虫的方法 | |
CN106941493B (zh) | 一种网络安全态势感知结果输出方法及装置 | |
CN104765592B (zh) | 一种面向网页采集任务的插件管理方法及其装置 | |
CN111897625B (zh) | 一种基于Kubernetes集群的资源事件回溯方法、***及电子设备 | |
CN107547490B (zh) | 一种扫描器识别方法、装置及*** | |
CN105577528B (zh) | 一种基于虚拟机的微信公众号数据采集方法及装置 | |
US7913233B2 (en) | Performance analyzer | |
CN102857572A (zh) | 一种http访问请求处理方法、装置及网关设备 | |
CN112597373A (zh) | 一种基于分布式爬虫引擎的数据采集方法 | |
CN111104579A (zh) | 一种公网资产的识别方法、装置及存储介质 | |
CN109669795A (zh) | 崩溃信息处理方法及装置 | |
CN107704369B (zh) | 一种操作日志的记录方法、电子设备、存储介质、*** | |
CN114595201A (zh) | 一种接口访问日志采集记录查询方法、设备及存储介质 | |
CN103177022A (zh) | 一种恶意文件搜索方法及装置 | |
CN111339471B (zh) | 动态加载页面埋点数据的方法及装置 | |
CN109840103B (zh) | 应用程序容器的更新方法、装置和存储介质 | |
CN104317857A (zh) | 一种房屋信息采集服务*** | |
WO2022116846A1 (zh) | 虚拟网元的运行数据采集方法及装置 | |
US10671725B2 (en) | Malicious process tracking | |
CN105989019B (zh) | 一种清洗数据的方法及装置 | |
CN113031995B (zh) | 一种更新规则的方法、装置、存储介质以及电子设备 | |
WO2016175810A1 (en) | Classification of application events using call stacks |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |