log4j ¼³¸íºÎÅÍ »ç¿ë¿©ºÎ È®ÀÎ ¹× Á¶Ä¡¹æ¹ý, ³ª¾Æ°¡ Ãë¾àÁ¡ ŽÁö ÆÐÅÏ ÀÛ¼º¹ý±îÁö ´ã¾Æ
[º¸¾È´º½º ¿øº´Ã¶ ±âÀÚ] Àü ¼¼°è°¡ log4j Ãë¾àÁ¡ ¹®Á¦·Î ¸ö»ìÀ» ¾Î°í ÀÖ´Â °¡¿îµ¥, Çѱ¹ÀÎÅͳÝÁøÈï¿øÀÌ Q&A Çü½ÄÀÇ ¡®log4j Ãë¾àÁ¡ ´ëÀÀ °¡À̵塯¸¦ ¸¸µé¾î °ø°³ÇØ °ü½ÉÀÌ ¸ð¾ÆÁö°í ÀÖ´Ù.
¡ãlog4j Ãë¾àÁ¡ °³¿äµµ[ÀÚ·á=KISA]
¡®Q&A Çü½ÄÀ¸·Î ¾Ë¾Æº¸´Â Apache log4j Ãë¾àÁ¡ ´ëÀÀ °¡À̵å(ÀÌÇÏ °¡À̵å)¡¯´Â ÃÑ 8°³ÀÇ ÁúÀÇÀÀ´ä Çü½ÄÀ¸·Î ¸¸µé¾îÁ³À¸¸ç, log4j ¼³¸íºÎÅÍ »ç¿ë¿©ºÎ È®ÀÎ ¹× Á¶Ä¡¹æ¹ý, ³ª¾Æ°¡ Ãë¾àÁ¡ ŽÁö ÆÐÅÏ ÀÛ¼º¹ý±îÁö ´ã°í ÀÖ´Ù. ƯÈ÷ °ü·Ã À̹ÌÁö±îÁö ÷ºÎÇØ °³¹ßÀÚ°¡ ¾Æ´Ï´õ¶óµµ ½±°Ô µû¶óÇÒ ¼ö ÀÖµµ·Ï ÇÑ °ÍÀÌ Æ¯Â¡ÀÌ´Ù.
Q. log4j¶õ ¹«¾ùÀΰ¡?
¸ÕÀú °¡À̵å´Â log4j°¡ ¹«¾ùÀÎÁöºÎÅÍ ¼³¸íÇØÁÖ°í ÀÖ´Ù. log4jÀÇ ±â´ÉÀº ¼ºñ½º µ¿ÀÛ °úÁ¤¿¡¼ ÀϾ´Â ÀÏ·ÃÀÇ ¸ðµç ±â·ÏÀ» ³²°Ü ħÇØ»ç°í ¹ß»ý ¹× ÀÌ»ó¡Èĸ¦ Á¡°ËÇϱâ À§ÇØ ÇʼöÀûÀ¸·Î ÇÊ¿äÇÑ ±â´ÉÀÌ´Ù. ¹«·á·Î Á¦°øµÇ´Â ¿ÀǼҽº ÇÁ·Î±×·¥À¸·Î Java ±â¹ÝÀÇ ¸ðµç ¾îÇø®ÄÉÀ̼ǿ¡¼ »ç¿ëÇÒ ¼ö ÀÖ´Ù.
Q. log4j 1.x ¹öÀü¿¡¼µµ ¿µÇâÀ» ¹ÌÄ¡³ª?
¾Æ¿ï·¯ À̹ø ¹®Á¦´Â log4j 2.¡¿¹öÀüºÎÅÍ ¹ß»ýÇÏÁö¸¸ 1.¡¿¹öÀüÀº ÀÌ¹Ì 2015³â¿¡ ±â¼úÁö¿øÀÌ Á¾·áµÇ¾ú±â ¶§¹®¿¡ ÃֽŠ¹öÀüÀ¸·Î ¾÷µ¥ÀÌÆ® ÇÏ´Â °ÍÀÌ ÁÁ´Ù°í ±Ç°íÇß´Ù.
Q. Ãë¾àÇÑ log4j¸¦ »ç¿ëÇÏ´ÂÁö È®ÀÎÇÒ ¼ö ÀÖ´Â ¹æ¹ýÀº?
log4j¸¦ »ç¿ëÇÏ´Â »ó¿ëÁ¦Ç°ÀÇ °æ¿ì ±êÇãºê(https://gist.github.com/SwitHak/b66db3a06c2955a9cb71a8718970c592)¿¡ Á¤¸®°¡ µÇ¾î ÀÖÀ¸¹Ç·Î Á¦Á¶»ç¸¦ ã¾Æ Á¦Á¶»ç°¡ ¾È³»ÇÏ´Â ¹æ¹ýÀ¸·Î È®ÀÎÇÏ¸é µÈ´Ù. ÀÌ°÷¿¡´Â Çѱ¹±â¾÷ÀÌ º¸ÀÌÁö ¾ÊÁö¸¸, ÇöÀç LG CNS¿Í ´õÁ¸ºñÁî¿ÂÀÌ °¢°¢ ÇïÇÁµ¥½ºÅ©¸¦ ¿î¿µÇÏ°í ÀÖ´Ù.
log4j ¼³Ä¡ ¿©ºÎ¸¦ È®ÀÎÇϱâ À§Çؼ´Â ¸®´ª½º¿Í À©µµ¿ì 2°¡Áö ¹æ¹ýÀÌ ÀÖ´Ù. ¿ì¼± ¸®´ª½º¿¡¼´Â ´ÙÀ½ ¸í·É¾î¸¦ »ç¿ëÇÑ´Ù.
- dpkg –l | grep log4j
- find / -name ¡®log4j*¡¯
¡ã¸®´ª½º¿¡¼ log4j ¼³Ä¡ ¿©ºÎ È®ÀÎ[ÀÚ·á=KISA]
À©µµ¿ì´Â ±âº» °Ë»ö±â´ÉÀÎ ¡®window explorer¡¯¿¡ Á÷Á¢ log4j¸¦ °Ë»öÇÏ´Â °Í°ú °³¹ßµµ±¸ÀÎ ¡®Eclipse¡¯ÀÇ Ã£±â ±â´ÉÀ» ÀÌ¿ëÇØ °Ë»öÇÏ´Â ¹æ¹ýÀÌ ÀÖ´Ù.
¡ãwindows explorerÀÇ °Ë»ö±â´ÉÀ» ÀÌ¿ëÇÏ¿© °Ë»ö[ÀÚ·á=KISA]
¡ãeclipse µµ±¸ÀÇ ¡®Ã£±â¡¯ ±â´ÉÀ» ÀÌ¿ëÇÏ¿© °Ë»ö[ÀÚ·á=KISA]
¶ÇÇÑ, °ø°³µÇ¾î ÀÖ´Â µµ±¸¸¦ »ç¿ëÇÏ´Â ¹æ¹ýµµ Àִµ¥, °¡À̵忡´Â ¡®Syft¡¯¿Í ¡®Grype¡¯, ±×¸®°í Ãë¾àÁ¡ ½ºÄ³³Ê¸¦ »ç¿ëÇÏ´Â ¹æ¹ýÀÌ ¼Ò°³µÇ¾î ÀÖ´Ù.
Q. log4j ¹öÀü È®ÀÎ ¹æ¹ý°ú Á¶Ä¡¹æ¹ýÀº?
log4j ¼³Ä¡ ¿©ºÎ¸¦ È®ÀÎÇß´Ù¸é ÀÌÁ¦´Â ¹öÀüÀ» È®ÀÎÇØ¾ß ÇÑ´Ù. ¸®´ª½º¿¡¼ log4j¸¦ °Ë»öÇϰųª ¡®Java Spring Framework Maven¡¯ »ç¿ë ½Ã log4j°¡ ¼³Ä¡µÈ °æ·ÎÀÇ pom.xml ÆÄÀÏÀ» ¿¾î ¡®log4j-core¡¯·Î °Ë»öÇÏ¸é ¹öÀüÀ» È®ÀÎÇÒ ¼ö ÀÖ´Ù.
Áß¿äÇÑ °ÍÀº °¡À̵忡¼´Â ¡®log4j 2.15¡¯ ¹öÀü ÀÌ»óÀ¸·Î ¾÷µ¥ÀÌÆ®¸¦ ¼öÇàÇϰųª ¾Æ¿¹ Á¦°ÅÇ϶ó°í ¾È³»ÇÏ°í Àִµ¥, ÇöÀç ¾ÆÆÄÄ¡Àç´Ü¿¡¼ ¡®log4j 2.16¡¯¹öÀüÀ» ¾÷µ¥ÀÌÆ®Ç߱⠶§¹®¿¡ ¹Ýµå½Ã 2.16 ¹öÀüÀ¸·Î ¾÷µ¥ÀÌÆ®ÇØ¾ß ÇÑ´Ù´Â Á¡ÀÌ´Ù. ¾ÆÆÄÄ¡Àç´Ü ¿ª½Ã 2.15¹öÀüÀ¸·Î ¾÷µ¥ÀÌÆ® ÇÑ »ç¶÷µµ 2.16¹öÀüÀ¸·Î ¾÷µ¥ÀÌÆ®Ç϶ó°í ¾È³»ÇÏ°í ÀÖ´Ù. ¾÷µ¥ÀÌÆ®µÈ ´Ù¿î·Îµå ÁÖ¼Ò´Â ´ÙÀ½(https://logging.apache.org/log4j/2.x/download.html)°ú °°´Ù.
Q. º¸¾È ¾÷µ¥ÀÌÆ®´Â ¾î¶»°Ô Çϳª?
¸ÕÀú º¸°í¼´Â ½Ã½ºÅÛ È¯°æ¿¡ µû¶ó ´Ù¾çÇÑ ¶óÀ̺귯¸®°¡ Ãß°¡·Î Àû¿ëµÇ¾î ÀÖÀ» ¼ö ÀÖÀ¸¹Ç·Î Å×½ºÆ® ÈÄ Àû¿ëÇØ¾ß ÇÑ´Ù°í ±Ç°íÇÏ°í ÀÖ´Ù.
¾÷µ¥ÀÌÆ® ¹æ¹ýÀº ¿ì¼± log4j-core.jar ÆÄÀÏ À§Ä¡ ¹× ÆÄÀÏ ¹é¾÷ ÈÄ jar ÆÄÀÏÀ» ´Ù¿î·Îµå¹Þ¾Æ¾ß ÇÑ´Ù. ¶ÇÇÑ, Java Spring Framework MavenÀ» »ç¿ëÇÏ°í ÀÖ´Â °æ¿ì ¹öÀü Á¤º¸ ¼öÁ¤ ÈÄ À缳ġ, ¹öÀü ÀçÈ®ÀÎÀ» °ÅÃÄ¾ß ÇÑ´Ù.
¨ç pom.xmlÀ» ´ÙÀ½°ú °°ÀÌ ¼öÁ¤
¡ã°¡À̵å ÀÌÈÄ 2.16¹öÀüÀÌ ³ª¿Ô´Ù[ÀÚ·á=KISA]
¨è mvn install
¨é ./mvnw dependency:list | grep log4j or sudo find / -name ¡®log4j*¡¯·Î ¹öÀü 2.15.0 ÀÌ»ó ¿©ºÎ ÀçÈ®ÀÎ
gradleÀ» »ç¿ëÇÏ°í ÀÖ´Â °æ¿ì ¹öÀü Á¤º¸ ¼öÁ¤ ÈÄ À缳ġ, ¹öÀü ÀçÈ®ÀÎ
¨ç-1) build.gradle¿¡¼ log4j2.version ¾÷µ¥ÀÌÆ®
ext[¡®log4j2.version¡¯] = ¡®2.15.0¡¯
¨ç-2) Gradle Ç÷§Æû Áö¿øÀ» »ç¿ëÇÏ´Â °æ¿ì
implementation(platform(¡°org.apache.logging.log4j:log4j-bom:2.15.0¡±))
¨è ./gradlew dependencyInsight —dependendy log4j-core·Î ¹öÀü 2.15.0 ÀÌ»ó ¿©ºÎ ÀçÈ®ÀÎ
Q. º¸¾È ¾÷µ¥ÀÌÆ®¸¦ ÇÏÁö ¾ÊÀ¸¸é ¾î¶»°Ô µÇ³ª?
ÇÑÆí, º¸°í¼´Â º¸¾È ¾÷µ¥ÀÌÆ®¸¦ ÇÏÁö ¾ÊÀ¸¸é ¿ø°ÝÀÇ °ø°ÝÀÚ°¡ ÀÌ Ãë¾àÁ¡À» ÀÌ¿ëÇØ ¾Ç¼ºÄÚµå À¯Æ÷, Áß¿ä µ¥ÀÌÅÍ Å»Ãë, ÀÓÀÇÀÇ ÆÄÀÏ ´Ù¿î·Îµå ¹× ½ÇÇà µîÀÌ °¡´ÉÇÏ´Ù¸é¼ ¹Ýµå½Ã ¾÷µ¥ÀÌÆ®ÇÒ °ÍÀ» °Á¶Çß´Ù.
[¿øº´Ã¶ ±âÀÚ(boanone@boannews.com)]
<ÀúÀÛ±ÇÀÚ: º¸¾È´º½º(www.boannews.com) ¹«´ÜÀüÀç-Àç¹èÆ÷±ÝÁö>