Home > 전체기사

해커들은 로그4j 취약점을 어떻게 악용해 공격할까?

  |  입력 : 2021-12-20 05:38
페이스북 보내기 트위터 보내기 네이버 밴드 보내기 카카오 스토리 보내기
이동근 KISA 침해대응단장, 아파치 Log4j 대응 긴급 CISO 간담회에서 log4j 이슈 발표
log4j, 자바 기반 프로그램 개발할 때 로그의 기록 기능을 지원하는 오픈소스 라이브러리
해커들, log4j가 사용자 편의 위해 만들어졌지만 보안에는 취약한 점 노려


[보안뉴스 원병철 기자] 아파치 로그4j(Apache Log4j) 취약점 이슈가 일파만파 확대되고 있는 가운데 관련 지식이 부족한 일부 보안담당자 및 일반 사용자는 이번 사태에 대한 정확한 이해 부족으로 어려움을 겪고 있다. 이러한 상황에서 과학기술정보통신부는 한국인터넷진흥원, 한국CISO협의회와 함께 주요 기업 긴급점검 및 취약점 대응 관련 민·관 협력방안을 논의하기 위한 ‘아파치 Log4j 대응 긴급 CISO 간담회(이하 간담회)’를 개최하고 대응안을 소개하는 한편, 현장의 어려움과 의견을 들었다.

▲Apache Log4j 취약점 동향 및 정부 대응현황을 주제로 강연한 이동근 KISA 침해대응단장[캡처=보안뉴스]


특히, 이날 간담회에서는 이동근 한국인터넷진흥원 침해대응단장이 ‘Apache Log4j 취약점 동향 및 정부 대응현황’을 주제로 아파치 log4j에 대한 구체적인 현황을 발표했다. 이동근 단장은 “이번 문제는 매우 크리티컬한 이슈”라면서, “원활한 대응을 위해서는 문제의 발생원인과 대응방법을 공유하는 것이 중요하다”고 말했다.

이동근 단장에 따르면, log4j는 자바 기반 프로그램을 개발할 때 로그의 기록 기능을 지원하는 아파치 재단의 오픈소스 소프트웨어 라이브러리다. 로그는 시스템 운영 혹은 관리에 기록을 남기는데, 이 기록을 남기는 행위를 ‘로깅’이라고 하고, 로깅을 통해 남겨진 기록이 ‘로그’다. log4j는 개발자들한테 로그를 남기는 과정 중에 편리한 기능을 남기는 것을 돕는 소프트웨어다. 예전에는 개발자들이 로그 포맷을 맞춰서 하나씩 일일이 만들어냈는데, 이것을 이용하면 간단한 명령어로 포맷이나 필요한 형태로 저장이 가능하기 때문에 많이 사용하게 됐다. 심지어 log4j는 오픈소스, 즉 무료이기 때문에 너무나 많은 사람들이 쓰게 되어 현재 이슈가 광범위하게 확대된 것이라고 이동근 단장은 설명했다.

log4j는 로그를 기록할 정보가 들어오면 그대로 처리하는데, 특히 자바 프로그램에서 지원하기 때문에 JNDI의 Lookup 기능을 사용한다. JNDI와 자바 응용 프로그램아 필요한 자원(데이터베이스) 및 실행을 위해 다른 프로그램 정보를 찾을 수 있는 기능이며, lookup은 JNDI를 통해 찾은 자원을 사용하는 기능이다.

문제는 들어오는 대로 정보를 사용할뿐, 이 정보가 악의적인 공격인지 아닌지를 분석하지는 않는다는 점이다. 이 때문에 해커들이 악의적인 정보를 입력해도 log4j는 그대로 받아서 사용하게 되며, 결국 공격을 당하게 된다는 얘기다.

▲log4j 취약점 공격 절차[캡처=보안뉴스]


그렇다면 해커들은 어떻게 공격을 하게 될까? 이동근 단장은 공격자가 타깃인 피해 서버에게 접속을 위한 메시지를 보내면서 JNDI lookup 명령어를 함께 전달하면, 서버는 이를 분석하지 않고 그대로 읽어 실행한다. 해커가 지정한 서버로 가서 ‘정보’를 가져오도록 하는 것. 이 정보에는 해커가 악의적으로 만든 자바 클래스(실행 코드라고 생각하면 된다)가 담겨 있어 피해서버가 이를 실행하면 악성 스크립트를 가져오도록 하고, 이 스크립트에는 해커가 원하는 다양한 악성코드, 예를 들면 랜섬웨어, 마이닝 프로그램, 디도스 등이 담겨 있어 이를 설치하게 된다.

이를 방어하기 위해서는 먼저 네트워크를 방어하는 방법이 있다. 해커가 외부에 있을 경우 네트워크를 방어하는 것인데, 내부 시스템에 접속하는 로그 안에 여러 명령 키워드가 담긴 문자열을 네트워크 보안장비에서 차단하거나, 네트워크 트래픽을 모니터링 하면서 비정상적인 인-아웃바운드를 패턴 등록으로 막는 방법이 있다. 물론 해커가 이를 우회하기 위해서 문자열 패턴 변경 등을 할 수 있지만, 기본적으로 이를 막기 위해서는 네트워크 방어가 반드시 필요하다고 이동근 단장은 설명했다.

이와 함께 근본적인 원인을 조치해야 하는데, log4j 업데이트하거나 문제가 되는 자바 클래스를 제거하는 것이 있는데, 이 방법이 시간이 소요될 수 있기 때문에 급한 대로 임시조치라도 해야 한다. 대표적인 것이 신뢰된 코드 베이스 정책(TrustURLcodebase) 사용이나, 서버의 백신 등록 또는 EDR의 탐지체계 구축 등이다. 이미 전 세계 엔드포인트 업체들이 발 빠르게 패턴 등록을 하고 있기 때문이다. 물론 이 방법들은 임시조치이며 반드시 업데이트를 동시에 시행해야 한다. 참고로 정부 역시 해당 취약점을 악용하는 IP에 대해서는 차단 정책을 적용하고 있다.

특히, 기업들은 보안 업데이트를 위해 log4j를 사용하는 정보자산을 식별하고, 시스템 가용성 등을 판단해 보안 업데이트를 진행할 것인지 긴급 임시조치를 취할 것인지 결정해야 한다. 이동근 단장은 내부망의 경우 네트워크에 연결되지 않더라도, 해커가 APT 공격을 통해 접점을 타고 들어와 log4j가 있는 시스템을 공략해 거점으로 쓸 수 있다고 설명했다. 아울러 개발자 PC도 점검해야 한다. 라이브러리 등 셋팅시 취약한 log4j를 사용할 수 있기 때문이다.

마지막으로 이동근 단장은 “시스템 환경에 따라 다양한 라이브러리가 추가로 적용되어 있고, 프로그램 구성요소 간 의존성 문제가 발생할 수 있기 때문에, 반드시 보안 업데이트나 임시조치를 하기 전 의존성 체크와 백업 및 테스트 과정을 먼저 거쳐야 한다”면서, “도입된 서드파티 제품에 대해서는 직접 파악하기 어려운 만큼 해당 제품의 보안 업데이트 상황을 체크해 신속하게 반영할 것”을 강조했다.
[원병철 기자(boanone@boannews.com)]

<저작권자: 보안뉴스(www.boannews.com) 무단전재-재배포금지>

  •  
  • 0
  • 페이스북 보내기 트위터 보내기 네이버 밴드 보내기 카카오 스토리 보내기

  •  SNS에서도 보안뉴스를 받아보세요!! 
넷앤드 파워비즈 시작 6월30일~ 시큐아이 에스케어 파워비즈 배너 2022년 3월15일 시작~ 12개월 위즈디엔에스 2018 파워비즈배너 시작 11월6일 20181105-20200131
설문조사
최근 다크웹을 통한 데이터 및 개인정보 유출이 빈번하게 발생하고 있습니다. 다크웹에 대해 아시거나 접속해 보신 적이 있으신가요?
다크웹에 대해 들었지만, 접속해본 적은 없다
1~2번 접속해본 적 있지만, 활용방법은 잘 모른다.
종종 들어가서 업무에 활용하기도 한다.
가끔 전문가를 통해 접속해서 유출 정보를 찾는다.
기타(댓글로)