자바의 인기 라이브러리 Log4j, 보안 취약점 조심해야

오영주 / 2022-01-03 20:32:23

알리바바 크라우드 시큐리티 팀(Alibaba Cloud Security Team)의 첸 자오준(Chen Zhaojun)은 지난 달 트윗을 통해서 놀라운 사실을 공개했다. 바로 자바 프로그래밍 언어의 Log4j라는 서브루틴 라이브러리의 취약점에 대한 샘플 코드다.

자바(Java)는 클라이언트-서버 웹 애플리케이션에 특히 유용한 매우 인기 있는 고급 프로그래밍 언어다. 전 세계에 900만 명의 자바 프로그래머가 있으며 대부분의 네트워킹 앱이 해당 언어로 작성되기 때문에 상상할 수 없는 수의 프로그램이 Log4j 라이브러리를 사용한다.

이처럼 많은 수의 Log4j를 사용하는 소프트웨어가 잠재적으로 취약하다는 사실은 놀라운 의미를 지니며, 현재로서는 이로 인한 잠재적 피해의 구체적인 범위를 추산하기도 어려울 정도다. 버클리 컴퓨터 과학자인 니콜라스 위버(Nicholas Weaver)는 “예를 들어 애플(Apple) 인프라의 적어도 어딘가에 사용자의 아이폰(iPhone) 이름을 기록하는 자바 프로그램이 있다는 것이 밝혀졌으며, 이것을 아이클라우드(iCloud)에 악용할 수 있다”면서 “마인크래프트(Minecraft)와 스팀(Steam) 게임 플랫폼은 모두 자바로 작성되었으며 둘 다 채팅 메시지를 기록하는 코드 경로를 갖게 되므로 취약하다"고 설명했다.

그렇다면, 이러한 현상을 조금이라도 막기 위해서는 어떠한 노력을 하는 것이 좋을까? 위버에 따르면, 컴퓨터 시스템은 ‘까다로운 짐승’이고 오류는 항상 발생한다. 문제를 찾는 가장 일반적인 방법 중 하나는 발생한 모든 것을 단순히 기록하는 것이다. 프로그래머가 그것을 할 때 우리는 그것을 '로깅'이라고 부른다. 그리고 훌륭한 프로그래머는 단순히 print()를 사용하는 대신 라이브러리를 사용하여 코드에 흩어져 있는 화면으로 인쇄하는 명령문을 사용한다.

Log4j와 같은 도구를 사용하는 이유는 로깅 루틴을 처리하는 쉬운 방법이고 다른 사람이 이미 작업을 완료했기 때문이다. 하지만 위버는 "좋은 프로그래머가 되는 첫 번째 규칙은 재창조(코드를 잘라서 붙여넣기)하지 않는 것이다”라면서 “코드 라이브러리를 재사용하는 것은 복잡한 것을 구축할 때 합리적으로 수행할 수 있는 일이지만 다른 사람의 휠을 재사용하려면 먼저 신뢰할 수 있는지 확인해야 한다”고 말했다.

[ⓒ CWN(CHANGE WITH NEWS). 무단전재-재배포 금지]

오영주

IT/Tech, 금융, 산업, 정치, 생활문화, 부동산, 모빌리티

뉴스댓글 >

- 띄어 쓰기를 포함하여 250자 이내로 써주세요.
- 건전한 토론문화를 위해, 타인에게 불쾌감을 주는 욕설/비방/허위/명예훼손/도배 등의 댓글은 표시가 제한됩니다.

댓글 0