「Blender」の脆弱性の件

どうも、ぼくです。

今回はBlenderに21個の脆弱性がウンタラカンタラ、という件についてちょっと「知ったか」しようかな、と。

続き書いたのでそちらもどうぞ?
[EDIT] BlenderNationにこの脆弱性についての記事が投稿されています。
[EDIT] (1/16)T52924 にて該当箇所の修正を完了した(D2999,D3001,D3002)とのこと。既にデイリービルドで試すことはできる模様?
[EDIT]「注目の脆弱性:Blender で複数確認された未修正の脆弱性」 という日本語訳の記事が公開されています。

3Dモデリングソフト「Blender」に未修正の脆弱性が複数存在 ~Talosが指摘 という記事で最初に知ったんですけども、「Blenderで脆弱性とはまた久々だな」とかいう感じでして。

Talosの原文記事とかBlenderのバグトラッカー( T52654 ,T52924)のエントリとか確認してきました。なるほどわからん…じゃなかった、バッファオーバーフローによる脆弱性、っていうのが中心に複数個あるってことなんですね。で、結果として「悪意あるコードの実行を許してしまう」恐れがある、というTalosからの指摘、と。

で、そもそもバッファオーバーフローって何よ?ってことなんですけど、プログラムがメモリ上に確保した領域(バッファ)以外に書き込みを行うことを言います。この辺見てご理解いただけると思います(?)

なお、「悪意のあるコードを埋め込んだファイル」を仕込んでおいて、それをBlenderで読み込み実行させる、ということができるのが問題のようです。

例えばTALOS-2017-0406では(特定の条件の?)TIFファイルを読み込むことで、ヒープベースのバッファオーバーフローの原因となりうる、とあります。なお、TALOS-2017-0406からTALOS-2017-0457の21個がそんな感じです。

反対に言うと、バッファオーバーフローさせてメモリに書き込んだのがプログラム実行領域、またはスタック領域で、悪意のあるコードまたは悪意のあるコードへのジャンプ先アドレス、という仕込みをしないと単純に「Blender落ちた」ってなるくらい(まあそれもバグっちゃあバグ)なんじゃないかな、と。

Talosの原文記事 では考えられるシナリオとして「ソーシャルエンジニアリング」や「スピアフィッシング」、「GithubやGoogle Drive,Dropboxなどで仕込んだファイルをアップロード」という記述がありますね。まあ危険度ではメールに添付されたVBScriptをうっかりクリックしちゃったらウィルス感染しちゃった的なものと同じくらいでしょうか。ちょっと気を抜けない感じ。

なので、できる対策としては「出自の明らかなファイルのみ利用する」ってことになります。 .blendファイルはもちろんですが、及び画像・映像関連のBlenderで利用しそうなものも、という感じですかね。

  • TALOS-2017-0406 – 0414:  VSEでの .tiff/.png/.iris/.cin/.bmp/.avi 読み込み時
  • TALOS-2017-0415: ファイルブラウザでサムネール表示時
  • TALOS-2017-0425: .blend (の画像)
  • TALOS-2017-0433,0438,0451,0452,0453: 古いバージョンで保存された .blend ファイル
  • TALOS-2017-0434: .blend
  • TALOS-2017-0454,0455,0456,0457: .blend データ変換(操作)時

「外部データに頼らず全て一から丹精込めて作っています」という人はひとまず安心なのかな、といった感じ。

.blendファイルに対応しているレンダーファームとか3Dプリンタのオーダーとかその辺のところはどう対応するんでしょうかねえ?

で、「Blender declined(Blender側がやんわり断った)」という文章とともに brechtさんのコメントが画像で紹介されてるんですが。

Talos has responsibly disclosed these vulnerabilities to Blender in an attempt to ensure they are addressed. However, Blender has declined to address them stating that “fixing these issues one by one is also a waste of time.” As a result, there currently is no software update that addresses these vulnerabilities. Additionally, Blender developers believe that “opening a file with Blender should be considered like opening a file with the Python interpreter, you have [to trust] the source it is coming from.”

Talosとしては、もしかして、CVE開示->修正->ページ公開 みたいな流れを予想してたんでしょうか?こういう感じの。
それはそうなんですが、プライベートメールでやりとりした一部がBTのスレッドに出てた内容の限りだと「問題点指摘したよ?早く修正してね?」としか見えなくてちょっとツライ。

今回の公表を(一部しか説明されていないので)「Blenderをイメージダウンさせる攻撃」だとか受け取っちゃいそうな人もいるかもしれませんが、メモリぶっ壊すのはバグでしかないし、それがセキュリティの観点からは「悪用される恐れがあって修正しないとマズい」って言われているだけなんですよね。片や「そこまで重大とは考えてないし、修正に使えるリソースが無い」って言ってる。それだけのことですね。なお、こういった脆弱性は他ソフトで無いわけではなく(一例)。

Heartbleedの件で何も学んでいないのか!!」とか全く違う方面からブッコまれる方も出てきそうですが、そういう方は修正パッチを書いてBFに投げつけてあげるといいと思います(この機会にBlenderを使ってみましょう!)。また、ビットコインで寄付(最近対応する種類が増えました)も受け付けているので「セキュリティ担当を雇える」くらいの寄付でもしてあげればいいんじゃないかとも思います。

そして、Talosの記事に対する反応として Tonさんのコメント

Cisco wrote this yesterday:
http://blog.talosintelligence.com/2018/01/unpatched-blender-vulns.html

For the record – a day after Brecht’s reply I talked to a Cisco engineer who offered to help us with it.
Brecht is speaking here on his own terms, as one of the core team members but it’s not an official Blender Foundation statement that we don’t take these vulnerabilities seriously. There are just no simple or easy answers.

まあそうですわね。

今回brechtがコメントしていたPythonスクリプト実行の件については、以前のBlenderの脆弱性で、「Pythonスクリプトを直接実行できることで悪意のあるコードを実行できる」というものです。以前は起動時にPythonスクリプトの実行はデフォルト有効でした。これだと悪意のあるスクリプトも実行し放題なので、「信頼するコードのみ実行させる」ようにしましたとさ。今回の件とは関係がないのですが、引き合いに出したことで変な誤解する人もいそうですw

autoexcute

 

ではー。

 

広告

JR恵比寿駅からのルート(Blend×JPへの道)

どうも、ぼくです。

Blenderの勉強会?イベント?の Blend×JP の開催まで2週間切りましたね(20日開催)。どんな発表があるのかものすごく楽しみですね(と登壇者にそれとなくプレッシャーをかけておきます)。

スタッフの皆さんお疲れ様です。

ところで、恵比寿ガーデンプレイスタワーでヤルらしいんですが、「えっ?どこ?」って方もいらっしゃると思うので、お節介。JR恵比寿駅から恵比寿ガーデンプレイスまでの道のりを写真に収めてきました。

(本日雨なので、動く歩道の最後、横断歩道を渡らずに右のエスカレーターから地下を通って恵比寿ガーデンプレイスタワーへ向かうのが濡れずに済んで良い、とのことです。)

では、はじまりはじまり〜

 

JR恵比寿駅構内図はこちら。→http://www.jreast.co.jp/estation/stations/290.html

目黒駅寄りの階段を登ります(裏側にはエスカレーターあるけどね)。「こちらは東口改札・ガーデンプレイス方面出口です」って書いてあってわかりやすい。
DSC01070

階段のぼって東口を目指します。
DSC01072DSC01074DSC01077

東口を出たら右に。「恵比寿ガーデンプレイス方面」って矢印が出てますね。
DSC01078

少し進んだら右手に丸い柱が見えると思います。そちらに進みます。
DSC01080DSC01082

歩く歩道がありますのでそのまま直進。
DSC01083

歩く歩道、乗り継ぎ1回目。
DSC01087

乗り継ぎ2回目。
DSC01088

さらに進みます。
DSC01091

出口が見えてきました。[追記]雨に濡れずに、ということであれば写真右のエスカレーター降りてください
DSC01093

道の向こうに恵比寿ガーデンプレイス。
DSC01094

この建物の左脇を抜けるように進みます。
DSC01095DSC01096

「ビール飲みてェ」って気分を我慢しつつここも左脇を抜ける感じで。
DSC01097DSC01100

ふと上を見るとタワーの大きさを実感できます。ここですよ?
DSC01103DSC01104DSC01105

4つ光の柱があります。そのあたりが入り口。
DSC01107

B1-12と書かれたところに向かいます。「像の右側」って覚えとけばいいですね!!
DSC01109

会場は「クラウドワークス」さん。6階ですね。向かいましょう。
DSC01112DSC01113DSC01121DSC01122

到着しました〜。
DSC01123

当日は「参加者」としていくのでよろしくです。もしスタッフぽく何かしていたらそれはそれで「ああ、手が足りないんだな」とか温かい眼差して見ておいていただければ。

 

ところで、勉強会的なイベントで自分をアピールするとか色々な用途に使える名刺。(会社のとは違う)個人活動用の名刺とか持ってこられる方もいらっしゃいますよね。そういう時の名刺入れには「ブレンダーチョットデキル名刺入れ」なんていかがでしょうか?とか言ってみるテスト(発送予定日見ると間に合いそうにないですね。お盆挟むし。)

DSC01171

ということでー。

スパスパ切っていく系

どうも、ぼくです。
結構久々に書きますね。

この最近はBlender界隈でもハードサーフェースモデリングとか流行ってて、そちらで役に立ちそうな感じの「スパスパ切っていく系」のAdd-on(BoxCutter,Quick Boolean,Carver)が増えてきてたりしますね。まあ一部機能が重なってますけども。

まあ、それはそれとして、SNS等から幾つか流れてくる情報というか文章の中で気になるところがあったので、そちらあたりをスパスパ切っていくことにしましょう 🙂

前提?として「Blender初心者が知っておくべきこと(日本語訳)」をどうぞ。

 

「Blenderと和睦」「Blenderと和解」

まあ、なかなかデレてくれない部分で気持ちはわかんなくはないですが、使い方としては正しいとは言えないんじゃないでしょうか。実際に喧嘩したわけでもないと思いますので。あれです、「浸透言うな」的なヤツ、と言えばいいでしょうか。
実際にこれらの言い回しを使っている方の傾向が「Blenderを使っていない」側にかなり偏っていることもあって、よくない言い方をすると、その言い回しを使うことで「お里が知れる」状態になってしまう、そういう部分もありますので、少しばかり気をつけられた方が良いかと思います。

 

「Blenderのエンコードが遅い」

「エンコード」ではなく「レンダリング」。ジオメトリ計算を行うのは「エンコード」とは言いません。何かほかのソフトと間違っていないでしょうか?

 

「講座」

やってみた系をして、「講座」と称されるのはちょっと抵抗がありますね。折角音声付いてても実況止まりとか、明らかに準備してないとか、そういうものは見はじめてからわかるので地味に時間を使ってしまって、「うわーこれ残念」という感じで見るの止めてしまうことも。
折角作るんだったらもっと閲覧数を稼げる方向にですね、ゲフンゲフン。

 

「Blenderはクソ」

いやまあ、自身の手に馴染まない道具なんか二階の窓からさっさと放り投げてしまう、これに限るんですが、ずっと後でまた使おうとして自身がそう言ったという事実に悩まされないように 🙂 ちなみに、Blenderはまた始めても、そこに費用は発生しません。素晴らしいですね。

まあ、「クソなところはクソ」と言うとそこから改善される部分ももちろんあるので、すべてがダメというわけではないですが、「M***みたいになればいいのに」とかそういうアレはなかなか通りにくいでしょうし、改善/変更の案は rightclickselect.com で受け付けているようですのでそちらで提案してはいかがでしょうか?

 

「フリーソフトのBlender」

これすごく細かいかもしれませんが、「フリーソフト」ではなくて「フリーソフトウェア」の表記の方が好ましいです。これについてはこれまでも議論があった経緯もあって、あちら方面からお叱りを頂きかねませんので。「フリー」は「自由」の意味ですよ、っていう説明付きで。

 

まあ、細々と書いていきましたが、大事なのは「小さいことは気にするな」ってことです。こんなこと気にしてたらBlender楽しめないですからね 🙂
あと、「参加する(Get Involved)」っていう方向で。

 

ではー。

 

ボーンの回転って?

どうも、ぼくです。

きのう #3dmu にコーヒー飲みに行った(!?)わけなんですが、その懇親会でちょっと質問された、というかボーダー柄のシャツ着た人(「こわくない」って連呼してた方)が「この人に聞けばいいよ」的なことで無茶振りされて取りあえず回答しました、ということがありまして。

スクリーンショット 2015-11-01 13.18.14

「現在フレームのボーンがどのくらい回転しているか知りたい」場合に、Blender Python API でアクセスする方法というか何というか。

先に答えを書いておくと、こうです。これが回答として要件に合致したかどうかはわかりませんが。
metarigオブジェクトののforearm.Lボーンの回転値を1フレーム目から19フレーム目まで。

scene = bpy.data.scenes[0]
bone = bpy.data.objects['metarig'].pose.bones['forearm.L']
for x in range(1,20):
    scene.frame_set(x)
    print(bone.rotation_quaternion)

「コマ数」を変更して、値を取得、というのを繰り返すわけですね。

実際に回答したのは回転値を取得する部分だけでしたが。

ボーンの情報を得たいということで「bpy.data.objects[‘metarig’].data.bones[‘forearm.L’]…」とやってしまいがちですが、そちらは初期ポーズ、すなわちエディットモードで表示される状態で、本当に必要な情報は「.pose.bones[‘forearm.L’]」の方ですよ、ということですね。

ちなみに、オブジェクトやボーンのプロパティへアクセスしたい場合には、プロパティエディタの入力項目にマウスカーソルを合わせて少し待つと何か出てきますので、そこを見ればいいのではないかと思います。

スクリーンショット 2015-11-01 13.18.30

スクリーンショット 2015-11-01 14.56.42

あと、メニューの Help > Python API Reference から、オンライン上にあるBlender Python APIリファレンスを開いておくとよさげ。

ということで。

Blender発表会の資料。

どうも、ぼくです。

昨日「夏の総決算、Blender+αの大発表会3(仮)」という、Blender使っている人がネタを持ち寄って発表する会に参加しました。

会の様子はTogetterでまとめられたものがあるのでそちらを見ると雰囲気わかるんじゃないでしょうか。

なお、自身の発表資料はこちら。

発表資料の冒頭に見せた画像の動画Verはこちら。

データはBlendswapにあげておきました(データアップロード後の許可待ちだった)ので、Blenderで開いて[Alt]+[A]でアニメーション再生してお楽しみください。

ではー

8月21日はバニーの日。

どうも、ぼくです。

8月21日はバニーの日、ということのようなので動画貼っておきます、Big Buck Bunny。もしかしたら家電店とかで見た動画だったりして。

4k60FPS版もあるので、「画質のいい」のをお求めの方はそちらを。

これ見てからこの間公開されたオープンムービーのCosmos Laundromat – first cycleを見ると、Blenderの進化、パネぇ、って感じになりますね 🙂

そういえば、次のBlender オープンムービーはもう始まってて、今度はNPR(Non Photorealistic Rendering)だとか。そのあとはAgent 327とか、冬は Caminandes の続編の制作が決まっているとかいう話。ほへー。

ではー。

BlenderのUIフォントに軽量なものを指定する

どうも、ぼくです。

「Blenderを日本語化したら固まった」とかそういう話をごくたまに聞きます。もしかしたら回避できるかも的な方法を紹介しておきます。実際に使用したバージョンは2.75.4、デイリービルドですけど、2.73以降だったらいけるんじゃないでしょうか?

ただ、自身の環境ではBlender 2.75の日本語化、というかUIメッセージを日本語に変更する際に固まったりすることがないので、もし、問題が解消したら教えてください。

2015-08-13−003

まず、Blender 2.75の日本語化、というかUIメッセージを日本語に変更する方法を確認しておきましょう。こことかここに書いてあるやつですね。

  1. User Preferences を開く
  2. System タブをクリックする
  3. International Fonts: にチェックを入れる
  4. Language に Japanese(日本語)を指定する
  5. Translate: の Interface および Tooltips にチェックを入れる
  6. ユーザー設定の保存(Save User Settings) をクリックして設定を保存する

上記の2.の後に、一つ手間を加えます。

  1. User Preferences を開く
  2. System タブをクリックする
  3. Interface Font に 日本語フォントを指定する
  4. International Fonts: にチェックを入れる
  5. Language に Japanese(日本語)を指定する
  6. Translate: の Interface および Tooltips にチェックを入れる
  7. ユーザー設定の保存(Save User Settings) をクリックして設定を保存する

Blender本体に同梱されている国際化表示フォントは日本語以外にも中国語ほかの文字が収録されています。「使うよ」っていう段階で、グラフィックメモリ上に文字が展開されます。これがアルファベット+日本語の文字だけだったら消費するメモリ量も少なくなるんじゃないの?ってことです。

そうなると、どのフォント使う?ってことになります。まあ、日本語の文字が収録されているフォントでファイルサイズの小さめのものを選んでおくといいかな、とは思いますが、IPAゴシック とか M+ のあたりのフォント、Android 4.0 から採用されている モトヤLシーダ3等幅 などかな、と。まあほかにも使えそうな日本語フォントはこちらあたりから探してみるといいんじゃないでしょうか。

そうそう、モトヤLシーダ3等幅 は Apache 2.0 ライセンスで提供されているので、Blenderのフォントとして使用は問題なくできるはず。ただ、どうやってダウンロードするの?な感じなのでメモしておきます。

  • https://github.com/android/platform_frameworks_base/tree/master/data/fonts を開く
  • 一覧から README.txt をクリック、Apache 2.0 ライセンスで提供されていることを確認して、一覧に戻る
  • 一覧から MTLc3m.ttf をクリックして、表示されたページの “This file has been truncated, but you can view the full file. “の”view the full file“のリンクをクリックしてファイルを保存。

BlenderはOSのフォントラスタライザは使ってないので、OSにフォントをインストールしなくても、ファイルパスの指定さえすれば使えるようになります。自分の場合は /usr/local/fonts/ にファイルを置いています。

2015-08-13-002

モトヤLシーダ3等幅 フォントを指定の上、日本語化した後は、同じくシステムタブから文字を見やすく調整してみてもいいかも。

  • 文字を少し大きく表示させる、 General: > DPI の数値を72から若干大きく 80 くらいにする
  • 描画をさらに軽くするためにText Draw Options: > Text Anti-aliasing のチェックを外す

そういえば、指定するフォントを創英角ポップ体にすると親しみやすく(?)なるとか。

ということで、ではー。