百科问答小站 logo
百科问答小站 font logo



程序员都怎么处理流氓软件? 第1页

  

user avatar   qinlili233 网友的相关建议: 
      

如果一个程序你不能确定它是否会作恶,一律沙箱化


可以信任的程序只有以下:开源程序,带有国际性大公司如微软的有效数字签名的程序,受信任的开发者的闭源程序

而且请务必验证安装包是否完整,如果下载到体积非常小的安装包必须警惕是不是下崽器(不要完全相信Google结果,下崽器不是国内特色,其他国家的网站也可能有下崽器)


user avatar   s.invalid 网友的相关建议: 
      

@大宽宽 估计是看着我说的,哈哈……


当年我的一个重要“业务”,就是同学怀疑自己中病毒或者木马了,我就让他打开任务管理器,截图发过来。看着进程列表就知道哪些进程有问题。


我还写过一个小程序,自己爬进程列表,记录到文件里;然后隔三岔五跑一下,自动比对,有多出来的进程就刨根究底一番;不确定是怎么来的就干掉——宁杀错勿放过。


另外还写过一个小程序,可以遍历硬盘上的可执行文件,计算每个文件的MD5。稍有风吹草动我都知道。

不过,Windows平台,病毒已经势微,计算可执行文件MD5基本没啥用,因为几乎没有什么病毒会去感染可执行文件了——第一是需要权限太高,喜欢玩病毒的三脚猫搞不定;第二是动作太大,操作系统本身都能发现异常、发出警告;第三是好不容易安插进去了,一算MD5就给揪出来了,简直是生怕主人发现不了……

这和DOS时代完全不同。那时候我们是要记录所有系统文件的大小的,大了或者小了都可能是病毒;然后还要记住操作系统文件的开头几条指令,文件大小改变了,就用pctools或别的什么十六进制编辑器打开,找到该文件的真正执行入口;然后修改开头的几条指令,让它直接跳转正确入口继续执行,就把病毒废掉了——病毒就让它留在程序里,反正已经没影响了。非要干掉,一个容易破坏程序文件本身,另一个就是还会被这种病毒感染:大多数病毒会做一个判断,不会反复感染同一个文件。保留病毒数据就等于免疫了。

当然,有些病毒会把旧程序加密或者压缩(这就是有时候被病毒感染的程序反而会变小的原因),这时候简单粗暴的跳过病毒体就行不通了,需要分析病毒执行逻辑,把解压/解密的部分保留,感染、破坏部分跳过去,程序就恢复正常了。


相比之下,Windows时代的手工杀毒没有太大技术含量。记住那几个执行入口,断了病毒启动之路;然后进安全模式,删除病毒,完事。


简单的在每次安装程序/系统更新前后,遍历磁盘上的可执行文件,记录MD5,做一个快照;那么任何时候觉得系统可能不太安全了,再跑一下快照程序,自动比对,就能找出捣乱分子。干掉就完事了。

这个东西后来被微软做成功能了,就是“系统还原点”。只不过微软的一贯尿性,封装太厚了,把用户当傻子,全自动,细节被完全隐藏起来——所以“还原点”虽然好用,但就是没法拿来精准发现捣乱分子。

想准确抓到,还是得自己写程序,自己记录快照。


我一直都是手工杀毒,坚持了十多年;后来arp-iframe病毒来了。

这玩意儿,局域网里一台电脑感染病毒,那么你一打开浏览器,它就会不停给你推送。打开一个网页就给你推一个病毒。

这破病毒,手工杀很容易,但来的太多太频繁,烦不胜烦;后来自己写了个脚本,自动杀,效果不错,就是CPU占用太高了,5%~20%。然后才开始用杀毒软件。卡巴斯基、avg、avira等等,都试过,我系统里面就没病毒,只有个星际争霸破解器(但这玩意儿我很熟悉,它是干净的;但侵犯版权,所以被杀毒软件故意报毒)。可见我的手工杀毒效果还是不错的。


除此之外:

1、找原始开发者/公司的官方网站下载软件,验证签名,不要用二手货。

比如,putty是个很好的软件;但当年,所有中文下载站的所有putty全部绑有木马。

事实上,基于某些先例,软件尽量下外文版,宁可另外再下中文语言包然后配置一番(或者干脆就学会英文吧),尽量不要下中文版。不要问为什么。

2、记住开发流氓软件的公司,拒绝他的所有软件。不要相信狗不吃屎。

3、勤快更新,尤其是安全补丁,尽量第一时间打(但非安全更新可以迟一些,避免当第一批趟雷的小白鼠)。

4、虚拟机是个好东西。


user avatar   xing-jiankuan 网友的相关建议: 
      

稍微有点相关技术和技巧的程序员都会

  • 熟练背诵每个操作系统自带的进程和常用软件的进程。如发现没见过的,自己有没有启动,那八成就是个有问题的东西。
  • 熟练背诵并尽量减少系统启动时就自动运行的程序。如无需要绝不添加。
  • 全程开启防火墙,禁止除必要程序外一切出站和入站连接请求。
  • 只去有正确性保证的地方下载程序(即使是去官网也要防止钓鱼)。验证下载的签名。甚至是自己本机上从源码编译程序。确保自己运行的就是没被篡改的,自己想要的程序。
    • 对于开源,除了要去官方repo拉代码,还要留意repo owner会不会管代码合并。恶意代码有没有可能被提交到master
    • 对于maven这种需要去仓库拉包的,确保只相信1)官方仓库;2)阿里等大厂的国内镜像;3)你自己搭的proxy
    • 尽量避免盗版软件。破解本身就是篡改,但你怎么知道他只篡改了license代码
  • 当运行某个程序的某个功能,让操作系统弹出”我要权限“的框时,再次确认是什么程序要什么权限,是否合理,有问题能否关掉。而不是无脑点”确定“。
  • 对于可能有问题的程序,但又必须跑一下,开虚拟机跑。虚拟机还可以让你做个snapshot方便回滚。
  • 对于所有邮件/微信里可以执行的附件,可以点击的链接,再次确认来源的可靠性。比如可以打个对方联系电话问问是啥东西。
  • 操作系统,浏览器等如果有公告宣布0Day漏洞,第一时间升级。
  • 核心目录做好云备份。出了问题还能找回来。
  • 如果做网站的操作有些敏感,可以开启浏览器里的无痕模式,用完了关。用俩浏览器(如1个chrome,1个edge)分开专门用也能达到接近效果。

这样差不多能封堵99%被流氓软件骚扰的机会。但坦率来说,这一点都不极客,搞久了更多的是操心和无聊。

如果实在是搞不定上面这些事,买台mac吧。能省不少事。虽然这样很多事就干不了了。




  

相关话题

  VS中的Solution是什么意思? 
  「程序猿」相亲遇到「程序媛」会是怎样的场景? 
  30+了,女,身在互联网,做技术,5个月内被裁两次,这次还在试用期,心态崩了,怎么办? 
  程序员跳槽需要考虑新公司产品是否低俗、是否作恶吗? 
  14届毕业生入职BAT半年多,想离职了,我可以去哪? 
  为什么程序员互相之间不能透露薪水? 
  编程的世界是什么样的? 
  很想知道各位程序员大佬是怎么有耐心编下去码的? 
  被大叔耍流氓了怎么办? 
  真正的 IT 男是什么样的? 

前一个讨论
网游通信协议如何防止封包篡改?
下一个讨论
汽车启动之后,发动机转速表会上下抖动两下再稳定,请问是什么情况?





© 2024-12-26 - tinynew.org. All Rights Reserved.
© 2024-12-26 - tinynew.org. 保留所有权利