CSRFèå¼±æ§å¯¾ç
CSRF対çã®tokenã¯ã»ãã·ã§ã³IDã§è¯ã
ã»ãã¥ãªãã£çã«ã¯ã³ã¿ã¤ã ãã¼ã¯ã³>ã»ãã·ã§ã³IDã§ã¯ãªãã
ã¨ãã話ãããã®è¾ºã®è¨äºã«æ¸ããã¦ãã¾ãã
高木浩光@自宅の日記 - クロスサイトリクエストフォージェリ(CSRF)の正しい対策方法
高木浩光@自宅の日記 - CSRF対策に「ワンタイムトークン」方式を推奨しない理由, hiddenパラメタは漏れやすいのか?
èã¯ããããäºã®ããã§ã
- tokenã¯å¤é¨ã®ãµã¤ãããç¥ãé£ã(å®è³ªç¥ãå¾ãªã)ãã®ã§ãªãã¨ãããªã
- ã»ãã·ã§ã³IDã¯cookieã«æ ¼ç´ããã
- document.cookieã¯èªãã¡ã¤ã³ã®ãã®ã¨è¦ªãã¡ã¤ã³ã®ãã®ããè¦ããªãâå¤é¨ãµã¤ãã§åããJavaScriptããã¯åç §ã§ããªã
- ã»ãã·ã§ã³IDã¯ãæå·å¦çã«å®å
¨ãªæ¬ä¼¼ä¹±æ°çæç³»ã§çæããã¦ããã¯ãã(å¼ç¨)
- æ¨æ¸¬ãäºå®ä¸ã§ããªã
- ã»ãã·ã§ã³IDã¯cookieã«æ ¼ç´ããã
è£è¶³ããã¨ãã»ãã·ã§ã³IDã使ç¨ããCSRF対çtokenãæ¼æ´©ãã¦ããç¶æ
(大ä½XSS)ã ã¨ã
- ã»ãã·ã§ã³ãã¤ã¸ã£ãã¯ãåºæ¥ã
- æ£è¦ã®ã¦ã¼ã¶ã¨åãããã«æä½ã§ãã
- èªã¿è¾¼ã¾ããJavaScriptã§ä»¥ä¸ã®ç¹°ãè¿ãã§è¡ããã¨ã§ãã»ãã·ã§ã³ãã¤ã¸ã£ãã¯ãããªãã¦ãä¸é£ã®ç»é¢é·ç§»ãåç¾ã§ãã
- XHRã§HTMLãåå¾ãã¹ã¯ã¬ã¤ãã³ã°ãtokenãåå¾
- 次ã®ç»é¢ã®HTMLãå¾ãããã®ãªã¯ã¨ã¹ãã«å¿ è¦ãªãã©ã¡ã¼ã¿ãããããã
ã®ã§ãã»ãã·ã§ã³IDãæ¼æ´©ãããç¶æ³ã ã¨ã¯ã³ã¿ã¤ã ãã¼ã¯ã³ããã·ãã·çªç ´ããã¾ãã
ã¯ã¦ãªã®CSRF対ç
はてな各サービスの CSRF 脆弱性対策について - はてなダイアリー日記
ããã¨è¦å
ç¨ã®è©±ã«æºæ ãã対çã«è¦ãã¾ããã
id:malaã®ææ(livedoor クリップ)ã«ããã¨åé¡ãããããã§ãã
å®ã¯å
ç¨ã®è©±ã¨ã¯æé»ã®åæã«éããããã®ã ã¨æãã¾ãã
ããããã1ãµã¤ã(=1Webããª)ã1ãã¡ã¤ã³ã«ã¤ãã1ã»ãã·ã§ã³IDã¨ããã®ãåæã«ãã¦ããã®ã§ãããã
ã¯ã¦ãªã®å ´åã¯ãã»ãã·ã§ã³IDã¯hatena.ne.jpã§è¨å®ããã¦ãã¦ã
ãã®ãµããã¡ã¤ã³ã®åãµã¤ãã§å
±æãã¦ãã¾ãã
1ãªã¯ã¨ã¹ãã§å®äºããå¦çãªããXSSèå¼±æ§ã®ããã¯ã¦ãªã®ã©ããã®ãµã¤ãããã
XSSèå¼±æ§ã®ãªãã¯ã¦ãªã®å¥ã®ãµã¤ãã«tokenä»ãã®ãªã¯ã¨ã¹ããé£ã°ãã¦å¼·å¶çã«å®è¡ã§ãã¦ãã¾ãã¾ãã
ãã¡ãããã»ãã·ã§ã³ãã¤ã¸ã£ãã¯ããã¦ãã¾ãã°tokenããµã¤ãéã§å
±æããã¦ãªãã¦ãã
ããããã§ãã¦ãã¾ãã¾ãããããã«ã¤ãã¦ã¯ããããäºã®ããã§ãã
ååãè£è¶³ãã¦ã¿ã
tokenã¯å¤é¨ã®ãµã¤ãããç¥ãé£ã(å®è³ªç¥ãå¾ãªã)ãã®ã§ãªãã¨ãããªã
â
tokenã¯(åä¸å£ä½ãéå¶ãã親ãã¡ã¤ã³ãåããµã¤ãã§ãã£ã¦ã)å¤é¨ã®ãµã¤ãããç¥ãé£ã(å®è³ªç¥ãå¾ãªã)ãã®ã§ãªãã¨ãããªã
ãã®ååãæºãããªãã¨ãXSSèå¼±æ§ã®ãããµã¤ãããå å¼ãµã¤ãã¸ã®ã«ã¸ã¥ã¢ã«ãªCSRFã¯æ¢ãããã¾ããããã¨ã
ã¯ã³ã¿ã¤ã ãã¼ã¯ã³ã使ãã¨ãã¦ãä¿åå ãå å¼ãµã¤ãã§å ±æãããã»ãã·ã§ã³å¤æ°ã§ããã°ã
- èå¼±æ§ã®ãããµã¤ãAã§ã¯ã³ã¿ã¤ã ãã¼ã¯ã³ã®hidden fieldãå«ããã¼ã¸ã®HTMLãXHRã§åå¾
- ã¹ã¯ã¬ã¤ãã³ã°ã§ã¯ã³ã¿ã¤ã ãã¼ã¯ã³ãåå¾
- èå¼±æ§ã®ãªãå å¼ãµã¤ãBã«å ç¨ã®ã¯ã³ã¿ã¤ã ãã¼ã¯ã³ãå«ããªã¯ã¨ã¹ããéä¿¡
ã¨ãã§ãã¡ããã®ã§ãçµå±ããã»ãã¥ãªãã£çã«ã¯ã³ã¿ã¤ã ãã¼ã¯ã³>ã»ãã·ã§ã³IDã§ã¯ãªãããã®ãåãã§ãããã¨ã