ウィリアムのいたずらの、まちあるき、たべあるき

ウィリアムのいたずらが、街歩き、食べ物、音楽等の個人的見解を主に書くブログです(たま~にコンピューター関係も)

「セキュア・プログラミング講座」にいってきた!

2013-06-28 19:41:13 | ネットワーク
セキュア・プログラミング講座(Webアプリケーション編)ブートアップセミナー
(NIIで開催)にいってきた!
その内容をメモメモ



・IPAのセキュア公開資料
  脆弱性を前倒しで論点を挙げている
  やさしい論点が後になる

■導入:HTTPプロトコル
・Webアプリケーション
  まあ、せつめいしなくてもいい

・使われるプログラミング言語の例
 サーバー
  RoRに刺激されCake,Django・・・
 クライアント
  Dart,TypeScript
  JQuery
 大きなことが抜けている

・攻撃は通信から入ってくる
 HTTPプロトコル

・HTTPの通信を観察する
  ローカルプロキシ:リクエストの監視、改変
   DWASP・ZAP・Fiddlerなど

・HTTP通信の観察
 MIMEメッセージの一種

・POSTメソッド

・舞台裏は単純なテキストのやり取り
 →いくらでも捏造、改変できる




■SQLインジェクション:シンプルな攻撃
・攻撃の流れ
  入力パラメータにSQL文字列を使い、データを破壊する
・被害
  DBの中身を読み出される
  定義も
  RDBSの種類、バージョンがわかる
  情報の改ざん→データ破壊
  サーバーのっとり

・やりかた
  パスワードを' or 'a'='a とする

・悪さをする特殊企業
  '
  ;
スペース  SQLサーバー
-- コメント
\ 特殊記号:エスケープを乗り越える

・対策
 SQL文の発行を半自動化してくれる道具を使う
   よい道具
     O/Rマッパ
     言語に統合されたクエリ(LINQ、PL/SQL)
     プリペアド・ステートメント

   次善の策
     特殊記号をエスケープする

・O/Rマッパー
   RoR ActiveRecord
   Grails GORM
   Cake Model
   Spring S2JDBC,Hiberneta
 
・SQL注入のポイント
  SQL文を発行してデータベースへアクセス
  SQLの構文を攻撃者にいじられない




■スクリプト注入
 ブラウザ側を攻撃
・典型的にはXSS
  HTMLの文字列を貼り付けられると、
・偽ページ:
 セッションのっとり

・攻撃方法

・攻撃パターン
  スタイルタグなどもあぶない:いろいろな手口

・対策1:scriptタグを抑止
 対策2:URL属性の無害化

・バリエーション
  蓄積されたデータ内
  DOM型(AJAX)




■セッションメカニズムとユーザー認証について
・HTTPはステートレス
 セッションで
 セッションID運び方3種類
   URLリライティング
   POSTデータ
   クッキー




■セッションハイジャック
・SSLで暗号化していても、セッションハイジャックは
 起こる可能性はある
  →証明書を使わない限り、なりすましはできる

・被害
  なんでもできる
   金銭被害
   情報漏えい
   業務妨害

・悪い例
  ある種のフレームワーク
   ログイン前とログイン後で同じセッションIDを使っている場合
  「推測」への対応
    →処理系が作ってくれるので、それを使う
     ログイン、ユーザー認証成功のたびに異なる値を使う
  「奪取」の対応
    SSLなどを使う
    Cookieにセキュア属性
    Cookieの寿命を短くする
    ログイン成功時のCookieを発行しなおす

・セッションハイジャックのポイント
  発行と運用にかかわる
  他人が入ってくる
  対策:「推測」されない「奪取」されない

■セッションフィクセーション
(セッションIDのお膳立て)

・攻撃の流れ
 攻撃者はCookieを取得し、
 ユーザーにそのCookieを送りつけると
 攻撃者が知っているCookieでログインすることになる
   →付け替えないから

 あとは、セッションハイジャックと同じ

・対策
 ログインしたとき、新しいセッションIDにする




■アクセス認可の実装
・失敗パターン
 メニューにないページにアクセスできる
   URLをたたくと画面が出てくる
 他者の所有データにアクセスできる
   IDに連番のキーの場合
・対策
  ページごとに、保護するロジック
  オブジェクトのオーナーを確かめる

・より一般的:PEP
 保護すべきもの:Webページ
 問い:今ログインしているユーザーは
    その対象へアクセスする権限をもつか




■ほかの論点
・セキュア・プログラミング講座
 Webアプリケーション編
 に書いてある

  要件定義で考えないといけないもの
  設計でもいいもの
  実装でも間に合うもの


クロスサイト リクエスト フォージェリー
正常
 サーバーが送りだす→ブラウザが操作→サーバ書き込み

問題
 悪さサイトが送り出す→ブラウザが操作(しなくてもいい)→サーバーX

XSSとの違い
 クロスサイト リクエスト フォージェリーはサーバーに入ったところで悪さ
 XSSは、サーバーに入った後、ブラウザで悪さする
 
Cookieを他者がみる
document.cookie
ここに代入されてしまうと、Cookieを入れられてしまう。
 ところが、HTTPレスポンスにsecureをつけると、だいにゅうできない。

ところがPHPは(WebSphereも)、
ブラウザからセッションIDを使えた(セッションあだぷしょん)。
→悪いヒトが、セッションIDを送りつけると・・・

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

ユーザーストーリーと知識地図とUML

2013-06-28 15:28:17 | 開発ネタ
アジャイルで要求を抽出する場合を考える。
この場合、ユーザーストーリーなどが使われることが考えられる。
しかし、すべてのユーザー(ステークホルダー)のシナリオが挙げられているか、
また、そのシナリオ間の関係(順序や並行作業など)が、正しく考慮されているか
という点は、ユーザーストーリーだけをみていてはわからない。

インセプションデッキの中で、ステークホルダーは分析される。
そこで、それらの人々、それぞれのユーザーストーリーを作ることになる。




このステークホルダーの広がりを書いたものがマップであり、
各ステークホルダーのユーザーストーリーを書いたものがシナリオとすると、
これは、まさに、知識地図となる。




 そして、UMLの枠組みで考えると、
インセプションデッキでステークホルダーを出すところは、
ユースケース図に相当する
(ステークホルダー→アクター)

そして、ユーザーストーリーをシナリオとして書くには、
アクティビティ図を使うことになる。
ステークホルダー(アクター)ごとにスイムレーンをわけ、
それぞれのユーザーストーリーを書いていくことになる。

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

グーグル、アンドロイド搭載ゲーム機を開発―今秋発売か

2013-06-28 13:50:07 | Weblog
グーグルは、ハードメーカーになろうとしているのか?


グーグル、アンドロイド搭載ゲーム機を開発―今秋発売か
http://headlines.yahoo.co.jp/hl?a=20130628-00000389-wsj-bus_all


  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

6月27日(木)のつぶやき

2013-06-28 04:26:53 | ネットワーク

「PMがうさみみ付けて円陣組む?-アジャイルの方法論のまぜまぜの仕方」 goo.gl/SXCC1


税抜き合計に5%を掛けて消費税とし、それらを足して合計金額としたプログラムは、税率変更だけでは済まなくって、大幅修正が必要かも! goo.gl/0Z99E

1 件 リツイートされました

1番仲の良いランキング
1位@dagjmpd
2位@_mason_x
3位@dentomo

→ goo.gl/uakWi
あなたのランキングもチェック? pic.twitter.com/B2yXLAUr2E



  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする