如何检测串口嗅探器?

如何检测串口嗅探器?

问题描述:

是否有可能检测到某个串口是否被Windows上运行的另一个进程嗅探到?如何检测串口嗅探器?

我们有一个应用程序接收一些其他人无法读取的敏感数据。所以,在打开串口之前,我们需要检查端口是否被监控。

我们可以使用Windows API函数打开具有独占访问权限的串口,但是如果监视器在我们的调用之前运行,它可以读取所有的通信(它以共享访问权限打开串口,所以我们可以同时打开端口)。为了避免这种情况,尝试检查端口是否受到监视并引发异常,并警告用户。是否有可能做到这一点?

+0

我不认为应用程序可以打开串行端口进行共享访问,即使他们可以,我认为您要求独占访问将阻止您获得一个已经打开的连接。如果我想编写软件来监视串口使用情况,我会写一个串口过滤驱动程序。 – ChrisW 2011-02-23 21:36:42

端口嗅探需要过滤器驱动程序,如SysInternals的PortMon实用程序。你正在采取错误的方式来保护你的应用程序。当有人可以安装过滤器驱动程序时,攻击者拥有足够的权限来完全禁用您的应用程序,并将其替换为自己制作的其他内容。试图通过您的应用程序检测并防止信息丢失毫无意义,系统本身必须得到保护。一个串口可能是你不得不失去的第一件事,点击它的电线是微不足道的。

+0

+1,但我不知道他将不得不失去串口,因为只有当攻击者能够实际访问系统时,这个攻击才是脆弱的,在这一点上,你放弃了所有的希望。点击以太网线也是微不足道的,但是现在这个星球上的大多数安全通信都穿过它们。 – 2011-02-23 22:28:08

+0

要回答这个问题:假设操作系统是Windows NT或变体,如何确定是否安装了过滤器驱动程序,和/或如何确定与给定串行端口关联的最顶级设备驱动程序的标识? – ChrisW 2011-02-23 23:07:14

+0

非常感谢Hans,你回答了这个问题。完全安全的系统是理想的情况,但不幸的是我不能确定这一点,主要是因为病毒(我们并不担心物理访问)。像ChrisW说的那样,我想我必须发现是否安装了过滤器驱动程序。 – Juliano 2011-02-24 01:04:36

而不是丢失串口为什么不是encrypt您的数据。这假定DTE和DCE都是可编程的。

+1

此时,连接的设备不会加密其数据。我们已经实施了他们的通信规范的新版本(与criptography),将很快在现场。但是,在升级所有传统硬件的固件之前需要一些时间。固件升级并不是那么简单,因为它要求将设备交付到工厂。 – Juliano 2011-02-26 19:46:40