.net 在独立应用程序中防止恶意软件的良好编程实践是什么?

.net 在独立应用程序中防止恶意软件的良好编程实践是什么?,.net,security,malware,.net,Security,Malware,有没有人想过如何防止对独立应用程序的恶意软件攻击。假设这是一个连接到internet的Windows计算机上的程序,这是最常见的情况 我还想知道什么类型的攻击是可能的。我相信.NET在运行代码之前会使用一种校验和对代码进行某种类型的静态检查。这将检测静态附加的恶意代码段。这个能传开吗 那么动态注入代码呢。单独的程序空间在某种程度上防止了这种情况。如何感染数据文件?将数据存储在数据库中并且只使用服务调用而不使用文件操作是否更安全 如何使用内存使用技术来提高安全性?我知道这不是一个独立的案例,但是,

有没有人想过如何防止对独立应用程序的恶意软件攻击。假设这是一个连接到internet的Windows计算机上的程序,这是最常见的情况

我还想知道什么类型的攻击是可能的。我相信.NET在运行代码之前会使用一种校验和对代码进行某种类型的静态检查。这将检测静态附加的恶意代码段。这个能传开吗

那么动态注入代码呢。单独的程序空间在某种程度上防止了这种情况。如何感染数据文件?将数据存储在数据库中并且只使用服务调用而不使用文件操作是否更安全

如何使用内存使用技术来提高安全性?我知道这不是一个独立的案例,但是,DNS服务器损坏的问题与IP地址的可预测使用有关。内存使用是否应该变得更加不可预测

我还想知道什么类型的攻击是可能的

您可以检查的内容因应用程序而异。以下是一些可以帮助您开始的想法:

  • 假设您有一个图像编辑器,您将希望确保人们不会利用图像编码器/解码器库中的错误导致的缓冲区溢出

  • 如果您有浏览器或文档查看器,那么在允许用户浏览到该URL之前,您需要检查每个URL——您应该禁用javascript注入

  • 如果您正在处理套接字,请确保不允许任何任意连接

  • 如果您正在从系统剪贴板读取/写入数据,请仔细检查数据,不要留下任何内容。做适当的清洁

  • 签署您自己的二进制文件和其他可分发文件

  • 如果您的应用程序涉及安全性:

  • 使用一个好的加密库

  • 进行威胁分析
  • 不要使用静态密码
还有更多

那么动态注入代码呢

这几乎总是因为代码中存在一些bug。通过静态分析工具运行代码,检查缓冲区溢出和错误

如何使用内存使用技术来提高安全性


在多用户场景中,您的应用程序已经沙盒化,可以在每个用户自己的进程空间中运行。但是,为单个用户沙箱不同的应用程序是没有意义的

最重要的是:不要以管理员身份运行,或者要求以管理员身份运行。使用CAS拒绝您自己不需要的权限。那样的话,如果其他一切都失败了,你得到了完全的所有权,那么你只是搞坏了自己,而不是整台电脑。

这是一个很大的、模糊的问题,很大程度上取决于独立应用程序需要做什么。