良いパスワード

Download Report

Transcript 良いパスワード

最低限 Unix (Linux) I
~ Linux 入門 ~
情報実験 第 2 回 (2012/04/20)
北海道大学大学院
理学院 宇宙理学専攻
三上 峻
目次
1.
2.
3.
4.
5.
Linux とは
Linux のデータ管理
Linux のアカウントシステム
アカウントが盗まれたら
良いパスワードを付ける
1. Linux とは
はじめに
• 貴方の周りのパソコンを思い浮かべてください
• そのパソコンで使っている OS は何でしょう?
▫
▫
▫
▫
Windows
Mac OS
Unix 系(Linux, FreeBSD など)
その他
• この授業で使うのは Linux
そもそも OS とは何?
OS (Operating System)
• 計算機を管理・操作するための基本的なソフトウェア
• OS のお蔭で異なる計算機でも同じアプリケーション
ソフト(パッケージ)が動作する
▫ アプリケーションソフトとは特定の目的の為に作られた
ソフトのこと(例 : Excel, Internet Explorer など)
• OS の中核はカーネルと呼ばれる
▫ アプリケーションソフトとハードウェアとの仲介を務める
この授業で用いる OS: Linux
• Linus Torvalds 氏が開発 (1991)
▫ Unix の勉強の為にゼロから開発
▫ Linus + Unix = Linux (諸説あり)
• フリーソフトウェア
▫ 無料
▫ オープンソース
 異常を示した時に対処しやすい
▫ システムを自分好みにカスタマイズ可能
▫ ソフトウェアの脆弱性にメーカーではなくユーザ間で
対応
▫ ウェブ上のフリーのマニュアルも充実
▫ ただし,無保証!!
http://adamjarret.com/blog/index.php/2009/11/linus-torvalds-interviewed-on-floss-weekly/
Linux ディストリビューション
• Linux ディストリビューション
▫ Linux カーネルに各種アプリケーションを加えたもの
 Linux というものは本来カーネルのみを指す
▫ インストーラやパッケージ管理システムも含む
 システム管理が便利に行える
• Linux ディストリビューションの例
▫ Debian GNU/Linux, Ubuntu Linux, Red Hat Linux(商用)
INEX では
なぜ Debian を使うのか
INEX ではなぜ Debian GNU/Linux か
• フリーOS
▫ フリー = 無料 + オープンソース
• 堅牢なパッケージ管理システム
▫ 最初にパッケージ管理システムを導入
▫ 安心の三段階審査
• サーバの構築・管理に便利
▫ 必要最小限のシステム構成にすることが比較的容易
 セキュリティを高める上で重要
2. Linux のデータ管理
Linux のデータ管理
• 全てファイルとして扱われる
▫ アプリケーションソフト, 周辺機器さえもファイル
 マウス, キーボード, ハードディスク
• ファイルはディレクトリにより階層的に管理
▫ ディレクトリ とはファイルを格納するためのファイル
 Windows で言えばフォルダ
▫ ディレクトリの中にディレクトリを格納することも可能
Linux のディレクトリ階層構造
• ルートディレクトリ “/” を起点とするツリー構造
/ (root)
・・・・
home
etc
usr
proc
・・・・
foo
bar
bin
lib
ディレクトリの呼び方
• ホームディレクトリ
▫ home ディレクトリとは異なる
▫ 各ユーザ用ディレクトリ
▫ “~” (チルダ)で表す
• カレントディレクトリ
▫ 現在いるディレクトリ
▫ “.” (ドット)で表す
• 親ディレクトリ
▫ 一段上のディレクトリ
▫ “..” (ドットドット)で表す
• 子ディレクトリ
▫ 一段下のディレクトリ
/ (root)
・・・・
home
etc
foo
bar
work
test.txt
ファイルの指定方法
• パス
▫ 目的のファイルにたどり着くた
めの道順
/ (root)
• 絶対パスを用いた指定
・・・・
▫ ルートディレクトリ “/” を起点
 /home/foo/test.txt
 /home/foo/work
home
etc
foo
bar
• 相対パスを用いた指定
▫ カレントディレクトリ “ . ” を起点
 ../foo/test.txt
 ../foo/work
• “~” を用いた指定
▫ ホームディレクトリを起点
 ~foo/test.txt
 ~foo/work
work
test.txt
ディレクトリに関するコマンド
• cd
▫ ディレクトリを移動する
• pwd
▫ 現在のディレクトリの場所を絶対パスで表示
• ls
▫ ディレクトリの中身や情報を表示
• tree
▫ ファイル・ディレクトリをツリー形式で表示
▪ mkdir, rmdir
▫ ディレクトリを作成・削除
▪ rm
▫ ファイル・ディレクトリを削除
詳しくは実習編で!!
3. Linux のアカウントシステム
アカウントシステム
• 権利者を事前に登録 (アカウント作成)するシステム
• 登録しないと使えない/使わせない
• アカウント情報
•
•
•
•
アカウント名
パスワード
フルネーム
住所
等.
• アカウントをもらうとログインができる
Windows の場合
Windows の場合
Linux の場合
Linux の場合
Linux のログインとアカウントの種類
• 必要な入力事項はアカウント名とパスワードのみ
• アカウントの種類
▫ 計算機管理者(root)
 計算機内での最高権限者
 全権限を行使可能
 例:新規アカウントの作成など
▫ 一般ユーザ
 root 以外のアカウント(さっきの画像では takashi)
 計算機自体の運用については不可触
 例:シャットダウンすらできない
アカウントシステム
• 安全・円滑に共用を可能にする利用方式
• 一つのマシンを複数のユーザで使うことができる
• 他人のデータの操作を防止できる
• アカウントを持つ人はパスワードを守る義務を負う
▫ 漏えいすると取り返しのつかないことに・・・
 自分だけでなく他人にまで迷惑がかかる
▫ クラッキング(計算機の不正使用) される
4. アカウントが盗まれたら
アカウントクラック時の被害(1) : 本人
•
自分のアカウント情報書き換え
▫
•
パスワードが変更されればログイン不可
データの盗難・破壊
▫
•
自分が蓄積した経験が水泡に帰す…
将来にわたっての継続的な不安
▫
▫
盗み見られたデータに基づく恐喝
ネットワークへのデータ流出に伴う半永久的な損害

一旦出てしまえば事実上回収は不可能

いつどこで悪用されるかわからない
クラック時の被害(2) : 他のユーザ
•
計算機の運用妨害
▫
•
高負荷処理によるサービス妨害
他のアカウントへの被害波及
▫
▫
一旦ログインできればあとは比較的簡単
特にルートクラック ≒ 計算機の運用停止につなが
る
ルートクラックの恐ろしさ
• 計算機の全情報が自由に操作される
▫ 計算機管理者は絶対主権者なので計算機の全情報
を見られる・変更できる・消去できる
• 一度でもルートクラックされると・・・
1. クラッカー達の鴨リストに載り, そのマシン情報はす
ぐにネットワークを通じて拡散する
2. 容易に暴けるクラック対象として世界中から集中攻
撃を受けるようになる
3. 数カ月おきにクラックされるようになる
4. 計算機の運用停止に追い込まれる
▫ こうして joho21 は・・・
クラック時の被害(3) : 世界
•
同一ネットワーク内の他の計算機へ侵入
▫
•
「自分の手」を汚さずに「内側」からクラック
インターネットを通じてより大規模なクラックへの踏
み台として悪用
▫ クラックした複数のマシンをさらなるクラックのための
高速計算に転用
▫ 多数のマシンを使っての大規模なサービス妨害
• 犯罪等への加担
▫ フィッシング詐欺などに転用
▫ 時には国際問題にも発展
• ネットワークにつながった計算機 = 凶器になりうる
このような被害を
出さないためにも
アカウントを持つ人は
良いパスワードをつけて
計算機を守る義務がある
5. 良いパスワードを付ける
良いパスワードとは何か
• パスワードにも善し悪しがある
▫ 「弱い」パスワードはほとんど役に立たない
• 必要な条件
▫ なによりも頑丈さ (十分な長さ, 8文字以上)
▫ 他者にとっての使いにくさ(英数字, 大文字, 記号)
• 理想
▫ 自分にとっての使いやすさ (憶えやすさ, 忘れにくさ)
敵はどのように
パスワードを狙うのか?
クラッキングの手法
• Brute Force Attack(BFA, 総当たり攻撃)
▫ 考えられる全てのパスワードを片っ端から試す
▫ 解読に要する時間は字数に大きく依存
 一文字増えるごとに指数関数的に長くなる
 1 か月継続的に試すクラッカーは(現実的には)いない
• Dictionary Attack (DA, 辞書攻撃)
▫ 様々な分野の単語を記録したクラッキング用辞書を使う
▫ BFA より極めて効率的
 大文字,小文字,数字を組み合わせてクラックできる
 例:o →O(小文字を大文字に),i → 1(英語を数字に)
具体的な良いパスワードの条件
• 8文字以上並べる
• 可能な範囲でばらばらの文字・記号を使う
▫ 大文字, 小文字, 数字, 記号
• 推定しやすい文字列を用いない
▫ 辞書にある単語
▫ 個人情報から連想できる言葉
• 簡単な規則のみで置き換えた文字列を用いない
▫ 逆つづり(yranoitcid), 繰り返し(dictionarydictionary)
▫ 小文字→大文字(YranoItcid), 小文字→数字
(yran01tc1d)
パスワードの例
• 悪いパスワード
▫ Pneumonoultramicroscopicsilicovolcanoconiosis
- 塵肺症(45文字)
▫ Flower,hokudai,mikataka etc...
- 単語・固有名詞・個人情報から推定できるもの
• 良いパスワード
▫ スリジャヤ・ワルダナ・プラコッテ(スリランカの首都)を少
しいじってみる
 srjywrdnprkt
 Srjy!Wrdn$Prkt#
もちろんこのパスワードは
すでに良いパスワードではない
パスワードマナー
• パスワード打鍵時は視線を逸らす
▫ 「ソーシャルクラッキング」と呼ばれる立派なクラック手
法
• アカウントの貸し借りはしない
• パスワードは誰にも教えない
• パスワードをメモしない(方がいい)
▫ やむを得ずメモする場合は
見せない・捨てない・失くさない
• 同じパスワードを使いまわさない
• パスワードは定期的に変更する
• 初期パスワードは迅速にログインしたうえで変更す
る
実習編では・・・
Linux をいじり倒す準備をする
• アカウント作成
▫ アカウント名
▫ 良いパスワード
• ログイン・ログアウト
• 簡単なコマンドの実行
• ディレクトリ階層構造の理解
▫ ディレクトリの移動
▫ カレントディレクトリの把握
▫ ファイルの指定 (絶対パス, 相対パス)
まとめキーワード
•
OS 関係
▫
▫
▫
•
OS
Linux
Linux ディストリビューション, Debian
データ管理
▫
▫
•
ファイル, ディレクトリ
絶対パス, 相対パス, チルダ(~)
アカウントシステム
▫
•
root
パスワード
▫
▫
クラッキング, ルートクラック, ソーシャルクラッキング
BFA, DA
参考文献(1)
• 日本ネットワークセキュリティ協会教育部会, 2009
情報セキュリティプロフェッショナル教科書, アスキー・メ
ディアワークス
• 林晴比古, 2004,
改訂 新 Linux/Unix 入門, ソフトバンククリエイティブ
• 橋本英勝, 2010,
基礎からのLinux 改訂版, ソフトバンククリエイティブ
参考文献(2)
• LinuxとFreeBSD等の違いを使用感から述べてみました
http://yatsute.s22.xrea.com/contents/article//everything/
pc/freebsd/etc/Linux%82%C6FreeBSD%81%95etc.pf
• GUIとCUI - 南野 輝
http://www2s.biglobe.ne.jp/~chic/tron008.html
• GUIとCUI(2) - 京都産業大学
http://www.cc.kyoto-su.ac.jp/~hirai/text/cui.html
参考文献(3)
• 情報実験第 2 回講義資料 最低限UNIX(1) UNIX における
パスワード - 高橋康人
http://www.ep.sci.hokudai.ac.jp/~inex/y2011/0422/lecture/
pub/
• 情報実験第 3 回講義資料 最低限UNIX(2) Linux 入門 山下 達也
http://www.ep.sci.hokudai.ac.jp/~inex/y2011/0506/lecture/
pub/
付録:Linux 内のアカウント情報
• 他の情報と同じくファイルとして保存
▫ 3つに分けて保存されている
• /etc/passwd
▫ アカウントの基本情報。閲覧制限なし
• /etc/shadow
▫ アカウントの暗号化済みパスワード情報。 root のみ
閲覧可。
• /etc/group
▫ グループの基本情報。閲覧制限なし
▫ グループについては最低限UNIX Ⅱ を参照
付録:ドットファイル(隠しファイル)
• ドットファイルの例
▫ .bashrc, .bash_profile, .emacs など
• ユーザの環境設定用ファイル
▫ “ . ” で始まるファイル
▫ 各ユーザのホームディレクトリ直下に存在
▫ ls (ファイル一覧表示コマンド) と打っただけでは表示
されない (ls –a と打つべし)
▫ 日本語環境の設定など
▫ 削除したり書き換えする際には慎重に ! !
▫ 実習編でも紹介
付録:”/”以下のディレクトリの役割(一部)
▫ /home : ユーザ用ディレクトリ
▫ 各ユーザのホームディレクトリを格納
▫ /usr : 各種プログラム用ディレクトリ
▫ カーネルソースや共有プログラムを格納
▫ /etc : システム管理用の各種設定ファイルを格納
▫ /proc : カーネルの動作情報を示す, 特殊なファイルを格納
その他にもたくさんあります
詳しくは実習編の発展のページで