数年前から、仕事柄、人前で話したりプレゼンしたりする機会が多くなりました。
昔は人前で話すのが非常に苦手でした。卒論の発表のリハーサルで、緊張して泣いてしまったこともある位です。
今日は、私なりに、公聴者に響く様に話すということについて、書いてみたいと思います。

先ずは、自信をつけることが何より大切と思います。話す対象の分野の経験や知識があれば、例えしどろもどろであったとしても、話す内容に深みが出るものです。経験がない分野を話さなければならない場合は、技術系であれば、触りだけでも手を動かして検証します。それ以外の場合は、有識者に話を聞いたり、事例などを集めます。

以下は、賛否両論あるとは思いますが、個人的に人前で話す際に気をつけている事です。

・得意であったり実経験がある分野では、資料に書いていない実務上の体験や具体例などを交えて話す。具体的なイメージが湧きますし、実務経験は信頼性がありますので、聞き手にとって得られるものが非常に大きいからです。


・自分が体験した話と、人から聞いた話は必ず区別する。聞いた話でも参考になるので、紹介したい場合は、"これはXXから聞いた話ですが・・・"と言い添える。人から聞いたことを自分の体験談の様に話していると、突っ込んだ質問などに答えられなくなります。


・スクリプト(話す内容)を事前考え過ぎず、自分の言葉で話す。スクリプトをプレゼンのノートなどに書いて読み上げるのは、失敗しないための手ですが、機械的になってしまい、深みが無くなってしまう事があります。ですので、私はキーワードだけ書いて、文章は準備しない様にしています。最初はスクリプト有りで、スクリプトをそのまま読むのではなく、わざと助詞や助動詞、接続詞、語尾などを言い換えたり、同義語の言い換えをする練習をしていくと、徐々に慣れていくかと思います。英語のプレゼンは流石にスクリプトを考えますが、将来的には、その場で話せる様になりたいので、意味を変えずに、言い回しだけ変える練習をしています。


・早く終わり過ぎたり、オーバーしないために時間感覚を身につける。時計を見れる環境であれば、時刻を見ながら調整できますが、それが出来ない場合のために、普段から時間感覚を身につけておくと便利と思います。単に、日常的に時々、今どれくらい経ったのだろう?何時なんだろう?と予測するだけでも効果はあると思います。

後は、基本的ではありますが、話している途中に落ち着く事はとても大事ですね。
私も時々、自分が今何を話しているのか分からなくなったり、このスライドって何を話すのだったっけ・・・となる事もあります。
そんな時は、多少空白の時間が出来てしまったとしても、一旦落ち着いてスライドを見返して考えます。自分で作った資料なのであれば、落ち着けば必ず思い出すはずです。

深層筋について

gamzatti
Vote 0 Votes

いつも仕事、技術ネタを書いていますが、今日は方向性を変えて、身体に関することを書きます。

一時期、ITの仕事に疲れていた時にヨガのインストラクターに転職しようと考えた時期があり、

数ヶ月ですが、インストラクターになるためのスクールへ通っていました。

今は、仕事の楽しさに目覚め、ITの世界で生きていこうと腹を括りましたが(笑)、ヨガは趣味で10年程続けています。

また、昔はバレエを10年程やっていました。

ヨガとバレエは基本的に深層筋を使います。少しだけですが、深層筋を使う事を意識する事が多いので、その話をします。

深層筋とは、いわゆるインナーマッスルの事で、身体の深層部にある(表面には出ていない)筋肉を指します。

最近、インナーマッスルやコアを鍛えるのが流行っていますが、実際に意識して使うのは結構難しいと思います。

私も100%正しく深層筋を使えているかは疑問ですが、自分なりに分かってきた深層筋の使い方のコツを書きます。

・力を入れたり、動作をした場合に、外から筋肉が硬くなっている事が分かる場合は、深層筋では無く、表層筋を使っています。分かりやすいのが腹筋ですね。一番ベーシックな起き上がり型の腹筋をすると、多くの人はお腹に力が入ってポコっと出て硬くなりますが、これは腹直筋を使っています。腹筋で深層筋を使うためには、仰向けに寝て、脚を真っ直ぐ伸ばして真上に上げ、お腹を引っ込ませます。この時、なるべくお腹の表面に力が入らない様にします。お腹をそのままの状態に保って、床すれすれまで脚を下ろします。この動作をすると、力の入り方が変わるのが分かります。腹横筋や、腸腰筋(股関節周りの筋肉)などの深層筋が使われます。

・通常、筋肉は収縮させて(自分の身体の中心に引き寄せる様にして)使いますが、深層筋を使いたければ、"伸ばしながら使う"ことを意識します。分かりやすい例として、立った状態から何も意識せずに脚を前に上げると、表層筋である大腿四頭筋(太ももの前の筋肉)が使われます。一方、脚を股関節から外旋させ、脚の先を遠くに引っ張られる様にしながら持ち上げると、お腹や股関節の筋肉が使われます。腕も同じです。遠くに引っ張られる様にして上げると、上腕の筋肉では無く、腕の付け根の筋肉が使われるのが分かります。

・なるべく四肢の筋肉を使わない様に意識し、かかる負担を最小限にします。勿論使わないのは無理ですが、減らすことは出来ます。それには、お腹を締めることと、上半身の引き上げが必要です(この時に肩に力が入らない様に注意)。普段からこの2つを意識するだけで、脚が疲れにくくになります。深層筋を使える歩き方は、モデル歩きです。モデル歩きは、上半身を引き上げて、脚をあまり使わずに、骨盤を大きく動かして歩きます。

まとめると、私なりに得た深層筋を使うコツは、シンプルには、1)最小限の力で動く(無駄な力を使わない)こと 2)体幹部は引き締めて、四肢は楽に 3)上半身の引き上げてお腹を締める 4)伸ばしながら使う かなと思います。

 並列処理

gamzatti
Vote 0 Votes

明けましておめでとうございます。
昨年度も周りの色んな方に支えられ、活躍できた年でした。
今年は、業務も勿論ですが、加えて研究者として、更に前進できる様に頑張りたいと思います。

これからは、仕事などの経験を経て、他の方にもう役立つと思われる事について、書いていきたいと思います。
最初は、"並列処理"について。

私は、仕事のパートナーから並列処理が得意だとよく言われます。
そもそも脳の構造的に、女性は左右脳を繋ぐ脳梁が男性よりも大きいそうで、並列処理が得意な様に出来ているそうです。
しかし、自分ではその認識はないし、以前は並行して色んな事をこなすのが苦手でした。
今はそれなりに出来るようになった(少なくても人からはそう見えている)ので、元々得意でなくても出来る様になるという事です。
それには、以下の様な経緯(行動)が関係している気がします。

・業務の内容に適応した:以前はアプリ開発の業務に就いていましたが、計画通りに自分の裁量で進められるケースが多く、更に当時は平社員だったので、開発作業に専念出来ました。サイバーセキュリティの業務に就いてからは、飛び込みの仕事が非常に多く、臨機応変に頭を切り替える必要があり、半年程で自然に慣れた様に思います。今は、出向先(メイン)の業務、研究、出向元の業務をこなす必要があるので、やはり頭と気持ちの切り替えが重要になります。最初はストレスがかかりますが、慣れると良い気分転換になって相乗効果が産まれると思っています。
・他にやり残した事が無いか、作業の区切りで考える:集中力って長くは続かないですよね。作業の間に少し手を止める時間があるはずです。そんな時、私は気分転換がてら、他にやり残している作業が無かったか、考える様にしています。当然、全て記憶するのは無理なので、カレンダーやToDoリスト、メールなどを見返します。そうすると、結構積み残しのタスクなどに気づくことがあり、時間のかからないものならその場ですぐに片付けます。1つの作業に疲れたり、煮詰まってきた時に、振り返ってみるのはオススメです。
・日常でも、常に並列処理する事を意識する:私は時間が一番大切だと思っています。少しでも時間を無駄にしたくないので、仕事以外の日常のほんの小さいことでもなるべく並列処理します。家を出る時エレベータのボタンを押してから靴紐を結ぶ、リフトの中で次滑るコースをチェックする、フライパンに水を出しっ放しにしてからお皿を流しへ運ぶ。。。こんな小さな事でも累積すると"慣れ"に繋がると思います。また、意識的にではなく、私が飽きっぽいところがあるからなのですが、複数の本を並行して読む事が多いです。本Aの1章を読んだら、次は本Bの様な感じです。これも実は頭の切り替えの良いトレーニングになるかなと個人的に思います。

論文発表@マレーシア

gamzatti
Vote 0 Votes

11/19-21、マレーシアのペナン島でIEEEのカンファレンスで論文発表してきました。

https://ieeecomputer.my/ains2019/

76199278_816460995437103_2878857999449849856_n.jpg

今回発表したのは、以下3つのproceedings論文(まだ公開されていませんが、もう少ししたら公開されるはず)

Detecting attacks leveraging vulnerabilities fixed in MS17-010 from Event Log

Real-Time Detection System Against Malicious Tools by Monitoring DLL on Client Computers

Cyber Security Risk Assessment on Industry 4.0 using ICS testbed with AI and Cloud

AINS(Applications, Information and Network Security)は毎年11月にマレーシアで開催される、

IEEE Computer Society Malaysiaが主催するセキュリティカンファレンス。

昨年はランカウイ島、今年はペナン島でした。

昨年も論文が2つ受かり、参加してきたのですが、すっかりマレーシアが気に入ってしまい、

今年もトライしたところ、嬉しいことに全ての論文が通過。2年連続で参加できて嬉しかったです。

マレーシアは、多民族国家で、マレーシア、中華系、インド系など様々な方がいます。

それ故に、排他的な感じも全くないですし、色んな文化や食に触れることができて、私は大好きです。

豊かな自然とリーズナブルな物価も魅力の1つ。

食は、人によって好き嫌いが分かれると思いますが、スパイシーなエスニックが好きな人にはたまらないと思います。

日本ではあまり見ないアッサムラクサも食べられて、素敵な5日間でした。

私の好きな作家が、"アウトプットする面白さ"について本に書かれていましたが、

その通り、アウトプットする楽しさは、インプットする楽しさとは、また異質なものがありますね。

75653254_1583015295156673_2770398736512188416_n.jpg

最近、Webアプリケーションに対する攻撃として、SSRFが話題になっており、

Black hatなどのカンファレンスネタになっていることも多いです。
CSRFはご存知の方も多いと思いますが、SSRFは話題になっている割に、分かりやすく解説しているサイトが少ないので、取り上げてみます。

SSRFは端的には、ユーザの入力を元に、サーバサイドプログラムから別のサーバへリクエストを送信しているプログラムを踏み台として悪用し、
ユーザから本来アクセスできないサーバに対してアクセスを試みる攻撃です。

なお、"Forgery"とは"偽装する"という意味で、
・CSRFでは、正規のユーザのセッションを悪用して、リクエストを偽装する
・SSRFでは、正規のサーバサイドプログラムを悪用して、別サーバへのリクエストを偽造する
という意味になります。

"サーバサイドプログラムから別のサーバへリクエストを送信しているプログラム"とは、
サーバサイドプログラムが自身がクライアントとなってリクエストを送信しているプログラムを指します。

これは、HTTPリダイレクトやwebフォームのサブミットによるリクエストとは全く別の仕組みであることに注意が必要です。
HTTPリダイレクトやwebフォームは、あくまで送信元はWebクライアント(ブラウザ)なのに対し、SSRFの対象となるのは
Webサーバ自身が送信元(クライアント)となっている点が異なります。

通常のアプリケーションではあまり実装しないかもしれないですが、
ポータルサイトやブログを作成する様なソフトウエアであれば、プレビュー機能や、ポートレットへ別コンテンツを表示する機能などを実装するために
使われることがあります。
(私自身もポータルサイトの基盤ソフトを開発している際に、Webページ内に別のWebページを表示する機能を開発した時に使いました)

具体的な攻撃の仕組みです。

通常時:
・ユーザ(クライアント):インターネット
・フロントのWebサーバ:DMZに存在
・バックエンドのWebサーバ:内部ネットワーク上に存在
・その他、内部向けのサーバ:内部ネットワーク上に存在

アクセスコントロール:
インターネット --deny--> 内部ネットワーク
DMZ --allow --> 内部ネットワーク

1)ユーザがプレビュー機能で、プレビューしたいコンテンツを指定すると、プレビュー用のURLが生成され、URLがフロントのWebサーバにリクエストパラメータとして送信される
2)フロントのWebサーバは、リクエストパラメータで指定されたURL(バックエンドのWebサーバ)に送信される
3)バックエンドのWebサーバでコンテンツを生成してフロントのWebサーバに返却
4)フロントのWebサーバはプレビュー結果を表示

攻撃:
攻撃者がフロントのWebサーバに対し、バックエンドのWebサーバの管理画面や、その他、内部向けのサーバのコンテンツのURIをリクエストパラメータとして送信した場合、
3)で意図したURLであるかのチェックを行っていない場合は、DMZから内部ネットワークへの通信が許可されているため、
本来インターネットからアクセスできないコンテンツが閲覧できてしまいます。

以下は、SSRFの対策として有効と考えるものです。
・サーバサイドプログラムで受け取ったURL(プロトコル、ホスト部など)が意図したものであるか、チェックを行う
・プロトコル、IPアドレス単位でアクセスコントロールを適用する
・更に、Webサーバのアクセス制御機能などを利用して、管理画面などにコンテンツ単位でアクセス制御を行う

今まで、HTTP/HTTPSを利用するデータの持ち出しに主に着目し、紹介してきましたが、DNSクエリを悪用するデータの持ち出しを行うマルウエアもそれなりに観測されているそうです。

https://gblogs.cisco.com/jp/2016/07/detecting-dns-data-exfiltration-html/

https://blogs.akamai.com/2017/09/introduction-to-dns-data-exfiltration.html

DNSクエリの悪用を検知する観点では、DNSのクエリログを残しておくことも有効と言えそうです。

DNSクエリの悪用例をとてもシンプルに説明すると、以下の様になります。

・被害端末:攻撃者が既に侵害し、リモートコントロールしている端末

・組織のキャッシュ DNSサーバ:被害端末が参照している自組織のDNSサーバ

・攻撃者のDNSサーバ:example.comのドメインを管理しているとします

1)持ち出したいデータ(file1)を分割し、base64などでエンコードする(このデータをdata1-Nとする)

2)攻撃者は、被害端末上で、組織のキャッシュ DNSサーバに対して、以下の様な名前解決要求を送信する

{data1}.file1.example.com

{data2}.file1.example.com

...

3)上記のFQDNは実際には存在しないが、example.comは攻撃者が管理するドメインなので、名前解決要求は組織のDNSを経由して、攻撃者のDNSサーバに転送される。結果、情報が流出するという仕組み。

上記の手口だと、攻撃のDNSクエリは組織のキャッシュ DNSサーバを経由して転送することが可能なため、

ファイアウォールなどで、攻撃者のDNSサーバからのみ、DNSリクエストを許可していたとしても、迂回されてしまう可能性があります。

組織のキャッシュ DNSサーバのクエリログを取得していると、エンコードされたデータを含む異様に長い名前解決要求が残るため、

攻撃を検知できる可能性があります。

これらの攻撃をAIで検知する研究もある様です。

http://www2.ee.unsw.edu.au/~hhabibi/pubs/conf/19im.pdf

Silver Ticketについて

gamzatti
Vote 0 Votes

この連休は台風で身動き取れなかったこともあり、PCの前にいる時間が長い気が(笑)

Silver Ticketについての追加情報です。

Silver Ticketは特定のサービスに対する不正なService Ticketですが、これを無効にするには、

Service Ticketが作られた対象のサービスを起動させているアカウントのパスワードを二回変更する必要があります。
厳密には、ここでいうサービスとは、Service Principal Name(SPN)のことです。
SPNは、クライアントがサービスのインスタンスを一意に識別するための名前のことで、各サーバで利用できるSPNの一覧は以下のコマンドで確認できます。
setspn {アカウント名}
例:コンピュータアカウントDC$が動かしているSPN一覧を表示する
setspn DC$

サービスを動かしている代表的なアカウントとして、コンピュータアカウントを紹介していましたが、
以下によると、コンピュータアカウントが実質ほぼ全てのサービスを動かしているそうです。
https://blog.stealthbits.com/impersonating-service-accounts-with-silver-tickets

ですので、管理者が手動でSPNの登録を行なっていない場合は、Silver Ticket対策としてはコンピュータアカウントのパスワード変更で
大部分はカバーできるのではと考えます。

新しいバージョンのwindows(10や2016)に対する攻撃手法についてまとめてみます。

新しいバージョンでは、セキュリティ機能が強化されていることで、以下のような点で攻撃しづらくなっています。

・10/2016ではメモリに認証情報が残らなくなっているので、メモリから認証情報を窃取する攻撃は受けづらい

・MS14-068の攻撃コードは、10/2016で動作するものは、現時点では確認していない

しかし、一旦ドメイン管理者権限を取られてしまうと、Golden Ticketなどのバックドアを作られる可能性があり、

基本的には古いバージョンと同じ方法で攻撃することができます。

・Golden/Silver Ticketは、古いバージョンのwindowsと同じ方法で作ることができる

・ 端末の管理者権限を取られて、ウィルス対策ソフトやdefenderを無効化されてしまうと、mimikatzを使ってGolden/Silver Ticketをメモリに展開し、使用することが可能

したがって、新しいバージョンのwindowsを使っていたとしても、以下の様な状況の場合は、攻撃を受ける可能性が高いと言えます。

・パッチを適用していない

・ビルドが古いバージョンを使っている

検知手法や対処は古いバージョンと同じです。

・イベントIDの体系は、大きく変わっていない

・Golden/Silver Ticketを無効化するための対策も、同じ

ただし、Golden Ticketを作られてしまうと、単一のイベントでは検知が難しいので、複数のイベントを俯瞰的に見る必要があります。

参考:

https://www.blackhat.com/eu-18/briefings/schedule/index.html#real-time-detection-of-attacks-leveraging-domain-administrator-privilege-13100

https://github.com/sisoc-tokyo/Real-timeDetectionAD

なお、Golden/Silver Ticketを確実に見つけるためには、イベントログだけでは難しく、kerberosのパケットを見る必要があります。

https://www.blackhat.com/us-19/arsenal/schedule/index.html#real-time-detection-tool-of-high-risk-attacks-leveraging-kerberos-and-smb-16707

https://github.com/sisoc-tokyo/Real-timeDetectionAD_ver2

端的には、ドメインコントローラから発行されていないTGTやSTを見つけることです。

Golden/Silver Ticketを見つけられるセキュリティ製品(ATAなど)も、おそらく似た様なロジックを使っていると思われます、

https://docs.microsoft.com/ja-jp/advanced-threat-analytics/what-is-ata

準備が9割

gamzatti
Vote 0 Votes

先日主催した日米協働のサイバー演習が非常に好評だったとのこと。

https://www.meti.go.jp/press/2019/09/20190912009/20190912009.html

私達は特に、特出したな能力を持っている訳ではないけれど、それなりに実績を挙げて来られているのは、入念な準備だと思う。

既にノウハウを持っていたり、何回か繰り返したものであっても、準備は気を抜かずに入念に行うようにしている。

"準備が9割"は、真実。

準備が完璧なら、本番にどんな予測不可能な事態が起きても、頭が真っ白になっても、何とかなる。

執筆記事その2

gamzatti
Vote 0 Votes
レコメンドとはどんな意味?会話での使い方や英語の例文もまとめて紹介!

https://kuraneo.jp/posts/1215