前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【Rust日报】2021-08-08 《Rust In Action》书籍第一版发布

【Rust日报】2021-08-08 《Rust In Action》书籍第一版发布

作者头像
MikeLoveRust
发布2021-08-10 16:46:03
9290
发布2021-08-10 16:46:03
举报
文章被收录于专栏:Rust语言学习交流

Rust Meetup 杭州站

由rust.cc举办的Rust Meetup今天在杭州鼎创财富中心B2座2层举办,主要议程如下:

  • 《Rust+Tokio/mio在又拍云的实践》 夏功勋 又拍云工程师
  • 《Tokio Internals》 王福音 溪塔工程师
  • 《Rust 生态的性能调试器》 pprof-rs 杨可真 pprof-rs 作者
  • 《深挖 move 语义》丁邵顺
  • 《Rust 的 Web 开发见解》赵春霖 Rust Web 开发者
  • 《ARM 上的 Cloud- Hypervisor》李枫 独立开发者
  • 《cps 变化在 Rust 语言中尾递归应用及其性能分析》常开颜 中科院博士

本次会议联合主办方:又拍云、CITA Hub;直播支持:CSDN。

大会录播视频剪辑好后,将会在MikeTang的B站主页公布。

https://space.bilibili.com/25566598?from=search&seid=360512592641993419

《Rust In Action》书籍第一版发布

作何 Tim McNamara 是一位经验丰富的程序员,对自然语言处理、文本挖掘以及更广泛的机器学习和人工智能形式有着浓厚的兴趣。他在包括新西兰开源协会在内的开源社区中非常活跃。Rust in Action 是使用 Rust 进行系统编程的实践指南,它是为具有好奇心的程序员编写的,提供了远远超出语法和结构的实际用例。

国外最近的Rust的书籍,除了《Rust In Action》还有另外两本,《Refactor to Rust》和 《Rust Servers, Services, and Apps》。

Amazon: https://www.amazon.com/dp/1617294551/ref=cm_sw_r_cp_awdb_imm_VJ4HZ4859SDB7K5B7VQK

[CVE-2021-29922] Rust 标准库net 模块漏洞:前导零改变 IP 地址

Golang、Rustlang net 库受到之前在 Netmask 中发现的严重 IP 地址验证漏洞的影响。GitHub 上 “import net” 的结果超过 400 万条,Kubernetes 也 cherry picked 了修复程序。

本周,在DEF CON上,安全研究人员Cheng Xu、Victor Viale、Sick Codes、Nick Sahler、Kelly Kaoudis、opennota和John Jackson披露了 Go 和 Rust 语言的 net 模块的一个缺陷。CVE-2021-29922(针对Rust) 和 CVE-2021-29923(针对Golang)。

IP地址可以用多种格式表示,包括十六进制和整数,不过最常见的IPv4地址是用十进制格式表示的。

例如,BleepingComputer的IPv4地址以十进制格式表示为104.20.59.209,但同样的地址也可以以八进制格式表示为:0150.0024.0073.0321

假设你得到一个十进制格式的IP地址,127.0.0.1,这被广泛理解为本地回环地址或localhost

如果你在它前面加上一个0,应用程序是否仍应将0127.0.0.1解析为127.0.0.1或其他什么?在Chrome的地址栏中输入0127.0.0.1,浏览器会将其视为八进制格式的IP。在按下回车键或返回键时,该IP实际上变成了十进制的87.0.0.1,这就是大多数应用程序应该处理这种模糊的IP地址的方式。

根据IETF的原始规范,IPv4地址的部分内容如果前缀为 "0",可以解释为八进制。

但是Go和Rust中的net模块都忽略了这一点,将部分地址视为十进制。

rust 1.52.1 std::net 及以下版本中IP地址输入未按八进制处理而导致不确定的 SSRF 和 RFI 漏洞。

例如,攻击者向依赖std::net::IpAddr的网络程序提交IP地址,可以通过输入位组的输入数据引起 SSRF;

如果位组(octet)是3位,攻击者可以提交可利用的IP地址,最小可利用的位组是08(拒绝服务),最大可利用的位组是099(拒绝服务)。

例如,攻击者可以提交010.8.8.8,也就是8.8.8.8(RFI),然而std::net::IpAddr将计算为10.8.8.8。同样,攻击者可以输入127.0.026.1,这实际上是127.0.22.1,但Rust将其计算为127.0.26.1。

  • SSRF是Server-side Request Forge的缩写,中文翻译为服务端请求伪造。
  • RFI 是Remote File Inclusion的缩写,客户端可控制网页包含远程文件。

受影响 Rust 版本:1.52.1 及以下。

PoC 代码:

代码语言:javascript
复制
// ##!/usr/bin/env rustc
// # Authors:      https://twitter.com/sickcodes, https://twitter.com/kaoudis
// # License:      GPLv3+

use std::net::IpAddr;

fn main() {
  let addr = "127.026.0.1".parse::<IpAddr>().unwrap();
  println!("{}", addr.to_string());
  let addr1 = "127.0.026.1".parse::<IpAddr>().unwrap();
  println!("{}", addr1.to_string());
  let addr2 = "127.0.0.093".parse::<IpAddr>().unwrap();
  println!("{}", addr2.to_string());
  let addr3 = "099.0.0.01".parse::<IpAddr>().unwrap();
  println!("{}", addr3.to_string());
}
代码语言:javascript
复制
$ rustc -o main main.rs
$ ./main
127.26.0.1
127.0.26.1
127.0.0.93
99.0.0.1

https://github.com/sickcodes/security/blob/master/advisories/SICK-2021-015.md

https://www.bleepingcomputer.com/news/security/go-rust-net-library-affected-by-critical-ip-address-validation-vulnerability/

Read More

使用 Rust 进行端到端加密

《End-to-End Encryption with Rust》是一本实践指南, 在本指南中,我们将创建两个名为 Alice 和 Bob 的小型 Rust 程序。Alice 和 Bob 将通过云服务通过网络相互发送消息。在我们的代码示例中,Alice 和 Bob 将相互进行身份验证,并将获得加密保证,以确保其消息的完整性、真实性和机密性得到端到端的保护。

网络上的中间云服务和攻击者将无法看到或更改途中消息的内容。在后面的示例中,我们还将看到即使当 Alice 和 Bob 之间的通信路径更复杂 - 具有多个传输连接、各种传输协议和许多中介时,我们如何才能实现这种端到端保护。

Read More: https://github.com/ockam-network/ockam/tree/develop/documentation/use-cases/end-to-end-encryption-with-rust#readme


本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-08-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Rust语言学习交流 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Rust Meetup 杭州站
  • 《Rust In Action》书籍第一版发布
  • [CVE-2021-29922] Rust 标准库net 模块漏洞:前导零改变 IP 地址
  • 使用 Rust 进行端到端加密
相关产品与服务
NLP 服务
NLP 服务(Natural Language Process,NLP)深度整合了腾讯内部的 NLP 技术,提供多项智能文本处理和文本生成能力,包括词法分析、相似词召回、词相似度、句子相似度、文本润色、句子纠错、文本补全、句子生成等。满足各行业的文本智能需求。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档