防止 API 客户端泄露敏感数据
Prevent API client from leaking sensitive data
假设我有一个 API 端点,例如 Facebook Graph API,我在我的 PC 上设计了一个应用程序 运行 以定期连接到 API 并检索我的帖子、评论等。在每个 Timer_Tick 上,程序重新连接到 API 并从 API 中获取前 10 个数据项,并将这些数据保存到数据库中。
现在,假设这个应用程序是由第 3 方构建的,我只是从互联网上下载的二进制文件而不是开源文件。
我怎么知道应用程序是否在我不知情的情况下将我的 Facebook 数据泄露给第三方?
如果发现此类泄漏,是否有监控机制? (从程序的角度)
这是一个安全问题,为了确保您几乎必须考虑这里的任何漏洞,并尝试确保没有办法通过已知漏洞泄露数据,但您无法确定未知漏洞。
如果这是信任问题并且您正在处理敏感数据,我强烈建议您避免使用第三方工具,除非它们由 API 提供商提供或认证。这里有一些技巧 可以帮助您了解后院发生的事情,但是 他们绝对不能保证安全 :
1- 首先确保应用程序确实是二进制代码(我知道你提到它是二进制代码),这是因为一些可执行文件只是脚本或半脚本但看起来像二进制文件。例如,在某些情况下,如果可执行应用程序的源代码是用 C# 编写的,Python、Java,有一些工具可以帮助您反编译应用程序并找出里面发生了什么。如果例如代码被混淆或者涉及复杂模型或 OO 编程模型,这个解决方案当然会相当困难。
2- 使用 WireShark or any other tool to capture all traffic of HTTP/HTTPS requests while using the 3rd party application. because the API is just the same as HTTP requests used by applications to exchange data you can use these tools to monitor what's going on in your computer. normally this application must only connect to the Facebook servers and URLs needed to use the web API, if there is any other request sent or received from a server other than the Facebook there is chance of data leak here. if these requests are not encrypted by SSL/TLS
you would be able to see the data being exchanged or if they are encrypted through SSL/TLS
there are tools that provide man in the middle 攻击解决方案等网络监控工具来查看这些流量,但如果它们在应用层中加密,您将无法看到正在传输的数据,因此可能会引起怀疑关于数据,数据泄露的可能性更高。不要忘记必须将此监控扩展到应用程序的整个使用周期。
同时限制应用程序仅与 中的服务器通信,您正在使用 OS 调用 API 防火墙将进一步减少此处数据泄漏的可能性。
假设我有一个 API 端点,例如 Facebook Graph API,我在我的 PC 上设计了一个应用程序 运行 以定期连接到 API 并检索我的帖子、评论等。在每个 Timer_Tick 上,程序重新连接到 API 并从 API 中获取前 10 个数据项,并将这些数据保存到数据库中。
现在,假设这个应用程序是由第 3 方构建的,我只是从互联网上下载的二进制文件而不是开源文件。
我怎么知道应用程序是否在我不知情的情况下将我的 Facebook 数据泄露给第三方?
如果发现此类泄漏,是否有监控机制? (从程序的角度)
这是一个安全问题,为了确保您几乎必须考虑这里的任何漏洞,并尝试确保没有办法通过已知漏洞泄露数据,但您无法确定未知漏洞。 如果这是信任问题并且您正在处理敏感数据,我强烈建议您避免使用第三方工具,除非它们由 API 提供商提供或认证。这里有一些技巧 可以帮助您了解后院发生的事情,但是 他们绝对不能保证安全 :
1- 首先确保应用程序确实是二进制代码(我知道你提到它是二进制代码),这是因为一些可执行文件只是脚本或半脚本但看起来像二进制文件。例如,在某些情况下,如果可执行应用程序的源代码是用 C# 编写的,Python、Java,有一些工具可以帮助您反编译应用程序并找出里面发生了什么。如果例如代码被混淆或者涉及复杂模型或 OO 编程模型,这个解决方案当然会相当困难。
2- 使用 WireShark or any other tool to capture all traffic of HTTP/HTTPS requests while using the 3rd party application. because the API is just the same as HTTP requests used by applications to exchange data you can use these tools to monitor what's going on in your computer. normally this application must only connect to the Facebook servers and URLs needed to use the web API, if there is any other request sent or received from a server other than the Facebook there is chance of data leak here. if these requests are not encrypted by SSL/TLS
you would be able to see the data being exchanged or if they are encrypted through SSL/TLS
there are tools that provide man in the middle 攻击解决方案等网络监控工具来查看这些流量,但如果它们在应用层中加密,您将无法看到正在传输的数据,因此可能会引起怀疑关于数据,数据泄露的可能性更高。不要忘记必须将此监控扩展到应用程序的整个使用周期。
同时限制应用程序仅与 中的服务器通信,您正在使用 OS 调用 API 防火墙将进一步减少此处数据泄漏的可能性。