Trip for Kuala Lumpur 

gamzatti
Vote 0 Votes

I've just returned from Kuala Lumpur.
There were various kinds of people and cultures, it was diver city like Singapore.

On the first day, I arrived at Kuala Lumpur early in the morning, so I had a lot of free time.
I went to BATU CAVE which is a holy place of Hindu, it was so mysterious.
When I entered into the cave and turn off the light, silence and darkness encompassed me.
It was so beautiful sight that sunlight was shining on between the rocks.

On the second day, I performed a presentation at a famous security conference with my colleges.
I think it went well, I hope we will be able to speak other conferences we aim to do.

On the final day, we went sightseeing.
We visited various places, Islamic art museum, Masjid negara(a Hindu chapel) and Kuala Lumpur Tower etc.
At night, after swimming in the hotel's pool, we went out to drinking district.

I completely and fully enjoyed Kuala Lumpur.
Probably busy days will be waiting for me from next week, but I can manage them while looking forward to the next trip.

新しいこと

gamzatti
Vote 0 Votes

随分久しぶりの日記になってしまった。

突然書いた主な理由は、ログから攻撃を検知する研究をやっていて

そのデータのバリエーションが不足しているから(笑)

現在の職場に出向になってから、遅ばせながら、研究の楽しさを知り、空いた時間で色々試している。

今までは元々自分がノウハウを持っている分野にフォーカスしていたけれども、やはり自分が知っていることは、既に研究されていたり、役立つことでも注目を集めなかったりするので、最近は、新しい分野や未知の分野のことを始めようかと思っている。

やっぱり新しいことを始めるのは、敷居が高いけれど、一度エンジンがかかり出すと楽しくなることが多い。

今やっていることは、まだエンジンがかかっていないので、早く走り出せる状態に持っていきたい。

嬉しいことに、FIRSTに受かり、2回目の海外カンファレンス発表をできることになった。

https://www.first.org/conference/2018/

海外カンファレンスデビューは去年の台湾だったけれど、これがとてもやりがいがあって楽しかったので、また近いうちに是非したい!と思っていた。

そのこともあり、空いた時間でコツコツと検証を進めていたのが功を成したのかと。

手を動かすのはやはり重要。

今回改めて思うのが、アイディア自体に劇的な目新しさが無くとも、

「これは他の人も思いつくかな」レベルのちょっとしたアイディアでも、

実際に検証して結果を出すとなると、その一手間を惜しむ人は多いように思う。

言い換えれば、思いつきレベルのアイディアでも、実証すると

一気に価値が上がるのではないかということ。

この意識を大切に、これからも色んな思いつきを、アイディアに留めず

実証していければ素敵だと思う。

10年ぶりのオランダ

gamzatti
Vote 0 Votes

来週、オランダ出張へ。

オランダは、ちょうど10年前に自社で出張へ行ったことがあり、

また出張で来られるとは思っていなかった。

私にとって初の海外出張で、行きの飛行機は、嬉しさ半分、不安半分だったのを覚えている。

その頃は片道だけビジネスにグレードアップして良いというルールがあったので、

今までたった1回きりの貴重なビジネス体験も出来た。

機内では、興奮して寝られず(笑)

前回は訪問先がヒルバーサムだったので、アムステルダムはあまり回れていない。

ただ、運良く土日を挟んでいたので、週末に電車でベルギーまで行けた。

今回は、アムステルダム滞在時間も少しありそうなので、楽しみ。

今週末で仕事がひと段落したので、心身共に、思い切り満喫出来そう。

S2-053

gamzatti
Vote 0 Votes

引き続きでたS2-053を検証。

またOGNL関連ですね。

FreeMarkerなるタグライブラリを使って、ユーザからの入力値を参照しているような場合に影響を受けるようです。

FreeMarkerは使ったことがなく、使い方がよくわかりませんでしたが、以下の通りにやると

確かに任意のコード実行できる。

S2-053 复现分析过程(附POC)

とはいえ、攻撃成立には条件があるので、影響は限られているのかもしれないと思いました。

S2-052

gamzatti
Vote 0 Votes

仕事がひと段落したので、前から気になっていたS2-052を検証。

ProcessBuilderなどの外部プロセスを起動するコマンドが含まれるXMLをリクエストで投げると、

XStream.fromXML()でXMLをデシリアライズする処理の延長で任意のコードが実行されるようです。

私が試したのは以下。

S2-052的POC测试

ProcessBuilderのcommandメソッドの仕様は、引数が持つプログラムを実行したい場合、

ProcessBuilder pb = new ProcessBuilder();
pb.command("touch", "/tmp/attack")


のようにcommandメソッドの引数に指定するので、

<command> <string>touch</string><string>/tmp/attack</string> </command>

のように指定すると、好きな外部プロセスを起動できてしまう。

自サーバに入れているフィルタはOGNL系の文字列をブロックするようにしていますが、

今回はOGNL系の攻撃ではないので、これでは防げない。

リクエストにjava.lang.ProcessBuilderとかjava.lang.Runtimeなどが入っていたらブロックする、

なども検討した方がいいのかもしれないなと。

引き続き調査です。

7月末にパリ出張へ。

9年前に出張でオランダのHilversumに行って以来、人生二回目のヨーロッパ。

ヨーロッパが二回とも出張って、IT 系にしては珍しいので幸運だと思う。

今回のミッションは日本で開催していないセキュリティ系のトレーニングを受講することだったので、スケジュール的にも余裕があり、色々楽しめた。


1日目は12時間半のフライトを経て、現地時刻16時半にシャルル・ド・ゴール空港に到着。

1_frightmeal.jpg

"RER"(rarではない:-)) と呼ばれる高速郊外鉄道でパリ市内へ。

海外へ行くと、大抵最初に迷うのが電車の乗り方。

パリはメトロがたくさん走っていて、今回も路線や切符の買い方に少し迷う。

Denfert-Rochereauという駅で降りてホテルへ。

RERは郊外電車らしく、一駅の間隔が長いので、ホテルに着いた頃には結構良い時間になっていた。

移動疲れもあるので、初日の夜はホテルのラウンジで夕食を済ませることに。

このラウンジがとても良かった。静かで落ち着いていて、料理も美味。

1_hotelrestrunt.jpg

何より驚いたのが、夏のパリは日没が遅く、22時頃まで明るいこと。

夕食後は部屋から美しい夕日が見えた。


パリ旅の幕開けは、こんな感じでスタート。

s2-048

gamzatti
Vote 0 Votes

s2-048の脆弱性、 自分のサーバがやばいかなと思ってPoCを実行してみたら、

s2-045 の時に作ったサーブレットフィルタがブロックしてくれていました。

あまり脆弱性の詳細をちゃんと調べていないけれど、s2-048もペイロードを見たらやっぱりOGNL関連だからかな。

リクエストに含まれるOGNLコードをサーブレットフィルタやWAFでブロックするのは、回避策としてなかなか効果がありそうです。

今話題騒然のランサムウエアをチームみんなで分析しました。

http://sisoc-tokyo.iii.u-tokyo.ac.jp/wp-content/uploads/2017/05/20170518_WannaCry_report.pdf

JEP 290: Filter Incoming Serialization Data

Java9から、 ObjectInputFilter という新しいAPIを使って、セキュアにデシリアライズを行う仕組みが提供されるそうです。


- ちらっと読んだ感じでは、デシリアライズ対象オブジェクトが参照するオブジェクトの数や、
  深さ(ネスト)を制限する仕組みっぽい
-ObjectInputStream#resolveClass()のように、デシリアライズするクラスを制限することも出来るっぽいが、
  "Non-Goals"に特定のクラスに対するポリシーを制限するものではないというような記載もあり、
   コンセプトが不明。
- システムプロパティとプログラム個別、どちらでも設定出来る
- これらの機能はJava8以前のバージョンにもバックポートされる予定とのこと。
  →現段階では最新のJava8にもバックポートされていないようです。

時間が出来たら試してみよう。 なお、Java9は今年の7月にリリースされるようです。