我的安全官昨天来找我,说 CEO 点击了“检测到病毒,点击‘是’进行扫描”弹出窗口,之后他的笔记本电脑当然就被病毒感染了。所以 SO 想要发布一些指导,告诉人们如何避免犯同样的错误。
他问我:“如果我说‘只要关闭弹出窗口,不要点击其中的任何内容’,这样就够了吗?”我打算和他谈谈弹出窗口拦截器,并向用户解释他们所看到的内容的社会工程学方面,但我感兴趣的是如何回答他的问题。
具体来说,因为我知道恶意程序员可以在弹出代码中放置 onunload() 或 unbeforeunload() 事件捕获器,因此如果他们关闭窗口,(我假设)当您单击“是的,请弄乱我的电脑”时运行的相同代码可以在您单击关闭框时运行。但另一方面,如果这是真的,如果黑客让您打开一个完全受他们控制的弹出窗口,为什么一开始还需要您单击按钮呢?为什么不让攻击代码在弹出窗口中运行呢?
答案1
从理论上来说,我会说“点击前请阅读“,如果有怀疑,请咨询当地管理员(是的,这会给可怜的管理员带来更多噪音,但仍然比出现问题后进行修复要少)。
但我们知道弹出窗口大多数时候都是不受欢迎的,人们不想阅读不受欢迎的消息,他们只是想摆脱它,继续他们正在做的事情。
至于弹出窗口本身,这种尝试应该被本地防病毒软件检测到。如果没有,就像您解释的那样,没什么可做的,因为没有什么能真正迫使他们尊重“他同意了,他没有直接关闭”。如果间谍软件想要安装,它不会直接请求许可。
答案2
答案3
无论您单击“确定”、“取消”还是关闭弹出窗口,恶意 JavaScript 通常都会执行相同的操作。一种选择可能是制作一个简单的程序来终止浏览器进程,在桌面/快速启动上放置一个快捷方式,并将其命名为“如果有奇怪的弹出窗口请单击此处”。