移动安全面试题—抓包

justTrustMe 的原理?

justTrustMe 是一个 Xposed 模块,用于绕过 Android 应用的 SSL 证书验证。它的原理是 Hook 系统的 javax.net.ssl.X509TrustManager 类,使其在检查服务器证书时始终返回成功。这样,即使服务器使用了自签名证书或抓包工具的证书,应用也会接受。

了解过 SSL-pinning?SSL-pinning 证书是怎么获取的?

SSL-pinning 是一种安全策略,要求应用只信任预先定义的证书或公钥,而不是系统证书存储中的证书。这样可以防止中间人攻击和抓包工具的 SSL 解密。通常,SSL-pinning 证书是在应用开发阶段从服务器获取并嵌入到应用中的。

怎么绕过 SSL-pinning?

绕过 SSL-pinning 的方法主要有以下几种:

  • 使用 Xposed 或 Frida 等动态分析工具,Hook 相关的证书验证方法,使其跳过证书检查。
  • 使用逆向工程手段(如反编译、调试等),找到应用中的 SSL-pinning 实现,然后修改应用代码以禁用或绕过 SSL-pinning。
  • 替换应用内的 pinned 证书或公钥为抓包工具的证书,使应用信任抓包工具的证书。

    怎么针对 Socket 通信防护?

    针对 Socket 通信的防护方法主要包括:

  • 对 Socket 通信数据进行加密,防止抓包工具直接查看明文数据。
  • 使用 SSL/TLS 对 Socket 连接进行加密,提高通信安全性。
  • 混淆和加固应用代码,降低逆向工程和动态分析的难度。
  • 在应用运行时检测抓包工具、代理设置等,如果发现异常,则采取相应的防护措施(如终止网络请求、退出应用等)。

    Android 上中间人抓包的原理?如何进行防护?如何进行对抗?

    中间人抓包原理:抓包工具作为客户端和服务器之间的代理,截取并解密 SSL/TLS 通信,查看明文数据。实现中间人抓包的关键是让应用信任抓包工具的证书。
    防护方法包括:

  • 使用 SSL-pinning,使应用只信任预先定义的证书或公钥。
  • 对网络请求和响应进行加密,使抓包工具无法直接查看明文数据。
  • 检测抓包工具、代理设置、安装的 SSL 证书等,采取相应的防护措施。

对抗方法包括:

  • 使用动态分析工具(如 Xposed、Frida)绕过 SSL-pinning 和证书检查。
  • 修改应用代码以禁用或绕过 SSL-pinning。
  • 替换应用内的 pinned 证书或公钥为抓包工具的证书。

    还有哪些抓包方式?非 root 环境可以抓包吗?说说方案?

    除了常见的抓包方式(如 Wireshark、Charles、Fiddler),还有以下方法:

  • 使用 Android 抓包神器 Packet Capture,利用 VPN 服务捕获网络流量,无需 root。
  • 在应用代码层面进行抓包,通过拦截器或自定义网络库捕获网络请求和响应。

    现有的一些最难的抓包情况是怎么样的?

    最难的抓包情况可能包括以下几种:

  • 应用实现了强大的 SSL-pinning,同时采用了加密、混淆和加固技术,使得绕过 SSL-pinning 变得非常困难。
  • 应用使用了自定义的加密算法或协议,使抓包工具无法直接解析通信内容。
  • 应用具有强大的抓包检测和防护机制,例如检查代理设置、安装的 SSL 证书、运行环境等,一旦发现异常,会立即采取相应的防护措施(如中断网络请求、退出应用等)。
    推荐阅读:

https://mp.weixin.qq.com/s/dV2JzXfgjDdCmWRmE0glDA

https://mp.weixin.qq.com/s/an83QZOWXHqll3SGPYTL5g

file

你可能感兴趣的:(人工智能)