本周工作成果
关于activity劫持方面的安全问题,通过查找资料,编写了两个应用,一个是正常的应用,模拟一个在前台运行的应用,一个劫持activity,这里设置了一个启动界面,实际运行当中不会有启动界面,而是一个运行在后台的service,循环检测手机上正在运行的所有应用。
1、正常应用代码实现
首先是模拟一个简单的输入用户名和密码的界面,如下所示
图1
图2 正常应用
2、劫持应用代码实现
这里通过包名的方式劫持目标应用,主代码如下图所示
图3
图3.1
运行后的界面如下
图4
实际当中应该没有这个界面,而是在用户不知情的情况下安装,并一直运行在后台,循环检测所有正在运行的程序,当检测到目标应用,且运行在前台时,立即启动之前伪造的activity,在这里还添加了开机启动的功能,随时监测将要劫持的目标应用。
3、首先在手机上打开劫持应用,然后点击开启服务按钮,此时我们从Logcat上可以看到后台服务被启动,而是不断的在输出打印信息,即检测到的所有正在运行应用的包名,如下图
图5
现在关掉劫持应用即可,后台服务会持续运行。打开正常应用,此时我们可以看到跟他完全一样的一个界面立刻将它覆盖,在这里还有待完善,正常情况下切入的时候应该不会被发现,此时正在前台的运行的是我们实现模拟的一个完全相同的界面,用户如果在不知情的情况下输入了用户名和密码并点击登录按钮后,会立马将用户名和密码发送到攻击者手中。在这里通过一个Toast显示了一下,表明用户名和密码劫持成功。如下图
图6
下周任务
1、分析其危害的严重性
2、找出相应的相应的避免应用被劫持的方法