Web Analytics Made Easy - StatCounter

工業大学生ももやまのうさぎ塾

うさぎでもわかるをモットーに大学レベルの数学・情報科目をわかりやすく解説! 数式が読み込まれない場合は1回再読み込みしてみてください。

基本情報対策 うさぎでもわかるセキュリティ 前編

こんにちは、ももやまです。

今年(2020年)の春に基本情報を受けることになったので、今回は基本情報でも出てくる「セキュリティ」分野について2回にわけてまとめたものを記事にしました。

具体的には、

  • 情報セキュリティ3大要素・7大要素
  • リスクアセスメント
  • 情報セキュリティポリシー
  • ユーザー認証と不正アクセス
  • コンピュータウイルス・マルウェアについて

についてまとめています。

また、記事の最後に復習として、記事に該当する部分の基本情報の過去問を10問用意しています。復習にぜひチャレンジしてみてください。

 

 

なお、2020年春の試験から、午後問題の「セキュリティ」の配点が12点から20点に上昇したため、基本情報におけるセキュリティ分野の重要性がさらにUPしており、より合否を分ける分野となりました。

なので、確実に頭にいれていきましょう!

 

1.情報セキュリティの3大要素・7大要素

皆さんは、住んでいる家や倉庫などに鍵をかけたり、セ〇ムやアル〇ックのような警備会社を頼ることで中にある人や財産を守っていますよね。

もし、家に鍵をかけていなかったらどうなるでしょうか…?

 

最悪、家の中のものが盗まれたり、最悪の場合、強盗の被害にあってしまうかもしれません……。

なので、鍵をかけたりするセキュリティ対策が重要になりますね。

 

情報世界においても、鍵をかけたりすることで「情報という名の資産(例:銀行口座のパスワード)」などを守る必要、つまり情報セキュリティ(対策)をする必要があります。

 

特にインターネットは世界中あらゆるところにつながっているため、情報セキュリティを考えないと、あっという間にデータがもれてしれてしまいます。

 

しかし、ただ単にセキュリティを厳しくすればいいわけではありません

家の鍵をあけるときに、鍵が5本いるとか言われたらめんどくさいし、不便ですよね。

 

情報セキュリティでも同じことが言えますね。極端な例ですがネットワークにつながなければ安全は守られます。しかし、ネットワークにつなげないため、ネットワークにつなぐことで得られるメリットも得られませんね。

 

そのため、情報セキュリティ(当然普通のセキュリティも)では安全と利便のバランスを考える必要があります(情報マネジメントと呼ばれます)。

(i) 3大要素 (CIA)

安全と利便のバランスが保たれている状態と言われても、どんな状態なのかいまいちわかりません。

そこで、国際規格(ISO27000シリーズ)として、つぎの3要素を満たしている状態が、バランスが保たれている状態と決められました。これをセキュリティマネジメントの3要素と呼ばれます。英語の頭文字をそれぞれ取ってCIAとも呼ばれます。

機密性 (Confidentiality)

許可された人だけが情報にアクセスできるようにし、許可がない第3者には情報が漏れないようにすること

機密性が守れないと、情報が漏れてしまいます。

 

機密性を向上させる技術の例:暗号化・パスワード

(パスワードや暗号を使うと、見せたくない人には情報を見せないことができます。)

完全性 (Integrity)

情報が書き換えられたりすることがなく、正確さ・完全さを保つこと

完全性が守れないと、情報の信頼性がなくなっちゃいます。

 

完全性を向上させる技術の例:デジタル署名

(そこら辺のおっさんがつぶやいているような情報よりも、「政府公認で」発信された情報のほうが何百倍も信頼できますよね。)

可用性 (Availability)

利用者が必要なときはいつでも情報資産を利用できるようにすること

可用性が守れないと、情報資産が利用できないのでシステムが停止してしまうことがあります。

 

完全性を向上させる技術の例:システムの二重化

(二重化とは、システムの予備を用意しておくことを指します。予備があれば、もしシステムが壊れてしまっても、予備を使うことができるのでシステムを停止させずに済みます。)

(ii) 3大要素に4要素加えた7大要素

IT技術はどんどん進化していきます。

そこで、3大要素からさらに4要素加え、7大要素としました。

 

加えた4要素を説明していきたいと思います。

真正性 (Authenticity)

なりすましや偽造ではなく、本物であることが証明できること。

信頼性 (Reliability)

思った通りの(矛盾がなく / 一貫して)結果が得られること。

責任追跡性 (Accountability)

ログを取るなどで、誰が関与したかを追跡できるようにすること。

否認防止 (Non-Repudiation)

ある事象が起きたことを証明することで、事象が起こったことを否定されないようにすること。

 

2.リスクアセスメント

情報セキュリティを高めるというのは、情報流出などの情報資産に対する損害などのリスクをできる限り小さくすることと言えます。

 

しかし、あらゆるリスクに対応するためには莫大な時間と費用がかかるため難しいです。

 

そこで、リスクの発生確率、そしてリスクが発生したときのダメージの2つからリスクレベルを予測し、よりリスクレベルの高いものはすぐに対処、リスクが小さいものはあとまわしにしていきます。

 

リスク対策には、リスク軽減、リスク回避、リスク共有、リスク保有の4つがあります。

(1) リスク軽減(リスク低減)

リスクが発生する確率・リスクが発生したときのダメージをなるべく低くする。

(例:情報の暗号化・入退室の管理・社員に対するセキュリティ教育など)

(2) リスク回避

リスクが発生する原因自体を除去する。

(例:Webでの公開を中止する)

(3) リスク共有(リスク移転・転嫁)

保険などに加入することで、リスクを第3者と共有します。

(4) リスク保有

リスクが小さいもの(リスクが発生する確率が低く、ダメージも小さいもの)を許容範囲内として受容します。

(リスクが小さいものは仕様として特に対処しないとも言えます。)

 

3.組織と情報セキュリティ

(1) 情報セキュリティポリシー(情報セキュリティ方針)

たまに口だけの人っていますよね。例えば、「痩せる痩せる」とか言いながら全然痩せず食べまくる人や、「次は単位取る」とか言いながら全然授業来ない人がまさに口だけの人です。

 

セキュリティにおいても同じように「うちの組織(企業)はこうやってセキュリティ対策をします」と口だけで言っても何も変わりません。

 

そこで、どうやって情報セキュリティ対策するかを具体的に決め、組織内で実施する必要があります。これが情報セキュリティポリシーです。

 

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

 

f:id:momoyama1192:20200308170515g:plain

(i) 基本方針

情報セキュリティに関して、組織としての基本的な方針を定めたものです。

(ii) 対策基準

(i)の基本方針を実現するために、対策や基準を定めたものです。

(iii) 実施手順

(ii)の対策基準を具体的にどのような手順で実施していくかを定めたものです。

 

(2) CSIRT (Computer Security Incident Response Team)

CSIRTは、企業や官公庁のような組織に設けられるセキュリティ対策チームのことで、セキュリティ事故を未然に防いだり、起こってしまった場合はなるべく被害を減らすための対応を行います。

(3) ISMS適合性評価制度

「うちは情報セキュリティ対策してますよ~」と自分自身で言っていても、他の人からしてみたら「ほんまにやってんのか?」って思いますよね。

そこで、第3者に情報セキュリティに対してちゃんと取り組んでいるかどうかを評価、認定するISMS適合性評価制度*1があります。

認定を受けた組織では、PDCAサイクルを回すことで情報セキュリティの見直し、改善を行う必要があります。

ISMSにおけるPDCAの例

P:セキュリティ方針を定める。
D:運用情報を確認する。
C:確認した結果をレビューする。
A:実際に改善策を実施する。

(4) BYODとMDM

(i) BYOD (Bring Your Own Device)

最近、私の通っていた大学でも「自分が個人的に持っているPC(スマホ)を授業に使っていく*2」制度がが開始されました。

このように、個人が持っているPCを組織で利用することをBYODといいます。

 

BYODでは、自分が持っている使い慣れたPCを使えることや、組織に支給する情報機器の調達コストを減らせるメリットがあるのですが、管理が不十分な端末を組織内で使うことになるのでウィルス感染や情報の漏洩のセキュリティリスクが大きくなってしまいます。

(ii) MDM (Mobile Device Management)

MDMは、スマホやタブレットなどのモバイルデバイスを、組織が設定したセキュリティポリシーに基づいて一括で管理する仕組みのことです。

 

4.ユーザー認証と不正アクセス

(1) ユーザー認証の方法

PCなどのシステムが、本人以外の第3者に使われると大変なことになります。

そこで、「お前は本当に本人か?」と確かめる必要があります。これがユーザー認証となります。

 

ユーザー認証には、様々な方法があるので代表的なものをいくつか紹介したいと思います。

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

ユーザーIDは、利用している人を識別するために用いられます。学生番号、社員番号、メールアドレスなどが用いられることが多いです。

しかし、ユーザーIDは基本的に知ろうと思えばわかる情報なので、ユーザーIDだけだと本人かどうかを確認することができません。

 

そこで、利用者本人だけがわかる合言葉に相当するもの、パスワードを使います。

ユーザーIDとパスワードがともに一致することで、利用者本人であることを確認することができます。

 

しかし、パスワードが利用者本人以外にばれてしまうと、第3者が本人になりすましできてしまうため、パスワードの取り扱いには気を付ける必要があります。具体的には、

  • 推測しやすい内容をパスワードに使わない
    (例:自分の誕生日や記念日・passwordのような簡単な英単語)
  • パスワードを使いまわさない
    (後で説明するパスワードリスト攻撃の被害にあう危険性あり)
  • 人目につく場所にはパスワードを書かない

などに注意しましょう。

バイオメトリクス認証(生体認証)

自分の指紋など、利用者本人以外はまず間違いなく一致しないような身体的特徴を使って個人を識別する方式です。

最近はiPhoneなどのスマホとかにも指紋認証(バイオメトリクス認証)がついています。

 

バイトメトリクス認証(生体認証)は、指紋認証・静脈認証・虹彩認証*3のような身体的特徴を用いたもののほかに、署名速度・筆圧などの行動的特徴を用いたものもあります。

 

バイオメトリクス認証では、パスワードなどを覚える必要はなくて便利なのですが、精度によっては利用者本人であるにも関わらず認証が拒否されたり、逆に第3者であるにも関わらず認証が通ってしまう可能性もあります。

 

しかし、「利用者本人が認証が拒否される確率(本人拒否率)」を上げると「第3者が認証を通ってしまう確率(他人受入率)」は下がり、逆に本人拒否率を下げると他人受入率は下がるので、本人拒否率と他人受入率はトレードオフの関係にあるといえます。

そのため、バイオメトリクス認証(生体認証)を導入する際には、本人拒否率と他人受入率のバランスを考える必要があるのです*4

ワンタイムパスワード

1度限り有効な使い捨てのパスワードを用いる認証方式です。

使い捨てのパスワードなので、他人にパスワードがばれても悪用されないというメリットがあります。

 

少し昔では、ワンタイムパスワードを利用する際にトークンと呼ばれる機械を用いていましたが、最近では、ワンタイムパスワードがその都度SMS(電話番号を使ってメッセージを送れるサービス)に送られて利用するスタイルが多いです。

 

2段階認証とかで送られてくるコードを利用して認証するスタイルがまさにワンタイムパスワードを使っています。

コールバック

アクセス権を確認するために、利用者が呼び出した回線を一旦切り、システム側から「あらかじめ登録された電話番号」を用いて利用者を呼び出し、本人かどうかを確認する方式です。

(「あらかじめ登録された電話番号」で利用者が出れば本人だなってわかりますよね。)

(2) アクセス権の設定

共有ファイルの中には、一部の人以外には見られたくないファイルがあるかもしれません。

例えば、「期末試験問題.docx」のような重要なファイルが教員だけでなく、学生が勝手に見たり修正されたりしたらまずいですよね。

 

そこで、ファイルごとに見たり編集できる人の設定、つまりアクセス権の設定が重要となります。

権限の設定では、「読み込み」・「書き込み」・「実行」などの権限をファイル・ディレクトリごとにユーザー(もしくはグループ)ごとに設定します。

 

例えば「入試問題.docx」のアクセス権を、教員(グループ)は「読み込み」・「書き込み」の権限を与え、それ以外の人(学生など)は一切の権限を与えない、のように設定することができます。

 

Unix系のOSでは「ls -l」を実行することでアクセス権限がどうなっているのかを確認できます。

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

不正アクセスの方法には様々なものがあります。

有名なものから順番に紹介していきましょう。

パスワードリスト攻撃

何らかの手法で入手したIDとパスワードのリストを用いて、他のサイトへ不正ログインを行う攻撃です。

同じID・パスワードを使いまわしてしまうと、パスワードリスト攻撃により不正にログインされてしまう可能性があるので、サービスごとに使うパスワードを変えましょう。

辞書攻撃

辞書にある単語をベースに生成した文字列を手当たり次第に探し、パスワードが一致するかを確かめていく攻撃です。

パスワードとしてあまり意味のある英単語 (password, appleなど) を使わず、なるべく複雑なものにすることで辞書攻撃を防ぐことができます。

ブルートフォース攻撃

パスワードと使える文字の組み合わせを片っ端からすべて試していき、パスワードが一致するか確かめていく攻撃です。

数字4桁のような簡単なパスワードを使うのではなく、英数字、記号を含めてなるべく長いパスワードを使うことでブルートフォース攻撃を防ぐことができます。

 

試しに、パスワードを総当たりすると何通りになるのかを見ていきましょう。

数字4桁 →  10^4 通り*5
英数字12桁 →  62^{12} 通り*6

このように、複雑なパスワードかつ長いパスワードにすることで総当たりでパスワードを破られなくなることがわかりますね。

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

リバースブルートフォース攻撃は、パスワードを総当たりしていく攻撃でしたが、逆ブルートフォース攻撃はパスワードを固定(passwordとか)して、ユーザーIDを片っ端から試していく攻撃です。

こちらも、複雑で長いパスワードにすることで防ぐことができます。

DoS攻撃・DDoS攻撃

Dos(Denial of Service)攻撃は、特定のサイトやサーバに対して大量のデータを送り付けることで想定を超える負荷を与え、サイト、サーバーをダウンさせる攻撃です。

DoS攻撃の最も単純な例としては、F5キーを連打することでWebページの更新を高頻度で要求し、サーバーを落とす「F5連打」が挙げられます。

 

しかし、DoS攻撃対策は、多くのWebサイトで行われおり、対策も容易です。

そこで、1台ではなく複数のコンピュータ*7でDoS攻撃を行う手法が行われるようになりました。これをDDoS (Distributed Denial of Service) 攻撃と呼びます。

SQLインジェクション

ユーザーやパスワードを入力する部分に、SQLを操作する命令文を埋め込み、データベース内のデータを取得、改ざんする攻撃です。

 

例えば、ユーザーID (XXX) とパスワード (YYY) を見つけるためにこのようなSQLを書いたとします。

select * from user_data where user_id = XXX and user_pass = YYY;

ここで、パスワードの部分に「`a` or 1 = 1」と入力すると……

select * from user_data where user_id = XXX and user_pass = `a` or 1 = 1;

上のSQLの条件式に「or 1 = 1」という条件式が入り、常にログインできてしまいます。

 

対策としては、ユーザーやパスワードにSQL文を入力しても成り立たせなくなるようにする処理(エスケープ処理)があります。

フィッシング

実際に存在する組織を装った電子メールを送信し、悪意あるWebページにアクセスさせ、様々な個人情報を盗む攻撃です。

最近ではフィッシング詐欺という言葉が有名ですが、フィッシング詐欺のフィッシングと同じです。

 

メールのリンクをすぐにクリックせず、Googleなどで検索し、公式のページで確認することで対策できます。

DNSキャッシュポズニング

DNSキャッシュポイズニングとは、偽のドメイン情報をキャッシュさせることで、偽のWebサイト(サーバー)に誘導する攻撃手法です。

 

ここで、DNS(Domain Name System)サーバの仕組みを復習しましょう。DNSの動きとしては、

  1. ブラウザがDNSキャッシュサーバーにIPアドレスを問い合わせ
  2. DNSキャッシュサーバーはDNSサーバーにIPアドレスを問い合わせ
    (ここでキャッシュサーバーにIPアドレスがあれば2, 3の流れは無視)
  3. DNSサーバーがDNSキャッシュサーバーにIPアドレスを返す
    (毎回サーバーに問い合わせるのは無駄なので返されたIPアドレスはキャッシュし、次回以降用いる。)
  4. ブラウザにいったんIPアドレスを返す
  5. 得られたIPアドレスから目的のサーバーにアクセスする

の5ステップが行われています。

f:id:momoyama1192:20200308171616g:plain

しかし、下のようにキャッシュ情報を改ざんする悪い人がいたらどうなるでしょうか。

DNSキャッシュサーバーのIPアドレスが改ざんされることで、ブラウザに返すIPアドレスも改ざんされたものになってしまいます。

そのため、ブラウザは目的のサーバーではなく、偽のサーバーにアクセスしてしまいます。

f:id:momoyama1192:20200308171621g:plain

これがDNSキャッシュポイズニングです。

クロスサイトスクリプティング (XSS)

クロスサイトスクリプティングは、動的なWebサイト(Twitter・Instagram・5chなどの掲示板など)に対して、悪意を持った人が不正なスクリプトを入れることにより、利用者を信頼できるサイトに似せた偽サイトに移動させ、偽サイトで個人情報などを入力させることにより、被害を与える攻撃です。

 

具体的な流れとしては、

  1. 攻撃者が動的なWebサイトに不正なスクリプトを入れる
  2. 利用者が動的なWebサイトにアクセスする
  3. ユーザーが不正なスクリプトを実行してしまう(クリックなどで)
  4. 信頼できるサイトに似せた不正なサイトへワープ
  5. 不正なサイトへIDやパスワードなどの入力を要求
  6. 攻撃者に利用者の個人情報を奪われるなどの被害発生

となります。

 

対策としては、Webサーバーからの外部のアクセスを監視するWAF(後編で説明します)や、有害なスクリプトを向こうするサニタイジング処理を行います*8

ポートスキャン

ポートスキャンは、どのポートが開いているか、つまり侵入口になるかどうかを探すために、ポート番号を順番に変えながらアクセスしていく方法です*9

ゼロデイ攻撃

OSやソフトウェアでは、セキュリティ上の脆弱性(セキュリティホール)を埋めていくために修正プログラム(セキュリティパッチ)が定期的に更新されます。

そのセキュリティパッチの更新前にセキュリティホールを狙って攻撃する方法のことをゼロデイ攻撃といいます。

ディレクトリトラバーサル

サーバーの中にあるアクセスして欲しくない(機密情報などが入った)ファイルやディレクトリ名をパスで直接することによって、不正なアクセスを行う攻撃です。

 

対策としては、外部からの入力データをファイル名として直接指定できないようにするなどの方法があります。

レインボー攻撃

まともな組織であればサーバーに保管されているパスワードはそのままの平文ではなく、平文から求められたハッシュ値が保管されています。

そこで、ハッシュ値をもとにして、元の文字列(パスワード)を推測していく攻撃のことをレインボー攻撃と呼びます。

バッファオーバーフロー

許容量以上のデータをシステムに送りつけることでプログラム誤動作を起こさせる攻撃手法をバッファオーバーフローと呼びます。

 

例えば、10文字以内しか受け付けないデータに15文字のデータを送ると、プログラム上でオーバーフローが発生し、誤動作が起こります。

対策するためには、入力欄で制限を掛け、制限以上のときはそもそもデータを送れないようにするなどがあります。

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

どんなにセキュリティ対策を行っても、 人間の心理的な隙や行動のミスなどでデータが漏れてしまうことがあります。

このような、人間の心理的な不注意を利用してデータを盗み出す行為のことをソーシャルエンジニアリングと呼びます。

 

具体的には、

  • 肩越しにパスワードや機密情報をのぞき見する(ショルダーハッキング)
  • 電話などで身分を詐称して機密情報を聞き出す
  • ゴミ箱から情報を盗み取る(スキャビンジング・トラッシング)
  • メモ帳や付箋に書いたパスワードを見られる

などがソーシャルエンジニアリングの例となります。

 

余談ですが、Twitterで鍵を掛けたアカウントを持って悪口など人に言えないことを書いてる人は特にソーシャルエンジニアリングに注意しましょう*10

鍵を掛けていても、直接ツイート内容を見られてしまうショルダーハッキングが起こったり、友達を詐称して鍵を開けてもらう方法などがありますからね*11

 

5.コンピュータウイルス・マルウェア

コンピュータウイルスと聞くと中には「パソコンを物理的に壊すウィルス」だと思う人もいますが、実際にはただのプログラムの一種です。

しかし、プログラムとは言ってもウィルスと名付けられるくらいなので、

  • ファイルを勝手に書き換えちゃったり
  • 個人情報を流出させる
  • 起動できなくしちゃう

のようなちょっと困ったことをしちゃいます。もちろん、リアル世界のウィルスと同じように他のシステムにも伝染しちゃいます。

(1) コンピュータウィルスの例

コンピューターウイルスにも様々な種類があります。

代表的なウイルスの種類を紹介していきたいと思います。

(i) (ファイルに感染する)普通のウイルス

他のプログラム (拡張子 .exe のファイル) に寄生する普通のウイルスです。

プログラムを実行することで感染します。

(ii) マクロウイルス

ワープロソフト (Word) や表計算ソフト (Excel) などにあるマクロ機能を悪用したウイルスです。

データファイルを実行することで感染します。

(iii) トロイの木馬

見た目は普通のプログラムなのですが、実行の裏側でデータのコピー、悪用などの不正な処理を行うウイルスです。

(iv) ワーム

自身で複製を行い、ネットワークなどを経由してコンピュータ間に感染を広めるウイルスです。

(2) マルウェア

悪意をもって作成されたプログラムのことをマルウェアと呼びます。

ウィルスは、マルウェアの一種です。

(i) スパイウェア

インストールしようとしたプログラムにひょこっとついてきて、個人情報を収集、そして外部に送信するプログラムです。

 

スパイウェアの一種に、キーの入力履歴を外部に送信するキーロガーがあります。

キーロガーが入ってしまうと、入力したパスワードなどが盗まれる可能性があります。

 

最近では、キーロガー対策にソフトウェアキーボード(Webサイト上で文字入力を行う)が導入されているサイトもあります。

 

(ii) ランサムウェア

利用者のPCをロックしたり、ファイルを暗号化したりすることで使用できないような形にし、元に戻すための「身代金」を要求するプログラムです。

ランサムウェアのランサム (ransom) は身代金という意味です。最近ではWannaCryが有名ですね。

(iii) ボット

感染したコンピューターを外部から操作するプログラムです。

感染することで、「掲示板への悪意ある書き込み」や「他のコンピュータへの攻撃」などの踏み台となってしまいます。

 

ボットを操るサーバーのことを C & C (Command and Control )サーバーと呼ばれます。

(iv) rootkit

侵入したいコンピュータに侵入するために必要な様々なマルウェアをセットにしたものをrootkitと呼びます。

具体的には、「侵入を隠蔽するためのログ改ざんツール」、「侵入口を防がれても2度目以降の侵入を容易にするバックドアツール」、「侵入に気づかれないために改ざんを行ったシステムツール群」など、様々なマルウェアが入っています。

 

(3) ウイルス対策ソフト

当然こんなコンピュータウィルスを放りっぱなしにはできません。

実世界ではウィルスに対抗するためにワクチンが作られますよね。

 

コンピュータウイルスに対するワクチンのようなものがウィルス対策ソフト*12となります。

ウイルス対策ソフトは、パソコン上にあるデータをスキャンすることでコンピューターに悪さをするプログラム(ウイルス、マルウェアなど)がないかをチェックします。

 

また、ウイルス対策ソフトは、プログラムをチェックするだけでなく、悪さをするプログラムが入ってこないか見守ったり、万が一入ってきた場合には悪さをするプログラムを駆除する働きもあります。

悪意あるプログラムをどうやって見つけているか

ところで、どうやって様々なウイルスを見つけているのでしょうか。

ウイルス対策ソフトでは、今までにどんなウイルスがあってその特徴はどんなのかを記録したウイルス定義ファイルが入っており、ウイルスを探すときに用いられます。

 

しかし、ウイルス定義ファイルだけでは既知のウイルスにしか検知できず、未知のウイルスは検知することができません

 

そこで、実行中のプログラムの挙動を監視、不審な動きがないかを確認するビヘイビア法も併用されています。

しかし、せっかく検知ができても感染しては元も子もないので、ビヘイビア法は仮想環境の中で行います

(4) ウイルス感染を防ぐために

ウイルス感染は当然防ぐ必要があります。当たり前ですね。

人間の場合は手洗いうがいが防ぐコツと言われますが、コンピューターではどうでしょうか。

 

例えば、以下のような取り組みが行わます。皆さんは8個中何個取り組んでいるでしょうか。

  1. ウイルス対策ソフトを導入し、常に動かしておく
  2. ウイルス対策の定義ファイルは常に最新の状態に
  3. HDDやSDD内のウイルスチェックは定期的に
  4. (OS・ブラウザ・メールソフトなどの)修正プログラムも最新のものに
  5. メールに添付されている不審なファイルを開かないこと
  6. 不審なメールは開かないこと
  7. USBメモリやSDカードなどで外から持ち込んだファイルは、ウイルスチェックすること
  8. スマートフォンやタブレットの場合、必要以上な権限を要求してこないかを確認すること。
    (例えばですが、ただのゲームアプリに連絡帳やらファイルの中身の権限を要求してくるのっておかしくないですか?)

(5) もし感染してしまったら

しかし、どんなに予防していてもウイルスに感染してしまうことはあります。

本当は感染してほしくないのですが、万が一感染してしまっても落ち着いて下のような対処を順番にすることが大切です。

  1. 感染確認を防ぐため、感染の疑いのあるコンピュータをネットワークから切り離す(真っ先にこれをやる)
  2. ウイルス対策ソフトを使い、ウイルスチェックをし、感染していた場合は駆除する。
  3. 必ずシステム管理者に報告する。

 

6.練習問題

では、今回説明した部分がちゃんと頭に入っているかを、実際に基本情報の午前問題を10問ほど解くことで確認していきましょう。

練習1

リスクアセスメントに関する記述のうち、適切なものはどれか。

[基本情報平成26年秋期 問39]

ア:以前に洗い出された全てのリスクへの対応が完了する前にリスクアセスメントを実施することは避ける。
イ:将来の損失を防ぐことがリスクアセスメントの目的なので、過去のリスクアセスメントで利用されたデータを参照することは避ける。
ウ:損失額と発生確率の予測に基づくリスクの大きさに従うなどの方法で、対応の優先順位を付ける。
エ:リスクアセスメントはリスクが顕在化してから実施し、損失額に応じて対応の予算を決定する。

解答1

解答:ウ

[他の選択肢]

ア:リスクアセスメントは対応が完了してなくても定期的に実施しましょう。
イ:ちゃんと過去のリスクアセスメントのデータも参照しましょう。
エ:リスクアセスメントではリスクが顕在化する前、つまり潜在的なリスクを把握します。

 

練習2

ボットネットにおいてC&Cサーバが果たす役割はどれか。

[基本情報平成29年秋期 問36]

ア:遠隔操作が可能なマルウェアに,情報収集及び攻撃活動を指示する。
イ:電子商取引事業者などに,偽のディジタル証明書の発行を命令する。
ウ:不正なWebコンテンツのテキスト,画像及びレイアウト情報を一元的に管理する。
エ:踏み台となる複数のサーバからの通信を制御し遮断する。

解答2

解答:ア

C & C (Command and Control )サーバーとは、ボットを操るサーバーのことをさします。

ボットを操ることで遠隔操作を行い、情報を収集したり攻撃を行います。

ということで、正しい選択肢はア。

 

練習3

SQLインジェクション攻撃を防ぐ方法はどれか。

[基本情報平成30年春期 問41]

ア:入力中の文字が,データベースへの問合せや操作において,特別な意味をもつ文字として解釈されないようにする。
イ:入力にHTMLタグが含まれていたら,HTMLタグとして解釈されない他の文字列に置き換える。
ウ:入力に上位ディレクトリを指定する文字(../)を含むときは受け付けない。
エ:入力の全体の長さが制限を超えているときは受け付けない。

解答3

解答:ア

SQLインジェクション攻撃は、入力欄にSQLを不正に操作するような文字列入れるような攻撃でしたね。

そのような攻撃を防ぐためには、入力欄の文字でデータベースを問い合わせたり操作できなくすればいいですね。

よって答えはアです。

 

なお、

イ:XSS(クロスサイトスクリプティング)を防止する方法
ウ:ディレクトリトラバーサル攻撃を防ぐ方法
エ:バッファオーバーフローを防ぐ方法

です。

 

練習4

スパイウェアに該当するものはどれか。

[基本情報平成28年春期 問38]

ア:Webサイトへの不正な入力を排除するために,Webサイトの入力フォームの入力データから,HTMLタグ,JavaScript,SQL文などを検出し,それらを他の文字列に置き換えるプログラム
イ:サーバへの侵入口となり得る脆弱なポートを探すために,攻撃者のPCからサーバのTCPポートに順番にアクセスするプログラム
ウ:利用者の意図に反してPCにインストールされ,利用者の個人情報やアクセス履歴などの情報を収集するプログラム
エ:利用者のパスワードを調べるために,サーバにアクセスし,辞書に載っている単語を総当たりで試すプログラム

解答4

解答:ウ

スパイウェアとは、利用者の個人情報やらを収集するプログラムのことでした。よって答えはウ。

[他の選択肢]

イ:ポートスキャンのお話。
エ:辞書攻撃のお話。

 

練習5

情報の"完全性"を脅かす攻撃はどれか。

[基本情報平成28年秋期 問37]

ア:Webページの改ざん
イ:システム内に保管されているデータの不正コピー
ウ:システムを過負荷状態にするDoS攻撃
エ:通信内容の盗聴

解答5

解答:ア

完全性というのは、情報が書き換えられたりすることがなく、正確さ・完全さを保つことでしたね。

この中で、正確さ、完全さが保たれなくなりそうなものは、アのWebページ改ざんが当てはまります。

よって答えはア。

[他の選択肢]

イ:機密性を脅かす攻撃
ウ:可用性を脅かす攻撃
エ:機密性を脅かす攻撃

 

練習6

Webサーバが外部から侵入され,コンテンツが改ざんされた。その後の対応の順序のうち,適切なものはどれか。

[基本情報平成20年秋期 問67]

  1. サーバー、IDS(Instrusion Detecton System)、ファイアウォールの各ログを解析し、不正アクセス手法、影響範囲、侵入経路を特定する。
  2. システムを再構築し、最新のパッチやセキュリティ設定情報を適用する。
  3. サーバをネットワークから切り離す。
  4. ネットワークに接続後、しばらく監視する。


ア:1→2→3→4
イ:1→3→2→4
ウ:2→3→1→4
エ:3→1→2→4

解答6

解答:エ

まず、サーバーのコンテンツの改ざん、つまりウイルスの感染が疑わしいときはすぐにサーバーをネットワークから切り離す必要があります。

よって3を最初にする必要があるので答えはエで確定。

 

ちなみにその後は、原因を特定(1)し、システムを再構築(2)、様子を見る(4)流れとなります。

 

練習7

データの破壊、改ざんなどの不正な機能をプログラムの一部に組み込んだものを送ってインストールさせ、実行させるものはどれか。

[基本情報平成20年秋期 問64]

ア:DoS攻撃
イ:辞書攻撃
ウ:トロイの木馬
エ:バッファオーバフロー攻撃

解答7

解答:ウ

トロイの木馬は、見た目は普通のプログラムの中に不正な機能を組み込むようなウイルスでしたね。

よって答えはウ。

[他の選択肢]

ア:F5キーを連打することなどでサーバーに負荷をかけてダウンさせる攻撃
イ:辞書にある単語をベースに生成した文字列を手当たり次第にパスワードと一致するかをチェックしていく攻撃
エ:規定の上限を超えるようなデータを送り、予期せぬプログラムの動作を行う攻撃

 

練習8

バイオメトリクス認証には,身体的特徴を抽出して認証する方式と行動的特徴を抽出して認証する方式がある。行動的特徴を用いているものはどれか。

[平成27年春期 問41]

ア:血管の分岐点の分岐角度や分岐点間の長さから特徴を抽出して認証する。
イ:署名するときの速度や筆圧から特徴を抽出して認証する。
ウ:どう孔から外側に向かって発生するカオス状のしわの特徴を抽出して認証する。
エ:隆線によって形作られる紋様からマニーシャと呼ばれる特徴点を抽出して認証する。

解答8

解答:イ

残りの選択肢はすべて身体的特徴を抽出して認証する方式です。

 

練習9

利用者IDとパスワードの適切な運用管理方法はどれか。

[平成17年秋期 問66]

ア:管理作業を簡素化するために,現在使用されていない利用者IDとパスワードを再利用する。
イ:トラブル処理を迅速化するために,利用者IDとパスワードの一覧表を作成し,管理者が保管する。
ウ:パスワードを他人に悪用されるのを防止するために,利用者が自分のパスワードをいつでも自由に変更できるようにする。
エ:利便性を向上させるために,利用者登録申請書が届く前に,人事異動速報を見て新任者の利用者IDと仮のパスワードを登録する。

解答9

解答:ウ

残りの選択肢はどこがダメなのかを見ていきます。

ア:再利用すると、以前利用していた人に不正利用される可能性があります。
イ:管理者自身が不正に使用できる可能性があるのでNG。また、一覧表にすることで流出の可能性もあがってしまう。
エ:正式な手続きをせずに利用者IDやパスワードを登録するのはよくありません。

 

練習10

手順に示すセキュリティ攻撃はどれか。

[手順]

  1. 攻撃者が金融機関の偽のWebサイトを用意する。
  2. 金融機関の社員を装って,偽のWebサイトへ誘導するURLを本文中に含めた電子メールを送信する。
  3. 電子メールの受信者が,その電子メールを信用して本文中のURLをクリックすると,偽のWebサイトに誘導される。
  4. 偽のWebサイトと気付かずに認証情報を入力すると,その情報が攻撃者に渡る。

ア:DDoS攻撃
イ:フィッシング
ウ:ボット
エ:メールヘッダインジェクション

解答10

解答:イ

組織を装って電子メールを送り、偽のWebサイトにアクセスさせるような攻撃方法はフィッシングと呼ばれます。

よって答えはイ。

[他の選択肢]

ア:複数のコンピュータからサーバーに負荷をかけ、ダウンさせる攻撃
ウ:コンピュータを外部操作するために使われる不正なプログラム
エ:攻撃ですらない。

6.さいごに

今回は、基本情報対策として、うさぎでもわかるセキュリティの前編についてまとめました。

後編では、

  • ファイアウォールなどのネットワークに対するセキュリティ対策
  • 暗号化技術
  • デジタル署名

などについてまとめているので、ぜひ後編もご覧ください。

こちらから後編に移動できます。

*1:ISMSは、Information Security Management Systemの略称です。

*2:超余談なんですが、私の知り合いはBYODをBring Your Own Desktopと言いながらデスクトップ端末を大学の部室に持ち込む人や、Break Your Own Deviceと言って自分の端末が壊れていることを主張する人がいました。

*3:目の特徴から認証を行う方式。

*4:余談ですが、パターン理解の世界では、本人拒否率のことを再現率、他人受入率のことを適合率と呼びます。もし、再現率や適合率に関する詳しい話を知りたい人はこちらの記事で説明しているのでぜひお読みください! 基本情報にはたぶん出ません。

*5:数字は0~9の10通り、10通りの組み合わせが4つあるので10の4乗

*6:数字10通り、A~Zで26通りで大文字小文字があるので英字は52通りなので、英数字は62通り、62通りの組み合わせが12つあるので62の12乗

*7:マルウェアなどのウィルスで不正に乗っ取った複数のコンピューターから攻撃を行います。

*8:例えば、入力されたデータ中にHTMLやJavascriptを操作する文字列があった場合を、普通の文字(HTMLやJavascriptを実行できない文字)に変更し、不正な操作を防止する。

*9:なお、ポートスキャンの本来の目的は攻撃準備ではなく、管理者が脆弱性(どのポートが開いていて侵入口になりそうか)を調べるために行います。

*10:本当はそんなことをTwitterで書いてほしくはないのですが…。

*11:一応念のため言いますが、私はやったこともやられたこともありません。

*12:有名なウイルス対策ソフトにウ○ルスバ○ター・ノー〇ン・〇スペル〇キーなどがあります。