wakatonoの戯れメモ

はてなダイアリーから引っ越してきました。

テレワークが止まらないので(何)、オンライン会議システムを3つくらい立て続けに使ってみた

私の勤務先もご多分にもれず、原則テレワーク状態に。

そんな中、この短期間に3種類のオンライン会議システムを使うことになったので、個人的な所管ではあるけど書き留めてみようかなと思う。

  • Zoom
    今やオンライン会議サービスの代表的な選択肢になっている感のあるモノ。
    無償で使えるのは40分まで。あとは契約しているサービス内容によって、時間とか付加サービスの内容が変わる風。
    遅延も少ないし、共有画面もきれい。これ使ってから、オンライン会議のイメージがガラッとかわった感。
  • Microsoft Teams
    Microsoftが提供するコミュニケーション基盤。
    Business Chatの分野では比較的新参という印象を受ける。
    これもまた、オンライン会議の機能を持っており、会議へのinviteはOutlook(筆者が仕事で使ってるのは、Outlook 2016)からボタン一発で行えるのが便利(プラグイン使えば、他のものでもできるのかもしれないけど、TeamsもOutlookもMSの製品であることを考えると、最初からこの機能が使えるOutlookを利用していれば、超便利)。
    画面共有はきれいだけど、音声通話は少しラグが生じるところが残念。
  • WebEx
    Ciscoが提供するオンライン会議サービス。
    このサービス領域では、結構老舗の部類に入る。
    ネットワーク屋さんが開発・提供しているサービスだけあって、音声の遅延は小さい。でも(理由はわからんけど)画面共有はあまりきれいではない。

Zoom、Microsoft Teams、WebExのいずれも有償プランはあるけど、無償でもある程度は利用可能*1。これはありがたい。

いずれのサービスも、プランの選択次第で電話経由でも会議に参加できるようになるが、気をつけないと会議参加用の電話番号がアメリカのものになったりするので注意w。

個人的に一番推したいのは、やっぱZoom

好きに使えばいいという話はあるけど、紹介した3つのサービスの中で、専業でやってるのはZoomだけなんだよね(いずれどこかに買われるのではないか?とも思ってるけど、今のところは専業)。Microsoft TeamsもWebExもいいサービスではあるんだけど、手軽さという点ではZoomが頭一つ抜けている*2。試す敷居も低く、インタフェースも洗練されており、直感的に使用可能。

このところ、世の中いろいろと暗い方向の話が多いけど、こういう時だからこそポジティブに動けるところはそう動いていこう、と思うのでした。まる。

*1:当然制限はつく

*2:あまりこういう方面に明るくない人から相談を受けたら、とりあえずこれ使ってみ?とすすめる程度には出来が良い

VBAマクロについての覚書

VBAでネットワーク使う時に、いろいろと制約事項が出て来やしないか?というので調べてた。

結論は以下のとおり

  • HTTPリクエスト系は、VBAマクロで普通に書ける
  • WinSockを用いたネットワークアプリケーションは、どこでも動くものを書くのは困難(MSWINSCK.OCXが必要だが、このOCXファイルはVB6ランタイムに含まれるらしく、Windows 10で使うのはちと勇気がいる(というか普通には入っていない))。

いろいろと凶悪なBotが出てくる中で、マクロで完結させられるかどうか?の調査をしていたのだけど、とりあえず素の状態でVBAでネットワークを、というのは難しいという結論になりました。

 

ファイルレスマルウエアは「ファイルは作らない」が、何も作らないわけではない

標的型攻撃に「ファイルレスマルウエア」が使われるようになって久しいが、標的型攻撃を仕掛けるモチベーション(きっかけ/やる気の源)は一体何か?を考えてみよう。

  • 仕掛ける相手の持ってる情報が欲しい
  • できれば長い期間、情報を継続的に獲得したい
  • でも、仕掛ける相手に侵入するのは結構手間

となると、何らかの方法で(だいたいはHTTP/HTTPS経由)情報を持ち出す手段を攻撃を仕掛ける相手に仕込みたいとなる。

ファイルレスマルウエアは、単純にファイルをスキャンするツールではみつからない。

しかし、単にメモリ上にしか存在しないマルウエアは、永続性の観点で不安定である。「再起動したら消える」脆弱な存在だ。

それでは、永続化するためにはどうしたらいいのだろうか。Windows上でファイルレスマルウエアを永続化するのは、(わりかし)容易かなと思う。以下、例えばこんな方法がある、ちうのを挙げていく。

別にPowershellに恨みがあるわけではないがw、Powershell上のワンライナースクリプトを用いて外部からプログラムを取得し、それを実行するというのはありうるし、ワンライナーでも結構なことを行える。

さらに、外部に情報を持ち出すときにも(本当にファイルレスならば)一時ファイルを作成せず、「ファイルを読む→HTTPリクエストに読んだ内容を乗せる」という処理を繰り返すし、RATっぽいものも動かして、外部からの制御を受け付けるようC&Cサーバに接続を行わせることも可能だ(今だったらこっちか?)。

ということで、「ファイルを作らない」だけで、痕跡はあちこちに残るため、その痕跡を逃さないために、例えばEDRであったり(端末セントリックだが、ログは集中管理されるのが普通なので、後述するSIEMとも絡んでくる可能性あり)、SIEMであったり(各種ログセントリック)というツールを導入・運用していくという話になってくる。

攻撃者の立場に立って考えると、「永続化」という話は重要なポイントなので、永続化のための手法を押さえておくと、攻撃された痕跡を見つけるのに役立つかもしれない。

ファイルレスマルウエアは「確かに」ファイルは作らない

「ファイルレス=ファイルを作らない」という話はまぁ間違いではないけど、そこから「痕跡を残さない」と飛ぶのは少し行き過ぎ。

www.nikkei.com

 

「本当に」痕跡が残らないと、そもそもどこからも何も検知できないが、実際には検知できているし、そのためのソリューションもある。

じゃあ、どこで検知しているのか?というのを少し考えてみよう。

フォレンジック関係ツールの検証やってみた(少しだけ)

思うところあって、TSURUGI Linuxを使ってみた

TSURUGI Linuxは、デジタルフォレンジック向けのLinuxディストリビューション

デジタルフォレンジックに使えるLinuxディストリビューションには、例えばKali LinuxやSANS SIFT Workstationなどがあるが、今回あえてTSURUGI Linuxを使ってみたのには理由がある。

  1. わりかし新しいディストリビューションである
  2. Acquire向けの機能に絞ったISOイメージを配布している
  3. 起動するだけであれば、誤ってHDDイメージを壊すことがない

新しいのはまぁいいとして、なぜ2,3が重要なのか?を以下に述べる。

まずは2から。実際にフォレンジックをやったことある人ならば経験ある人もいるかもだけど、HDDイメージを取得する時に、普通に配布されているLinuxディストリビューションではうまくいかない(そもそもブートすらしない)ことがある。

ブートすらしない理由は、経験的にはIA32の拡張機能であるPAE(物理アドレス拡張)が関係していることが多い。PAEをサポートしないCPUでは、PAEを有効にしたカーネルでブートさせられないため、いろいろと小細工が必要になってくるが、TSURUGI LinuxのAcquire用イメージは、PAEなしCPUだろうとCylixだろうとTransmetaだろうと(ブート時のメッセージを読む限りは)サポートしており、わりかし安心して動かせる(速度は遅いがw)。

環境によってはGUIがうまく動かない(画面がうまく出ない)ことがあるが、この場合であってもCtrl + Alt + F1を押下することで、CUIログイン画面が出る。実はThinkPad X31GUIがうまく動かなかったのだが、Ctrl + Alt + F1を押下し、ユーザ名root、パスワードなしでログインできた。

そして3。TSURUGI Linuxは、起動した段階では(少なくとも)ブートデバイス以外のHDDやSSDは、接続形態を問わず書き込み禁止状態になっている。あとでUSB HDDを追加しても、追加したHDDはかたっぱしから書き込み禁止状態になる。この状態であれば、起動しても(所定のコマンドを知らない限りは)書き込みをできるようにならない。

TSURUGI Linuxでブート後HDDを書き込み可能にするためには?

blockdevコマンドを用いる。

wrtblkコマンドをはじめとして、複数のそれ向けコマンドがあるが、これらのコマンドはシェルスクリプトであり、中でblockdevコマンドを実行している。

詳しくはblockdevコマンドのヘルプをみてもらいたいが、少なくとも書き込み禁止状態を解除するだけならば、blockdev --setrw <書き込み禁止を解除したいデバイスファイル名> とすることで、書込み禁止状態を解除できる。

ファイルシステム作成時とマウント時のblockdev --setrw の範囲の違い

ファイルシステムを作成する時には、作成するデバイスパーティション)に対応するデバイスファイルのみをblockdev --setrwすればいいが、マウントしたりという時には、そのパーティションが含まれるHDDを指すデバイスファイルもblockdev --setrw しておかないといけない。そうでないとマウント時にread onlyモードにされる。

商用ツールだと、EnCase ImagerやFTK ImagerがTSURUGI Acquireに近いが、多分TSURUGI Acquireのほうが使い勝手がよい

フォレンジックをやる人の中には、イメージ取得にEnCase ImagerやFTK Imagerを使う人も多いと思う。

しかし、EnCase Imagerは入手方法がわからず(私は30分格闘してあきらめた)、FTK ImagerはWindows版は64bit版しか配布されていない。ところが、TSURUGI Acquireの中にはなんとFTK ImagerのLinux 32bitコマンドライン版が含まれている。FTK Imager のLinux 32bit コマンドライン版はなかなかステキな機能がある。個人的には以下の2つがツボった。

  • バイスファイルやraw形式のファイルを入力に指定可能
  • e01形式(EnCase形式)で出力可能

もうこれだけでも使う価値がある。

64bitカーネルが動かない/64bit Windowsでないなどの理由でFTK ImagerやEnCase Imagerが使えない場合でも、マシンを落としてOKならば、TSURUGI Acquireを使ってイメージを取得することが可能だ。

TSURUGI Linuxの弱点:とりあえずドキュメント類に乏しいw

まだ出たばかりなのでしょうがないといえばしょうがないのだけど、まだドキュメント類はそんなにない(というかほとんどないw)。まずは自分でいろいろ使ってみて、情報量を増やすのはアリかなと思った。

GPD Pocketを使ってみての所感(その他編)

わりとどうでもいいようなよくないような点をまとめてみた。

  • 性能は意外に悪くない。WinSATの結果は、メインで使ってるマシンの1台であるThinkPad Helix(1st Gen、Core i5 3rd Gen)よりちょっと悪いくらい(気が向いたら結果載せます)
  • 筐体の加工精度はものすごく高い。閉めたらぴったり閉まる。すげえ気持ちいい。物欲満たされた感になる(個人的には重要)
  • 内蔵オーディオ(というかスピーカー)はモノラルだけど、別に気にならない(というか気にする気もない)
  • Webカメラは内蔵してないけど、別に不便でもなんでもないのでOK。どうしても必要ならば、これこそUSBカメラつければOKな世界
  • USB-CのHUB兼カードリーダーがついたモデルが届いたけど、正直いらなかったかなと感じてる。給電して充電可能なHUBを調達するほうがよっぽどいいかなと思った

GPD Pocketを使ってみての所感(お値段編)

オレの場合は、約400ドル程度の出資でGPD Pocketを入手できたわけですが、出せるのはいくらまでか?と言われると、この使い勝手ならば、たぶん6万円が限度だと思います(500ドルはまぁアリ。600ドルとか言われると、"No, thank you"となりそう)。