【问题标题】:Creating a security application for Windows为 Windows 创建安全应用程序
【发布时间】:2011-12-24 22:30:22
【问题描述】:

首先,让我声明,我是一名中级 .NET 开发人员,因此不可能进行低级开发。

基本上我只是想编写一个程序来监控系统的变化并记录/报告这些变化。它不需要阻止任何更改,即使我想考虑编写它的语言,我也不相信我能做到。我只是不确定我需要检查什么。

想到这些想法:

  • 检查并存储系统文件的 MD5 总和以及链接到的所有内容 在注册表中启动,如果它们与受信任的 MD5 不匹配,则 使用 VirusTotal 或类似服务进行扫描
  • 检查运行进程的可信 MD5 和,上传未知到 病毒总数
  • 监控服务
  • 监控监听端口

当然,检测 ring3 之外的任何东西是不可能的。

还有什么其他的想法要检查吗?这是可行的还是我应该坚持使用流行的反恶意软件?

编辑:想到的另一个想法是检查正在运行的进程的路径并报告一个不合适的可执行文件。也许正则表达式也会扫描随机文件名。还可能验证正在运行的进程的可执行标头,并报告无效的标头信息,因为我听说绑定文件会使标头的一部分(PE?)无效。也验证文件的证书,虽然我见过带有伪造证书的恶意软件,之前通过了 UAC。

是时候进行更多研究了,谢谢大家!

【问题讨论】:

  • 您是否正在尝试创建自己的反恶意软件系统?如果是为了学习目的,还算公平,但如果是为了实际使用,我建议使用已经可用的标准。 MalwareBytes 很不错。除了实施之外,流行的主要优点是它们的签名会定期更新。
  • 嗯 md5?我猜您并没有真正了解安全性,否则您会知道得更好。
  • @Rook 的 md5 已经被严重破坏,以至于您能够为任意文件生成冲突?一件事是 SSL 证书,可执行二进制文件更大。不想为使用 MD5 辩护,我只是好奇 :)
  • @snemarch 是的 100%。攻击者可以使用 md5 前缀攻击的现代台式机为任意文件创建 md5 冲突。击败绊线正是哈希冲突有用的攻击类型。如果您不理解这一点,那么您绝对没有必要创建这样的安全系统。
  • @snemarch 哇,我想不出比故意使用损坏的原语来执行安全策略更大的密码错误了。任何称职的密码学家都应该在阅读您的陈述时畏缩。

标签: .net windows security


【解决方案1】:

还有什么其他的想法要检查吗?这是可行的还是我应该只是 坚持使用流行的反恶意软件?

除非您这样做是为了学习,否则可能。出于学习目的,这根本不是一个糟糕的练习。换句话说,我不会试图单枪匹马地与现有产品竞争,我也不会只用本土代码来保护我自己的机器;即使它经过了良好的测试,你也必须跟上最新的问题和漏洞。

我花了一些时间为一家初创公司对此类产品进行尽职调查。他们实现了与您所寻求的类似的东西,但性能严重下降。即使是主流产品,性能也可能是个问题。

【讨论】:

  • 完全出于学习目的,我知道我无法创造任何接近市场上的任何东西,这就是为什么我在这里询问我应该如何去做:)。我在偏执模式和 MSE 中使用 Comodo 和 Defense+,我只想了解更多关于安全和编程的信息。话虽如此,您还有意见吗?谢谢。
【解决方案2】:

如果您使用的是 Windows 机器,我认为最好使用恶意软件扫描工具。除非您将使用 Microsoft Antivirus API,否则我认为您很容易遇到文件锁定问题。

但是如果你想监控服务和监听端口,可以使用内置的框架类来实现。

【讨论】:

  • 不了解 Microsoft Antivirus API,谢谢!我将研究涉及网络、服务、驱动程序、文件等监控的不同类。真的,我主要是在寻找关于我列出的步骤是否有用的输入,并获得关于我可能监控的其他事情的建议。干杯
猜你喜欢
  • 2013-05-13
  • 1970-01-01
  • 1970-01-01
  • 2016-06-14
  • 1970-01-01
  • 2011-03-08
  • 1970-01-01
  • 1970-01-01
  • 2015-09-06
相关资源
最近更新 更多