λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
곡뢀관련메λͺ¨

Log4j 이슈 κ΄€λ ¨ λ‚΄μš©

by μ½”λ”©ν•˜λŠ” λΆ•μ–΄ 2021. 12. 21.
λ°˜μ‘ν˜•

[좜처 - Nomad Coder]

 

Log4j λž€?

Javaμ—μ„œ 많이 μ“°μ΄λŠ” νŒ¨ν‚€μ§€ 쀑 ν•œ μ’…λ₯˜. 둜그 기둝의 framework.

둜그λ₯Ό ν¬λ§·νŒ…ν•˜κ³ , ν•„ν„°λ§ν•˜κ³ , μ–΄ν”Œλ¦¬μΌ€μ΄μ…˜μ˜ 파일둜 이λ₯Ό κΈ°λ‘ν•˜λŠ” 일을 ν•œλ‹€.

Javaλ₯Ό μ‚¬μš©ν•˜λŠ” μ–΄ν”Œλ¦¬μΌ€μ΄μ…˜μ—μ„œλŠ” Log4jλ₯Ό μ‚¬μš©ν•œλ‹€.

 

μ‚¬μš©ν•˜λŠ” μ΄μœ λŠ” μ„œλ²„μ— μΌμ–΄λ‚˜λŠ” λͺ¨λ“  일을 κΈ°λ‘ν•˜κΈ° μœ„ν•΄μ„œ(ex. μ‚¬μš©μžκ°€ ν™ˆνŽ˜μ΄μ§€λ‘œ 이동 ν•  λ•Œ, λ‘œκ·ΈμΈμ„ ν•  λ•Œ, λŒ“κΈ€μ„ 달 λ•Œ λ“±)

μ΄λŸ¬ν•œ 기둝을 Log4jκ°€ 도와쀀닀.

 

μΈμŠ€νƒ€κ·Έλž¨, 유튜브 λ“±μ—μ„œ μœ μ €κ°€ μ“°λŠ” λŒ“κΈ€μ€ 'μ‹ λ’°ν•  수 μ—†λŠ” μ‚¬μš©μž μž…λ ₯'으둜 μΈμ§€ν•œλ‹€.

즉, μœ μ €κ°€ μž‘μ„±ν•˜λŠ” 데이터듀은 μ ˆλŒ€ λ°±μ—”λ“œμ—μ„œ μ‹€ν–‰ν•˜μ§€ μ•ŠλŠ”λ‹€λŠ” λœ»μ΄λ‹€.

μœ μ €μ˜ μž…λ ₯을 μ‹ λ’°ν•˜κ²Œ 되면, κ²°κ΅­ λˆ„κ΅¬λ“  μ½”λ“œλ₯Ό λ„ˆμ˜ μ„œλ²„μ—μ„œ μ‹€ν–‰μ‹œν‚¬ 수 μžˆλ‹€.

μœ μ € μž…λ ₯을 μ½”λ“œλ‘œ μ‹€ν–‰μ‹œν‚€λŠ” 것은 SQL Injectionμ΄λΌλŠ” 해킹이 λ§Œλ“€μ–΄μ§„ 취약점이기도 ν•˜λ‹€.

 

Log4jλŠ” 'Lookups'λΌλŠ” κΈ°λŠ₯이 μžˆλŠ”λ° μ–΄λŠ 정도 μœ μ €μ˜ μž…λ ₯을 μ‹ λ’°ν•œλ‹€.

 

κ³΅κ²©μžκ°€ μ„œλ²„μ— μš”μ²­μ„ 보내면 그리고 μš”μ²­μ— 이와 같은 string(λ¬Έμžμ—΄)이 있으면,

Log4jλŠ” 이걸 λ‘œκ·Έμ— λ„£κ³  λ˜ν•œ λ™μ‹œμ— ν•΄λ‹Ή URL을 λΆˆλŸ¬μ˜¨λ‹€.

λ¬Έμ œλŠ” ν•΄λ‹Ή URL이 곡격자의 것일 μˆ˜λ„ μžˆλ‹€λŠ” 것이닀.

λ³΄λ‹€μ‹œν”Ό JNDI(Java Naming and Directory Interface)λΌλŠ” lookup을 μ‚¬μš©ν•˜λŠ”λ°

λ¬Έμ œλŠ” κ³΅κ²©λ°›λŠ” μ„œλ²„λŠ” κ·Έ URL만 λΆ€λ₯΄λŠ” 것이 μ•„λ‹ˆλΌ ν•΄λ‹Ή URL에 ν˜ΈμŠ€νŒ… λ˜μ–΄μžˆλŠ” μ½”λ“œκ°€ ν•΄λ‹Ή 곡격 λ°›λŠ” μ„œλ²„μ—μ„œ 싀행될 μˆ˜λ„ μžˆλ‹€λŠ” 것이닀.

 

λ§ˆμΈν¬λž˜ν”„νŠΈ μ„œλ²„λŠ” Log4j둜 λͺ¨λ“  메세지λ₯Ό λ‘œκΉ…ν•œλ‹€. μœ μ €μ˜ μ±„νŒ…μ°½μ—μ„œ.

λ”°λΌμ„œ κ³΅κ²©μžκ°€ ν•΄λ‹Ή λ¬Έμžμ—΄μ„ ν¬ν•¨ν•œ 메세지λ₯Ό 보내면 μ„œλ²„λŠ” 곡격자의 μ„œλ²„μ— μ ‘μ†ν•˜μ—¬ κ·Έλ“€μ˜ μ½”λ“œλ₯Ό μ‹€ν–‰μ‹œν‚¨λ‹€.

이와 같은 λ³΄μ•ˆ 취약점은 μ• ν”Œ, ν…ŒμŠ¬λΌ, μ•„λ§ˆμ‘΄ λ“±μ—μ„œ 이미 λ°œκ²¬λ˜μ—ˆλ‹€.

λ°˜μ‘ν˜•

λŒ“κΈ€