Views
ソフトウェアの脆弱性
情報危機管理(2)
前回(12/15)の問題
- あなたがやってみたい大規模(長時間 or 大メモリー必要)計算問題を考えてそのために何が必要かを答えてください
例)π の計算、SETI、暗号解読、気候モデル etc
- 勘違いしている答え
- 宇宙にどれだけの星があるか
単位体積あたりの星の数がわかれば、宇宙の大きさを掛ければよい。
宇宙の大きさは、多分計算では求まらない。
- 宇宙にどれだけの星があるか
- 物足りない答え
- 何が必要か ... 知識
どんなことに関する知識ですか?
- 何が必要か ... 知識
- 物足りるような人になるように頑張りましょう。
話を戻して
- システム管理者として
- 情報危機管理には
- ソフトウェア脆弱性に対する対策が重要
脆弱性
- ぜいじゃくせい
- = Vulnerability
- 日本語で難しい漢字の言葉
- 英語ではラテン語/ギリシャ語起源が多い
- Vulnera = to wound (傷付ける)
- = 傷付きやすいこと
脆弱性とは
- 他のユーザ権限でコマンド実行できる
- データアクセス制限に反してそのデータを利用できる
- 他人になりすますことができる
- サービス拒否 (DoS: denial of service) ができる
- そのほか「情報漏えい」に繋がること
脆弱性情報
- JPCERT
- 有限責任中間法人 JPCERT コーディネーションセンター
- Japan Computer Emergency Response Team Coordination Center
- FIRST (Forum of Incident Response and Security Teams) のメンバー
具体例
- ...
SQL インジェクション
- Web 入力に SQL コマンド(の一部)を書く
- 例 誰でもWeb管理画面に入れる気前のいい会社
クロスサイトスクリプティング (1)
- JavaScript ... Web ブラウザで実行するプログラム
- たとえば、PC のファイルを読み出し、別のサイトに送る
- Mail とか FTP とか ...
- ということをさせないように、ブラウザがセキュリティチェック
- Windows アップデートをサボっている=やばい
- 怪しいサイトには行かない
クロスサイトスクリプティング (3)
- 怪しくないサイト(掲示板)で
- JavaScript を埋め込んだ投稿があったりする
- なので、掲示板(など)を開設する場合には、
- 埋め込まれないようにしないといけない!
バッファオーバフロー (1)
バッファオーバフロー (2)
- 残念ながら、君たちが
- 書いているような Cプログラムは
- たいがい、バッファオーバフローする
- 実例(fms で実演)~tkikuchi/edu/se2005/A
対策(開発者として)
- 文字列やバッファを使うときは、大きさに注意
- gets() でなく fgets() を使う
- scanf() でなく fgets() + sscanf() を使う
- printf() でなく snprintf() を使う
- C でなく Python を使う
対策(ユーザとして)
- Windows Update を忘れずに実行
- 他の OS (Unix, Mac) でも同様
- ネットワークアプリケーションはオープンソース
- 最新バージョンに更新
- セキュリティ情報を入手 (JPCERT/CC)
問題
- (1) 次の漢字によみがなをつけなさい
脆弱性
- (2) ソフトウェアの脆弱性の原因をひとつ挙げなさい