避免崩溃日志

详细描述

有很多用于跟踪用户使用情况并收集iOS和Android的崩溃日志的framework,这些framework都是开发的有用工具,但重要的是要在开发人员的足够调试信息和攻击者的信息减少之间找到平衡。

如果应用程序崩溃,生成的日志可以为攻击者提供有价值的信息。

建议

确保已发布的应用程序构建时没有任何警告,并经过彻底测试,以避免崩溃。 这肯定总是目标,值得一提的是由于崩溃日志的价值。 考虑禁用iOS的NSAssert。 如果断言失败,此设置将导致应用程序立即崩溃。 它更加优雅地处理失败的断言比崩溃和生成崩溃日志。 此外,避免通过网络以纯文本发送崩溃日志。

使用安全的开发工具,如clang-analyzer,coverity,ASAN和其他linting实用程序,以确定所有可能的操作,可以使应用程序崩溃或错误功能。

此外,如果应用程序被混淆和剥离,开发人员将需要保留一个地址到符号数据库,以便在崩溃日志中恢复有意义的回溯,使攻击者的生活更加困难,因为在函数中缺乏可理解的名称。

CWE/OWASP