2021.10.06

その他

セキュリティ基本知識まとめ

最近、情報系についての基本的な部分を勉強しているから
ブログで簡単にまとめていこう

というお話。

今回はセキュリティ編です。

※この記事の内容はこちらの本を参考にして書いています。本の方がイラストなど色々あって分かりやすいです。



キタミ式イラストIT塾 基本情報技術者 令和03年 単行本(ソフトカバー)

セキュリティに潜む脅威

外部とつながれたネットワークには様々な脅威が存在しています。

悪意を持った人間が自社のネットワークに侵入できてしまうと、情報の漏洩や、重要なデータやファイルを破壊される恐れが出てきます。
また、侵入を許さなかったとしても、大量のメールを送りつけたり、企業Webサイトを繰り返しリロードして負荷を増大させたりすることで、サーバの処理能力をパンクさせる妨害行為なども起こりえます。

悪意を持った侵入者は常にシステムの脆弱性という穴を探しています。これに対して企業の持つ情報という名の資産をいかに守るか、それが情報セキュリティです。

セキュリティマネジメントの3要素

情報セキュリティは「とにかく穴を見つけて片っ端からふさげばいい」というものではありません。
例えばとにかく堅牢にしようとして、パスワードを3重にし、かつ指紋認証、声紋認証、虹彩認証をパスした人だけがネットワークにアクセスできる。なんてものにしてしまうと、使う側からしたら面倒くさくてたまりません。
堅牢なシステムにすればするほど、使いづらいという問題が出てきてしまうのです。
安全性と利便性とをどこでバランスさせるか、これがセキュリティマネジメントの基本的な考え方になります。

そんなわけで情報セキュリティは次の3つの要素を管理してうまくバランスさせることが大切だとされています。

  • 機密性許可された人だけが情報にアクセスできるようにするなどして、情報が漏洩しないようにすることを指す
  • 安全性情報が書き換えられたりすることなく、完全な状態を保っていることを指す
  • 可用性利用者が、必要な時に必要な情報資産を使用できるようにすることを指す

セキュリティポリシ

企業としてどのようにセキュリティに取り組むかを明文化して、社内に周知・徹底したものをセキュリティポリシと呼びます。

セキュリティポリシは基本方針と対策基準、実施手順の3階層で構成されています。

  • 基本方針情報セキュリティに対して、企業としての基本方針を定める
  • 対策基準上の方針を実現化するために行うべき対策や基準を定める
  • 実施手順業務の中でどのように実施していくのか具体的な手順を定める

個人情報保護法とプライバシーマーク

企業からの情報漏洩として最近よく取り沙汰されるのが「個人情報」に関するものです。

個人情報保護法というのは、こうした個人情報を事業者が適切に取り扱うためのルールを定めたものです。

個人情報に関する認定制度として、プライバシーマーク制度があります。
これは「JIS Q 15001(個人情報保護マネジメントシステム-要求事項)」に適合して、個人情報の適切な保護体制が整備できている事業者を認定するものです。

ユーザ認証とアクセス管理

コンピュータシステムの利用にあたっては、ユーザ認証を行うことでセキュリティを保ちます。
ユーザ認証は不正なアクセスを防ぎ、適切な権限の元でシステムを運用するためには欠かせない手順です。

もうおなじみでしょうが、ユーザ認証をパスしてシステムを利用可能状態にすることをログイン(ログオン)、システムの利用を終了してログイン状態を打ち切ることをログアウト(ログオフ)と呼びます。

ユーザ認証の手法

ユーザ認証には次のような方法があります。

ユーザIDとパスワードによる認証

ユーザIDとパスワードの組み合わせを使って個人を識別する認証方法です。基本的にユーザIDは隠された情報ではないので、パスワードが漏洩したり、簡単に推測できたりしないように、その扱いには注意が必要です。

バイオメトリクス認証

指紋や声紋、虹彩などの身体的特徴を使って個人を識別する認証方法です。生体認証ともよばれます。

ワンタイムパスワード

一度限り有効という使い捨てのパスワードを用いる方法です。トークンと呼ばれるワンタイムパスワード生成器を使う形が一般的です。

コールバック

遠隔地からサーバへ接続する場合などに、いったんアクセスした後で回線を切り、逆にサーバ側からコールバックさせることでアクセス権を確認する認証方法です。

アクセス権の設定

社内で共有している書類を「許可された人だけが閲覧できるようにする」というように設定できるのがアクセス権です。
アクセス権には「読み取り」「修正」「追加」「削除」などがあり、これらをファイルやディレクトリに対してユーザごとに指定していくわけです。

ソーシャルエンジニアリング

ユーザ認証を行ったり、アクセス権を設定したりしても、情報を扱っているのは結局のところ「人」なので、そこから情報が漏れる可能性は否定できません。
そのような、コンピュータシステムとは関係のないところで、人の心理不注意をついて情報資産を盗み出す行為をソーシャルエンジニアリングといいます。
例として、肩越しにパスワードを盗み見る(ショルダーハッキング)、ゴミ箱を漁って有効な情報を盗み出す、身分を詐称してパスワードや機密情報を聞き出す、付箋などに書いていたパスワードを覚えられる、等があります。

様々な不正アクセスの手法

不正アクセスには他にも様々な手法があります。代表的なものをいくつか見ておきましょう。

パスワードリスト攻撃

どこかから入手したID・パスワードのリストを用いて他のサイトへのログインを試みる手法です。

ブルートフォース攻撃

特定のIDに対し、パスワードとして使える文字の組み合わせを片っ端からすべて試す手法です。総当たり攻撃とも言います。

リバースブルートフォース攻撃

ブルートフォース攻撃の逆で、パスワードは固定にしておいて、IDとして使える文字の組み合わせを片っ端から全て試す手法です。
何度もパスワードをまちがえているとブルートフォース攻撃の対策としてそのIDがロックされることがあります。そこで、パスワードの方を固定にしておいてIDの方を総当たりで見つけ出すのです。

レインボー攻撃

ハッシュ値から元のパスワード文字列を解析する手法です。パスワードになりうる文字列とハッシュ値との組をテーブル化しておき、入手したハッシュ値から文字列を推測します。

SQLインジェクション

ユーザの入力値をデータベースに問い合わせて処理を行うWebサイトに対して、その入力内容に悪意のある問い合わせや操作を行うSQL文を埋め込み、データベースのデータを不正に取得したたり、改ざんしたりする手法です。

DNSキャッシュポイズニング

DNSのキャッシュ機能を悪用して、一時的に偽のドメイン情報を覚えさせることで、偽造Webサイトへと誘導する手法です。

rootkit(ルートキット)

不正アクセスに成功したコンピュータに潜伏し、攻撃者がそのままコンピュータをリモート制御できるようにするソフトウェアの集合体をrootkit(ルートキット)と言います。

rootkitには、侵入の痕跡を隠蔽するためのログ改ざんツールや、リモートからの侵入を容易にするバックドアツール、侵入に気づかれないように改ざんを行ったシステムツール群などが含まれています。

rootkitはそれ自体がコンピュータに直接的な被害を与えるものではありません。自身を隠蔽し、いつでも攻撃者によるリモートアクセスを可能とすることでさらなるサイバー攻撃を可能とする下地を整えるためのツール群なのです。

コンピュータウイルスの脅威

第3者のデータなどに対して、意図的に被害を及ぼすよう作られたプログラムがコンピュータウイルスです。
経済産業省の「コンピュータウイルス対策基準」によると、次の3つの基準のうち、どれかひとつを有すればコンピュータウイルスであるとしています。

  • 自己伝染機能自分のコピーを他のコンピュータにも生成して感染を広げる
  • 潜伏機能対策を遅らせる狙いなどで、感染後もしばらくはおとなしくしている
  • 発病機能プログラムやデータを破壊したり、予期しない動作を行う

コンピュータウイルスの種類

コンピュータウイルスとひと口に言ってもその種類は様々です。
ざっくり分類すると、次のような種類があります。

  • 狭義のウイルス他のプログラムに寄生して、その機能を利用する形で発病するもの
  • マクロウイルスアプリケーションソフトの持つマクロ機能を悪用したもので、ワープロソフトや表計算ソフトのデータファイルに寄生して感染を広げる
  • ワーム自身単独で複製を生成しながら、ネットワークなどを介してコンピュータ間に感染を広めるもの。作成が容易なため種類が急増している
  • トロイの木馬有効なプログラムであるように見せかけてユーザに実行を促し、その裏で不正な処理(データのコピーやコンピュータの悪用など)を行う

また、コンピュータウイルスとは少し異なりますが、マルウェア(コンピュータウイルスを含む悪意のあるソフトウェア全般を指す言葉)の一種として次のようなプログラムにも同様に注意が必要です。

  • スパイウェア情報収集を目的としたプログラムで、コンピュータ利用者の個人情報を収集して外部に送信します。他の有用なプログラムにまぎれて気づかないうちにインストールされるケースが多く見られる
  • ボット感染した第3者のコンピュータをボット作成者の指示通りに動かすもの。迷惑メールの送信、他のコンピュータを攻撃するなどの踏み台に利用される恐れがあります。

ウイルス対策ソフトと定義ファイル

このようなコンピュータウイルスに対して効力を発揮するのがウイルス対策ソフトです。
このソフトウェアはコンピュータに入ってきたデータを最初にスキャンしてそのデータに問題がないか確認します。

このような予防処置以外にもコンピュータの中を検査してウイルス感染チェックを行ったり、すでに感染してしまったファイルを修復したりするのもウイルス対策ソフトの役目です。

ウイルス対策ソフトが多種多様なウイルスを検出するためには既知ウイルスの特徴を記録したウイルス定義ファイル(シグネチャファイル)が欠かせません。ウイルスは常に新種が発見されていますので、このウイルス定義ファイルも常に最新の状態を保つことが大切です。

ビヘイビア法(動的ヒューリスティック法)

ウイルス定義ファイルを用いた検出方法では既知のウイルスしか検出することができません。
そこで実行中のプログラムの挙動を監視して不審な処理が行われていないか検査する手法がビヘイビア法です。動的ヒューリスティック法ともいいます。

検査と同時に感染してしまわないように、「監視下で直接実行させてみて危険な動作が検出されたら即座にプログラムを停止させる」「仮想環境で実行させてみて危険な行動をとるか監視する」などの方法を用いて検査を行います。

ウイルス感染時の対処

ウイルスに感染してしまった場合はあわてず次の対処を心がけます。

①感染の拡大を防ぐためにネットワークから切り離す
②ウイルス対策ソフトを使い問題のあったコンピュータのウイルスチェックを行う
③ウイルスが発見されたらその旨をシステム管理者に伝えて指示をあおぐ

ネットワークのセキュリティ対策

LANの平和は外のネットワークとの間に壁を設けることで守ります。

ファイアウォール

LANの中と外とを区切る壁として登場するのがファイアウォールです。

ファイアウォールとは「防火壁」の意味で、外からの不正なアクセスを火事とみなして、それを食い止めるのが仕事です。
ファイアウォールは機能的な役割のことなので、特に定まった形はありません。
主な実現方法としては、パケットフィルタリングアプリケーションゲートウェイなどが挙げられます。

パケットフィルタリング

パケットフィルタリングはパケットを無条件に通過させるのではなくあらかじめ指定されたルールにのっとって通過させるか否かを制御する機能です。
この機能ではパケットのヘッダ情報(送信元IPアドレスや宛先IPアドレス、プロトコル種別、ポート番号など)を見て通過の可否を判定します。
通常、アプリケーションが提供するサービスはプロトコルとポート番号で区別されますのでこの指定はすなわち「どのサービスは通過させるか」と決めたことになります。

アプリケーションゲートウェイ

アプリケーションゲートウェイはLANの中と外の間に位置して外部とのやりとりを代行して行う機能です。
プロキシサーバ(代理サーバ)とも呼ばれます。

プロキシサーバはリクエストを受け取ると代わりに相手のサーバとやり取りを行って取得結果を渡します。

外のコンピュータからはプロキシサーバしか見えないので、LAN内のコンピュータが不正アクセスの標的になることを防ぐことができます。

アプリケーションゲートウェイ型のファイアウォールには、WAF(Web Application Firewall)があります。これはWebアプリケーションに対する外部からのアクセスを監視するもので、パケットフィルタリング型のファイルウォールがパケットのヘッダ情報を参照して通過の可否を判定するのに対し、WAFでは通信データの中身までチェックすることで悪意を持った攻撃を検知します。

ペネトレーションテスト

既知の手法を用いて実際に攻撃を行い、これによってシステムのセキュリティホールや設定ミスといった脆弱性の有無を確認するテストがペネトレーションテストです。
このテストの目的は「ファイアウォールや公開サーバに対して侵入できないことを確認する」ことだと言えます。もし侵入されたら、どこまで突破されるか、何をされてしまうのか、そういった視点での検証に本テストの特徴があります。

暗号化技術とデジタル署名

インターネットは荷物が丸裸で運ばれているようなものです。
そこで暗号化やデジタル署名で荷物に鍵をかけるのです。

盗聴・改ざん・なりすましの危険

ネットワークの通信経路上にひそむ危険といえば代表的なのが次の3つです。

盗聴

データのやり取り自体は正常に行えますが、途中で内容を第3者に盗み読まれるという危険性です。

改ざん

データのやり取りは正常に行えているように見えながら、実際は途中で第3者に内容を書き換えられてしあっているという危険性です。

なりすまし

第3者が別人になりすまし、データを送受信できてしまうという危険性です。

暗号化と復号

そもそも通信途中で第3者にデータをのぞかれたりすることがないようにネットワークの仕組みを変えられれば良いですが、既に世界規模で広がっているネットワークを一度に置き換えるのは現実的ではありません。そこで、のぞき見されるのは防ぎようがないから、のぞかれても大丈夫な内容に変えてしまおうという発想がでてきました。

このように「データの中身を第3者にはわからない形へと変換してしまう」ことを暗号化といいます。
一方、暗号化したデータは元の形に戻さないと解読できません。この「元の形に戻す」ことを復号といいます。

盗聴を防ぐ暗号化(共通鍵暗号方式)

暗号化や復号を行うために使うデータをと呼びます。

暗号化されていない元データを「平文」、暗号化済みのデータを「暗号文」と呼び、平文⇔暗号文の変換を行うために「鍵」が必要になるということです。

送り手(暗号化する側)と受け手 (復号する側)が同じ鍵を用いる暗号化方式を、共通鍵暗号方式と呼びます。この鍵は第3者に知られると意味がなくなりますから、秘密にしておく必要があります。そのことから秘密鍵暗号方式とも呼ばれます。

盗聴を防ぐ暗号化(公開鍵暗号方式)

共通鍵暗号方式は「お互いに鍵を共有する」というのが前提である以上、通信相手の数分だけ秘密鍵を管理しなければいけません。
例えば4人の人同士で全員がお互いに通信しようとすると全部で6個の鍵が必要になります。(4C2 = 6)
複数の相手に使いまわしがきけば管理は楽ですがそういうわけにもいきません。
しかも事前に鍵を渡しておく必要があるので、インターネットのような不特定多数の相手を対象に通信する分野ではかなり利用に無理があると言えます。

そこで出てくるのが公開鍵暗号方式です。大きな特徴は「一般に広くばらまいてしまう」ための公開鍵という公開用の鍵があること。
この方式は、暗号化に使う鍵と、復号に使う鍵が別物です。

公開鍵暗号方式では、受信者の側が秘密鍵と公開鍵のペアを用意します。
そして公開鍵の方を配布して「自分に送ってくるときは、この鍵を使って暗号化してください」とするのです。

公開鍵で暗号化されたデータは、それとペアになる秘密鍵でしか復号することができません。公開鍵をいくらばらまいてもその鍵では暗号化しかできないので途中でデータを盗聴される恐れにはつながらないのです。

また、自分用の鍵のペアを1セット持っていれば複数人とやり取りできますから「管理する鍵の数が増えて大変」なんてこともありません。

ただし、共通鍵暗号方式に比べて、公開鍵暗号方式は暗号化や復号に大変処理時間を要します。そのため、利用形態に応じて双方を使い分けるのが一般的です。

改ざんを防ぐデジタル署名

公開鍵暗号方式の技術を応用することで「途中で改ざんされていないか」と「誰が送信したものか」を確認できるようにしたのがデジタル署名です。

公開鍵暗号方式では、公開鍵で暗号化したものはペアとなる秘密鍵でしか復号できません。実は逆も真なりで、秘密鍵で暗号化したものはペアとなる公開鍵を使わないと復号できないのです。
これでなにが確認できるかというと、

例えばAさんが自分の秘密鍵でデータを暗号化して送ったとして、受け取ったBさんがAさんの公開鍵でデータを復号できた場合、このデータは間違いなくAさんが送ったものだと確認できるということです。

実際にはデータの本文全体を暗号化するのではなく、ハッシュ化という手法で短い要約データ(メッセージダイジェスト)を作成し、それを暗号化することでデジタル署名とします。

元データが同じであればハッシュ関数は必ず同じメッセージダイジェストを生成します。
したがってデジタル署名の復号結果であるメッセージダイジェストと、受信した本文から新たに取得したメッセージダイジェストとを比較して同一であれば、そのメッセージは「改ざんされていない」ということが確認できるのです。

なりすましを防ぐ認証局(CA)

これまで、「鍵が照明してくれる」「鍵によって確認できる」ということを述べていますが、そもそも「ペアの鍵を作った人物が偽物だった」場合はどうでしょうか。
疑いだしたらキリがない気がしますが、それができてしまう限りは「他人になりすまして通信を行う」なりすまし行為が回避できるとは言い切れません。
というわけで信用できる第3者が「この公開鍵は確かに本人のものですよ」と照明する機構が考えられました。それが認証局(CA:Certificate Authority)です。

公開鍵を認証局に登録することでデジタル証明書を発行してもらい、認証局に登録した鍵によって身分を保証します。

このような認証機関と公開鍵暗号技術を用いて通信の安全性を保障する仕組みのことを公開鍵基盤(PKI:Public Key Infrastructure)と呼びます。

終わり

以上でセキュリティについてのまとめを終わります。
暗号化技術なんかはなかなか面白いですよね。

ご覧いただき
ありがとうございました

この記事を書いた人

葉っぱ一号

葉っぱ一号

フロントエンドエンジニア

おいしいお店を探すのが好きです。おいしいお店のために遠出もしちゃいます。遠出したい衝動のためにおいしいお店を探すのかもしれません。そんなものですよね。