假设我有一个API端点,如Facebook,我设计了一个运行在我的PC上的应用程序,以定期连接到API并检索我的帖子、注释等。在每个Timer_Tick上,程序重新连接到API,并从API中获取前10个数据项,并将这些数据保存到数据库中。
现在,假设这个应用程序是由第三方构建的,而我只是从互联网上下载的二进制文件,而不是开放源码。
我如何知道应用程序是否在我不知情的情况下将我的Facebook数据泄露给第三方?
如果发现这种泄漏,是否有监测机制?(从方案角度)
发布于 2018-04-15 08:25:43
这是一个安全问题,为了确保您几乎必须考虑这里的任何漏洞,并试图确保无法通过已知的漏洞显示数据,但您无法确定未知的漏洞。如果这是信任的问题,并且您正在处理敏感数据,我强烈建议您避免使用第三方工具,除非它们是由API提供者提供或认证的。这里有一些技巧,女巫将帮助您了解后院发生的事情,但是,它们肯定不能保证的安全:
首先,确保应用程序确实是二进制代码(我知道您提到它是二进制代码),这是因为一些可执行文件只是脚本或半脚本,但看起来像二进制文件。例如,在某些情况下,如果可执行应用程序的源代码是用C#、Python编写的,那么有一些工具可以帮助您DeComplie应用程序并了解内部的情况。当然,如果代码被混淆了,或者涉及到复杂的模型或OO编程模型,那么这个解决方案就会相当困难。
2-使用网络监控工具,如WireShark或任何其他工具,在使用第三方应用程序时捕获HTTP/HTTPS请求的所有通信量。因为API与应用程序用来交换数据的HTTP请求完全相同,所以您可以使用这些工具来监视计算机中发生的事情。通常,该应用程序只能连接到使用web所需的Facebook服务器和URL,如果有任何来自Facebook以外的服务器发送或接收的其他请求,则这里有可能发生数据泄漏。如果这些请求不是由SSL/TLS加密的,您将能够看到正在交换的数据,或者如果它们是通过SSL/TLS加密的,那么有一些工具可以提供中间的人攻击解决方案来查看这些流量,但是如果它们是在应用层加密的,您将无法看到正在传输的数据,因此可能会涉及到对数据的怀疑,甚至更高的数据泄漏几率。不要忘记,必须将此监视扩展到应用程序的整个使用周期。
另外,将应用程序限制为只与服务器对话,您正在使用OS防火墙调用API,这将是为了减少数据泄漏的可能性。
https://stackoverflow.com/questions/49839452
复制相似问题