Linux Information
 
ÃÑ °Ô½Ã¹° 125°Ç, ÃÖ±Ù 0 °Ç
   
Linux Kernel Ptrace Ãë¾àÁ¡ ¼³¸í°ú ÇØ°á¹æ¹ý
±Û¾´ÀÌ : ½Å¿µÃ¶ ³¯Â¥ : 2013-01-18 (±Ý) 13:53 Á¶È¸ : 22848

¢Â Á¦¸ñ
Windows Web ComponentÀÇ Ã¼Å©µÇÁö ¾ÊÀº ¹öÆÛ·Î ÀÎÇÑ ÄÚµå ½ÇÇà Ãë¾àÁ¡

¢Â ÇØ´ç ½Ã½ºÅÛ
Linux Kernel 2.2.x & 2.4.x ¸ðµç ½Ã½ºÅÛ

¢Â ¿µÇâ
·ÎÄà »ç¿ëÀÚ°¡ ½Ã½ºÅÛÀÇ °ü¸®ÀÚ ±ÇÇÑ(root)À» ȹµæÇÒ ¼ö ÀÖ´Ù.

¢Â ¼³¸í
¾ÇÀÇÀûÀÎ »ç¿ëÀÚ°¡ kernel/kmod.c ºÎºÐ¿¡¼­ race condition À» ÀÏÀ¸ÄѼ­ ºñÁ¤»óÀûÀÎ »óÅ¿¡¼­ ÇÁ·Î¼¼½º¸¦ »ý¼ºÇÑ´Ù.
±×¸®°í »õ·Î »ý¼ºµÈ ÇÁ·Î¼¼½ºÀÎ ½Ã½ºÅÛ °ü¸®ÀÚ ±ÇÇÑÀÇ modprobe¸¦ ptrace system callÀ» ÀÌ¿ëÇØ¼­ Á¦¾îÇÒ ¼ö ÀÖ´Ù.

¢Â ÇØ°áÃ¥
°¢ ½Ã½ºÅÛ ¹× ¹öÀü¿¡ ÇØ´çµÈ ÆÐÄ¡¸¦ Àû¿ëÇÑ´Ù.

RedHat
¡æhttp://rhn.redhat.com/errata/RHSA-2003-098.html

¿¹) RedHat 8.0 ÀÇ °æ¿ì

# cd /tmp
# wget http://updates.redhat.com/8.0/en/os/i386/kernel-2.4.18-27.8.0.i386.rpm
# rpm -Uvh kernel-2.4.18-27.8.0.i386.rpm

±×¸®°í ÆÐÄ¡¸¦ ¼³Ä¡ÇÑ ´ÙÀ½ »õ·Î¿î Ä¿³ÎÀ» »ç¿ëÇØ¾ß ÇϹǷΠÀçºÎÆÃÀ» ÇØ¾ßÇÑ´Ù.

** Ä¿³Î ÆÐÄ¡¸¦ ¹Ù·Î ÇÏÁö ¸øÇÒ °æ¿ì **
/proc ÆÛ¹Ì¼ÇÀ» º¯°æÇÑ´Ù.

# cd /
# chmod 700 /proc

ÀÌ ¹æ¹ýÀº ÀӽùæÆíÀÇ ÇØ°áÃ¥À̸ç, ±Ùº»ÀûÀ¸·Î Ãë¾àÁ¡À» ÇØ°áÇϱâ À§Çؼ­´Â ÆÐÄ¡¸¦ Àû¿ëÇØ¾ß ÇÑ´Ù.
( ÀÌ ¹æ¹ýÀº ps¿Í °°Àº ¸í·É¾î¸¦ ÀÏ¹Ý »ç¿ëÀÚ°¡ »ç¿ëÇÒ¼ö ¾ø´Â ºÎÀÛ¿ëÀÌ ÀÖ´Ù. )

------- Àü¹®°¡¸¦ À§ÇÑ ±â¼úºÐ¼® ³»¿ë -----------

kmod.c ¿¡¼­ race conditon ÀÌ ÀϾ´Ù.


++ http://lxr.linux.no/source/kernel/kmod.c
131
132
133 curtask->euid = curtask->fsuid = 0;
134 curtask->egid = curtask->fsgid = 0;
135 cap_set_full(curtask->cap_effective);
136
137
138 set_fs(KERNEL_DS);
139
140
141 if (execve(program_path, argv, envp) < 0) >
142 return -errno;
143 return 0;

A¶ó´Â ÇÁ·Î¼¼½º¿¡¼­ ƯÁ¤ ¸ðµâÀÇ ±â´ÉÀ» ¿äûÇϸé, kmod ¿¡¼­ modprobe¶ó´Â ƯÁ¤ ¸ðµâÀ» ¸Þ¸ð¸® »ó¿¡ ¿Ã¸®´Â ÇÁ·Î¼¼½º C°¡ »ý¼ºµÈ´Ù. kmod¿¡¼­ modprobe¸¦ ¿äûÇÏ´Â ·çƾÀÌ ÀÛµ¿µÉ¶§(135 ÁÙ ½ÇÇà ÈÄ) Context Switching ÀÌ µÉ °æ¿ì, B¶ó´Â ¾ÇÀÇÀûÀÎ ÇÁ·Î¼¼½º°¡ ÀÌ ÇÁ·Î¼¼½º C¿¡ PTRACE ATTACH( CHILD·Î ¸¸µë ) ÇÑ´ÙÀ½ ¾ÇÀÇÀûÀÎ Äڵ带 Áý¾î ³ÖÀ» ¼ö ÀÖ´Ù. modprobe ´Â root ±ÇÇÑÀ¸·Î ÀÛµ¿µÇ¹Ç·Î ¾ÇÀÇÀûÀÎ local »ç¿ëÀÚ´Â root ±ÇÇÑÀ» ȹµæÇÒ ¼ö ÀÖ´Ù.
Automic À¸·Î ½ÇÇàµÇ¾ß ÇÏ´Â ºÎºÐ¿¡ ptrace system call·Î Á¢±ÙÇÒ ¼ö ÀÖ´Â Á¡¿¡¼­ ¹®Á¦°¡ ¹ß»ýµÈ´Ù.

¢Â ÂüÁ¶ »çÀÌÆ®
http://rhn.redhat.com/errata/RHSA-2003-098.html
http://www.ciac.org/ciac/bulletins/n-056.shtml

½Å¿µÃ¶ ´ÔÀÇ Linux ÃÖ½Å±Û [´õº¸±â]


   

 

naver.com daum.net nate.com google.co.kr youtube.com


Copyright ¨Ï www.pronice.com. All rights reserved.