ÃÑ ÆäÀÌÁö ¼ö : 3224
![]()
|
Facebook Joinc ±×·ì
Joinc QA »çÀÌÆ®
ÇöÀçÀ§Ä¡ : article>¾ÈÀüÇÑ_ÇÁ·Î±×·¡¹Ö
![]()
Tweet
joinc´Â Firefox¿Í chrome¿¡¼ Å×½ºÆ® Çß½À´Ï´Ù. IE¿¡¼´Â Å×À̺íÀÌ ±úÁö°Å³ª À̹ÌÁö°¡ º¸ÀÌÁö ¾ÊÀ» ¼ö ÀÖ½À´Ï´Ù. ƯÈ÷ ±¸±Û DocsÀ̹ÌÁöÀÇ °æ¿ì ¿¢¹Úó¸®µÉ ¼ö ÀÖ½À´Ï´Ù.
Docbook ¿ø¹®
¾ÖÇø®ÄÉÀÌ¼Ç °³¹ß½Ã º¸¾È¹®Á¦ ÇÇÇϱâÀ± »ó¹è dreamyun@yahoo.co.kr
1절. ¼Ò°³ÀÌ ¹®¼´Â Avoiding security holes when developing an application¸¦ linuxfocusÀÇ ¹®¼¸¦ Âü°í Çß´Ù. ÄÄÇ»ÅͽýºÅÛÀ» ¿î¿µÇϴµ¥ ÀÖ¾î¼ ÇöÀç °¡Àå Áß¿äÇÑ À̽´´Â º¸¾È¹®Á¦ÀÏ °ÍÀÌ´Ù. º¸¾È ¹®Á¦°¡ ¹ß»ýÇÏ´Â ÀÌÀ¯´Â Çã¶ôÇÏÁö ¾ÊÀº »ç¿ëÀÚ°¡ ½Ã½ºÅÛÀÇ ÀÚ¿øÀ» Á¢±ÙÇÏ·Á´Âµ¥¿¡¼ ¹ß»ýÇÏ°Ô µÈ´Ù. ÀÌ»óÀûÀ¸·Î º¸ÀÚ¸é ¿î¿µÃ¼Á¦°¡ ¿Ïº®ÇÏ°í ±× ¿î¿µÃ¼Á¦ÇÏ¿¡¼ µ¹¾Æ°¡´Â ¼ÒÇÁÆ®¿þ¾î¿¡ ¾î¶°ÇÑ °áÇÔµµ Á¸Àç ÇÏÁö ¾Ê´Â´Ù¸é º¸¾È¹®Á¦°¡ ¹ß»ýÇÒ ¾î¶°ÇÑ ÀÌÀ¯µµ ¾ø°ÚÁö¸¸, ¾ÈŸ±õ°Ôµµ ¿ÏÀüÇÑ ¿î¿µÃ¼Á¦¿Í ¿ÏÀüÇÑ ÇÁ·Î±×·¥Àº Á¸ÀçÇÏÁö ¾Ê´Â´Ù. (¿î¿µÃ¼Á¦ ¿ª½Ã ÇÁ·Î±×·¥ÀÇ ÀÏÁ¾ÀÌ´Ù) ÀÌ·± ÀÌÀ¯·Î ƯÁ¤ ÇÁ·Î±×·¥ÀÇ °áÇÔÀ» ã¾Æ¼ ¹ß»ý°¡´ÉÇÑ º¸¾È¹®Á¦¸¦ ¹Ì¿¬¿¡ ¹æÁöÇÏ´Â ±â¼úÀº ¸Å¿ì Áß¿äÇÏ´Ù°í ÇÒ ¼ö ÀÖ´Ù. ÇÁ·Î±×·¡¸ÓÀÇ °æ¿ì °¡´ÉÇÑÇÑ ÀÌ·¯ÇÑ °áÇÔÀÌ ¹ß»ýÇÏÁö ¾Êµµ·Ï ¾î¶² "±ÔÄ¢"À» °¡Áö°í ÇÁ·Î±×·¡¹ÖÀ» ÇØ¾ßÇÑ´Ù. º¸¾È¹®Á¦¿¡ ¾à°£ÀÇ °ü½ÉÀ» °¡Áö°í ÀÖ´Ù¸é, °ÅÀÇ ¸ÅÀÏ º¸¾È°áÇÔÀÌ ¹ß»ýÇÑ ÇÁ·Î±×·¥°ú ÀÌ·¯ÇÑ °áÇÔÀÌ ½Ã½ºÅÛ¿¡ ¹ÌÄ¡´Â ¿µÇâ ÀÌ·¯ÇÑ °áÇÕÀ» Á¦°ÅÇϱâ À§ÇÑ ÆÐÄ¡°¡ ¹ßÇ¥µÇ°í ÀÖÀ½À» ¾Ë¼ö ÀÖ´Ù. ÀÌ·¯ÇÑ º¸¾È °áÇÔÀ» º¸¸é ÇÁ·Î±×·¡¸ÓÀÇ »ç¼ÒÇÑ ºÎÁÖÀÇ¿Í À߸øµÈ ÄÚµù ½À°üµî¿¡ ±âÀÎÇÑ Á¡ÀÌ ¸¹À¸¸ç ¾à°£ÀÇ ÇнÀÀ» ÅëÇØ¼ ¸¹Àº ¼öÀÇ °áÇÔÀ» ÁÙÀÏ ¼ö ÀÖ´Ù. À̹ø ¹®¼¿¡¼´Â ÀÏ¹Ý ¾ÖÇø®ÄÉÀ̼ÇÀÇ ÀÛ¼º¿¡¼ ¹ß»ýÇϱ⠽¬¿î ¹®Á¦Áß ±ÇÇÑ(privileges)°ú °ü·ÃµÈ ³»¿ë°ú ¿ÜºÎ ¸í·É¾î ½ÇÇà¿¡ ´ëÇØ¼ ¾Ë¾Æ º¸µµ·Ï ÇϰڴÙ. 2절. ±ÇÇÑ(SUID) °ü·ÃUnix½Ã½ºÅÛÀÇ °æ¿ì ¸ðµç À¯Àú°¡ µ¿ÀÏÇÏ°Ô Ãë±ÞµÇÁö ¾ÊÀ¸¸ç, °íÀ¯ÀÇ ±ÇÇÑÀ» °¡Áö¸ç ÇØ´ç ±ÇÇѳ»¿¡¼ Çൿ¿¡ Á¦¾àÀ» ¹Þ°Ô µÈ´Ù. ÀÌ·¯ÇÑ ÇൿÀº ÆÄÀÏÀ» »èÁ¦Çϰí, ¿Å±â°í, ÆíÁýÇϰųª ½Ã½ºÅÛ¼³Á¤À» ¹Ù²Ù´Â µîÀÇ ÀÛ¾÷ÀÌ µÈ´Ù. ¸¶Ä¡ ¿µÈ ¸ÞÆ®¸¯½º¿¡¼ ¿ä¿ø ½º¹Ì½ºÀÇ ÇൿÀÌ ¸ÞÆ®¸¯½º³»¿¡¼ Á¦ÇÑÀ» ¹Þ´Â °Í°ú °°´Ù. Unix½Ã½ºÅÛ¿¡ µî·ÏµÈ ¸ðµç À¯Àú´Â yundream, yungum°ú °°Àº ÀÚ½ÅÀÇ À̸§À» °¡Áø´Ù. ±×·¯³ª ÀÌ·¯ÇÑ ¹®ÀÚ¿·Î µÈ À¯ÀúÀ̸§Àº Àΰ£ÁöÇâÀûÀ̱ä ÇÏÁö¸¸ ÄÄÇ»ÅÍ ÀÔÀå¿¡¼ ºÃÀ»¶§´Â »ç¿ëÇϱⰡ ±×¸® ÁÁÁö ¾Ê´Ù. ±×·¡¼ À̸§°ú ¸ÊÇεǴ intÇüÀÇ (À¯ÀÏÇÑ)°íÀ¯¹øÈ£¸¦ ÇÒ´çÇÑ´Ù. ÀÌ·¯ÇÑ °íÀ¯ ¹øÈ£¸¦ UID(User Identifier)¶ó°í ÇÑ´Ù. À̵é À¯ÀúÁ¤º¸´Â /etc/passwd ÆÄÀÏ¿¡ ÀúÀåµÈ´Ù. ÀÌÁß UID 0À» °¡Áö´Â À¯Àú°¡ Àִµ¥ À̸¦ rootÀ¯Àú¶ó°í ÇÏ¸ç ½Ã½ºÅÛ¿¡ ´ëÇÏ¿© Ưº°ÇÑ ±ÇÇÑÀ» °¡Áö¸ç ¾î¶°ÇÑ Á¦Çѵµ °¡ÁöÁö ¾Ê´Â´Ù. rootÀ¯Àú´Â ¸ðµç ÆÄÀÏ¿¡ ´ëÇØ¼ "Àбâ", "¾²±â", "½ÇÇà"ÀÇ ¿ÏÀüÇÑ ±ÇÇÑÀ» °¡Áö¸ç ÀåÄ¡¿¡ ´ëÇØ¼µµ ÀÏüÀÇ ±ÇÇÑ - ¸¶¿îÆ®, ¾ð¸¶¿îÆ®, ÀÌ´õ³Ý Ä«µåÀÇ ÁÖ¼ÒÇÒ´çµî°ú °°Àº - ºÎ¿© ¹Þ´Â´Ù. À̿ܿ¡µµ ¿î¿µÃ¼Á¦ÀÇ ¿î¿µ°ú °ü·ÃµÈ (¹°¸®Àû, ½º¿Ò)¸Þ¸ð¸®¿¡ ´ëÇÑ Á¶Á¤, °¢ ÇÁ·Î¼¼½º¿¡ ´ëÇÑ ¿ì¼±±ÇºÎ¿©, ÇÁ·Î¼¼½º¿¡ ´ëÇÑ ½Ã±×³Î ¹ß»ýµîÀÇ ÀÓ¹«¸¦ ¼öÇàÇÒ ¼öµµ ÀÖ´Ù. ÇѸ¶µð·Î ¸ðµçÀÏÀ» ÇÒ ¼ö Àִ Ư¼öÇÑ À¯Àú¶ó°í º¸¸é µÈ´Ù. ÀÏ´Ü À¯Àú°¡ ½Ã½ºÅÛ¿¡ ·Î±×ÀÎ Çϸé À¯Àú´Â °¢Á¾ ¸í·É¾îµéÀ» ÅëÇØ¼ ¿©·¯°¡Áö ÀÛ¾÷À» ¼öÇàÇÏ°Ô µÈ´Ù. À̶§ ÀÌµé ¸í·É¾îÀÇ ¼öÇà¹üÀ§´Â ½ÇÇàµÈ À¯ÀúÀÇ ±ÇÇÑ¿¡ µû¶ó¼ º¯ÇÏ°Ô µÈ´Ù. ÀÌ·¸°Ô µÇ¹Ç·Î½á ÀÚ½ÅÀÇ ±ÇÇÑ ¹Û¿¡ ÀÖ´Â ÀÛ¾÷(´Ù¸¥ À¯ÀúÀÇ ÆÄÀÏ »èÁ¦¿Í °°Àº)À» ¼öÇàÇϰíÀÚ ÇÏ´õ¶óµµ ±ÇÇѹ®Á¦·Î ¿øÇÏ´Â ÀÛ¾÷À» ÇÒ ¼ö ¾ø°Ô µÈ´Ù. ÀÌ·¸°Ô À¯Àúº°·Î ±ÇÇÑÀ» µÒÀ¸·Î½á ¿©·¯¸íÀÌ µ¿½Ã¿¡ ÀÛ¾÷ÇÏ´Â À¯´Ð½º ½Ã½ºÅÛ¿¡¼ ÀÚ½ÅÀÇ ¿µ¿ªÀ» ħ¹ü¹ÞÁö ¾Ê°í ÀÛ¾÷À» ¼öÇàÇÒ ¼ö ÀÖ´Ù.
ÀÌ·¸°Ô ÀÚ½ÅÀÇ À¯Àú±ÇÇÑÀ» ÅëÇØ¼ ÀÛ¾÷À» ÇÏ°Ô µÇ¾ú´Âµ¥, ¶§¶§·Î ´Ù¸¥ À¯ÀúÀÇ ±ÇÇÑÀ¸·Î ÀÛ¾÷À» ÇØ¾ß Çϰųª ȤÀº ½´ÆÛÀ¯Àú±ÇÇÑÀÇ ÀÛ¾÷À» ÇØ¾ßµÉ °æ¿ì°¡ ¹ß»ýÇÑ´Ù. ÀÌ·²°æ¿ì ¿ì¸®´Â su¿Í °°Àº ÇÁ·Î±×·¥À» ÀÌ¿ëÇØ¼ ½ºÀ§Äª À¯Àú(switching user)ÇÏ°Ô µÈ´Ù. ¾ð¶æ su¸¦ ÀÌ¿ëÇØ¼ ½ºÀ§Äª À¯ÀúÇÏ´Â °ÍÀº ´ÜÁö ¿Ã¹Ù¸¥ ÆÐ½º¿öµå¸¦ ÀÔ·ÂÇÏ´Â Á¤µµ·Î ³¡³¯ °ÍÀ¸·Î »ý°¢ µÉ ¼ö ÀÖÁö¸¸ ½ÇÀº ±×¸® °£´ÜÇÑ ¹®Á¦°¡ ¾Æ´Ï´Ù. ±âº»ÀûÀ¸·Î ¾ÖÇø®ÄÉÀ̼ÇÀÇ ½ÇÇà±ÇÇÑÀº ½ÇÇà½ÃŲ À¯Àú¿¡ µû¶ó Á¦ÇÑ µÇ¹Ç·Î ÀϹÝÀ¯Àú°¡ ¾ÖÇø®ÄÉÀ̼ÇÀ» ½ÇÇà ½ÃÄ×À» °æ¿ì °áÄÚ ´Ù¸¥ À¯ÀúÀÇ ±ÇÇÑÀ» ȹµæÇÒ ¼ö ¾ø°ÔµÈ´Ù. ´ç¿¬È÷ su¸¦ ½ÇÇà ½ÃŰ°í ÆÐ½º¿öµå¸¦ ¿Ã¹Ù¸£°Ô ÀÔ·ÂÇß´Ù°í ÇØ¼ ´Ù¸¥ À¯Àú ±ÇÇÑÀ» ¾òÀ» ¼ö ÀÖ°Ô µÇ´Â °Ç ¾Æ´Ï´Ù. ÀÌ·± ¹®Á¦¸¦ ÇØ°áÇϱâ À§Çؼ À¯´Ð½º´Â Àá½Ã µ¿¾È "Àӽ÷Î"´Ù¸¥ À¯Àú ±ÇÇÑÀ¸·Î ÇÁ·Î±×·¥À» ½ÇÇà½Ãų ¼ö ÀÖµµ·Ï ½ÇÇàÆÄÀÏÀÇ ±ÇÇÑÀ» Á¶Á¤ÇÒ ¼ö ÀÖµµ·Ï Áö¿øÇÑ´Ù. ³»°¡ ºñ·Ï su¸¦ ÀϹÝÀ¯Àú ±ÇÇÑÀ¸·Î ½ÇÇà½ÃÄ×´Ù°í ÇÏ´õ¶óµµ ½´ÆÛÀ¯Àú°¡ su¸¦ ½ÇÇà½ÃŲ°Í°ú °°Àº È¿°ú(effect)¸¦ ÁÖµµ·Ï ¾ÖÇø®ÄÉÀ̼ÇÀÇ ½ÇÇà±ÇÇÑÀ» Á¶Á¤ÇØ ÁÙ ¼ö ÀÖ´Ù´Â ¶æÀÌ´Ù. ÀÌ·¯ÇÑ ±ÇÇÑÀ» Effectiv UID¶ó°í ÇÑ´Ù. ls¸¦ ÅëÇØ¼ suÀÇ ±ÇÇÑÀ» È®ÀÎÇØ º¸ÀÚ
±×·³ SUIDÀÇ Å×½ºÆ®¸¦ À§Çؼ °£´ÜÇÑ ÇÁ·Î±×·¥À» Çϳª ¸¸µé¾î º¸µµ·Ï ÇÏÀÚ. 2.1절. SUID ¿¹Á¦ ÇÁ·Î±×·¥¸¸µé°íÀÚ ÇÏ´Â ÇÁ·Î±×·¥Àº °£ÀÌ suÇÁ·Î±×·¥ÀÌ´Ù À̸§Àº jsu·Î ÇϰڴÙ. ÇÁ·Î±×·¥ÀÌ ÇÏ´Â ÀÏÀº setuid(2)¸¦ ÀÌ¿ëÇØ¼ ½´ÆÛÀ¯Àú ±ÇÇÑÀÇ È¹µæÀ» ½ÃµµÇϰí execl(3)À» ÀÌ¿ëÇØ¼ ½©À» ½ÇÇà ½ÃŲ´Ù. ÄÚµå´Â °£´ÜÇϹǷΠ¼³¸íÀº ÁÖ¼®À¸·Î ´ë½Å ÇÏ´Ù·Ï ÇÑ´Ù. ¿¹Á¦ : jsu.c
2.2절. SUIDÀÇ ¹®Á¦Á¡À§ ÇÁ·Î±×·¥Àº Ä¡¸íÀûÀÎ ´ÜÁ¡À» °¡Áö°í ÀÖ´Ù. ±×°ÍÀº SUID°¡ Àû¿ëµÈ ½´ÆÛÀ¯Àú ¼ÒÀ¯ÀÇ ¾ÖÇø®ÄÉÀ̼ÇÀ» ½ÇÇà½Ãų °æ¿ì ¾Æ¹«·± Á¦Àç »çÇ× ¾øÀÌ ½´ÆÛÀ¯ÀúÀÇ ±ÇÇÑÀ» ¾òÀ» ¼ö ÀÖ´Ù´Â Á¡ÀÌ´Ù. ¹°·Ð ÀÌ·¯ÇÑ ¹®Á¦ÀÇ °æ¿ì ÇØ´ç ±ÇÇÑÀ» ¾ò±â À§Çؼ su¿Í °°ÀÌ ÆÐ½º¿öµå ÀÔ·Â °úÁ¤À» °ÅÄ¡°Ô ÇѴٰųª ½´ÆÛÀ¯Àú·Î ÀÛµ¿ÇÏ´Â Äڵ带 ÃÖ¼ÒÈÇÏ´Â ¹æ¹ýµîÀ» »ç¿ëÇϱâ´Â ÇÏÁö¸¸ SUIDÀÚü°¡ ¸Å¿ì ½Ã½ºÅÛ °ü¸®Àû Ãø¸é¿¡¼ ¸Å¿ì À§ÇèÇÒ ¼ö ÀÖ´Ù. ±×·¡¼ ½Ã½ºÅÛ °ü¸®ÀÚ´Â SUID°¡ ÀÖ´Â ÇÁ·Î±×·¥¿¡ ´ëÇØ¼ ¸Å¿ì ¹Î°¨ÇÏ°Ô ¹ÝÀÀÇÏ¸ç ¸¹Àº °æ¿ì cronµîÀ» ÅëÇØ¼ SUIDÀÇ ÇÁ·Î±×·¥ÀÌ ÀÖ´ÂÁö Áö¼ÓÀûÀ¸·Î È®ÀÎÇÑ´Ù. ½Ã½ºÅÛÀÌ ´©±º°¡ÀÇ Ä§ÀÔÀ» ¹ÞÀº ÈçÀûÀÌ ÀÖÀ» °æ¿ì SUID°Ë»ç´Â Çʼö ÀûÀ¸·Î ÀÌ·ç¾îÁø´Ù.
±×·¯³ª ÀÌ·¯ÇÑ ¹®Á¦Á¡¿¡µµ ºÒ±¸Çϰí su, ping°ú °°ÀÌ ¹Ýµå½Ã ÇÊ¿äÇÑ °æ¿ìµµ ÀÖÀ¸¹Ç·Î °¡´ÉÇϸé SUID¸¦ »ç¿ëÇÏÁö ¾Êµµ·Ï Çϸé ÇÊ¿äÇÒ °æ¿ì ÃÖ´ëÇÑ ¾ÈÀüÇÏ°Ô ÄÚµùÇϵµ·Ï ÇØ¾ßÇÑ´Ù.
½Ã°£ÀÌ µÈ´Ù¸é À§ÀÇ ¿¹Á¦¸¦ ÆÐ½º¿öµå üũ°¡ °¡´ÉÇϵµ·Ï º¯°æÇØ º¸±â ¹Ù¶õ´Ù. 3절. ¿ÜºÎ ¸í·É¾îÀÇ ½ÇÇàÇÁ·Î±×·¥À» ÀÛ¼ºÇÏ´Ù º¸¸é Á¾Á¾ ¿ÜºÎÀÇ ´Ù¸¥ ÇÁ·Î±×·¥À» ½ÇÇà½ÃÄÑ¾ß ÇÒ °æ¿ì°¡ ¹ß»ýÇÑ´Ù. °¡Àå ÈçÇÑ ¿¹´Â ÇÁ·Î±×·¥³»¿¡¼ ¸ÞÀÏÀ» Àü¼ÛÇϱâ À§Çؼ ¿ÜºÎ ÇÁ·Î±×·¥ÀÎ mailÀ» ½ÇÇàÇÏ´Â °æ¿ì°¡ µÉ °ÍÀÌ´Ù. ÀÌ·² °æ¿ì °¡Àå À¯¿ëÇÏ°Ô »ç¿ëÇÏ´Â ÇÔ¼ö´Â system(3)ÇÔ¼ö ÀÌ´Ù.
3.1절. À§ÇèÇÑ system()ÇÔ¼öÀÇ »ç¿ësystem()ÇÔ¼öÀÇ ±Ùº»ÀûÀÎ ¹®Á¦Á¡Àº ¿ÜºÎ ÇÁ·Î±×·¥À» ½ÇÇà½Ã۱â À§Çؼ ½©À» »ç¿ëÇϴµ¥ ½©ÀÌ È¯°æº¯¼öÀÇ ¿µÇâÀ» Å©°Ô ¹Þ´Â ´Ù´Â Á¡ÀÌ´Ù. ¿¹¸¦µé¾î ¿ì¸®°¡ system()ÇÔ¼ö¸¦ È£ÃâÇÏ¿© mailÇÁ·Î±×·¥À» ½ÇÇà½Ã۸é system()ÇÔ¼ö´Â ³»ºÎÀûÀ¸·Î »ç¿ëÀÚ ½©À» È£ÃâÇÏ¿©¼ ÀÎÀÚ·Î mailÀ» ½ÇÇà½ÃŲ´Ù. ÇöÀç »ç¿ëÀÚ ½©ÀÌ bash¶ó°í ÇÑ´Ù¸é system("mail yundrema < test.c");´Â sh -c mail yundream < test.c ¿Í °°Àº ¹æ½ÄÀ¸·Î È£ÃâµÈ´Ù. ¾ð¶æ º¸±â¿£ º°·Î ¹®Á¦°¡ µÉ°Í °°Áö ¾ÊÁö¸¸ ¾à°£ÀÇ Æí¹ýÀ» ÀÌ¿ëÇÏ¸é ¾î·ÆÁö ¾Ê°Ô mailÇÁ·Î±×·¥ ´ë½Å ÀÚ½ÅÀÌ ÀÛ¼ºÇÑ ´Ù¸¥ ÇÁ·Î±×·¥À» ½ÇÇà½Ã۵µ·Ï ÇÒ ¼ö ÀÖ´Ù. ½©¿¡¼ ½ÇÇà½Ãų ÇÁ·Î±×·¥ÀÇ Ã£±â °æ·Î´Â ȯ°æº¯¼ö PATHÀÇ °æ·Î¸¦ µû¸£°Ô µÈ´Ù. ¸¸¾à ȯ°æº¯¼ö PATHÀÇ °ªÀ» ¾à°£¸¸ ¹Ù²Ù°Ô µÈ´Ù¸é, ¿ø·¡ ½ÇÇàµÇ¾î¾ßÇÏ´Â mailÇÁ·Î±×·¥ ´ë½Å ´Ù¸¥ ÇÁ·Î±×·¥ÀÌ ½ÇÇàµÇµµ·Ï º¯°æÇÒ ¼ö ÀÖ´Ù. ¿øÇÏ´Â ÇÁ·Î±×·¥ ´ë½Å ¾û¶×ÇÑ ÇÁ·Î±×·¥ÀÌ ½ÇÇàµÉ ¼ö ÀÖ´Ù´Â ÀÚü°¡ Å«¹®Á¦ÀÏ »Ó´õ·¯ ¸¸¾à ÇÁ·Î±×·¥ÀÌ SUID»óÅ¿¡¼ ½ÇÇàµÈ´Ù¸é ½É°¢ÇÑ º¸¾È ¹®Á¦¸¦ ¹ß»ý ½Ãų ¼öµµ ÀÖ´Ù. system()ÇÔ¼öÀÇ »ç¿ëÀÌ Á¤¸» À§ÇèÇÑÁö È®ÀÎÇØ º¸±â À§Çؼ °£´ÜÇÑ ÇÁ·Î±×·¥À» ¸¸µé¾î Å×½ºÆ® ÇØº¸µµ·Ï ÇϰڴÙ. ÀϹÝÀûÀ¸·Î cdromÀ» ¸¶¿îÆ® ½Ã۱â À§Çؼ´Â ½´ÆÛÀ¯Àú ±ÇÇÑÀÌ ÇÊ¿ä·Î Çϴµ¥ ÁÖ·Î ÀϹÝÀ¯Àú¸¦ ÅëÇØ¼ ¸®´ª½º¿¡ Á¢±ÙÇØ¼ ÀÛ¾÷À» ÇÑ´Ù¸é ¸¶¿îÆ® ½Ã۱â À§Çؼ ½ºÀ§Äª À¯ÀúÇÏ´Â°Ô ¹ø°Å·Î¿î ÀÛ¾÷ÀÌ µÉ ¼öµµ ÀÖ´Ù. ±×·¡¼ SUID¼³Á¤À» ÇØ¼ ÀÏ¹Ý À¯Àúµµ °£´ÜÇÑ mountÀÛ¾÷Àº º°µµÀÇ ½ºÀ§Äª À¯Àú°úÁ¤À» °ÅÄ¡Áö ¾Êµµ·Ï ÇÏ´Â ÇÁ·Î±×·¥À» ¸¸µéµµ·Ï ÇϰڴÙ. ¿¹Á¦ : cdmount.c
±×·¯³ª ¸»ÇßµíÀÌ À§ ÇÁ·Î±×·¥Àº Ä¡¸íÀûÀÎ ¹®Á¦Á¡À» °¡Áö°í ÀÖ´Ù. system¿¡¼ ½ÇÇà½Ãų ÇÁ·Î±×·¥À» ãÀ»¶§ ½©ÀÇ È¯°æº¯¼ö PATHÀÇ °æ·ÎµéÀ» ÀÌ¿ëÇÑ´Ù´Â Á¡ÀÌ´Ù. ÀÌ Á¡À» ÀÌ¿ëÇϸé ÀϹÝÀ¯Àú ±ÇÇÑÀ¸·Î À§ÀÇ ÇÁ·Î±×·¥À» ½ÇÇà½ÃÄ×À»¶§ root ½©ÀÌ ¶ßµµ·Ï ÇÒ ¼ö ÀÖ´Ù. ´ÙÀ½°ú °°Àº °£´ÜÇÑ ½©ÇÁ·Î±×·¥À» ¸¸µé¾î º¸µµ·Ï ÇÏÀÚ. ½© ÇÁ·Î±×·¥ÀÇ À̸§Àº mountÀÌ´Ù. ÀϹÝÀ¯ÀúÀÎ yundreamÀ¸·Î Á¢±ÙÇØ¼ ´ÙÀ½ÀÇ ½©À» ÀÛ¼ºÇϵµ·Ï ÇÏÀÚ.
3.2절. system()ÇÔ¼öÀÇ ¹®Á¦ ÇØ°á»ç¿ëÇÒ ¼ö ÀÖ´Â °¡Àå °£´ÜÇÑ ¹æ¹ýÀº system()ÇÔ¼ö¿¡ ½ÇÇà½Ãų ¸í·É¾î¸¦ ÀÔ·ÂÇÒ¶§ PATHȯ°æº¯¼öÀÇ ¿µÇâÀ» ¹ÞÁö ¾Êµµ·Ï ¿ÏÀüÇÑ µð·ºÅ丮 °æ·Î¸¦ ÀÔ·ÂÇÏ´Â °ÍÀÌ´Ù.
¾à°£ Äڵ尡 ±æ¾îÁöÁö¸¸ system()ÇÔ¼ö ´ë½Å execl()°è¿ÀÇ ÇÔ¼ö¸¦ »ç¿ëÇÏ´Â ¹æ¹ýµµ ÀÖ´Ù.
À§ÀÇ ¹æ¹ýÀ» µ¿¿øÇßÀ» °æ¿ì system()ÇÔ¼öÀÇ ¹®Á¦¸¦ ÇÇÇØ°¥ ¼ö ÀÖ±ä ÇÏÁö¸¸ ÇѰ¡Áö ¹®Á¦Á¡ÀÌ ¹ß»ýÇÑ´Ù. ±×°ÍÀº system()¿¡¼ ½ÇÇà½ÃŰ´Â ÇÁ·Î±×·¥ÀÌ ¹Ýµå½Ã ÁöÁ¤µÈ °æ·Î¿¡ ÀÖÀ» °Å¶ó°í Àå´ãÇÒ ¼ö°¡ ¾ø´Ù´Â Á¡ÀÌ´Ù. mountÀÇ °æ¿ì /bin¿¡ ÀÖÀ» ¼öµµ ÀÖÁö¸¸ /sbin, /usr/bin, /usr/sbin µîÀÇ µð·ºÅ丮¿¡ ÀÖÀ» ¼öµµ Àֱ⠶§¹®ÀÌ´Ù. ÀÌ ¹®Á¦´Â setenvÀ» ÅëÇØ¼ ÇÁ·Î±×·¥ ³»ºÎÀûÀ¸·Î PATH°æ·Î¸¦ °Á¦·Î ÁöÁ¤ÇÏ´Â ¹æ½ÄÀ¸·Î ÇØ°á °¡´ÉÇÏ´Ù.
|
|
|||||||||||||||||||||||
|
EmailÀ» ±âÀÔÇϸé, ´ñ±ÛÀÌ ¸ÞÀÏ·Î Àü´ÞµË´Ï´Ù. |
|