本書『IT管理者のための情報セキュリティガイド』は、主に中小企業のIT担当者が、ITセキュリティについて最低限意識すべきポイントを網羅した良書。IT担当者のみならず、すべての従業員が一度学ぶべき内容でもある。
本書がとりあげている一般的項目は18個。そのほかにリスク分析方法、会社組織とマネジメント、脅威情報収集などについてもふれている。以下、それぞれでとりあげられるキーワードをメモ代わりに。
- ID管理と認証…IDとその管理、認証 (*1) 、多要素認証と段階的認証、シングル・サインオン (*2) とフェデレーション (*3) 。
- 権限の管理…役割と権限の整理、ロール(役割)モデルの構築、アクセス権の設定。
- システム管理者の権限管理(特権管理)
- さまざまなアクセス制御…コンピュータにおけるアクセス制御の方式、Windowsシステムにおける権限管理とアクセス制御、データベースのアクセス制御、様々なアプリケーション、サービスにおける権限とアクセス制御、アクセス制御の管理。
- ネットワークアクセスの管理…IPv4ネットワーク(*4,*5,*6,*7,*8) の基本的な特性、プライベートアドレスとグローバルアドレスの使い分け、セグメンテーション(*9) とDMZ (*10) 、パケットフィルタリングとファイアウォール (*5) 、通信許可/不許可の考え方、インバウンドとアウトバウンド (*11) 、機器の接続管理、無線LANの接続管理、IPv6に関する留意点、IP詐称からの保護 (*12) 、ネットワークアーキテクチャと構成管理・運用プロセスの確立、ネットワーク機器の適切なセキュリティ管理、SDNとNFV (*13,*14)。
- ソフトウェア管理と脆弱性対策…組織としてのソフトウェア導入と維持、オペレーティングシステム (OS) の脆弱性対応、オープンソースソフトの脆弱性対応、市販パッケージ・アプリケーションの脆弱性対応、独自開発アプリケーションの脆弱性対策、脆弱性の種類とその影響 (*15) 、脆弱性対策情報の収集と脆弱性管理プロセスの確立。
- マルウェア対策…近年におけるマルウェアとその対策の動向、エンドポイント (*16) 対策、ゲートウェイ対策、マルウェア感染の発見、マルウェア感染発見時の対処。
- サーバとサービスの管理…サーバセキュリティ管理の基本的な事項、システム管理者アカウントの保護、サーバ機能(サービス)とソフトウェアの最小化、ネットワークからサービスへのアクセス制御、ログの保存と確認、システムとデータのバックアップ、サーバ仮想化 (*17) の際の留意点。
- PCなどクライアントデバイスの管理…利用者アカウントの管理と認証、ソフトウェア更新の管理、マルウェアと侵入対策、ソフトウェアの管理、データの保護 (*18) 、バックアップ。
- 暗号によるデータ保護…現代暗号の基本的な考え方、共通鍵暗号方式 (*19,*20) と公開鍵暗号方式 (*19,*21)、暗号鍵管理と暗号利用ポリシーの重要性、ハッシュアルゴリズムとハッシュ値 (*22) 、電子署名、公開鍵証明書とPKI (*23) 、主要な暗号・電子署名の方式、暗号化アルゴリズムの危殆化 (*24) 。
- 一般のPCやサーバにおけるデータ暗号化…ディスクボリューム (*25) の暗号化、ファイル暗号化(自動的な暗号化)、ファイル単位の暗号化(個別操作)、システム上でのパスワードなどの保護。
- Windows PCやタブレット(Windows7以降)における暗号技術…EFS (*26) によるファイル暗号化と問題点、BitLocker (*27) によるボリューム暗号化、暗号鍵管理とTPM (*28) 。
- 暗号による移送・通信時の情報保護…可搬媒体による移送時の保護、メールによる伝送時の保護、Webアクセスの保護 (*29) 、その他サービスの保護、リモートアクセスの保護 (*30) 、VPN (*31) によるネットワーク接続、VPNによるリモートアクセス。
- 無線LANの管理 (*32)…無線LANの通信方式、無線LANのセキュリティ、その他のセキュリティ課題。
- サイバー攻撃の検知と防御…OSやサービス脆弱性への攻撃検知と防御 (*33) 、アプリケーション脆弱性への攻撃検知と防御、パスワード認証への攻撃検知と防御
- ログの取得と管理
- データの安全な破棄…不要になったデータの消去、バックアップデータの廃棄、記録媒体の廃棄、コンピュータの廃棄とリサイクル
- 設備・施設の物理的保護
(*1) パスワードやワンタイムパスワード、暗号技術、スマートカードやUSBトークン、生体認証など、さまざまな方法がある。
(*2) シングル・サインオンとは、一度認証を受ければ複数のシステムにアクセス可能になる仕組み。主に「フェデレーション方式」「エージェント方式」「リバースプロキシ方式」「代理認証方式」の4種類の方式で実現する。
(*3) フェデレーションとは、シングル・サインオンを行うために、各組織の認証システム間で信頼関係を構築し、他組織のIDや認証を自分のシステムで受け入れる仕組みのこと。Web系サービスではSAML (Security Assertion Markup Language) やOpenID Connectionなどのプロトコルがある。なお、SAMLは標準化団体OASIS(Organization for the Advancement of Structured Information Standards)によって策定されたXML (文章の見た目や構造を記述するためのマークアップ言語の一種) ベースの標準規格。
(*4) Internet Protocol version 4. IPアドレスで発信元と発信先を識別し、パケット通信方式を基本とするプロトコル群。本書では次のように説明している。
一般に、組織内のネットワークはプライベートアドレスで構築し、ファイアウォールなどのゲートウエイでNATを行うか、プロキシサーバを使用してインターネットと通信します。(......) 最近では、マルウエア侵入などの際に内部のネットワーク探索を難しくするように、プライベートIPアドレスの割り当てにおいてネットワーク部をランダムに選んだり、ホスト部のビット長を多く確保してホストアドレスをランダムに割り当てたりすることも行われるようになっています。(......) 一方で、インターネットから着信しなければいけない、Webサーバやメールサーバ、DNSサーバのようなホストに対しては、一般にグローバルアドレスを割り当てます。
(*5) ファイアウォールとは通信を許可もしくは拒否する仕組み(ネットワークAとBの通信を「原則許可」「原則禁止」などと設定したうえで例外設定をするのが一般的)。英語「Firewall」は防火壁のことであり、通過させてはいけない(たとえば攻撃可能性を孕む)通信を火に例えている。ファイアウォールはパケットフィルタ型とゲートウェイ型に大別でき、送信元と宛先情報のみで通信許可するかどうかを判断し、通信内容は判断材料にしない。ファイアウォールにIP詐称対策を組み合わせることもある。なお、ゲートウェイは所属するネットワーク内のコンピュータから外部ネットワークにアクセスする際に出入り口の役割を果たす機器であり、 一般的にはルーターがデフォルトゲートウェイの機能を果たす。
(*6) NATはNetwork Address Translationのこと。プライベートアドレスからの通信をアドレス変換して、グローバルネットワークに接続するための仕組み。RFC3022として規格化されている。
(*7) プロキシサーバとはインターネットに直接接続できないコンピューターの代わりにWebサイトへのアクセスなどを行うサーバーのこと。Proxyは英語で「代理」の意味。
(*8) マルウェアとは、不正or有害に動作させるために設計された、悪意のあるソフトウェアや悪質なコードの総称。コンピュータウイルス、トロイの木馬、スパイウェアなど。
(*9) ネットワークを目的や利用組織、重要度などで分割管理すること。それぞれは独立したIPネットワークであり、必要に応じてルーターなどで接続する。
(*10) De-Militarized Zone(軍事用語で非武装地帯)。攻撃・侵入される危険性が高い公開サーバを隔離するためのネットワーク。外部ネットワークと内部ネットワークの中間に設置され、ファイアウォールにより双方のネットワークから分離される。逆説的に、DMZに置かれるサーバは攻撃標的になりやすいため、不正侵入検知システム (IDS, Intrusion Detection System) や不正侵入防御システム (IPS, Intrusion Prevention System) などと組み合わせることもある。
(*11) ゲートウエイ手前のネットワークを基準に、これが起点となる通信をアウトバウンド、このネットワークが宛先となる通信をインバウンドと呼ぶ。ゲートウエイでの通信制限を考える場合には通信の向きが重要になる。
(*12) IP詐称はIPスプーフィング (spoofing) とも呼ばれる、いわゆる「なりすまし」による攻撃手法。対策として、IPスプーフィングが疑われるパケットをフィルタリングするなどの手段がとられる。例えばルータにおいて外部 (WAN) からLANに宛てたパケットが送信元も送信先もLAN内のIPアドレスを示すなら、IP詐称が疑われる。また、ループバックデバイス以外のデバイスにlocalhostの送信元IPアドレスを持つパケットが到達した場合、IP詐称が非常に強く疑われる。RFC3513では、localhostの送信先IPアドレスを持つIPv6パケットをルータは配送してはならないと明確に規定されている。
(*13) SDN (Software Defined Network) は、仮想環境内部に仮想サーバや仮想ネットワークを構築する技術。
(*14) NFV (Network Function Virtualization) は、ネットワーク機器の機能を仮想化する技術。
(*15) 本書で紹介された代表的なものは次の通り。
- バッファオーバーフロー…攻撃者が攻撃標的の処理能力を超える大量のデータや悪意のあるコードを送り、バッファ許容量を超えて溢れさせてしまう(オーバーフロー)脆弱性。実行中のプログラムの強制停止、管理者権限の乗っ取りなどの被害を受ける可能性があり、極めて危険。DoS攻撃との違いは、バッファオーバーフロー攻撃は悪意のあるコードの実行を主目的とすること。
- コマンドインジェクション脆弱性…データベースを利用したWebアプリケーションにおけるSQLインジェクション脆弱性が代表的。攻撃者はSQLと呼ばれるデータベース操作コマンドを含む内容をWebアプリケーションに入力し、これがエラー処理されずにデータベースサーバに受け付けられることで、不正にSQLを実行してデータベース内の重要情報の窃取、コンテンツの改ざんなどを行う。重大な情報漏洩につながる可能性がある危険な脆弱性。
- ディレクトリトラバーサル脆弱性...Webサーバーの非公開ファイルにアクセスを行う攻撃手法。攻撃者は閲覧可能な公開ファイルが存在するディレクトリから、非公開ファイルのあるディレクトリに「横断する(トラバーサル)」かのように移動して不正利用する。相対パスによる親ディレクトリと子階層のファイルの不正な読み出しが典型的。
- クロスサイト・スクリプティング (XSS) 脆弱性...標的となるWebサイトの入力フォームに特定サイトへ誘導するスクリプトを仕掛ける攻撃手法。攻撃者は入力フォーム罠となるリンクを設置し、ユーザーがリンクをクリックして攻撃者が仕掛けた悪質なサイトに誘導されると、ユーザーのブラウザ上で不正なスクリプトが実行され、情報漏洩やマルウェア感染、なりすましなどの被害が発生する。
- クロスサイト・リクエスト・フォージェリ (CSRF) 脆弱性...XSSと似ているが、入力フォームではなくセッション管理における脆弱性を狙う攻撃。攻撃者はセッション管理に脆弱性があるWebサイトにログインした状態のユーザーを罠を仕掛けたWebサイトに誘導して、攻撃用のリクエストURLをクリックさせる。これによりセッションIDを不正利用し、情報改ざんや強制書き込み、不正操作などを行う。
(*16) エンドポイント対策とは、PCやサーバなどの感染対象の上でウイルス対策ソフトなどの対策を講じること。
(*17) (*14)(*15) も参照。こうした仮想化技術は機器保有や運用に関するコストを大幅に削減できるというメリットがあるが、不正操作により受ける被害も大きくなるため、管理者権限はより慎重な割当てと管理を要する。
(*18) 私の知人は居酒屋に業務用PCをバッグごと置き忘れて始末書を書かされたことがある。
(*19) 暗号化と復号に「共通」の暗号鍵を使用することから「共通鍵暗号」と呼ばれる。通信文そのものの暗号化に使用されるため、暗号化と復号でコンピュータに負荷をかけすぎないよう、公開鍵に比べれば単純な演算になっていることが多い。共通鍵暗号の代表的なアルゴリズムであるAES (Advanced Encryption Standard) はアメリカ国立標準技術研究所の主導により標準化され、政府標準として認められているもので、AES-128 / AES-192 / AES-256の3種類がある。なお、AESは厳密には通信プロトコルの一部として使用される暗号化アルゴリズムであり、通信プロトコルそのものではない。通信プロトコルとしてはSSL/TLSやWPA2などにAESが利用されている。
(*20) 鍵とは暗号アルゴリズムの手順を制御するためのデータのこと。同じ暗号方式でも、利用者毎に暗号化の手順を異なるものにするために使用される。同じ暗号鍵を使い続ければ、暗号文を多数入手してよく使われる平文と比較するなどの手法で解読されてしまう危険性が高まるからである(後に出てくる暗号化アルゴリズムRC4はまさに暗号鍵を更新する仕組みがなかったために破られた)。擬似乱数で用いられるシード(Seedは種を意味しており、いわば「鍵のもと」)も鍵の一種。
(*21) 暗号化のためにやりとりする相手にわたす暗号鍵を「公開鍵」、復号のために手元におく暗号鍵を「秘密鍵」と呼ぶ。共通鍵や認証データなど重要情報のやりとりに使用されるため、複雑な演算になっており、コンピュータにかける負荷は共通鍵よりも大きくなる。公開鍵暗号の代表的なアルゴリズムとしては業界標準のRSAがあり、SSL/TLSやIPsecなどの通信プロトコルに利用されている。
(*22) ハッシュ関数を使用することで、どのような長いメッセージからでもあらかじめ決められた長さのハッシュ値を算出できる。ハッシュ長ごとに規格化されている。ハッシュ値から復号することはできず、元のメッセージが1文字異なるだけでもハッシュ値が大きく変わるという特徴がある。強度をあげるためにハッシュ長を上げるという手法がとられるため、ハッシュ長が上がればその分処理負荷が大きくなる。32ビット演算系CPUにはSHA-224とSHA-256、64ビット演算系CPUにはSHA-384とSHA-512の使用が想定されている。なおSHAはSecure Hash Algorithmの略で、アメリカ国立標準技術研究所 (NIST) によって標準のハッシュ関数Secure Hash Standardに指定された一群のハッシュ関数。数字はハッシュ値のビット数。認証のためにある特定文書のハッシュ値を暗号化したものが電子署名である。
(*23) PKI (Public Key Infrastructure) は、公開鍵の信頼性を公的な枠組みで保証する仕組み。
(*24) そもそも暗号アルゴリズムの強度とは、鍵を知らない状態から総当たりなどの方法で解読するまでの計算回数の多さが指標である。現在最高峰の性能をもつスーパーコンピュータであっても解読に数十万年などの非常に長い時間を要するため、たとえ暗号解読完了してもすでにその機密情報の利用価値が失われているような場合、暗号化アルゴリズムは安全であると考える。これに対して、短時間で効率よく暗号解読できる数学的手法(脆弱性)が発見される、あるいは計算能力向上で総当たり解読に要する時間が許容可能な程度まで短縮される(たとえば現在の計算速度では、文字数や文字種類が少ないパスワードは組合せ数が少ないため総当たりでもほぼ一瞬で解読される)とき、その暗号アルゴリズムは危殆化したという。
(*25) ハードディスクそのものを暗号化すること。デバイスが盗難被害にあったとき、攻撃者がハードディスク内のデータやシステムにオフラインアクセスすることを防ぐ。起動した(=デバイスの認証をクリアした)OSに対しては保護を与えない。
(*26) EFSはWindows200以降でサポートされるファイル暗号化機能。
(*27) BitLockerはWindows7以降で追加されたボリューム暗号化機能。
(*28) TPM (Trusted Platform Module) は業界団体TCH (Trusted Computing Group) が定めた仕様に基づいて、ハードウエア固有のセキュリティ機能をサポートするために開発されたICチップで、コンピュータのCPUと連携して動作する。
(*29) TLSによるセキュリティが一般的。TLSはIETF(The Internet Engineering Task Force /インターネット技術特別調査委員会。米政府の後援を受けたインターネット、とくにインターネット・プロトコル・スイート (TCP/IP) の技術面に関するNPOで標準化団体)によって策定された。2022年現在の最新版はTLS1.3。なお、IETFはTLSの脆弱性についても報告書を発行しており、TLS1.1以前のバージョンは使用しないよう呼びかけている。SSL/TLSでは複数の暗号化アルゴリズムを選ぶことができるが、IETFは推奨する暗号化アルゴリズムを公表している。なお、最新のプロトコルであるHTTP/3ではTCP脱却の動きがみられるが、TLS1.3は引き続き推奨されている。HTTP/3が正式に勧告、脱TCP時代の幕開けか | 日経クロステック(xTECH)
(*30) リモートアクセスは一般に攻撃対象になりがちである。たとえばTCPでは22番ポートが遠隔操作用(ネットワークを通じて別の機器を遠隔操作するSecure Shell = SSHプロトコル用)として予約されているが、よく「ポートスキャン」という手法の攻撃標的になる。この手法では、攻撃者はネットワークに接続されている通信可能なポートにひとつひとつ順番に特定のデータを送信して、その応答状況を調べる。いうなれば「空き巣犯が家に人がいないかインターホンを鳴らして確認するといったイメージ」。JPCERTコーディネーションセンター(Japan Computer Emergency Response Team Coordination Center、JPCERT/CC) はネットワーク上のアクセス状況を監視しており、22/TCPへのアクセス増加時などに注意喚起を行なっている。
(*31) VPN (Virtual Private Network) は、通信事業者の提供する公衆回線上に、企業拠点間をつなぐ仮想専用回線を構築する技術及びサービスの呼称。専用回線であるから当然第三者が情報を読み取れないものでなければならず、暗号化技術使用が大前提。VPNはSSLを使用するものとIPsecを使用するものに大別されるが、IPsec方式ではクライアントにVPN Clientのソフトをインストールする必要があるのに対して、SSLの場合はWebブラウザさえあれば通信可能。
(*32) 『無線LAN技術 最強の指南書』の読書感想参照。通信技術を規格という側面から考えてみる〜日経NETWORK『無線LAN技術 最強の指南書』 - コーヒータイム -Learning Optimism-
(*33) IDS(Intrusion Detection System、侵入検知システム)やIPS(Intrusion Prevention System、侵入防御システム)を利用するのが一般的。