Offcanvas
Some text as placeholder. In real life you can have the elements you have chosen. Like, text, images, lists, etc.
Offcanvas
1111Some text as placeholder. In real life you can have the elements you have chosen. Like, text, images, lists, etc.
보안

Log4Shell 보안 취약점 노출과 공격을 감지하는 방법

Lucian Constantin | CSO 2021.12.27
기업 보안 팀은 지난 몇 주 동안 Log4j 오픈소스 자바 구성요소에서 발견된 일련의 취약점으로 인해 여전히 바쁘다. 영향을 받는 라이브러리를 패칭하는 것이 우선시되야 하지만, 방대한 네트워크에서 영향을 받는 모든 애플리케이션과 서버를 파악하는 것은 쉽지 않다. 간접적인 소프트웨어 종속성과 서드파티 제품 때문이다.
 
ⓒ Getty Images Bank

문제는 기업이 노출됐을 가능성이 있는 자산을 찾는 시간이 오래 걸릴수록, 공격자가 자산을 찾아 악용할 수 있는 시간도 그만큼 늘어난다는 것이다. 정부 지원을 받는 사이버 공격 집단부터 랜섬웨어 공격 집단, 암호화폐 마이닝 및 DDoS 봇넷까지 다양한 공격 집단이 원격 코드 실행 취약점을 악용하고 있다.

따라서 기업은 취약한 자산을 파악하고 사례별로 완화 전략을 수립해야 할 뿐만 아니라, 서버와 애플리케이션 로그에서 침해 및 취약점 공격 징후도 파악해야 한다.
 

애플리케이션과 서버 취약점 감지

보안 커뮤니티는 디렉토리와 파일 시스템에서 Log4j 패키지 인스턴스를 스캔할 수 있는 여러 오픈소스 도구를 개발해 배포했다. 또한, 이런 취약점을 감지할 수 있는 상용 취약점 스캐너도 있다. 하지만 모든 스캐너에 사각지대가 있을 수 있으며, 특히 lLog4j 같은 자바 구성요소는 더욱 그렇다.

실제로 많은 자바 패키지가 JAR(Java Archive) 파일로 되어 있지만, JAR 외에 압축되지 않은 TAR(Tape Archive)과 WAR(Web Application Archive), EAR(Enterprise Application Archive), SAR(Service Application Archive), PAR(Portlet Archive), RAR(Resource Adapter), KAR(Apache Karaf Archive) 형식도 자바 애플리케이션 배포에 사용된다.

게다가 JAR도 유형이 여러가지다. Uber Jar나 Fat Jar라고 불리는 패키지에는 자바 프로그램과 모든 종속성이 포함돼 있지만 셰이딩 또는 언셰이딩, 중첩할 수 있다. 중첩된 JAR은 다른 JAR를 포함하고 있으며, 여러 단계로 구성된다.

따라서 Log4j 취약점 스캐너는 이 모든 애플리케이션 형식과 중첩도 지원할 수 있어야 한다. 디렉토리에서 이름에 Log4j가 있는 JAR만 스캔하면 많은 인스턴스를 놓칠 수 있다.

불완전한 혹은 간접 종속성이 이런 문제를 더욱 복잡하게 만든다. Log4j가 특정 종속성의 종속성일 수 있기 때문에 애플리케이션의 주 종속성만 스캔하면 안 된다. 구글 연구원에 따르면, 12월 19일 기준으로 메이븐 센트럴 리포지토리(Maven Central Repository)에는 Log4j에 의존하는 자바 구성요소 패키지가 1만 7,000개가 넘지만, 그 중 25%만이 수정된 버전을 출시했다. 즉, 이 결함이 생태계에 직접적인 영향을 미치는 비율은 약 4%에 불과하지만, 이런 패키지의 80%가 간접 종속성의 영향을 받는다는 것이다. 직접 종속으로 명기된 Log4j는 없지만, Log4j를 끌어와 사용하는 다른 패키지에 의존한다. 구글에 따르면, 그들 대다수는 5단계 혹은 그 이상 복잡하게 얽혀있다.

소프트웨어 구성 분석 및 취약점 관리 회사인 레질리온(Rezilion) 연구원은 일부 오픈소스 Log4j 취약점 스캐닝 툴과 시장을 선도하는 상용 취약점 스캐너 3종을 테스트했다. 그 결과 모든 툴에서 감지 사각지대를 발견했다. 상대적으로 성능이 우수한 스캐너도 일부 있었지만, 연구원이 활용한 모든 시나리오에서 Log4j 인스턴스를 감지할 수 있는 툴은 하나도 없었다. 테스트한 스캐너로는 퀄리스(Qualys)와 테너블(Tenable), 래피드7(Rapid7), 앵커(Anchor)의 그리프(Grype), 팔란티어(Palantir)의 Log4j-스니퍼(log4j-sniffer), 아쿠아 시큐리티의(Aqua Security)의 트리비(trivy), 제이프로그(JFrog)의 log4j-툴(log4j-tools), 머지 베이스(MergeBase)의 log4j-검출기(log4j-detector), 오와스프(OWASP)의 종속성 검사 프로그램(Dependency Checker)이 있다.

레질리온 연구원은 기업 블로그를 통해 “이번 연구는 정적 스캐닝이 Log4j 인스턴스를 감지하는 데 한계가 있다는 것을 증명한다. 또, 코드가 패키징 또는 중첩되지 않은 런타임 메모리에 코드 수준의 가시성이 필요하다는 것을 알 수 있다. 또한, “감지 방법이 감지 성능을 결정한다는 점도 상기시킨다. 스캐너에는 사각지대가 있다. 보안 책임자는 다양한 오픈소스나 상용 도구로 모든 취약점을 감지할 수 있다고 맹목적으로 가정해서는 안 된다. Log4j의 경우, 사각지대에 취약점이 존재하는 사례가 많기 때문이다”라고 설명했다.

결론적으로 기업은 상용 취약점 도구를 비롯해 다양한 도구를 활용해 취약점을 감지해야 한다. 스캐너마다 결과가 다를 수 있기 때문이다. 또한, 스캐너가 애플리케이션 소스 코드에 액세스할 수 있다면, 소프트웨어 구성 분석 도구와 코드 취약점 스캐너를 함께 사용해 불완전한 종속성을 찾아 해결해야 한다. 궁극적으로 이 같은 스캐닝 사각지대는 취약점 공격 시도와 침해 가능성에 대한 지속적인 관찰의 중요성을 일깨운다.
 

Log4j 취약점 공격 감지 방법

취약한 Log4j 인스턴스처럼, 로그 파일에서 취약점 공격 시도를 모두 파악하는 것은 쉽지 않다. 공격자가 그들의 악의적인 요청을 숨길 수 있는 방법이 다양하기 때문이다. 서버 로그 파일에서 취약점 공격 신호가 발견됐다고 해서 그 공격 시도가 성공으로 이어졌다는 것을 의미하지는 않는다.

많은 자동화된 공격이 Log4j 사용 여부와 관계없이 자바 애플리케이션에 대해 무차별적인 해킹을 시도한다. 공격이 방어보다 더 쉬운 또 다른 사례로 볼 수 있다. 이 경우, 공격 방어자는 표적이 된 애플리케이션의 Log4j 실제 사용 여부에 대한 상세한 포렌식 조사로 보안 취약점을 감지하는 후속 조치를 취해야 한다. 이전에 수정된 앱은 다른 스캐너로 다시 확인해야한다. 불완전한 종속성이나 중첩된 JAR에 Log4j가 존재할 수도 있기 때문이다.

침해를 배제하기 전에 현재 알려진 Log4j 공격과 관련된 아티팩트나 침해 징후에 대한 조사가 선행되야 한다. 이들은 모두 명확하게 규정하기 힘든 위협 헌팅(Threat Hunting)의 영역에 속한다. 취약점 공격 방어에 도움이 되는 몇 가지 무료 툴과 리소스를 소개한다.
 
  • 넥스트론 시스템즈(Nextron Systems) 연구원인 플로리안 로스는 Log4j IOC와 관련된 YARA 규칙 외에도 Log4Shell 탐지기(Log4Shell Detector)라는 로그 분석 도구도 만들었다. 넥스트론의 무료 멀티 플랫폼인 IOC와 YARA 스캐너인 THOR Lite도 활용할 수 있다.
  • 백투루트(back2root) 닉네임을 사용하는 연구원은 ‘Log4Shell-Rex’라고 불리는 RegEx를 만들었다. 이 정규식은 명령줄이나 SIEM에서 다양한 난독화 기법을 사용한 공격을 비롯해 Log4Shell 취약점 공격 징후를 찾는 데 사용된다. RegEx는 가능한 많은 공격을 탐지하지만, 용인될 수 있는 정도의 오탐도 있다. 이 연구원에 따르면, RexEx를 사용하면 대부분의 공격에서 효과를 볼 수는 있지만, 치밀한 공격자는 마음만 먹으면 이를 우회할 방법도 찾을 수 있다.
  • 맨디언트(Mandiant)는 자바 역직렬화 취약점에 대한 공격 시도를 탐지하는 2개의 오픈소스 툴을 개발했다. 이 취약점은 Log4Shell을 포함하는 전체 취약점 범주이다.
  • 팔로알토 네트웍스(Palo Alto Networks)도 네트워크 환경에서 프로세스와 아웃바운드 뿐만 아니라 클라우드 로그를 검사하는 데 활용할 수 있는 다양한 Log4Shell 규칙을 만들었다.
  • 마이크로소프트 애저 팀은 애저 센티넬(Azure Sentinel)로 사용할 수 있는 Log4Shell IOC에 대한 여러가지 탐지 규칙을 만들었다.
  • 전 세계 민간 연구원으로 구성된 자발적 커뮤니티인 큐레이티드 인텔(Curated Intel)은 Log4Shell과 관련된 활성 익스플로잇 위험을 프로파일링했으며, 알려진 취약점 제품 목록 외에도 에일리언 볼트(AlienVault)와 케이피엠지(KPMG), 에퀴닉스(Equinix)와 같은 여러 보안 기업의 IOC 피드도 분석 및 검증했다.
  • NCC 그룹은 IOC 목록뿐만 아니라 오픈소스 네트워크 위협 감지 엔진인 수리카타(Suricata)와 함께 사용할 수 있는 탐지 규칙을 공개했다.
  • CISA 어드바이저리(CISA advisory)는 신뢰할 수 있는 업체와 연구원이 만든 탐지 규칙과 IOC를 갖춘 추가 무료 리소스로 연결하는 링크를 포함한다. editor@itworld.co.kr
 Tags log4shell 보안취약점

회사명 : 한국IDG | 제호: ITWorld | 주소 : 서울시 중구 세종대로 23, 4층 우)04512
| 등록번호 : 서울 아00743 등록일자 : 2009년 01월 19일

발행인 : 박형미 | 편집인 : 박재곤 | 청소년보호책임자 : 한정규
| 사업자 등록번호 : 214-87-22467 Tel : 02-558-6950

Copyright © 2022 International Data Group. All rights reserved.