WindowsXP、2003サポート終了後初の大型セキュリティホール

オープンソースコミュニティとMicrosoftが同期をとりながら専用サイトを使って事前対応の準備を求めるなど、異例の対応がされるなか、BadLockバグの話題が広がってます。セキュリティパッチ公開直後にクラックに応用される可能性が高いことから古いバージョン(4.1以前)のSambaを利用している場合には、パッチ公開日までにサポートの終了していないバージョン(4.2以降)へのアップグレードを済ませておくようにアナウンスされています。
WindowsXPをいまだ使い続けているユーザーや、Windows Server 2003の延命を選択しているユーザーには耳の痛い話題かと思います。なにせ最悪の場合は最も広く業務に使われているであろうファイル共有機能を無効にするか、あるいは後2週間たらずで新しいOSへの移行を完了しなくてはならないのですから。

http://badlock.org/
badlock

JPEGファイルに機密データを埋め込むツールを作ろう・・・って、おぃ

仕事に役立つJavaScript入門:JPEGファイルに機密データを埋め込むツールを作ろう

それ、役に立てちゃ駄目なやつじゃ・・・

というのはさておき、セキュリティを守る側としては「大抵のデータ形式は目に見えない部分に別の情報を保持できるよ」って事は知っておこう。例えばPNGは補助チャンクに任意のデータを埋め込むことが出来るし、xlsxやdocxは拡張子をzipに変換した後に開いて中のXMLファイルに任意のコメントを入れることも出来ます(一端開いて上書き保存すると消えちゃうけど・・・)。

「内部不正による情報セキュリティインシデント実態調査」報告書

IPAによる「内部不正による情報セキュリティインシデント実態調査」を読んだ。悲しいかな、予測の範囲を出ない実態があらためて報告されたように感じる。以下、考えたところを纏めておく。

内部不正の81%は悪意の無い物

内部不正の81%は悪意の無い物だというのが重要。「 ルールを知っていたが、うっかり違反した」「 ルールを知らずに違反した 」「 業務が忙しく、終わらせるために持ち出す 必要があった」「 ルールはあったが、ルール違反を繰り返 している人がいたので、自分もやった」は悪意によるものではない。

・USBメモリの使用やメールへの添付など特定の行為を禁止するなら、ルールを定めるだけではなく、使用不可能にすることが重要。
・仮に使用不可能にすることが出来ないなら、ルール違反には速やかに警告できるように監視体制を構築することが必要。

この二つが実施できていれば、81%については従業員も重大な処分を受けることはないし、会社も損失を被ることは無かったはずだ。正直にいって会社側の責任が大きいと思う。

枝葉の対策に捕らわれずに、業務全体を見直す

悪意を持たない不正の中に「 業務が忙しく、終わらせるために持ち出す 必要があった」と「 ルールはあったが、ルール違反を繰り返 している人がいたので、自分もやった」を合わせて23%ある。業務全体を見直して実施の可否や、その影響範囲、業務手順の変更を同時に行ってないと得てしてそうなる。USBメモリなどの保存して自宅へ持ち帰ることを禁止するのは簡単に思えますが、同時に全業務の棚卸しを行い特定の個人しか実施できない業務がなく、必要なら同僚が何時でも代行できる体制でなければ、業務を遂行するためには持ち帰らざる得ないと考えるのがどおりです。他にも自宅から取引先に直行直帰というわけに行かなくなれば、取引先への訪問に使える時間は減ります。単純に持ち出し禁止とするのではなく、従業員の業務負担を減らすための業務見直しや、サテライトオフィスやテレワークなど代替処置を含めて考えないと、すぐに綻びることになります。

安易に例外を認めない

上長の許可を取れば可能とか、申請をすれば可能とか、安易な例外処置を認めてはいけません。許可申請を行うのが常態化し、本来必要な業務の見直しや代替処置の検討を先送りすることになります。もし例外を認めるなら委員会や役員の許可を得て、特定の業務に対して、業務見直しの期限を設けて許可を与える必要があるでしょう。さもなければ申請を出すのが通常業務の一部とかし、有効性を失いっていきます。

悪意のある内部不正は・・・

禁止事項を設けるだけで防ぐことは不可能です。USBメモリの使用を禁止すればメールで、添付メールを禁止すればWEBで、WEBを禁止すれば紙で、紙迄禁止したら業務にならないのは目に見えています。以下のようなことが必要になります。
・各従業員の行っている業務を明確にし、業務上必要の無い資料の閲覧を禁止する。
・閲覧の許された資料についても閲覧記録を常に監視し、網羅するような閲覧には警告をする。

暗号ファイルを使った正しい秘密情報の守り方

年金機構の情報漏えい事件に関して、暗号化して保存するルールになってたなんて発言もあり、暗号ファイルの正しい秘密情報の守り方を確認しておきたいと思う。

1.暗号鍵の管理

大事なのは暗号鍵の管理となる。鍵が漏えいすれば、暗号にして保存しておいても何も意味がない。これが意外に難しい。
たとえばファイルサーバーに暗号化したファイルを置いておいたとして、その鍵をチーム内で共有していたとする。鍵がチーム外に漏れては意味がないので、チームメンバーの入れ替えが発生するたびに既存の暗号ファイルの鍵を全部変更する作業が発生する。
また暗号ファイルをメールなどで遠隔地に送る場合、鍵はメールとは異なる安全な媒体で送る必要がある。よくメールで送った添付ファイルの鍵を、別のメールで送ってくるが、これは殆ど意味がない。最低でも封書などで送る必要がある。

2.暗号鍵の長さ

鍵の長さも大事な要素となる。技術の進歩とコストの低下の恩恵を受けているのはクラッカーも同じで、ランダムな英数字記号による8文字程度の鍵なら、総当たりで試行錯誤を繰り返せば解くことができるようになってきた。AES暗号を使ったZIPファイルでも、ハイエンドパソコンなら毎秒40万通りの試行錯誤を実施できるので、英数大小文字に数字と記号までを使ったパスワードでも36年で全ての組み合わせを試せる。本気で暗号を破ろうとするなら、この1/10,000時間で解析することも出来る。最低でも英数字記号による12文字程度の鍵を設定しないと安心は出来ない。。

3.暗号方式の選択

暗号方式には設計レベルでの脆弱性が見つかっているものが多数ある。例えば圧縮ファイルのZIPで使われているPKZIP暗号とか、古いWordやExcelのファイルには、容易に鍵を類推出来るという脆弱性があります。設計レベルでの脆弱性なので、使わない以外の対策はありません。
したがってZIP形式の場合にはAES暗号を使うようにする必要があります。ただしWindowsの標準機能では複合出来なくなる。ExcelやWordではxlsxやdocx形式を選択すると良い。

4.内容を読めない

暗号ファイルにしてるので内容を読めません。何故これが問題なのかというと、例えばウィルス対策ソフトもファイルの内容をチェック出来ないので、ウィルスが含まれていても検出出来ません。また本来は持ち出しの許されていない情報が含まれてないか調べることも出来ません。これを防ぐためにはファイルに使用されている暗号鍵を全て提出させて日々更新し、しかるべき立場の者以外が閲覧できないように厳重に保管しておく必要が生まれます。
これを実現するには、暗号鍵を24桁にして前半12桁と後半12桁とを全く別々の担当者通知して管理させるといったことになる。

ファイルの暗号化によって秘密を守ろうとするとここまでの事が必要になりますが、到底実施不可能だと感じたのでは無いかと思います。それは当然のことです。そもそも共通鍵暗号でファイルを暗号化して秘密を守ろうというのは20年前の発想で、ネットワークに接続された機器が増え、殆ど全ての情報が電子化されている時代に通用する物では無いのですから。

チーム内で安全にファイルを共有するためには、IRM【Information Rights Management】という仕組みを使います。これ自体は単体のシステムとして販売されているのではなく、グループウェアや文書管理システムの一機能として提供されている事が多いです。実は、MicrosoftのOffice製品は10年以上も前から標準でIRMに対応していて、サーバーを1台用意すればIRMを使ったファイルの暗号化をできます。

秘密情報をファイルサーバーに保存する事に関して、まともなSEに少しでも相談していたなら、複雑な運用ルールにあれこれ悩む必要など無かったのに・・・と思わずには居られません。

社内連絡にメールを使うのを止めよう

標的型攻撃で送られてくるメールへの対策はどうあるべきか、様々な話がされてます。その一つとして検討すべき事が、社内の連絡にはインターネットメールを使わないってことです。

情報漏洩の原因のひとつが、リスクの高い外部との通信と、リスクの低い内部との通信を同じ仕組みの中で取扱っていることです。インターネットメールを外部との通信以外で使わないようにすれば、特定の拡張子のファイルを全て削除するといった対策も取りやすくなりますし、部内者を装った標的型攻撃のメールに騙される可能性もなくなります。

他にも、インターネットメールを社内連絡に使う事には問題があります。インターネットメールは基本的にインターネット上のサーバーを介して送信します。常時インターネットとの通信を行っているために、自社のメールサーバーのメンテナンスに不手際があった場合、クラッカーに侵入されるリスクが高いのです。万が一侵入されればメールサーバーを経由した全ての通信内容が漏洩する事につながります。

そこでインターネットメールに変わって、グループウェアや社内SNSを使うようにします。インターネットメールにはセキュリティー上の問題以外にも、同報性や共有性が悪い、既読確認の仕組が使いにくい、大きな容量の写真などを送れない、過去データの保存性や一覧性が悪い…などなど様々な使い難い点があります。グループウェアを使えば、これらの問題も一挙に解決します。導入に躊躇していたり、活用できずにいるなら、セキュリティーの為にも活用を進めてください。

個人情報を扱うならインターネットから切断するのが常識・・・とはならないで欲しい

市町村にネット遮断要請へ 厚労省、年金情報流出で

個人情報を扱うなら、インターネットから切断するのが常識・・・とされそうで危惧してたんですが、案の定その方向に動いていて頭を抱えています。インターネットから切断するのは、案外難しく、実効性を持たせるのは大変なのです。

1.業務ができるのかということ。
端末入力業務程度しかしないのであれば、確かにネットから切断しても問題ないのだけれど、ほとんどの場合は情報を加工したり、あるいは別の形で利用したりしなければ意味のある業務になりません。業務をよほど詳細に分析し、場合によっては根本から見直さないと、結局のところ情報を外に持ち出すことになります。USBメモリで、CDで、あるいは印刷した紙媒体で隔離されたネットワークの外に持ち出して仕事をするわけです。実務担当者にとって、与えられた仕事を遂行することが優先しますから、例外として持ち出すことを認めれば当然持ち出します。最初は仕方なく持ち出すのだと緊張していても、それが常態化すれば感覚は麻痺していきます。

2.持ち出された情報は追跡できない。
持ち出された情報がどうなったのか、追跡するのは非常に困難です。紙であろうと、USBメモリであろうと、容易に複製出来ます。他の媒体に持ち出された時点から、誰によって閲覧され、複製が何処にあるのか追跡することが著しく困難になります。
全てオンラインシステム内で扱っていれば、何時誰が作成し、閲覧あるいは複製したか追跡することも可能です。あるいはファイルサーバー内のファイルを精査して、個人情報が含まれてないか調べることも出来ます。インターネットから切断したことで、頻繁に個人情報をシステム外に持ち出して業務をするのでは、むしろ全体的なリスクが増える事になるのです。

3.メンテナンスも困難になる。
インターネットから切断したからと言って、メンテナンスをしなくてよいというわけではありません。業務用に作成したプログラムの更新やセキュリティ更新プログラムのインストールなどは常に発生します。
インターネットに繋がっているのであれば、セキュリティ更新プログラムのインストールなどは半自動で実行されるのですが、インターネットから切断されるとそうはいきません。セキュリティ更新プログラムをダウンロードし、それが確かにベンダーが提供しているものなのかを確認し、隔離したシステムに導入する必要があります。隔離しているのだから更新プログラムを当てなくても良いのではと思うかもしれませんが、そうはいきません。業務用に作成したプログラムの更新など、何らかの形で外部からファイルやデータを持ち込む可能性があるなら脆弱性を放置するわけにはいかないのです。

このあたりを無視して切断した結果、個人情報を隔離したシステムから持ち出すのが常態化して、情報漏えいにつながったのがまさしく今回の年金情報流出事件でしょう。さらに別の組織にまでインターネットからの切断を求めるなんて、今回の事件からいったい何を学んだんでしょう?

ではどうすれば良いのかというと、セキュリティーの基本となる、アクセス権の管理と、ログによる監視をしっかりと行うことです。基本ができていないのに、インターネット接続だけ遮断しても、絶対にうまくはいきません。

感染した未知のコンピュータウィルスを削除するには・・・実践編2/2

続いてレジストリの確認を取ります。実践編1/2でウィルスが起動しないようにしたあと、for VirusCheck OSを起動して、レジストリエディタから全レジストリの内容をエクスポートします。エクスポートしたレジストリはテキストファイルイン保存されますので、for Refrence OSのウィルス感染前のレジストリをエクスポートしたものと比較して変更箇所を検証していきます。
registry
実際に細かく追っていくとかなり根気のいる作業です。今回のウィルスでは以下の場所に改変がくわえられ、ログオン時にウィルスが起動されるようになっていました。

[HKEY_LOCAL_MACHINE&yenSOFTWARE&yenMicrosoft&yenWindows NT&yenCurrentVersion&yenWinlogon]
“Userinit”=”C:&yen&yenWINDOWS&yen&yensystem32&yen&yenuserinit.exe,C:&yen&yenProgram Files&yen&yenCommon Files&yen&yensvchost.exe -s”

今回のウィルスは比較的シンプルな作りになっていたので、ファイル1つ、レジストリ1箇所だけで済んでいます。etcやDNSサーバの情報を改ざんしたり、電子証明書を改ざんしたり、ドライバを組み込んだり、ブラウザやエクスプローラーにプラグインを組み込んだりと、複雑な動作をするウィルスもいます。気を抜かずに根気よく一つ一つ確認していく事が重要です。
ウィルスを駆除する為に削除するファイルやレジストリが明確になったら、実際に感染した環境でそれらのファイルを削除したり、あるいはレジストリを修復していく事になります。ウィルスが常駐している状態では削除などの操作はウィルスによってトラップされており、おこなえないのが常です。OSのモジュールの一部が置き換えられている場合には、たとえセーフモードで起動したとしてもウィルスは常駐してしまいます。KNOPPIXなどのCDからブートするLinux環境から、NTFSのファイルシステムをマウントして、ファイルの削除などをおこなうのが一番確実でしょう。
今回のウィルスは幸いな事に、セーフモードのコマンドプロンプトで起動すれば、ウィルスが常駐する事を防げます。したがってセーフモードのコマンドプロンプトで起動した後、C:¥Program Files¥Common Files¥svchost.exeのシステム属性と非表示属性を解除し、ファイルを削除することで除去できました。

感染した未知のコンピュータウィルスを削除するには・・・実践編1/2

手前の記事に続いて、感染した未知のウィルスの駆除を実践してみようと思う。今回使用するツールは仮想OSとしてVMWare。左から順番に感染させたHDDをマウントして操作する為の環境(Windows XP Professional、以下作業用OS)、実際にウィルスに感染させる環境(Windows XP for VirusCheck、以下for VirusCheck)、ウィルスに感染する前の環境と比較する為のコピー(Windows XP for Refrence、以下for Refrence)の三つのゲストOSを準備した。for Refrenceはfor VirusCheckの仮想OSをコピーして作成したので、この二つはほぼ完全に同一の環境です。
VMWare2
最初にfor VirusCheck環境にウィルスを感染させます。USBメモリを詳細表示してみると、下記のようにフォルダに見えるものは実行可能なアプリケーションになっています。この謎のアプリケーションを実行します。そのあとUSBメモリに新規にフォルダを作成すると、すかさずアプリケーションに置き換えられています。旨くウィルスに感染できたようです。
USBMemory
ここでfor VirusCheckをシャットダウンし、作業用OSからfor VirusCheckとfor RefrenceのHDDをマウントします。for VirusCheckとfor RefrenceのHDD同士を比較するのですが、ここではWinMergeと言うフリーウェアを活用しました。カーソル箇所のファイルを見てください。F:がfor VisrusCheck、G:がfor Refrenceです。F:\Program Files\Common Files\svchost.exeと言うファイルが追加されている事が分かります。svchost.exeはサービスの制御をおこなっているプロセスで、普通はC:\Windows\system32\svchost.exeにあるはずのファイルで、あからさまに怪しいです。
WinMerge
実は他にもpagefile.sysとか、NTUSER.DATとかいくつかのファイルが変更されているものとして抽出されます。pagefile.sysはスワップファイルでOSを起動すれば必ず更新されるファイルです。こういった正常でも更新されるファイルは多々ありますが、知識に照らし合わせて判断して言ってください。
今回はF:\Program Files\Common Files\svchost.exe以外にとくに問題となるファイルが見当たりませんし、作業OS上から該当するファイルを削除します。その後、あらためてfor VirusCheckゲストOSを起動してウィルスがどうなったか見てみましょう。
USBメモリにフォルダを作成しても、勝手に実行ファイルに置き換わっている様子はありません。とりあえずウィルスの動作は止まったようです。
その他の影響を見る為、続けてレジストリの確認に移ります。

感染した未知のコンピュータウィルスを削除するには・・・

先日、ウィルス対策ソフトのメーカーのページでも固有名が付いておらず、削除方法不明のウィルスを削除する機会があった。最近は新種の・・・というよりも亜種といったほうがよいのだろうか?ウィルスの発生頻度が高くなっているそうだ。とすると、今後はウィルスに感染した場合、昔のように除去方法までアナウンスするのは難しくなるのかもしれない。
そんなわけでこの機会に正体不明のコンピューターウィルスを削除する方法を調べる方法など紹介してみようと思う。実はたいしたことじゃない、誰にでもできる単純作業なのだ。
用意するもの。仮想OS環境。VMWareでもVirtualPCでもよいので仮想OS環境を用意します。実環境で作業でいなくもないけれど、HDDを外したりマウントしたり、同じ環境を複数用意したりと、仮想OS環境上じゃないと面倒な事、この上ないです。
まずは感染させるためのゲストOSを用意します。感染させるためのゲストOSは作業を楽にするために出来るだけシンプルで、かつ実際に使用している環境と同じように各種ツールをインストールしましょう。
たとえば複数の機能・・・例えばメールとWordのマクロを使って感染する能力も有している様なウィルスがいたとして、感染させる環境にWordがインストールされていなければ、Word感染にかかわる部分が分からないままになってしまいます。したがって実環境でインストールしているものは、できるだけインストールしている必要があるのです。同様の理由でサービスパックやIEのバージョンなどもできるだけ一致させましょう。
ゲストOSを準備したら、感染前にレジストリの全データをテキストファイルにエキスポートします。同時にHDD内の全ファイルのハッシュ値を算出し保存します。これでほとんどの場合、ウィルスが感染する時におこなったシステムへの変更を、ほとんどの場合追跡できます。
準備がすんだら実際にウィルスに感染させます。
誤ってホスト環境に感染させないように気をつけましょう。VMWareの場合は新しいPnPデバイスを自動で仮想OS環境にマウントする(ホスト環境にはマウントされない)機能があるので、この機能を忘れずに有効にします。
この時、必ずネットワークに接続した状態で感染させましょう。最近はインターネット上のサーバーからウィルス本体をダウンロードするタイプもあります。正常にきちんと感染させないと、ウィルスが感染時に何を行っているか正しく把握できません。
正常に感染したら仮想PCをシャットダウンします。別の仮想PCに感染した仮想PCのHDDをマウントします。その後、先ほどと同じ要領で全ファイルのハッシュ値の算出をおこない、感染前のファイルハッシュ値と比較して変更されたファイルや新たに追加されたファイルをリストアップします。
中には正常にOSが起動して終了しただけでも更新されるファイルもあります。それらは除外して考えましょう。レジストリファイルやスワップファイル、イベントログなど、それほど種類は多くありません。
続いて変更されたレジストリを調べます。そのためには一度感染したOSを起動しなくてはなりませんが、感染した状態ではウィルスがレジストリ情報を隠して、本当に正しいレジストリを取得できない恐れがあります。レジストリを取得する前に、感染によって置き換えられたファイルを削除、あるいは感染前のファイルに置き換えます。そのあと感染したOSを起動してレジストリをエクスポートし、感染前のレジストリと比較して変更箇所を把握します。
ここまでの作業によって感染によって作成変更されたファイルとレジストリの一覧が手に入りました。後はこれらのファイルとレジストリを元に戻す手順を確立するだけです。
運が良ければセーフモードで起動して削除できますが、実際にはセーフモードでも常駐するウィルスが多いです。したがって、実際的にはCDなどからブートしてHDD上のファイルを削除するのが一番確実です。感染したPCを起動しても、常駐しているウィルスが邪魔をして、なかなか思うように削除できませんからね。
感染ファイルを削除してしまえば、レジストリが残っていたとしても、ウィルスは活動できません。感染ファイルを修復した後に、改め感染したOSを起動してレジストリを修復するのがよいでしょう。
・・・というわけで、後日実際にデモって見るよ。続きをお楽しみに。