有没有人对如何防止在独立的应用程序的恶意软件攻击的任何想法。 比方说,这是连接到互联网的Windows机器上的程序,这是最常见的场景。
我也想知道什么类型的攻击是可能的。 我相信.NET将做一些静态类型检查的代码运行之前,使用一种类型的校验和。 这将检测到一个静态连接恶意代码段。 这个问题能得到解决?
怎么样动态注入代码。 单独的程序空间防止这种情况在一定程度上。 怎么样感染的数据文件吗? 它是更安全的数据存储在数据库中,只使用服务调用没有文件操作?
关于内存使用什么技术来提高安全性? 我知道这是不是一个独立的案件,但是,与DNS服务器的腐败问题曾与一个可预见的使用,我认为,IP地址来做。 如果内存使用情况作出更加不可预测?
我也想知道什么类型的攻击是可能的。
你可以检查取决于你的应用程序而异。 这里有一些想法,可以帮助您开始:
假设你有,你会希望确保人们不利用缓冲区溢出一个图像编辑器,由于在图像编码器/解码器库的错误。
如果你有一个浏览器或文件浏览器,你需要允许用户浏览到URL之前检查每一个网址 - 你应该禁用JavaScript注入。
如果你正在处理的插座,看到你不容许任意连接。
如果你正在读/从系统剪贴板书写,仔细检查数据,不留下任何痕迹。 正确的清除。
登录自己的二进制文件和其他distributables。
如果您的应用程序的安全性涉及:
使用一个很好的加密库
- 有威胁分析
- 不使用静态密码
和许多许多......
怎么样动态注入代码。
这是因为在你的代码的一些错误的几乎都是。 通过静态分析工具来运行你的代码,并检查缓冲区溢出和朋友。
关于内存使用什么技术来提高安全性?
在多用户情况下,你的应用程序已经到沙盒中的每个用户自己的进程空间中运行。 但是,它没有任何意义沙箱不同的应用程序为单个用户。
最重要的是:不要以管理员身份运行,或要求您可以以管理员身份运行。 使用CAS否认自己不需要的权限。 这样,如果一切都失败了,你会得到完全拥有的,你只拧自己,而不是你的整个PC。
文章来源: What are good programming practices to prevent malware in standalone applications?