その昔、Microsoft®製品にはセキュリティホールがたくさんあって、ハッカーの攻撃を受けやすいと騒がれたことがありました。
世界で最もシェアが高い製品を持っていることから、善意か悪意かに関わらず、セキュリティホールを探すことが日常生活の一部になっている方が現在も多数いらっしゃいます。
騒がれた当時は、次々と見つかるセキュリティホールを、都度パッチで塞ぐといういたちごっこが主流でしたが、構造的な解決策の研究を並行して重ね、現在では「世界で最も攻撃を受けている組織の1つと言われている企業」というフレーズをセキュリティ対策ソリューションの看板に掲げて「攻撃に強い企業」を自負するほどになりました。
今回は、そんなMicrosoft®さんがMicrosoft Office®に搭載した構造的な解決策のひとつ、「セキュリティセンター」にまつわるお話です。
なお、本稿は、Microsoft®の公式発表などに関係なく、僕が業務に携わる中で見たり聞いたり感じたり検証したりしたことに基づいて記述しております。あらかじめご了承ください。
Microsoft Office®セキュリティセンターとは
Microsoft Office®2000に、文書に含まれるマクロの実行を制御する機能が搭載され、それまで野放しだった不正なコードの実行を防止できるようになった・・・はずでした。
実際には、誤解を恐れずに表現するならば、無警告で実行させる(させない)か、警告ダイアログを乱発して操作ミスを誘うか、といった具合であり、実効性はユーザのスキルと心身状態に左右されていた、というのが実情でした。
Microsoft Office®2002、2003へとバージョンが進むにつれて、設定の幅は少しずつ(ホントに少しずつ)拡がっていったものの、依然として実効性の乏しい状況が続いておりました。
このような課題を解決するべく、Microsoft Office®2007から登場したのがセキュリティセンターです。
Microsoft Office®2003以前のものよりも、設定できる範囲や制限方法が大幅に拡張されました。また、Microsoft Office®2003以前では自由に設定できなかった「信頼できる場所」を追加、変更、削除することができるようになりました。
「信頼できる場所」を管理者権限を持つユーザが自由に設定できるようになったことで、検証済みのマクロ付き文書を無条件で実行するよう制御できるようになり、必要なときにだけ警告を出すことが可能になりました。
さらに、Microsoft Office®2010からは、「保護されたビュー」が登場して、外来の文書に対する安全対策がさらに強化されました。
企業で進むセキュリティ対策
サイバー攻撃、内部犯行を問わず、情報漏えいそのものが企業経営の屋台骨を揺るがすほどになった昨今では、個々のPCに文書を保存させないように制御する動きが拡がっております。
とりわけ、「信頼できる場所」に関していえば、既定の「信頼できる場所」へ一般ユーザが文書を置けなくなったことで、ユーザのスキルに依存しないセキュリティ管理が実現されました。
一方で、ネットワークストレージ上に配置した業務に有益なマクロ付き文書を実行できるようにするために、ネットワークストレージ上の特定の場所を「信頼できる場所」に追加する動きが出てきております。
そろそろ本題・・・初めの一歩
前置きが長くなるのは僕の悪い癖ですが、そろそろ本題に入りたいと思います。
前述のような経過をたどって登場したセキュリティセンターですが、ネットワークストレージ上の特定の場所を「信頼できる場所」に追加するには、まず初めにMicrosoft®さんの推奨から逸脱する操作を行う必要があります。
具体的には、次のとおりです。
-
メニュー〔ファイル〕→〔オプション〕で、〔Wordのオプション〕ウィンドウを開き、〔セキュリティセンター〕ペインをクリックします。
-
〔セキュリティセンターの設定〕ボタンを押して、〔セキュリティセンター〕ウィンドウを開き、〔信頼できる場所〕ペインをクリックします。
-
ウィンドウの下の方に、〔プライベートネットワーク上にある信頼できる場所を許可する(推奨しません)〕というチェックボックスがあります。
このチェックボックスをONにしない限り、ネットワークストレージ上の特定の場所を〔信頼できる場所〕に追加することはできません。
というわけで、毎度のことではございますが、ネットワークストレージ上が安全であるかご自身で判断いただいたうえで、ご自身の責任の範囲でこのチェックボックスをONにしてください。
実際に追加してみる
さてさて、勇気をもってMicrosoft®さんの推奨から逸脱する操作を行いましたので、実際に追加してみることにしましょう。
操作手順は、チェックボックスをONにしたところから始まります。つまり、みなさんの画面には、〔セキュリティセンター〕ウィンドウの〔信頼できる場所〕ペインが表示されているはずです。
-
〔新しい場所の追加〕ボタンを押して、〔Microsoft Officeの信頼できる場所〕ダイアログを開きます。
-
〔参照〕ボタンを押して、実際に追加するフォルダを選択します。
-
〔この場所のサブフォルダーも信頼する〕というチェックボックスは、実際の運用に合わせてONとするかOFFとするか決めてください。
大抵は、OFFでよいと思います。
-
〔OK〕ボタンを押します。
ここで、無事に「信頼できる場所」が追加された方と、次のようなダイアログが出た方がいらっしゃると思います。
入力したパスは、セキュリティ上の理由から、信頼できる場所として使用できません。別の場所または特定のフォルダーを選択してください。
ようやくここで、本稿の主題のとおり、モヤモヤすることになるわけです。
「信頼できる場所」に追加できるのは、名前解決されていて、かつ、名前で指定された場所だけである
見出しにさくっと答えを書いてみましたが、普段からネットワークの仕組みに触れている方でもない限り、頭の中が「?」でいっぱいになっていることと思います。
名前解決とは何か?その有用性とは?
普段からネットワークの仕組みに触れている方は、この項目を読み飛ばしてください。
なお、「信頼できる場所」に指定するサーバ名はNetBIOS名と呼ばれるものですが、ここではわかりやすくインターネットを例にして書いております。
よくネットサーフィンをする方は、「http://www.hogefuga.com/」といったような文字列を目にしているかと思います。
この文字列のうちの「www.hogefuga.com」が、サーバの名前です。
この名前のサーバが一体どこにあるのか、どこにあるかわからないとサーバに接続できませんよね。
そこで登場するのがDNSという仕組みです。
DNSの細かい説明はここでは割愛しますが、どんなものか触れてみたい方は、〔スタート〕メニューから〔コマンドプロンプト〕を開き、次のように入力してみましょう。
C:\Users\SuperStar>nslookup japan-paradise.com
サーバー: mydns.mydomain
Address: 192.168.xxx.xxx
権限のない回答:
名前: japan-paradise.com
Address: 123.108.xxx.xxx
C:\Users\SuperStar>
「nslookup
<サーバ名>」と入力してEnterを押すと、指定したサーバ名に対するAddress「123.108.xxx.xxx」が返ってきます。
このAddressのことを、IPアドレスと言います。
IPアドレスは、ドット(「.」)で区切られた数字に基づいて、サーバに到達するまでの経路を見つけられる「住所」のようなものです。
ネットワーク自体は、IPアドレスさえわかれば目的のサーバへ到達できるようにできておりますが、DNSを使用して名前解決することには次のような利点があります。
1番目と2番目は、DNSを用いたネットワーク運用の有用性ってこういうことなんだな、といった程度にご理解いただければ結構です。
本稿のテーマである「信頼できる場所」のモヤモヤは、3番目の利点に基づいたMicrosoft®さんのポリシー的なものによって起きています。
名前の付いてないサーバは、信頼できない
「名前の付いているサーバは信頼できる」の反対は「名前の付いていないサーバは信頼できないかも知れない」ですが、考えてみたら「名乗らずに信頼されると思う方が間違ってる」というのが人間社会の掟。
Microsoft®さんが人間社会の掟を当てはめたかどうかはわかりませんが、IPアドレスによる指定、とりわけ、ローカルIPアドレスによる指定がある場合には、ユーザに危険を知らせるのがMicrosoft Office®製品の基本的な動作のようです。
「信頼できる場所」を、(名前を持っているかどうかに関わらず)IPアドレスで指定すれば前述のような警告ダイアログが表示されて弾かれます。
また、ドライブ文字を割り当てられた場所においては、ドライブ文字割り当てのときにIPアドレスが指定されていれば同様に弾かれるのです。
サーバを名前で指定する
さてさて、ここまでわかったところで、ではどうすれば解決できるか。
単純ですが、「サーバを名前で指定する」ことです。
次のように指定することで解決できる方は、「ホントに単純!」と思っていただけることでしょう。
\\<サーバの名前>\<共有ボリューム>\<信頼できる場所のパス>
ネットワークが複雑で名前を指定しても到達できなかったり、サーバの名前が不明であったりする場合には、次の3つの方法を順に試していく必要があります。
サーバに名前を付ける3つの方法
まず、サーバに名前があるか確認する
-
会社などの管理されたネットワークの場合、知らないだけで本当は名前があるかも知れませんので、まずは管理者の方にサーバの名前を尋ねてください。
自宅などの自分で管理しているネットワークの場合は、次の方法でサーバの名前を確認できます。
-
ネットワークストレージがWindows PCまたはWindows Serverのときは、コンピュータのプロパティに設定されているコンピュータ名がサーバの名前です。
-
ネットワークストレージがLANディスクのときは、「LANDISKの名前」のような設定項目があればそこに設定されている名前がサーバの名前です。
-
ネットワークストレージがLinux(Samba等)のときは、confファイルに書かれた名前がサーバの名前です。
-
幸いにも名前があった場合には、早速名前を指定してみましょう。
\\<サーバの名前>\<共有ボリューム>\<信頼できる場所のパス>
ネットワークが複雑で到達できないこともありますので、その場合には、以下の2つの方法を順に試していく必要があります。
サーバの名前を、DNSサーバに登録する
-
会社などの管理されたネットワークの場合、管理者の方にサーバを名前解決できるように頼んでください。
自宅などの自分で管理しているネットワークの場合は、DNSサーバを建てることを検討してみてください。
既存のネットワーク機器(ルータ、ゲートウェイなど)に、DNSサーバ機能が備わっていることもあります。
-
DNSサーバに登録したら、登録したサーバ名を指定してみましょう。
\\<サーバの名前>\<共有ボリューム>\<信頼できる場所のパス>
DNSサーバの利用が困難な場合には、以下の方法を試す必要があります。
サーバの名前を、hostsファイルに書き込む
-
〔スタート〕メニューから「メモ帳」を管理者権限で開き、〔ファイル〕→〔開く〕で、次のファイルを開きます。
%windir%\System32\drivers\etc\hosts
-
ファイルの末尾に、赤文字で示した部分を入力して、保存して閉じます。
# Copyright (c) 1993-2009 Microsoft Corp.
#
# This is a sample HOSTS file used by Microsoft TCP/IP for Windows.
#
# This file contains the mappings of IP addresses to host names. Each
# entry should be kept on an individual line. The IP address should
# be placed in the first column followed by the corresponding host name.
# The IP address and the host name should be separated by at least one
# space.
#
# Additionally, comments (such as these) may be inserted on individual
# lines or following the machine name denoted by a '#' symbol.
#
# For example:
#
# 102.54.94.97 rhino.acme.com # source server
# 38.25.63.10 x.acme.com # x client host
# localhost name resolution is handled within DNS itself.
# 127.0.0.1 localhost
# ::1 localhost
<IPアドレス> <サーバの名前>
-
hostsファイルに入力したサーバ名を指定してみましょう。
\\<サーバの名前>\<共有ボリューム>\<信頼できる場所のパス>