避免崩溃日志
细节
有一些框架是用于跟踪用户使用情况并收集iOS和Android的崩溃日志,这些都是开发的有用工具。但重要的是,崩溃日志需要在为开发人员提供的足够调试信息和为攻击者的减少信息之间找到平衡点。如果应用程序崩溃,生成的日志可以为攻击者提供有价值的信息。
建议
确保已发布的应用程序无警告信息,并经过完全测试以避免崩溃。鉴于崩溃日志的价值,这肯定总会成为攻击者的目标,因此值得一提。对于iOS来说,考虑禁用NSAssert。如果断言失败,此设置将导致应用程序立即崩溃。处理失败的断言比崩溃和生成崩溃日志更为优雅。另外,避免以明文方式在网络上发送崩溃日志。
使用安全的开发工具,如clang-analyzer,coverity,ASAN和其他linting工具,以确定可能使应用程序崩溃或发生故障的所有可能的操作。
此外,如果应用程序加了混淆、做了分离,开发人员将需要保留一个地址到符号的数据库,以便在崩溃日志中恢复有意义的回溯信息。这会让使攻击者的的工作更加困难,因为在函数中缺少可理解的名称。