• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

winutils: Windows binaries for Hadoop versions

原作者: [db:作者] 来自: 网络 收藏 邀请

开源软件名称:

winutils

开源软件地址:

https://gitee.com/saterr/winutils

开源软件介绍:

winutils

Windows binaries for Hadoop versions

These are built directly from the same git commit used to create the official ASF releases; they are checked outand built on a windows VM which is dedicated purely to testing Hadoop/YARN apps on Windows. It is not a day-to-dayused system so is isolated from driveby/email security attacks.

Security: can you trust this release?

  1. I am the Hadoop committer " stevel": I have nothing to gain by creating malicious versions of these binaries. If I wanted to run anything on your systems, I'd be able to add the code into Hadoop itself.
  2. I'm signing the releases.
  3. My keys are published on the ASF committer keylist under my username.
  4. The latest GPG key (E7E4 26DF 6228 1B63 D679 6A81 950C C3E0 32B7 9CA2) actually lives on a yubikey for physical security; the signing takes place there.
  5. The same pubikey key is used for 2FA to github, for uploading artifacts and making the release.

Someone malicious would need physical access to my office to sign artifacts under my name. If they could do that, they could commit malicious code into Hadoop itself, even signing those commits with the same GPG key. Though they'd need the pin number to unlock the key, which I have to type in whenever the laptop wakes up and I want to sign something. That'd take getting something malicious onto my machine, or sniffing the bluetooth packets from the keyboard to laptop. Were someone to get physical access to my machine, they could probably install a malicous version of git, one which modified code before the checkin. I don't actually my patches to verify that there's been no tampering, but we do tend to keep an eye on what our peers put in.

The other tactic would have been for a malicious yubikey to end up being delivered by Amazon to my house. I don't have any defences against anyone going to that level of effort.

2017-12 Update That key has been revoked, though it was never actually compromised. Lack of randomness in the prime number generator on the yubikey, hencean emergency cancel session. Not set things up properly again.

Note: Artifacts prior to Hadoop 2.8.0-RC3 [were signed with a different key](https://pgp.mit.edu/pks/lookup?op=vindex&search=0xA92454F9174786B4; again, on the ASF key list.

Build Process

A dedicated Windows Server 2012 VM is used for building and testing Hadoop stack artifacts. It is not used for anything else.

This uses a VS build setup from 2010; compiler and linker version: 16.00.30319.01 for x64

>CLMicrosoft (R) C/C++ Optimizing Compiler Version 16.00.30319.01 for x64Copyright (C) Microsoft Corporation.  All rights reserved.````>LINK /VERSIONMicrosoft (R) Incremental Linker Version 10.00.30319.01Copyright (C) Microsoft Corporation.  All rights reserved.

Maven 3.3.9 was used; signature checked to be that of [email protected]. While my key list doesn't directly trust that signature, I do trust that of other signatorees:

https://pgp.mit.edu/pks/lookup?op=vindex&search=0xC7BF26D0BB617866

C:\Work\hadoop-trunk>mvn --versionApache Maven 3.3.9 (bb52d8502b132ec0a5a3f4c09453c07478323dc5; 2015-11-10T16:41:47+00:00)Maven home: C:\apps\maven\bin\..Java version: 1.8.0_74,   vendor: Oracle CorporationJava home: c:\java\jdk8\jreDefault locale: en_GB, platform encoding: Cp1252OS name: "windows server 2012 r2", version: "6.3", arch: "amd64", family: "dos"The build is based on the instructions in Hadoop's BUILDING.TXT

Java 1.8:

>java -versionjava version "1.8.0_121"Java(TM) SE Runtime Environment (build 1.8.0_121-b13)Java HotSpot(TM) 64-Bit Server VM (build 25.121-b13, mixed mode)

release process

Windows VM

In hadoop-trunk

The version to build is checked out from the declared SHA1 checksum of the release/RC, hopefully moving to signed tags once signing becomes more common there.

The build was executed, relying on the fact that the native-win profile is automatic on Windows:

mvn clean package -DskipTests -Pdist  -Dmaven.javadoc.skip=true 

This creates a distribution, with the native binaries under hadoop-dist\target\hadoop-X.Y.Z\bin

set VERSION=hadoop-2.8.3cd winutilsmkdir %VERSION%mkdir %VERSION%\bincd ..copy trunk\hadoop-dist\target\%VERSION%\bin winutils\%VERSION%\bincd winutilsrm %VERSION%\bin\*.pdbgit add %VERSION%git commit -m "Windows binaries for %VERSION%"git push

Create a zip file containing the contents of the winutils\%VERSION%. This is done on the windows machine to avoid any risk of the windows line-ending files getting modified by git. This isn't committed to git, just copied over to the host VM via the mounted file share.

Host machine: Sign everything

Pull down the newly added files from github, then sign the binary ones and push the .asc signatures back.

There isn't a way to sign multiple files in gpg2 on the command line, so it's either write a loop in bash or just edit the line and let path completion simplify your life. Here's the list of sign commands:

gpg --armor --detach-sign hadoop.dllgpg --armor --detach-sign hadoop.expgpg --armor --detach-sign hadoop.libgpg --armor --detach-sign hadoop.pdbgpg --armor --detach-sign hdfs.dllgpg --armor --detach-sign hdfs.expgpg --armor --detach-sign hdfs.libgpg --armor --detach-sign hdfs.pdb gpg --armor --detach-sign libwinutils.lib gpg --armor --detach-sign winutils.exegpg --armor --detach-sign winutils.pdb

verify the existence of files, then

git add *.ascgit statusgit commit -S -m "sign Hadoop artifacts"git push

Then go to the directory with the zip file and sign that file too

gpg --armor --detach-sign hadoop-2.8.0.zip 

github, create the release

  1. Go to the github repository
  2. Verify the most recent commit is visible
  3. Create a new release
  4. Tag the release with the hadoop version, include the commit checksum used to build off
  5. Drop in the .zip and .zip.asc files as binary artifacts

鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
perlporter: perl pacaking automation tool发布时间:2022-03-25
下一篇:
bottle-alibaba-component: 阿里云 Bottle 组件发布时间:2022-03-25
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap