2015年8月15日土曜日

コミケ88 - Linux Kernel Updates 2015.08 (東2 P-15a)

コミケ88の3日目(2015年8月16日)に「低級はっかーズ」として出展します!

場所は東2, P-15aです。

今回はLinux Kernel Updates 2015.08として、Linux 3.19~4.1の最新情報、nftablesについての簡単な説明を書いた本を300円で頒布します。

表紙はロジさん(ロジカ+フィジカ)に描いていただきました。ありがとうございます。

その他、過去の既刊(2012.12, 2014.12)も持っていきます。在庫限りです。

当日会場でお目にかかりましょう!

2015年5月14日木曜日

QEMU, KVM, Xenに存在するVENOM脆弱性(CVE-2015-3456)について

VENOM脆弱性(CVE-2015-3456)についての情報をまとめました。

tl;dr

影響範囲は広いのですが、一部のクラウドベンダー以外は心配する必要はありません。一人で仮想環境を使っている場合には実質的な影響は受けません。なお、AWSは影響を受けないとアナウンスされています。

脆弱性の内容

QEMUに存在するフロッピーディスクコントローラー(FDC)にバッファオーバーフローのバグがあり、そのコードを利用するKVM, Xenが影響されます。なお、このコードはコマンドラインでFDの利用を指定しているかなどに影響を受けず、すべての設定で利用されます。詳しい内容については、Red Hat Security BlogのVENOM, don’t get bitten.という記事が参考になります。

この脆弱性を利用すると、本来アクセスができない他のVM、ホストOSへのアクセスが可能になります。

この脆弱性を利用するには、仮想マシン上で管理者権限を持っている必要があります。つまり実質的に問題となるのは、複数のユーザーに仮想マシンを管理者権限付きで貸している場合です。

この脆弱性は2004年に、FDCのコードがQEMUにマージされたときから存在します。

各ベンダーの対応

公式サイトに各ベンダーのアナウンスへリンクがあります

影響を受けるクラウドベンダーの一覧(一部)

影響を受けないクラウドベンダーの一覧(一部)

調査中のクラウドベンダー一覧(一部)

2014年12月29日月曜日

Linux Kernel Updates 2014.12 をコミケ87に出します!

Linux Kernel Updates 2014.12のお知らせ

直前になりましたが、コミケ87でLinux Kernel Updates 2014.12を頒布します。

スペースは西い-36bです。

今回の内容

  • Linux 3.16 〜 Linux 3.18の新機能
  • OOM Killer 解説
  • Overlayfs を使ってみた

ここのところ小さな変更点が多かった Linux ですが、今回は Overlayfs を初めとして魅力的な機能がいくつか導入されました。

サンプルを掲載します。

今回もソースコードをもとに動作を解説しています。

既刊は、2013.08, 2013.12, 2014.08がそれぞれ若干数ありますので持っていきます。よろしくお願いします。

2014年11月25日火曜日

ssh-keygenがデフォルトで生成する鍵の種類と、安全性

sshの鍵を生成するのにssh-keygenをよく使いますが、無意識的に ssh-keygen -t rsa -b 2048 などと指定していました。ところが最近のバージョンのssh-keygenはオプションなしでもとりあえず動きます。

yuryu@ubuntu:~$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/yuryu/.ssh/id_rsa): 
Created directory '/home/yuryu/.ssh'.
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/yuryu/.ssh/id_rsa.
Your public key has been saved in /home/yuryu/.ssh/id_rsa.pub.
The key fingerprint is:
7f:5a:1d:54:6a:30:dd:5c:ab:0c:8b:c6:9c:d6:3c:b8 yuryu@ubuntu
The key's randomart image is:
+--[ RSA 2048]----+
|            o. o+|
|             o.o+|
|           .  +. |
|        o * +o.  |
|        SO = o.  |
|        o.. .. . |
|         E. o .  |
|           +     |
|          .      |
+-----------------+

よく見ると答えが書いてありますが、デフォルトではどんな種類の鍵を生成しているのでしょうか?

[ RSA 2048]と書いてありますね。 RSAの2048bitsです。この種類の鍵と長さは今のところ安全だと言われているので、普通に使うのであればssh-keygenとオプション無しに実行すれば良いわけです。 DSAは鍵の長さが1024bitsでしか使えず、もはや安全な長さだとは言えないので使うべきではありません。なおECDSAの方が安全で鍵が長くなった場合に破綻しづらいと言われていますが、サポートされたのが比較的最近で例えばOS Xでは動かなかったりするので、まだ広く使えるとは言いがたいようです。

昔の記憶をたどると、-t を指定しない場合にはエラーだったり、標準の鍵長が1024bitsだったりしたことがあったと思うのですが、いつから変わったのでしょうか。コミットログを追ってみました。

年月変更点デフォルトで生成される鍵
1999年9月最初のコミットrsa1 1024
2000年4月DSAをサポートrsa1 1024
2000年11月RSA(SSH2)がサポートrsa1 1024
2001年12月鍵の種類の指定が必須にN/A
2005年6月デフォルトの鍵長が2048bitsに(ただし種類の指定は必須)N/A
2005年12月デフォルトの鍵がRSAにrsa 2048

というわけで、2001年よりも前のシステムはそもそも脆弱なので省くとすると、鍵の指定をしなくても動くシステムでは標準で RSA 2048bits の鍵が生成されるようです。鍵の指定をしなくてはいけない(-tオプションを省くとエラーになる)システムでは鍵長も指定した方が安全でしょう。

将来ECDSAが広く使われるようになったらまた状況が変わるのかも知れませんが、randomart image([ RSA 2048]から始まる模様)をちゃんと確認する癖をつけるのが良いかもしれませんね。

2014年10月12日日曜日

C言語で理解する英語の冠詞(aとtheの使い分け)

英語の冠詞は、実はプログラマーにはとてもわかりやすいんです。

変数宣言はa, 参照はthe

int i;

i = 100;

1行目のint iは宣言なので「a」です。"Declare an integer variable."

次の i = 100 はその変数を参照しているので「the」です。 "Assign 100 to the integer variable."

仮引数と戻り値はa

int func(int v)
{
    return v * 2;
}

関数の仮引数と戻り値は「a」です。"This function takes an integer argument and returns an integer value."

もちろん、その引数を関数内で使う場合は「the」になります。"Double the first argument and return the result."

まとめ

特定の変数についてだけ会話するときは「the」ですが、それ以外は「a」です。日常会話もそんな感じです。

2014年9月30日火曜日

Linux Kernel Updates 2014.08のKindle版を出しました

コミケ86で出版したLinux Kernel Updates 2014.08Kindle版を出版しました。

目次

  • What's New in Linux 3.13?
  • What's New in Linux 3.14?
  • What's New in Linux 3.15?
  • Dockerとカーネル
  • ファイル名の入れ替え
  • O_TMPFILEの紹介

Linux Kernel Updates 2014.08の購入はこちらから!

以下は冊子版のプレビューです(Kindle版とはレイアウトが異なります)。

Linux Kernel Updates 2014.08の購入はこちらから!

2014年9月21日日曜日

RubyKaigi 2014で、多様性の話とRails Girlsの紹介をしました

RubyKaigi 2014に3日間参加し、2日目に"Rails Girls: Not Only for Girls"というタイトルで、発表してきました。

Tech companyと呼ばれるUSの会社でも、女性技術者の割合は2割程度にとどまっていて、各社技術者の確保に苦労しているようです。日本での私の経験では、分野にもよりますがおおむね1割程度で、USよりもさらに女性技術者が少ないと感じています。

プレゼン中でも触れた次の動画に象徴されるように、文化的・社会的な要素と深く結びついていて、一朝一夕に変わるものではありません。もちろん車輪の両輪として、公平な採用、職場での性差別をなくすということは進めていく必要があります。

そんな中、長期的な目線で状況を改善していこうと、いくつもの活動が立ち上がっています。Rails Girls もその一つです。

Rails Girls だけでなく、世界中でいろんな人が様々な活動に取り組んでいます。 GoogleのWomen Techmakersというページに様々なコミュニティ活動へのリンクがあります。また、学会でもACM-WIEEE Women in Engineeringなどに代表されるような活動があります。ぜひ身近な活動に参加してみてください。

非常に難しい問題ではありますが、一歩ずつ良くなっていくことを願っています。

PS: RubyKaigi 2014では私の知る限り、昨年のような問題もなく、非常に良かったと思いました。関係者の皆様はじめ、参加者すべての方の尽力に感謝します。