From: keiju@... (ÀÐÄÍ·½¼ù ) Date: 1997-04-10T15:24:06+09:00 Subject: [ruby-list:2751] Re: security model ã‘ã„ã˜ã‚…ï¼ SHLジャパンã§ã™. In [ruby-list :02742 ] the message: "[ruby-list:2742] Re: security model ", on Apr/10 11:36(+0200) matz@caelum.co.jp (Yukihiro Matsumoto) writes: >|汚れã¦ã„ã‚‹ãªã„ã«é–¢ã‚らãšãƒ•ァイルã¸ã®æ›¸ãè¾¼ã¿ã¯å¸¸ã«åˆ¶é™ã™ã‚‹å¿…è¦ã¯ãªã„ã® >|ã‹ãª? > >オープンã§ãã‚Œã°æ›¸ãè¾¼ã¿ã¯è‡ªç”±ã ã¨è€ƒãˆã¦ã„ã¾ã™ï¼Žã™ã§ã«ã‚ªãƒ¼ãƒ— >ンã—ã¦ã„ã‚‹ãƒ©ã‚¤ãƒ³ã«æ±šã‚ŒãŸæ–‡å­—列を書ã出ã™äº‹ã¯ç¦æ­¢ã—ãŸæ–¹ãŒè‰¯ã„ >ã“ã¨ã®ã§ã—ょã†ã‹? プログラムã«åŸ‹ã‚è¾¼ã¾ã‚Œã¦ã„る文字列(リテラル)ã¯æ–°ãŸã«ç”Ÿæˆã•れる文字列㨠ã—ã¦æ‰±ã‚れã¦ã„ã‚‹ã®ã‹ãª? ãれãªã‚‰å•題ãªã„ã‹ã‚‚知れãªã„. file = open(/tmp/foo) loop do file << "foo" end ã“ã®ãƒ—ログラムã§ã‚‚ã‚ã‚‹æ„味ã§ã¯å±é™ºã ã—... レベルãŒå¹¾ã¤ã«ãªã‚‹ã‹åˆ†ã‹ã‚‰ãª ã„ã‘ã©... >|ã‚ã¨, socket通信ãªã© ä¿¡é ¼ã§ãる相手ã¨ã®é€šä¿¡ã¯æ±šã‚Œãªãã§ãれã°ã„ã„ã‚“ã§ >|ã™ã‘ã©, ä¿¡é ¼ã§ãã‚‹ã‹ã©ã†ã‹åˆ¤æ–­ã§ããªã„ã‹ã‚‰ç„¡ç†ã§ã™ã‚ˆã­ãˆ... >ç„¡ç†ã§ã™ã­ï¼Žå®‰å…¨ãƒ¬ãƒ™ãƒ«ã®ä½Žã„スレッドã§é€šä¿¡ã—ã¦ï¼Œæ¸¡ã—ã¦ã‚‚らㆠ>ã—ã‹ãªã„ã§ã—ょã†ï¼Ž ã§ã™ã­ãˆ... >æ–‡å­—åˆ—ã®æ±šã‚Œã®ä¼æ¬ã«ä»˜ã„ã¦ã¯ã¾ã åŽ³å¯†ã«æ±ºã‚ã¦ã„ã¾ã›ã‚“.ã§ã‚‚, >ã‚ã‚“ã¾ã‚Šè¦ã‚‰ãªã„ã‹ãªã‚ã¨ã‚‚ãŠã‚‚ã£ã¦ã„ã¾ã™ï¼Ž >ã¨ã„ã†ã®ã‚‚,低ã„レベル(1ã¨ã‹2)ã¯setuidスクリプトã§ã®ã†ã£ã‹ã‚Š >ミスã®é˜²æ­¢ã®ãŸã‚ã§ã™ã‹ã‚‰ï¼Œã‚ã¾ã‚Šä¸€ç”Ÿæ‡¸å‘½ä¼æ¬ã—ãªãã¦ã‚‚良ã„よ >ã†ã«ã‚‚æ€ãˆã¾ã™(ã‚‚ã¡ã‚ã‚“dupã¨cloneã§ã¯ä¼æ¬ã—ã¾ã™). >高ã„レベルã§ã¯ãã®ã‚¹ãƒ¬ãƒƒãƒ‰å†…部ã§ç”Ÿæˆã•れる文字列全ã¦ãŒæ±šã‚Œã¦ >ã„ã¾ã™ã‹ã‚‰ï¼Œæ–‡å­—列æ“作ã«ã‚ˆã£ã¦ã§ããŸæ–°ã—ã„æ–‡å­—列も当然汚れ㦠>ã„ã‚‹ã‚ã‘ã§ï¼Œã“ã¡ã‚‰ã«ã¤ã„ã¦ã‚‚ã‚ã–ã‚ã–伿¬ã™ã‚‹å¿…è¦ã‚‚ãªã„æ°—ãŒã— >ã¾ã™ï¼Ž ã†ãƒ¼ã‚“. ãã†ãªã‚“ã§ã—ょã†ã‹? file = "ãれã„ãªæ–‡å­—列" $SAFE = 2 file.sub!(/^$/, "æ±šã‚ŒãŸæ–‡å­—列") sã¯æ–°ãŸã«ç”Ÿæˆã•ã‚ŒãŸæ–‡å­—列ã§ã¯ãªã„ã§ã™ãŒ, 明らã‹ã«æ±šã‚Œã¦ã„るよã†ã«è¦‹ãˆ ã‚‹ã‚“ã§ã™ãŒ?? >|ã‚ã¨, é–“æŽ¥çš„ã«æ–‡å­—列生æˆã®ã¨ã‚‚ãªã†, printf, << ãªã©ã¯ç¦æ­¢ã™ã‚‹å¿…è¦ãŒã‚ >|ã‚‹? >æ±šã‚ŒãŸæ–‡å­—列ã®å‡ºåŠ›ã¯ç¦æ­¢ã—ã¦ã„ã¾ã›ã‚“ã‹ã‚‰ï¼Œã“れã¯ç¦æ­¢ã—ã¦ã„ã¾ >ã›ã‚“. ã“ã®è¾ºã‚Šã¯å…ˆã«è¿°ã¹ãŸæ›¸ãè¾¼ã¿ã¨ã‹ã‚‰ã¿ã¾ã™ã‘ã©ã­... >|* 環境変数ã®è¨­å®šã‚‚ã“ã“ã«ãªã‚‹ã‹ãª? >環境変数ã¯ã‚­ãƒ¼ã‚‚値もãれã„ãªæ–‡å­—列ã®å ´åˆã«å¤‰æ›´ã§ãるよã†ã«ã— >よã†ã¨æ€ã£ã¦ã„ã¾ã—ãŸãŒï¼Œä¸€å®šã®ãƒ¬ãƒ™ãƒ«ä»¥ä¸Šã®æ™‚ã«ã¯å¤‰æ›´ãã®ã‚‚ã® >ã‚’ã§ããªãã—ãŸæ–¹ãŒè‰¯ã„ã§ã™ã‹ã­? 両方汚れã¦ã„ãªã„ãªã‚‰å•題ãªã„よã†ãªæ°—ãŒã—ã¾ã™. >レベル0(デフォルト) > 外部ã‹ã‚‰å¾—ãŸæ–‡å­—åˆ—ã¯æ±šã‚Œã¦ã„ã‚‹ >レベル1(setuidãƒã‚§ãƒƒã‚¯ãƒ¬ãƒ™ãƒ«) > æ±šã‚ŒãŸæ–‡å­—列ã§å±é™ºãªæ“作を行ã†äº‹ã¯ã§ããªã„ >レベル2 > ã•らã«ï¼Œã„ãã¤ã‹ã®å±é™ºãªæ“作(kill,fork)ã¯å…¨é¢ç¦æ­¢ >レベル3 > ã•らã«ï¼Œç”Ÿæˆã•ã‚ŒãŸæ–‡å­—列ã¯å…¨ã¦æ±šã‚Œã¦ã„ã‚‹ >レベル4(アプレットレベル) > ã•らã«ï¼Œã‚°ãƒ­ãƒ¼ãƒãƒ«å¤‰æ•°ã®å€¤ãŒå¤‰ãˆã‚‰ã‚Œãªã„ >ã“れãªã‚‰ARGVã®æ±šã‚Œã‚‚検出ã§ãã‚‹ã—,普段ã¯åˆ¶é™ç„¡ã—ã§å®Ÿè¡Œã§ãã >ã†ã§ã—ょ? ARGVã®ã‚ˆã”れã£ã¦æœ¬å½“ã«æ¤œå‡ºã™ã‚‹ç›®çš„ã«ã¤ã„ã¦ã§ã™ãŒ, 他プロセスã‹ã‚‰fork㧠呼ã°ã‚ŒãŸæ™‚ã«ã¯, 汚れã¦ã„ã‚‹å¯èƒ½æ€§ãŒã‚ã‚‹ã‹ã‚‰ã§ã™ã‹ã­? ã§ã‚‚, 良ã考ãˆã‚‹ã¨è‡ªåˆ†ã§ãã®ã‚³ãƒžãƒ³ãƒ‰ã«å¯¾ã—ã¦å¼•æ•°ã‚’æ¸¡ã™æ™‚ã¯æ±šã‚Œã¦ã„ãªã ã¦è‰¯ã„ã¨æ€ã†ã¨ã„ã†ã‹, 汚れられるã¨ä¸ä¾¿ãªæ™‚ãŒå¤šã„ãŒã™ã‚‹ã‚“ã§ã™ãŒ? セキュリティモデルã®ç›®çš„ãŒè‰¯ã分ã‹ã£ã¦ã„ãªã„ã®ã‹ãªã‚... ã“ã®ã‚»ã‚­ãƒ¥ãƒªãƒ†ã‚£ãƒ¢ãƒ‡ãƒ«ã¨ã¯ä½•ã®ãŸã‚ã®ã‚»ã‚­ãƒ¥ãƒªãƒ†ã‚£ãªã®ã§ã—ょã†ã‹? 確èªã§ã™ãŒ, ã“れã‹ã‚‰å®Ÿè¡Œã—よã†ã¨ã—ã¦ã„ã‚‹rubyã§æ›¸ã‹ã‚ŒãŸè‰¯ã分ã‹ã‚‰ãªã„プ ãƒ­ã‚°ãƒ©ãƒ ãŒæ‚ªã•ã‚’ã•ã›ãªã„ãŸã‚ã®ã‚‚ã®ãªã‚“ã§ã™ã‚ˆã­? 悪ã•==何ã‹? ã£ã¦ã®ã‚‚å• é¡Œã«ãªã‚Šã¾ã™ãŒ... * 情報を盗む * ãƒ•ã‚¡ã‚¤ãƒ«ã«æ›¸ã込む/改変 * OSã¸ã®æ‚ªå½±éŸ¿ ã“れらã«å¯¾ã—ã¦, ã©ã®ãƒ¬ãƒ™ãƒ«ã§ã©ã®ã‚ˆã†ãªåˆ¶é™ãŒè¨­ã‘られるã®ã‹ã‚’ã¯ã£ãり㕠ã›ãŸæ–¹ãŒè‰¯ã„ã®ã§ã¯? __ .....................................石塚 圭樹@SHLジャパン(æ ª)... ------------->アドレス変ã‚りã¾ã—ãŸ!! e-mail: keiju@shljapan.co.jp <----