SIGRed

gamzatti
Vote 0 Votes

久しぶりにWindows系で大きそうな脆弱性CVE-2020-1350 (SIGRed)が出ました。

初めはフェイクのPoCしか出ていませんでしたが、今日、本当に動くPoCが出たことを教えてもらい、検証してみました。

攻撃の仕組みはPoCのREADMEに詳しく書かれています。

要約すると、攻撃者は悪意ある権威DNSサーバを立て、ターゲットのDNSサーバに、悪意あるDNSサーバが管理するドメイン名を問い合わせます。

その応答が細工されており、ターゲットのDNSサーバがその応答を処理する際に、DNSサービスがクラッシュしてしまうというものです。

上記から分かるように、影響を受けるのは上位のDNSサーバに問い合わせを行うDNSサーバ(キャッシュDNSサーバのような動きをするもの)になります。

更に、攻撃を成立させるためには、攻撃者はターゲットに対してDNSクエリを投げられる必要があります。

ADドメインを解決するDNSサーバや、キャッシュDNSサーバはインターネットには出ていないと思いますし、影響は限定されているのではないかと思います。

CVSSも高く、ADサーバならDNSサーバを有効にしていることが多いので焦った方もいると思いますが、攻撃成立には条件がありますので、個人的には超緊急というレベルではないと思います。

とはいえ、組織に侵入した攻撃者がWindows Serverを攻撃するために悪用する可能性もありますし、今後新たな攻撃コードが出る可能性もありますので、

重要なサーバにはパッチを適用したり、回避策を適用するのがベターと思います。

やはり、この辺りの攻撃成立の条件や、影響などは、実際にPoCを検証してみないと分からないと、改めて実感しました。

新たな第一歩

gamzatti
Vote 0 Votes

本日付で、東京大学の非常勤研究員を離任し、自社に出向復帰することになりました。

明日からは、自社でユーザのCSIRT支援をしつつ、東洋大学の非常勤研究員としてIPAの人材育成業務を兼務する形になります。

5年自社に戻っておらず、自社からも大きな期待がかかってしまっているため、正直、不安とプレッシャーもあります。

しかし、やはり居心地の良いところに長期間留まっていると成長が止まってしまうので、適度な環境や仕事の変化と、適度なプレッシャーは必要なのだと思います。

今の業務も、もう4年目に突入し、初年度はプロジェクト立ち上げのために負担が大きかったですが、今は安定してきており、とっても居心地の良い職場になっています。

今の業務から得られたものは、言葉では表せない程大きく、この環境を与えてくださった全ての方に、感謝の気持ちでいっぱいです。

正直、このままでいたい気持ちがとても大きいですが、自身の成長のためには、ターニングポイントなのでしょう。

幸い、自社の理解があり、比較的自由にやらせてもらえるので、完全に出向復帰ではなく、これまでの様にIPAの仕事や、研究の時間が少し取れることに心から感謝です。

この貴重な時間を使って、新たな一歩を踏み出したいと思います。

今後は、NEC、東洋大の研究員、名工大の社会人ドクターの3つの顔で、頑張っていきたいと思います。

テスト、超重要。

gamzatti
Vote 0 Votes

講義などでいつも、"プログラムを修正したら、必ずテストしましょう"と当たり前のことを言っていながら、自分がそれを怠ったばかりに、痛い目に合いました。。。😭

論文のリバイス(査読結果の指摘を修正すること)で再評価を行うためにログをパースするプログラムを急いで作り変え、10行くらい直したら

そこがバグってて、パースした結果と元データが合わず、間違ったデータで論文を出してしまったかと思い、冷や汗を書く羽目に。。。

10行直した所のテストなんて、検証プログラムなら30分あればできるはず(商用のシステムならもう少し必要かもしれませんが)。

それをしなかったばっかりに、デバッグと再評価の工数で、おそらく計5時間くらい浪費してしまうでしょう😫

危うく、またヤケ酒のお世話になる所でした(笑)

ちなみに、私はお酒は好きですが、家で飲む習慣は無いので、家飲みの9割は、技術的な何かがうまくいかないことによるヤケ酒です(笑)

ヤケ酒→プログラムと格闘→悪夢にうなされる

と、いいこと1つも無いんですけどね、なんかやめられないんですよね。。。

今回はまだ検証目的だから良かったですが、もっと重要なプログラムなら、リカバリの工数は数時間では済まないでしょう。。

と言うことで、私と同じ悲しい状況にならないように、例え検証プログラムとかでも、修正したらちゃんとテストしてくださいねー!!(切実に)

脆弱性情報収集自動化では、攻撃コードの情報をNVDから取得する方法を書きましたが、

ちょっと不十分だと思うので、有名な攻撃コード掲載サイト(exploit-db)を検索するようにしました。

同コード(UpdateVul.java)のgetPoC関数になります。CVEをキーにexploit-dbを検索し、あれば1を、なければ0を返します。

攻撃コードが掲載されるサイトはいくつかありますが、他に有名なものはmetasploitモジュールなどが掲載されるrapid7のサイトなどがあるかと思います。
こちらも、検索できるサンプルを作ったら共有します。

自身の研究で、脆弱性情報収集を自動化する必要があったので、NVDのjsonフィードから取得するサンプルコードを作りました。

本プログラムのreadNVD関数が該当コードになります。
引数はCVE番号、戻り値のresult配列は、その脆弱性がRCEであれば1、攻撃コードがあれば1を返します。
私の研究では、RCEかどうかと、攻撃コードの有無しか取っていませんが、本当はもっと色んな情報が取れます。
攻撃コードがあった場合、JSONフィードのreference_data->urlにそのURLが入る様なのですが、
このurlにはセキュリティアドバイザリなども入るため、中身が攻撃コードかどうかは、現段階ではurlに含まれるキーワードでしか判断していません。
厳密にやるなら、各urlにリクエストを投げてレスポンスの中身を見て判断した方が良いかと思います。
時間ができたら改良しようと思います。
他にもMyJVN APIなどもある様ですが、JVN iPedia独自のIDを指定して脆弱性情報を取得する仕様で、CVE番号トリガーでは処理しづらそうと思い、使うのをやめました。

最近、自身の研究のための検証プログラムをJavaで書いていて、久しぶりに苦戦しました^^;

結論としては、例外は握りつぶすな!! ですね(笑)

例外処理って面倒なので、商用プログラムはともかく、検証用のコードだと握りつぶしがち(try catchしてcatch節で何も書かない)ですが、

それをすると、意図しないルートを通ったり、意図した処理が実行されなくなってしまって、解析(デバッグ)が困難になります。。。

まぁ、コーディング規約としては当然のことなんですけど、私も長く開発から離れていたので、基本的なことを怠ったばかりに、

3日くらいヤケ酒を飲みながら深夜までデバッグすることになりました(笑)

と言う訳で、プログラムがロジック的に間違ってないのんい意図した通りにならない。。。と思ったら、例外を握り潰していないか、ご確認くださいませ(笑)

pcap4j

gamzatti
Vote 0 Votes

自身の研究で、pcapを解析する必要があり、Javaのpcap4jというライブラリを使ってみました。

APIドキュメントはあまり整備されていないのですが、Javaの知識がある人であれば、デバッグなどでオブジェクトの構造を追いながら、コーディングできると思います。

簡単ですが、送信元/先のIPアドレス、送信元/先のポート、プロトコルをパースし、CSVに出すサンプルを作ってみました。

読んだパケットをDBに登録したり、プロトコル情報を別ファイルから読んでいる処理などがありますが、これは無視してください。

メインの処理は76−119Lのあたりです。

https://github.com/gamzattirev/icsrisk/blob/master/tools/java/ics/src/main/java/org/pcap4j/sample/ReadPacketToDB.java

ballet blog -アダージオ編-に続き、今日もお家で簡単にできるバレエについて、

続編を書いてみます。

まず始めに、今日は手のポジションから。足と同様に、手にもポジションがあります。

手の動きだけなのですが、肩や二の腕、背中のシェイプアップになります。

一番左は、アンバーと呼ばれるポジションで、手の先が足の付け根辺りに来ます。

2番目はアンバーから少し腕を持ち上げたアナバー と呼ばれるポジションです。何かのポーズをとる前の準備段階として使われることも多いです。

3番目はアンオールと呼ばれ、真上に腕を持ち上げます。この時に、肩が上がらない様にします。

4番目はアラスゴンドと呼ばれ、両手を開きます。両手が自分の見える範囲に収まる様にし、開きすぎない様にします。

1.pngpoldbla1.pngpoldbla5.pngpoldbla11.png

ポジションを覚えたら、左図から右図へ順に動かしてみましょう。

この様に、腕を動かす事を"ポールドブラ"と呼びます。

大切なのは、ポールドブラをして腕のポジションを変える時に、必ずアナバー を通過させる事です。

アナバー は全てのポジションの通過点とも言えるかもしれません。

次は、足の動きについて。

比較的小さい動きで、基本となる動きに"タンジュ"があります。一言で言うと、足を出す動作です。

小さい動きなだけに、単に出すだけでは綺麗に見えず、エクササイズ効果も得られません。

ポイントは、足を外旋させながら、床を使って付け根から引っ張られる様に出す事、爪先を伸ばす事です。

左図の様に、足を前に出す動きを"ドゥバン"と呼びます。足は真っ直ぐ自分の前に出し、横にそれない様にします。

真ん中の様に横に出すのが"アラスゴンド"。手だけではなく、横に持ってくる動き全体を指します。手のつけ方は色々ですが、右図の様に上につける事もあります。

tan-2.pngtan-3.pngtan-4.png

アラスゴンドで横に出したら、出した足を後ろに入れて、足を入れ替えます。

足を入れ替えただけですが、少し印象が変わりますよね。バレエには観客から見た時に体の向きにも名前が付いており、

上図は足が交差している様に見えるので"クロワゼ"、下図は足が交差しておらず"エファセ"と呼ばれます(私も時々分からなくなり、苦手です。。)

一旦足を5番に戻したら、次は後ろに出してみましょう。後ろに出す事を"デリエール"と呼びます。

この時、足が横に逃げがちなので、お尻を締めて、真っ直ぐ後ろに出します。

tan-5-1.pngtan-6-2.pngtan-6-3.png

今日は出した足を床から離さないタンジュを紹介しましたが、他にも足を床から離してあげるデガジェ、

更に足を高く上げるデベロッぺなどがあります。これらは次回紹介したいと思います。

最後に、バレエっぽいポーズを1つ。

左は前にも紹介したアラベスクと呼ばれる有名なポーズで、それを発展させたポーズが右で、"パンシェ"と呼ばれます。

足を無理に高く上げる必要はないので、足を上げた状態で、背筋を伸ばした状態を保ちながら、ゆっくり上体を倒します。

やってみると分かるのですが、背筋、お尻の筋肉、足の後ろの筋肉など、色んな部分がプルプルしますよ。

数秒止まっているだけでとても良いエクササイズになります。

pan-1.pngpan-2.png

最近、ヨガやバレエネタばっかりになっていたので、たまには違うトピックを書きたいと思います。

今日はこれまでの仕事の歩みを少し振り返ってみたいと思います。
これからのキャリアに悩んでいる方、技術職や研究職に興味がある方、趣味で何か始めてみたいと思っている方などには参考になるかもしれません。

私は大学は情報系の学科を学士で卒業し、大学院に行くことは考えもせず、メーカー系のIT系企業に入りました。
それからは、ソフトウエアの開発や、SIなどを中心に、いわゆるSEとして色んなプロジェクトを転々としてきました。
身体が丈夫なので、体力が必要とされる炎上プロジェクトに放り込まれることが多かったですね(笑)
ハードながら、それなりに楽しんで仕事していたのですが、固定の職場にいることがなく、2年位のスパンでプロジェクトや職場を変わっていたので、これといった技術やノウハウが身に付かないのが悩みでもありました。

ただ、今思うとこれが良かったんだと思います。
色んな職場で色んな仕事を経験することで、浅く広い知識と、環境にすぐに適合して人間関係を構築できるノウハウ(と挫けないしぶとい心身(笑))は、今の私にとって、とても貴重なリソースになっています。
特に今はサイバーセキュリティの仕事をしているので、尚更です。
セキュリティは単独の技術として存在している訳では無く、色んな技術の上に位置付けられるものなので、研究者でもない限り、特定の技術だけ深く知っているよりは、浅く広く知っていた方が理解し易いのかなと思います。

私がセキュリティの仕事に就く契機となったのは、日本で有名なセキュリティ機関への出向でした。
私が出向した期間は、幸いにも(不幸にも?!)、サイバーインシデントが多く、実データを使った解析や、現場で色んな経験が出来たので、これが宝になりました。
ただし、今までのSEの業務とは違って、色んな事を並行して進めなければならず、臨機応変に対応せねばなりません。
SE業務はハードではありましたが、マイペースに進められたので、出向した当初は、違った種類のストレスがかかりました。
周りもレベルが高い人が多く、自身の存在価値について悩んだ時期もありました。

そこから脱出する契機になったのが、脆弱性に関する記事執筆です。
この脆弱性は、対策の検討に開発者的な知識が必要なこともあって、この脆弱性に関して深く調査し、情報発信をしたことが契機で
自分の存在価値が確認でき、自信が持てました。
それ以降は、180度転換する様に仕事がうまく行く様になり、人間関係も円滑になりました。
良い意味での自信や成功体験って、本当に大切だなぁと思います。
うまくいかない、スランプだなと感じたら、まず小さなことでも良いので、成功体験を作るのが良いかもしれません。

セキュリティの仕事は、企画や製造などと違い、明確な成果物がないことが多いので、私はアウトプットする事を心がけました。
私のいたグループは、情報発信がメインの業務だったので、取り敢えず検証しまくって、結果はほぼ残らずレポートなどにまとめて情報発信できたと思います。
アウトプットする事で、自分自身のノウハウや頭の整理にもなりますし、かつ他人に役立ちます。
更には、他人から見ても定量的な成果を出していますので、評価もされて一石三鳥ですね。
それらのノウハウは、職場を変わった今でも役立っています。

さて、その出向が契機で、巡り合わせがあり、次は大学の研究員として出向することに。
昔は予想もつかなかった研究者としての第一歩を踏み出すことになりました。


研究の話は長くなるので、次回に書きたいと思います。

ballet blog -基礎編-では、足や手のポジションなど、バレエの基礎について書きました。

今日は、簡単にできるバレエっぽい動きを連続して踊りっぽいことをやってみたいと思います。

バレエのレッスンは、バーレッスンの後、バーを片付けてフロアレッスンになり、実際に踊るフェーズになります。

フロアレッスンは、音楽や振りに併せて、アダージオ、アレグロ、ワルツなどに分かれていて、どのバレエ教室でも流れは大体同じです。

フロアレッスンで一番最初にやるのが、アダージオと呼ばれるゆったり動く踊りです。今日はアダージオの動きを取り入れたものを紹介します。

1)先ずは5番からスタート。

5.png

2)片足を前に出し、息を吸って、細く長く吐きながら、ゆっくり前屈します。

この時に、深く前屈することよりは、背中が曲がらないようにします。

バレエをやる時は、どんなポーズを取っていても、基本背中は常にまっすぐです。

下図の様に、片足を前に出したポジションを"ドゥヴァン"と言います。

adajo0.pngadajo1.pngadajo2.png

3)上体を起こしたら、次は後ろにそります。

この時に大事なのは、首を体の延長線上にキープしておく事と、腰からそらずに胸から反ることです。

そうすると、美しく見えますし、身体への負担も少ないです。

手のポジションは色々あります。私は右図の手のつけ方が好きです。

adajo3.pngadajo5.png

4)足を5番に戻し、バレエの代表的なポーズでもあるパッセをします。

なお、一番左図は"クぺ"と呼ばれるポジションで、いわば脚が低いパッセの様なものです。

パッセを綺麗にするには、先ずはクぺを練習すると良いと思います。

kupe.pngpasse1.pngpasse2.pngpasse3.png

パッセのコツは、足の付け根の力で足を持ち上げ、お尻の力で横に開くことです。

パッセをキープしているだけでも、良いトレーニングになりますよ。

手のつけ方によって、バランスの取り方も変わります。

5)パッセの足を下ろし、4番を通って前の足に重心を移動します。下図の様に片足を後ろに出したポジションを"デリエール"と言います。

そのまま、ゆっくり腕を後ろに回して、反対の手を前にします。

adajo6.pngadajo7.pngadajo8.pngadajo9.png

6)最後にこれぞバレエ!というポーズの"アラベスク"です。

見えやすくするために、5)とは反対の足でやっていますが、5)の続きで後ろの足を上げていくイメージです。

alabesk1.pngalabesk2.png

ポイントは、背筋とお尻の力で足を持ち上げ、骨盤の力で足を骨盤から外旋します。

横から見た時に、上がった足の膝が見えているのが理想です。

足を上げるとどうしても上半身が前に傾いてしまいますが、足を高く上げるよりは上半身をまっすぐ保つことを意識します。

美しい背中とヒップアップに効果的なポーズです。

姿勢を綺麗にし、しなやかな筋肉をつけたい方には、バレエエクササイズはオススメです!