一种涉微信公众号违法犯罪的自动取证方法

2018-10-08 06:07汤艳君斯嘉懿李嘉奇
西安邮电大学学报 2018年4期
关键词:运营者浏览器账号

汤艳君,斯嘉懿,李嘉奇

(中国刑事警察学院网络犯罪侦查系,辽宁沈阳110854)

微信公众号是腾讯公司于2012年上线的基于微信软件开发的一项业务,目前可分成4类,分别是订阅号、服务号、企业号和小程序。微信公众号成为人们获取信息的主要途径。根据《2017年微信数据报告》显示,微信公众号月活跃账户数达到350万个[1],公众号月活跃“粉丝”数达到了 7.97 亿[2]。涉微信公众号违法犯罪是指,嫌疑人以微信公众号为媒介和平台,或者将微信公众号作为违法犯罪的工具或直接侵害的对象所实施违法犯罪活动的统称[3]。微信公众号在嫌疑人实施违法犯罪活动中,既可能被作为一种媒介或平台也可能被作为违法犯罪的工具,也可能是违法犯罪行为所侵害的直接对象。涉微信公众号违法犯罪问题主要出现在注册门槛相对低、申请条件相对简单且能够面向个人开放的订阅号这一类型。微信公众号中出现的违法犯罪现象种类繁多。其中涉及最多的涉微信公众号违法犯罪问题就是传播谣言,传播谣言的公众号多为地域类账号,嫌疑人的动机也是为制造舆论或者博取关注。微信公众号中另一类比较常见的违法犯罪是传播淫秽物品或者组织卖淫等涉嫌淫秽色情方面的犯罪,嫌疑人利用微信公众号为掩护贩卖淫秽色情音像制品或者将微信公众号作为其卖淫招嫖的工具,这一类型的公众号通常宣传的手段比较隐蔽,在固定的群体中流传比较广泛。

目前对利用微信公众号违法犯罪取证的研究较少,相关的研究主要集中在取证思路和方法上。如基于KNN的微信取证[4]、基于Android的手机微信取证[5]、基于 iPhone手机的微信聊天记录提取[6]等,大多是手动取证[7],对涉微信公众号违法犯罪自动取证的研究,还有待进一步深入。

网络爬虫技术是一种通过访问统一资源定位符(uniform resource locator,URL)来实现自动访问页面内容的技术,是一种网页自动检索工具,能够自动采集所有其能访问到的页面内容。使用网络爬虫技术可以获取目标公众号所有文章标题与地址并获取“cookies”,实现自动登录微信公众号后台,达到模拟登录的效果,进而通过后台文章转发接口获取目标账号的文章标题与地址。

为了实现对涉微信公众号违法犯罪的自动取证,本文拟使用网络爬虫技术进行微信公众号的取证。利用“python selenium”模块中的“webdriver”驱动浏览器自动登录微信公众号,获取“token”、“fakeid”等参数,自动获取目标账号所有的文章标题与地址,使用截屏的方式自动保存目标文章内容。

1 微信公众号的结构

微信公众号采用的是浏览器-服务器(browser/server,B/S)结构[8],该结构通过WWW浏览器来进入工作界面,事务逻辑中的极少部分在前端浏览器实现,主要事务逻辑在服务器端[9]。目前大多数手机的APP都起到了B/S结构中浏览器的作用,用户在微信软件中使用公众号功能就相当于在使用浏览器,形成了B/S结构中的表现层(UI)。用户使用微信公众号点击浏览一篇文章或者点击某个菜单按钮都是向微信WEB服务器发送了一条数据请求,实现了表现层(UI)向业务逻辑层(BLL)的访问。WEB服务器再根据浏览器发来的不同请求向数据访问层(DAL)的数据库服务器请求数据,并将应答结果返回给浏览器端,微信公众号的结构,如图1所示。

图1 微信公众号的结构

通过注册以及调试之后,在后台管理界面,微信公众号拥有7个功能模块,分别是功能、小程序、管理、推广、统计、设置与开发,每一个模块下又设置了不同的操作,可以实现不同的功能。微信公众号的部分功能结构,如图2所示。

(1)功能模块。运营者可以设置微信公众号为用户提供的功能,包括设置自动回复、自定义菜单、投票、卡卷以及原创声明等功能。

图2 微信公众号部分功能结构

(2)小程序。小程序是微信公众号推出的一种 功能,是与订阅号、服务号、企业号类似的一种公众号类型。小程序可以是门店应用、小游戏等诸多形式,也可以与公众号相关联。

(3)管理模块。向关注者推送消息以及与关注者进行互动交流,在这个过程中,会涉及到运营者准备素材、用户关注以及留言等方面。

(4)推广模块。方便运营者进行商业推广,运营者可以申请开通广告主和流量主两个功能栏。

(5)统计模块。是将微信公众号的运营情况进行统计,以图表的形式直观反馈给运营者,方便运营者对账号进行分析进而采取下一步运营策略。

(6)设置模块。运营者可以对公众号进行设置操作,包括公众号的基本设置、认证设置以及一些安全设置等。

(7)开发模块。可以帮助运营者开发公众号的高级功能,例如配置服务器、开发接口等,应用这一模块需要具备较高的计算机专业知识。

2 涉微信公众号违法犯罪的取证

取证是破案工作中的重要环节,涉微信公众号违法犯罪的取证方法主要可以从嫌疑人使用的电子设备以及微信公众号前台、后台等3个方面进行取证。

2.1 本机取证

嫌疑人在实施涉微信公众号违法犯罪时,其使用的电脑以及手机中肯定会留有大量的证据信息。根据涉微信公众号违法犯罪的种类不同,本机取证主要可以从以下几个方面进行。

(1)对嫌疑人手机的取证。在涉微信公众号违法犯罪的取证中,要重点关注嫌疑人的微信记录,尤其是对公众号的取证。如果是嫌疑人绑定公众号的微信是当前使用的微信,腾讯会使其微信自动关注一个名为“公众平台安全助手”的公众号,如图3所示。

公众平台安全助手公众号在嫌疑人每次操作公众号实施违法犯罪行为时,会将所有的操作记录下来并发送到嫌疑人的手机微信中。因此,根据该公众号的消息记录可以掌握嫌疑人最近操作使用微信公众号的情况,也可以根据其中的“绑定查询”功能查询嫌疑人手机号、身份证号以及微信号绑定公众号的情况。

(2)对嫌疑人电脑的取证。通过电脑登录微信公众平台网站进行操作也是嫌疑人实施涉微信公众号违法犯罪的主要途径。取证主要从以下2个方面的内容进行。

第一,对电脑浏览器记录的取证。嫌疑人通常会使用浏览器访问微信公众平台,进行相关公众号的操作;也会使用第三方编辑网站对微信公众号内容的样式进行编辑。因此,可以通过对“cookies”、“history”和“temporary internet files”等涉及浏览器使用痕迹的相关文件进行提取与分析[10],将嫌疑人访问微信公众平台频率、时间、上传和下载的文件等信息提取出来,形成完整的证据链,以证明嫌疑人使用微信公众号实施违法犯罪行为的存在。

第二,对电脑中相关文件的取证。嫌疑人使用电脑通过微信公众号发送违法犯罪信息,电脑中会有准备的素材。可以对嫌疑人电脑中的有关文件、聊天记录以及转账交易记录等方面进行取证。

图3 公众平台安全助手

2.2 客户端取证

涉微信公众号违法犯罪,一般在违法犯罪发生之时,会通过手机以及电脑中的微信客户端或者使用浏览器访问涉嫌违法犯罪的微信公众号链接,此时对包含违法犯罪信息的客户端页面进行取证。具体的操作方法为:对显示证据信息的页面使用截屏、拍照、录像等方式保存;如果通过电脑浏览器访问客户端时则使用保存网页的方法将有关证据固定。例如,在嫌疑人传播谣言的图文消息等证据未删除前,办案人员通过关注此公众号,访问嫌疑人发送的谣言信息,及时将谣言等违法信息通过截屏或对屏幕拍照、录像等方式固定下来,为抓获犯罪嫌疑人后的审讯等工作做准备。与犯罪嫌疑人、被告人供述和辩解,勘验、检查、辨认、侦查实验等笔录以及公众号后台信息等证据一起形成完整的证据链,使嫌疑人受到应有的法律制裁[11]。

2.3 服务端取证

涉微信公众号违法犯罪的发生往往都在一瞬间,嫌疑人完成犯罪之后对证据的消除也非常迅速。因此,需要在抓获违法犯罪嫌疑人后对公众号服务器端的数据进行取证,这是将涉嫌违法犯罪的公众号与现实中的嫌疑人进行关联的重要一步。

(1)对微信公众号的主体信息取证。首先应该明确公众号的主体信息,通过对微信公众号主体信息进行取证,能够证明涉嫌违法犯罪的账号为嫌疑人所有,解决将网络社会落实到现实社会的问题。

(2)对微信公众号发送的消息取证。嫌疑人在实施违法犯罪行为时,公众号多数情况下充当着信息发布的工具,通过分析关注者与账号运营者之间的会话,可以掌握嫌疑人实施违法犯罪行为更加全面的证据。将违法信息的内容和发送时间、嫌疑人登录微信公众号后台的时间、嫌疑人手机中收到的发送信息成功的提醒三者结合,可以形成嫌疑人实施违法犯罪行为的完整证据链。

(3)对微信公众号其他数据的取证。统计模块相当于为取证人员提前做了对微信公众号诸多方面的数据统计。在这个模块,取证人员可以根据案情需要,查看公众号所发消息的送达人数、所发文章的阅读次数、自定义菜单的被点击次数等信息,还可以在“统计-消息分析”中搜索包含特定关键词的消息。

3 自动取证程序的设计与实现

3.1 程序的设计

对微信公众号客户端取证具有过程复杂、接口少、图片格式特殊等难点,且在对公众号进行取证时如使用拍照、截屏等方式过程相当繁琐,如果将整个过程实现自动化可以极大提高工作效率。本程序中使用网络爬虫技术的目的是获取目标公众号所有文章标题与地址,同时要实现自动登录微信公众号后台的需求还需要获取“cookies”。微信公众号自动取证程序的主体功能主要有三部分:自动登录微信公众号后台、自动获取目标账号所有的文章标题与地址、使用截屏的方式自动保存目标文章内容。该自动取证程序以Python作为编程语言[12],采用网络爬虫与网页截屏技术,实现程序的设计。

首先,需要注册一个个人微信公众号,通过后台图文转发的功能获取目标账号的相关信息。通过“python selenium”模块中的“webdriver”驱动浏览器登录微信公众号,获取登录之后的“cookies”信息,并保存到本地文本中。其次,以“https://mp.weixin.qq.com”为 URL 使用上一步获取的“cookies”信息实现自动登录微信公众号并获取“token”等参数; 以 “https://mp.weixin.qq.com/cgi-bin/searchbiz?”为“search_url”搜索目标账号名称并获取“fakeid”等参数;以“https://mp.weixin.qq.com/cgi-bin/appmsg?”为“appmsg_url”获取目标账号所有文章的标题与地址并写入本地文件中。最后,通过“python selenium”模块驱动“Phantomjs”浏览器,使用上一步获取到的文章标题与地址,通过地址访问对应文章的页面,对网页进行截图并以文章标题命名写入指定目录下。

主函数调用2个函数:“weChat_login()”用于实现登录公众号,“get_content(query)”用于爬取目标公众号文章数据并截图保存。

代码实现如下。

if__name__=='__main__':

try:

weChat_login()

for query in gzlist:

print("开始爬取公众号:"+query)

get_content(query)

print("爬取完成")

except Exception as e:

print(str(e))

3.2 程序的实现

以Windows系统为运行环境,安装Python第三方基础代码库、配置相关浏览器、设置参数运行自动取证软件,实现相关功能。主要操作如下。

(1)使用“pip”命令安装第三方库。软件中使用到的库有“selenium”、“time”、“json”、“requests”、“re”、“random”,其 中“time”、“json”、“re”、“random”均为Python3版本内置库,无需额外安装,需要安装的的第三方库为“selenium”以及“requests”。

(2)配置浏览器。安装“Google chrome”浏览器并下载对应的“Chromedriver”驱动程序,将“Chromedriver”驱动程序放在“Google chrome”浏览器的根目录下,并修改程序中对应的路径。下载“Phantomjs”浏览器,将“phantomjs.exe”程序放置在“Python”的根目录下,并在程序中设置对应的路径。

(3)设置参数并运行。取证人员需要输入自己申请的个人公众号的账户名与密码,并设置要对其取证的目标公众号的名称列表。将“Python”脚本拖入“cmd”命令提示符框中,点击“回车”运行,软件运行后,所有的文章截屏图片都被放入了指定的文件夹中。自动取证软件的运行结果,如图4所示。

图4 自动取证软件的运行结果

4 结语

在研究了微信公众号架构的基础上,设计并实现了一种涉微信公众号违法犯罪的自动取证方法。该方法通过后台图文转发功能获取目标账号的相关信息。通过“python selenium”模块中的“webdriver”驱动浏览器登录微信公众号,获取登录之后的“cookies”信息;通过微信公众号固定URL前缀与前一步获取的“cookies”构造出访问URL,实现自动登录微信公众号,获取“token”、“fakeid”等参数后,获取目标账号所有文章的标题与地址并写入本地文件中;通过“python selenium”模块驱动“Phantomjs”浏览器,使用上一步获取到的文章标题与地址,通过地址访问对应文章的页面,对网页进行截图并以文章标题命名写入指定目录下,实现自动取证。经实验验证,所提出的方法可以实现对微信公众号文章的远程、自动取证。

猜你喜欢
运营者浏览器账号
彤彤的聊天账号
公众号再增视频号入口
施诈计骗走游戏账号
微软发布新Edge浏览器预览版下载换装Chrome内核
反浏览器指纹追踪
网络运营者不得泄露个人信息
链接:网络运营者不得泄露其收集的个人信息
Google Play游戏取消账号绑定没有Google账号也能玩
给骗子汇款
资讯网站低调而华丽地转身