草庐IT

上班摸鱼与网络安全

锅叔的博客 2023-03-28 原文

  上班不摸鱼,那这班上的没有灵魂啊。但是不久前爆出的国美网络监控事件,也提示我们网络有风险,摸鱼需谨慎。

  https://baijiahao.baidu.com/s?id=1716730797543887197&wfr=spider&for=pc

  

   ——“另一家国企的技术处负责人表示,“理论上,员工打开了哪些软件,运行了哪些程序,甚至在论坛上发了哪些内容,我们都看得到。形象地说,上网相当于发送了一个请求,这些请求是能被我们侦测到的,通过截获这个流量,可以分析员工的上网活动。当然,我们不会主动去拆封这些信息,只是留存,方便出现问题后的回查” 

  以上摘录了文章中的一段,各位听上去是不是多少有些恐慌。 那岂不是我上班写的博客,搜过的奇奇怪怪的问题,喜欢的女优,都被老板一览无余了:-)。锅叔对此也是深表惶恐,这岂不是分分钟社死的节奏。

  听上去有些神奇,但又貌似很合理,毕竟人家是“国企技术处负责人”。目前我正好在摸鱼逛博客园,或者在写博客,我们来浅析下公司是否能够监控到锅叔浏览和发布了什么内容呢?

  

  一、HTTPS 安全在哪里?

  

  很容易注意到,打开博客园时,浏览器地址上有一个"锁",网址是https开头,浏览器提示“连接是安全的”。那么问题来了,浏览器说的这个安全,它的含义是什么呢?

  就算你对网络安全一无所知,直觉上你应该也不会认为,我在这个网站上浏览和发布的内容,能够被第三方(公司),轻易“截获”,“拆封”是一种安全……-_-||。

  信息安全三要素:机密性,完整性,可用性(摘自维基)

  排名第一即机密性,顾名思义

  机密性(Confidentiality)确保资料传递与存储的隐密性,避免未经授权的用户有意或无意的揭露资料内容

  如果机密性都保证不了那是保证了什么安全?因为是浅谈,就不扯太多原理和密码学,直接说结论。

  如果你摸鱼的时候在网上闲逛,打开了一个Https开头,浏览器地址栏带锁的域名的网站。如博客园。这表明你与这个网站之间的通信是安全的,安全的意思是。

  1. 你与这个网站的通信内容(你浏览到的与你发布的),不会被网络上的第三人(如公司等)知晓

  2. 你确实是在与这个域名的实际持有人进行通信。

  第一条很好理解,就是说你跟这个网站通信的内容,在网络通信这个层面(不包括拍照,截屏这种)。从你的浏览器程序发出去,到这个网站服务器收到,之间的信息传输是加密的,即便被其他人拦截也无法取得内容,可以被拦截,但无法解密,不了解意义。

  第二条绕一点,其含义是与你通信的这个网站一定至少是你所访问的域名的实际持有人。对于博客园来说,即与你通信的网站,至少是域名“www.cnblogs.com”的实际持有控制人。

  有同学会问,我访问的就是cnblogs的域名,难道跟我通信的会不是博客园的网站服务器么?答案是未必,例如你使用的是公司的网络,你可能会被代理,比如中间的某个网络设备,跟你说他就是cnblogs,成为了你和博客园通信的中间人,你以为你在跟博客园通信,实际是被中间人转发的,于是中间传话人自然就知道了双发的通信内容。

  

   第二条的存在就保证了,跟你通信的不会是中间人,一定是“www.cnblogs.com”这个域名的拥有者。因为我的公司不拥有这个域名,因此,不可能通过中间人的方式拦截解析我与博客园之间的通信内容。

   

  这是证书的详细内容,大意由www.digicert.com这个权威的机构担保,目前跟你通信的人,一定是拥有*.cnblogs.com的人。类型是 DV。 域名所有权认证证书。

  结论1,以锅叔的密码学常识认为,如果你浏览的是https协议,证书有效的网站,你跟站点间的通信内容是不会被公司网络监听的,不必担心。

 

  二、微信聊天记录是否可以被获得

  这个担心的人就更多了,谁的微信还没点儿故事。:-)

  是否安全,这个取决于微信的实现,如果设计上,微信的通信是明文裸奔的话,那如果使用公司网络,确实是会被监听获取聊天内容的。但腾讯这么大厂,微信这么多用户,显然不可能不考虑信息安全问题。因此锅叔可以大胆推测,微信的通信肯定也是经过可靠加密处理的。

  记忆中有看过对微信安全机制进行分析的文章,也是使用非对称加密交换随机秘钥,然后用对称加密进行内容传输的。密码学上来说,私钥肯定是被腾讯服务器掌握并保管的好好的,微信客户端发送的随机对称秘钥,只有微信的服务器能够解读,这样的机制也是常规做法,符合我们的预期。非对称秘钥协商过程如下图。

 

   结论2:微信的聊天内容,是不会被公司网络截获,取得的。

 

  三、监控摸鱼的常见手段

  —— 收到黑客邮件勒索,你公司内网已被攻破并植入后门, 请转账XXXXX元到指定账号,否则将对你公司网络进行间歇断网。之后公司网络确实每XX分钟断网X分钟,公司运维排查了很久都没有发现有入侵迹象,后来发现是黑客买通了机房保安,每隔XX分钟拔了网线,等会儿再插上。

  技术从来都不是黑客的唯一手段。上网监控的方式有很多,大致分类如下:

  1. 网络监听,通过网络设备进行审计,监听。

  可以进行网络行为管理,进行一定的审计。包括禁止使用特定软件(阻止特定端口通信),网速限制,流量统计等。开头的国美流量报告,可以通过这样的方式取得,但像那个负责人说的可以获取全部内容就有点神了。

  2. 上网行为管理程序

  在员工电脑本地安装监控程序,程序因为工作在计算机本地,对系统硬件有完全控制权,很容易获得各类信息,如键盘输入内容,屏幕截屏,录屏等。

  这种方式理论上是可以全权控制你的电脑的,电脑使用者毫无隐私可研。但前提是需要在该计算机提前安装相应软硬件。相当于对于使用人员可见,不算套路。尽量使用自己的设备。:-)。

  3. 其他监控

  如摄像头等,可以直接观察到你的行为。这个没啥说的,一般也都在明处。

  

 

     4. 社会工程学

   领导自行观察判断,或者通过,眼线,心腹情报了解。因此摸鱼要低调,广结善缘。

 

  四、说回流量报告

    最后说回流量报告,无论如何加密,你与特定服务器间通信的流量是无法隐藏的,因为都要流过你们之间的网络设备。所以通过监听审计的方式,是很容易取得一份类似国美的流量报告的。但你具体看了啥,如果不使用开放格式传输,中间环节未必能够了解。

  所以未必是报告有所保留,可能也没有更多可以披露的摸鱼证据。

  总之,看片、听高保真的摸鱼方式是风险很高的。建议,调整下爱好,看看文字小说啥的。

  对于流量报告有什么应对策略,锅叔能想到的可能就是用代理方式了, 这样审计上会看到你与代理服务器发生了流量交换,但因为不是已知的这些知名应用ip 端口,没法直接得出结论,你是在看片,还是在听歌。只知道你跟一个特定IP,请求了很多个G的数据……

  所以,对于流量审计,大家有解么?o(* ̄︶ ̄*)o。

————————————————————————————————

  更新:2022-04-27 17:15:00

  很多同学反映微信的聊天记录是能够通过网络层面取得的。结论2 可能是错误的! 

      这个确实有点出乎意料,但密码学应该不会骗人,是微信加密不严密? ?我是持怀疑态度的-_-|| 

  希望能有安全方面大神能给大家分享科普下原理。

  https://weixin110.qq.com/security/readtemplate?t=security_center_website/article&artid=120813euEJVf160119miIfyY

 

   

——————————————————————————————————

  总结了下微信被监听的可能情况,请看

  微信聊天内容可以被监听吗

 

有关上班摸鱼与网络安全的更多相关文章

  1. ruby - 如何使用 Ruby aws/s3 Gem 生成安全 URL 以从 s3 下载文件 - 2

    我正在编写一个小脚本来定位aws存储桶中的特定文件,并创建一个临时验证的url以发送给同事。(理想情况下,这将创建类似于在控制台上右键单击存储桶中的文件并复制链接地址的结果)。我研究过回形针,它似乎不符合这个标准,但我可能只是不知道它的全部功能。我尝试了以下方法:defauthenticated_url(file_name,bucket)AWS::S3::S3Object.url_for(file_name,bucket,:secure=>true,:expires=>20*60)end产生这种类型的结果:...-1.amazonaws.com/file_path/file.zip.A

  2. ruby - 用 Ruby 编写一个简单的网络服务器 - 2

    我想在Ruby中创建一个用于开发目的的极其简单的Web服务器(不,不想使用现成的解决方案)。代码如下:#!/usr/bin/rubyrequire'socket'server=TCPServer.new('127.0.0.1',8080)whileconnection=server.acceptheaders=[]length=0whileline=connection.getsheaders想法是从命令行运行这个脚本,提供另一个脚本,它将在其标准输入上获取请求,并在其标准输出上返回完整的响应。到目前为止一切顺利,但事实证明这真的很脆弱,因为它在第二个请求上中断并出现错误:/usr/b

  3. ruby - 如何安全地删除文件? - 2

    在Ruby中是否有Gem或安全删除文件的方法?我想避免系统上可能不存在的外部程序。“安全删除”指的是覆盖文件内容。 最佳答案 如果您使用的是*nix,一个很好的方法是使用exec/open3/open4调用shred:`shred-fxuz#{filename}`http://www.gnu.org/s/coreutils/manual/html_node/shred-invocation.html检查这个类似的帖子:Writingafileshredderinpythonorruby?

  4. 网络编程套接字 - 2

    网络编程套接字网络编程基础知识理解源`IP`地址和目的`IP`地址理解源MAC地址和目的MAC地址认识端口号理解端口号和进程ID理解源端口号和目的端口号认识`TCP`协议认识`UDP`协议网络字节序socket编程接口`sockaddr``UDP`网络程序服务器端代码逻辑:需要用到的接口服务器端代码`udp`客户端代码逻辑`udp`客户端代码`TCP`网络程序服务器代码逻辑多个版本服务器单进程版本多进程版本多线程版本线程池版本服务器端代码客户端代码逻辑客户端代码TCP协议通讯流程TCP协议的客户端/服务器程序流程三次握手(建立连接)数据传输四次挥手(断开连接)TCP和UDP对比网络编程基础知识

  5. ruby - 用 YAML.load 解析 json 安全吗? - 2

    我正在使用ruby2.1.0我有一个json文件。例如:test.json{"item":[{"apple":1},{"banana":2}]}用YAML.load加载这个文件安全吗?YAML.load(File.read('test.json'))我正在尝试加载一个json或yaml格式的文件。 最佳答案 YAML可以加载JSONYAML.load('{"something":"test","other":4}')=>{"something"=>"test","other"=>4}JSON将无法加载YAML。JSON.load("

  6. ruby-on-rails - 安全地显示使用回形针 gem 上传的图像 - 2

    默认情况下:回形针gem将所有附件存储在公共(public)目录中。出于安全原因,我不想将附件存储在公共(public)目录中,所以我将它们保存在应用程序根目录的uploads目录中:classPost我没有指定url选项,因为我不希望每个图像附件都有一个url。如果指定了url:那么拥有该url的任何人都可以访问该图像。这是不安全的。在user#show页面中:我想实际显示图像。如果我使用所有回形针默认设置,那么我可以这样做,因为图像将在公共(public)目录中并且图像将具有一个url:Someimage:看来,如果我将图像附件保存在公共(public)目录之外并且不指定url(同

  7. ruby - 检查网络文件是否存在,而不下载它? - 2

    是否可以在不实际下载文件的情况下检查文件是否存在?我有这么大的(~40mb)文件,例如:http://mirrors.sohu.com/mysql/MySQL-6.0/MySQL-6.0.11-0.glibc23.src.rpm这与ruby​​不严格相关,但如果发件人可以设置内容长度就好了。RestClient.get"http://mirrors.sohu.com/mysql/MySQL-6.0/MySQL-6.0.11-0.glibc23.src.rpm",headers:{"Content-Length"=>100} 最佳答案

  8. ruby - 404 未找到,但可以从网络浏览器正常访问 - 2

    我在这方面尝试了很多URL,在我遇到这个特定的之前,它们似乎都很好:require'rubygems'require'nokogiri'require'open-uri'doc=Nokogiri::HTML(open("http://www.moxyst.com/fashion/men-clothing/underwear.html"))putsdoc这是结果:/Users/macbookair/.rvm/rubies/ruby-2.0.0-p481/lib/ruby/2.0.0/open-uri.rb:353:in`open_http':404NotFound(OpenURI::HT

  9. ruby - 使写入文件线程安全 - 2

    我在一个ruby​​文件中有一个函数可以像这样写入一个文件File.open("myfile",'a'){|f|f.puts("#{sometext}")}这个函数在不同的线程中被调用,使得像上面这样的文件写入不是线程安全的。有谁知道如何以最简单的方式使这个文件写入线程安全?更多信息:如果重要的话,我正在使用rspec框架。 最佳答案 您可以通过File#flock给锁File.open("myfile",'a'){|f|f.flock(File::LOCK_EX)f.puts("#{sometext}")}

  10. 深度学习12. CNN经典网络 VGG16 - 2

    深度学习12.CNN经典网络VGG16一、简介1.VGG来源2.VGG分类3.不同模型的参数数量4.3x3卷积核的好处5.关于学习率调度6.批归一化二、VGG16层分析1.层划分2.参数展开过程图解3.参数传递示例4.VGG16各层参数数量三、代码分析1.VGG16模型定义2.训练3.测试一、简介1.VGG来源VGG(VisualGeometryGroup)是一个视觉几何组在2014年提出的深度卷积神经网络架构。VGG在2014年ImageNet图像分类竞赛亚军,定位竞赛冠军;VGG网络采用连续的小卷积核(3x3)和池化层构建深度神经网络,网络深度可以达到16层或19层,其中VGG16和VGG

随机推荐