takashi kono's blog

コーヒーとキーボードと共に何かを記録していくブログ

はじめてUNIXで仕事をする人が読む本 の備忘録 19 ネットワーク・セキュリティ

お世話になった本

この連載ブログを書くにあたり、お世話になった本がこちら。LPICと被っているところもありますが、実務での使い方なんかも扱っており、良書だと思います。

第3部 ネットワーク技術

第19章 ネットワーク・セキュリティ

セキュリティについては、深すぎて個々人でここの仕組みを調べてもらうしか無いが、とりあえず見ていく。

ネットワーク上の攻撃

代表的な攻撃例

  • 脆弱性攻撃
    • ソフトウェアやシステムの脆弱性を狙い、想定外の入力を与えてシステムを破壊したり、DBから情報を抜き取ったりする
    • 本来は許可されていない権限を外部から取得したり、操作が可能なシステムの「穴」を狙う
  • コンピュータ・ウィルス / ネットワークワーム等
    • 広義では、悪意を持ってコンピュータやシステムに被害をもたらすことを目的としてさくせされたプログラムを、一般にコンピュータウィルスと呼ぶ
    • 狭義では、プログラムの一部を書き換えて自信を忍ばせ、そのプラグラムが実行された際に自信のコピーを作っていく動作をするプログラムを指すのが、コンピュータウィルスの本来の定義
    • 宿主を持たず、自信が1つのプログラムとして完結しており、主にネットワーク環境やUSBメモリ等の外部記憶装置を経由して拡散してくプログラムをネットワークワームとよぶ
    • 今では、厳密な区分はない
    • 両方の性質を兼ね備えたものもある。
  • DoS / DDoS 攻撃
    • DoS (Denial of Service) の略
    • サービス停止攻撃とも呼ぶ?
    • あるサービスに対して処理を意図的に処理を集中させることで、サービスを使用停止に追い込む攻撃
    • その攻撃を分散型にしたのが DDoS
    • DDoS (Distributed DoS) と呼ぶ
    • 詳しくは書籍やWebで
  • ブルートフォースアタック
    • 気からずく攻撃
    • 全パターン網羅攻撃とでも言うか。
    • 例えば、4桁のパスコード全パターンを試す場合、10,000 回試してみることを言う
  • ポートスキャン
    • TCP/UDP のポートは0-65535 ポートとと決まっている
    • 全てのポートに対してスキャンを行うことで開いているサービスを突き止める
    • 開いているサービスに脆弱性があれば、それをとっかかりとして、脆弱性攻撃などを行う
  • パスワードクラック
    • ブルートフォースアタックや辞書攻撃等を使ってパスワードをクラックすること
    • パスワードを何回か間違えたらロックする処理をすることも攻撃に対しての対策として有効
    • 辞書で推測可能な文字をパスワードに使わないことも有効
  • フィッシング (phishing)
    • Web サービスやSNSのメッセージを使って、一見正しそうだが全く異なったサイトのURL のリンクを踏ませることで、アカウントの情報を盗み出す手法
  • IPアドレス詐称
  • トロイの木馬
    • 普通の有用なソフトウェアと思い込ませておいて、実は中に悪意のあるソフトウェアが組み込まれたソフトウェアのこと
  • 通信内容の盗聴
    • スニッフィングともいう
    • LAN の中を流れている情報を盗聴できる。
    • 盗聴されても中身を解析されないように、暗号通信を推奨する

認証システム

認証 Authentication と 認可 Authorization がある。
認証は、各エンティティ自身が正しくそれら自身であることを確認する
認可は、各エンティティ自身がどのような権限が与えられているかを確認する
100% 安全な認証はない。

よく利用されている認証システムの例

  • パスワード認証
  • 二段階認証
    • 異なる経路による重複認証
    • ネットワーク経由と電話やFAXなど
  • 生体認証
    • 指紋・静脈・網膜パターン
  • 公開鍵認証
    • リモートログイン
    • デジタル証明書
  • 証明書認証
    • サービス
    • クライアント・端末
    • デジタル署名

また、他にもシングルサインオン(SSO)という仕組みもある。
ユーザは例えば最初に一度どこかのサイトに対してパスワード認証や証明書認証などでサインオンすれば良い。その後は明示的にサインオフするまでは他のサイトに対しても自動的にサインオン状態が引き継がれる。
ユーザにとっては嬉しい。しかし、クラッカーにとっては1つ認証情報が分かればよいだけなので、一長一短。

シングルサインオンシステムの例

  • 一般向けサービス
  • 研究・学術サイト用サービス
    • GSI (Grid Security Infrastructure)
    • 学認 (学術認証フェデレーション)

通信フィルタとファイヤウォール

ファイヤーウォールは大事。異なる複数のセキュリティポリシーを持ったネットワーク同士を接続するときには特に大事。
UNIX 機でもファイヤーウォールを構築できる。

通信フィルタを設定する際には、特定のパケットのみを通してそれ以外を全部遮断する方法と、逆に特定のパケットのみを遮断してそれ以外を全部通す方法がある。
前者のほうが比較的安全。
通信は、往復のパケットが通って初めて成立することを忘れてはいけない。
例えば、外部からのパケットを全部遮断した場合、内部から始めた通信の戻りも塞いでしまうので、通信が成立しなくなる。

通信の暗号化

通信内容が第3者に漏れないように、通信を暗号化しよう。
IPネットワークで通信内容を暗号化するには、IPsecの様にネットワーク層で行う方法、SSL/TLSのようにトランスポート層で行う方法、SSHの様にアプリケーション層で行う方法などがある。

VPN

通信を暗号化する技術を利用して、インターネット上で仮想的な専用回線を運用する技術がVPNである。
専用線を使わずとも拠点間の接続を安全に出来る。
それはまるで、LANに直接接続しているのと同じように利用できる。

ただし、スループットや遅延と言ったパフォーマンス上の制約はあるし、接続方式によっては課金対象になることもある。

UNIX でよく使われるVPN技術は、以下のようなものがある。


お疲れ様でした。これで本冊子の紹介は終了しました。また別の良い本などに出会えたら、ちょろちょろとアップしていきたと思います。
以上です。