Hack#37~#43 - careerbeat/dit-ehime GitHub Wiki

HACK#37 SSHをTorで隠す (未完了)

TODO

  • 外部サーバーをレンタルして試してみる

概要

  • リモートからシェルアカウントを利用する際、通信元のプライバシーを守る
    • Torでそれを実現する

実践

  1. 下記より「connect.c」をダウンロード
  1. 下記コマンドで「connect.c」をコンパイル
  • gcc -o connect connect.c
  1. 下記コマンドで
  • ssh -o ProxyCommand="{connectファイルが置かれているパス}/connect -S localhost:9050 %h %p" 10.0.0.23

HACK#38 Windowsのバージョンに依存せずファイルを暗号化する

概要

  • Windowsはすべてのシリーズで同じ暗号化アルゴリズムをサポートしていない
    • にもかかわらず、EFSはそれを利用しているので、TrueCryptを利用して解消する
  • TrueCryptは暗号化されるディスク領域を作るか、ディスク装置内全部(USBメモリなど)を暗号化するか選ぶことができる

実践

  • ※TrueCryptは終了し、BitLockerに移行
  1. 「コントロールパネル」 > 「システムとセキュリティ」 > 「BitLocker ドライブ暗号化」

  2. 暗号化したいドライブの「BitLockerを有効にする」をクリックする

  3. BitLockerの回復キーの保管に関して、任意の方法で保管する

  4. 保管が完了したら、ドライブの暗号化する範囲を選択する

  5. 「BitLocker システムチェックを実行する(R)」にチェックを入れ、続行する

  6. 再起動をし、「暗号化が進行中」の旨のメッセージが表示されているので、進捗を確認

  7. 100% になれば完了

※2. で「TPM有効化」に関するメッセージが表示された場合は「OK」で終了し、画面左下の「TPMの管理」から設定を確認する

TPMが内蔵されていない場合は下記方法で「BitLocker」を有効にする

  1. 「プログラムのファイルの検索」で「gpedit.msc」と入力し、Enter

  2. 左のメニューから「コンピュータの構成」 > 「管理用テンプレート」 > 「Windowsコンポーネント」 > 「BitLockerドライブ暗号化」 > 「オペレーティングシステム」の順にクリックする

  3. 右側のメニューから「スタートアップ時に追加の認証を要求する」をダブルクリックする

  4. ラジオボタンの「有効」をチェックし、「オプション」欄の「互換性のあるTPMが装備されていないBitLockerを許可する」にチェックを入れて、OKをクリック

  5. 「プログラムのファイルの検索」で「gpupdate.exe /force」と入力し、Enter

  6. コマンドプロンプトが立ち上がり「ユーザー ポリシーの更新が正常に完了しました。」と表示され、終了したら完了

HACK#39 フィッシングから身を守る

概要

  • SpoofGuardの導入でフィッシング攻撃からユーザーを保護する

実践

  1. 下記から「SpoofGuard」をダウンロード(Lightのmsiを選択)
  1. ダウンロードしたmsiをインストール

  2. IEを起動し、「Warnar Class」を有効にするか聞かれるので、有効にする

  3. URLのバー下に新しいバーが表示されればOK

新規バー左側に色が表示される。緑、黄、赤の3種類があり、それぞれ以下を指す

  • 緑:安全
  • 黄:疑わしい
  • 赤:危険

HACK#40 より少ないパスワードでWebを使う

概要

  • 簡単に言うとパスワードリスト攻撃の対策を行う
    • それをPwdHashで簡単に行える

実践

  1. ブラウザに拡張機能PwdHashをインストール

  2. パスワードフィールドの先頭に'@@'を入力もしくはF2キーを押下することでPwdHashモードに切り替え

  3. 送信時に自動的にハッシュ値に置き換えてくれる

  • ※セキュリティ上の問題で拡張機能がインストールできない可能性

拡張機能が使えない場合は「Remote PwdHash(下記URL)」でハッシュ文字列を生成

HACK#41 Thunderbirdによる電子メールの暗号化

概要

  • Thunderbirdの拡張機能でセキュアな電子メールの送受信を行う

実践

  1. 「Thunderbird」を下記サイトを参考にしてインストール(インストール済みの場合は不要)
  1. 「Thunderbird」にメールアカウントを設定

  2. Thunderbirdの「三」のメニュー画面からアドオンを選択

  3. アドオンの検索で「Enigmail」と検索し、一覧から「Enigmail」をインストールし、再起動する

  4. 画面指示に従ってNextを押していき、「GnuPG」のインストールを求められるのでインストールする

  5. 「GnuPG」のインストールが完了したら、画面指示に従ってインストールをする

  6. 「失効証明書」の生成を求められるので、生成する

  7. 「完了」まで進めば導入完了

  • これで、メッセージを作成するときに、メニューバーに「Enigmail」が現れるので、そこで暗号化の設定等が行えるようになる

HACK#42 Mac OS Xにおける電子メールの暗号化

概要

  • AppleMail で GPG を使うことでセキュアな電子メールの送受信を行う

実践

  1. 強力な公開鍵暗号によるデータ保護のためにMac GPGをダウンロードしてインストール
  1. ターミナルでgpg --gen-keyコマンドを実行し、GPGキーを作成する

  2. GPGMailをダウンロードしてインストールする

HACK#43 iptablesによるファイアウォール構築

概要

  • Thunderbirdの拡張機能でセキュアな電子メールの送受信を行う

用語解説

  • チェイン: 入力、出力転送するパケットに適用するルールのリスト。以下の種類がデフォルトである

  • INPUT: コンピュータに入ってくるパケットに適用する

  • OUTPUT: コンピュータから出ていくパケットに適用する

  • FOWARD: あるNICから別のNICに中継されるパケットに適用する

  • PREROUTING: 受信時に変換するチェイン

  • POSTROUTING: 送信時に変換するチェイン

  • ステートフルインスペクション(動的パケットフィルタリング)に関連する設定

  • INVALID: 既存のコネクションとは関係のないパケット

  • NEW: 新しいコネクションの接続に関するパケット

  • ESTABLISHED: 接続済みコネクションのパケット

  • RELATED: 接続済みコネクションに関連して発生した新たなコネクションパケット

  • iptables オプション

  • -N: 新規チェインの作成

  • -X: ユーザーチェインの削除

  • -A: ルールの追加

  • -D: ルールの削除

  • -L: チェインにあるルールの一覧表示

  • -F: チェイン内容の全消去

  • -P: 各チェインのデフォルトルールを記述

  • 新規チェインを作成することも可能

実践

  1. 以下の環境を用意
  • ホストOS1

  • eth0 192.168.1.XXX (ブリッジネットワーク)

  • eth1 10.0.0.3 (内部ネットワーク)

  • ゲストOS1

  • eth0 10.0.0.5 (内部ネットワーク)

  • ホストOS2

  • eth0 192.168.1.XXX (ブリッジネットワーク)

  1. ホストOS1で以下のコマンドを実行
  • sysctl net.ipv4.ip_forward=1 (パケット転送有効化)
  • iptables -t nat -A POSTROUTING -s 10.0.0.0/24 -j MASQUERADE (送信元IPが10.0.0.0/24の場合はIPマスカレードを行う)
  1. ゲストOS1で以下のコマンドを実行
  • route add default gw 10.0.0.3 (デフォルトゲートウェイを追加)
  • ping www.google.com (icmpが外部に送信できることを確認)
  • ping {ホストOS2のIPアドレス} (icmpがホストOS2に送信できることを確認)
  1. ホストOS1で以下のコマンドを実行
  • iptables -A FORWARD -p icmp -d {ホストOS2のIPアドレス} -j DROP (送信先IPがホストOS2の場合はパケットを破棄する)
  1. ゲストOS1で以下のコマンドを実行
  • ping www.google.com (icmpが外部に送信できることを確認)
  • ping {ホストOS2のIPアドレス} (icmpがホストOS2に送信できないことを確認)
  1. ホストOS1で以下のコマンドを実行
  • iptables -P FORWARD DROP (転送を行うパケットを破棄する)
  1. ゲストOS1で以下のコマンドを実行
  • ping www.google.com (icmpが転送できなくなっていることを確認)
  • ping {ホストOS2のIPアドレス} (icmpが転送できなくなっていることを確認)
  1. ホストOS1で以下のコマンドを実行
  • iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT -(接続済みコネクションのパケット、または、接続済みコネクションに関連して発生した新たなコネクションパケットの転送を許可する)
  • iptables -A FORWARD -m state --state NEW -j ACCEPT (新規コネクションの接続に関するパケットの転送を許可する)
  1. ゲストOS1で以下のコマンドを実行
  • ping www.google.com (icmpが転送できることを確認)
  • ping {ホストOS2のIPアドレス} (icmpが転送できることを確認)