지난해 12월 10일. "컴퓨터 역사상 최악"이라고 평가 받는 보안 취약점이 발견되면서 전 세계 IT 업계에 비상이 걸렸다. 거의 모든 자바 기반 애플리케이션에 사용되고 있는 로깅 라이브러리 로그4j에 공격자가 임의 코드를 실행할 수 있는 치명적인 버그가 확인된 것이다. 신속한 조치가 필요한 긴급상황이지만, 어떤 시스템에 로그4j가 쓰이고 있는지 또 쓰고 있는 버전이 취약한 것인지 아닌지 빠르게 확인하는 일부터 난관이었다.
국내 보안 스타트업 로그프레소의 양봉열 대표도 이런 상황에 주목했다. 그는 취약한 로그4j를 찾아주는 '스캐너'를 밤새 만들어 다음날인 11일 소스코드 저장소 깃허브(☞링크)에 공개했다. 비슷한 기능을 제공하는 스캐너들이 여러개 등장했지만, 로그프레소 스캐너는 그 중에서 가장 높은 신뢰를 받으며 빠르게 확산됐다. 오픈소스 커뮤니티와 실시간 소통하며 200여 개가 넘는 요구사항을 받아, 필요한 기능을 빨리 반영한 것이 통했다.
"엔지니어로서 기여하고 싶다"는 생각에서 시작한 일이지만, 이 과정에서 돈으로 살 수 없는 글로벌 브랜드 인지도와 신뢰도를 쌓는 예상 밖의 수확도 얻었다.
로그프레소 로그4j 스캐너는 현재까지 깃허브를 통해 글로벌에서 약 45만 건 다운로드될 만큼 인기를 얻었다. 마이크로소프트, VM웨어, 델, SAS 같은 글로벌 초 대형 IT 벤더들이 로그프레소 스캐너를 보안 권고문에서 추천하고, 더 나아가 자사 제품에 통합하거나 소스코드를 가져다가(포크해) 새로운 제품을 개발한 것은 더 큰 성과다.
국내 소프트웨어 산업 전반이 오픈소스 기여 활동에 소극적이라는 점을 고려했을 때, 로그프레소의 사례는 의미가 있어 보인다. 최근 로그프레소의 양봉열 대표와 구동언 상무를 만나 로그4j 취약점 스캐너 개발기를 들어봤다.
-로그프레소의 본업은 무엇인가
구동언 상무(이하 구) "보안과 관련된 데이터 분석이 본업이다. 방화벽 데이터, 개인 정보와 관련된 데이터 등 다양한 데이터를 모으고 분석해 보안에 관한 적절한 의사결정을 내릴 수 있도록 돕는 솔루션을 제공한다. 글로벌 업체와 비교하면 스플렁크와 비슷한 사업 모델이다."
-로그4j 스캐너는 어떻게 만들게 됐는지
양봉열 대표(이하 양) "처음에는 로그4j가 워낙 크고 급한 이슈라서 시작했다. 다들 이 문제로 어려움을 겪고 있으니까, 엔지니어적인 마인드로 스캐너를 빠르게 만들어서 도움이 되자는 생각에 만들었다. 취약점 점검으로 돈을 버는 회사는 아니니까 오픈소스 공개에 좀 자유로웠던 것 같다."
-로그4j에 버전별로 다양한 취약점이 발견 됐는데, 스캐너는 이를 다 커버하나?
구 "로그4j 전체 버전에 대한 취약점을 확인할 수 있다. 취약점 중에 패치가 나오거나 임시 조치가 가능한 것들은 그것까지 안내하고, 아닌 것들은 정확하게 버전 몇을 쓰고 있어서 문제라고 알려준다."
양 "사실 맨 처음의 코드는 그렇게 복잡하지 않았다. 가장 첫 번째 버전의 코드들을 보면 200줄 정도밖에 안 된다. 이 정도만 해도 취약점을 스캐닝하는 기능들은 충분히 다 수행을 할 수 있었다.
사용자들이 생기면서 요구 사항을 올라와, 그것을 반영하다 보니까 지금은 옵션이 많아졌다. 처음에는 로그4j 2버전에 한 가지 취약점만 진단하게 했었다. 그러다 로그4j 1버전 취약점도 찾아달라, 또 비슷한 로그백이라는 솔루션의 취약점도 찾아달라, Zip 파일 안에 있는 것도 찾아달라, 원래는 지정된 경로를 다 스캔하도록 되어 있는데, 네트워크 드라이브는 제외하고 스캔하게 해달라, 백업이나 복원을 원하는 경로에 하게 해달라, 취약한 버전을 찾았는데 이걸 관리해야 하니까 포팅할 수 있는 수단을 만들어달라 등 이런 요구 사항들이 계속 들어왔다."
-공개 후 반응은 어땠나?
양 "처음에는 스캐너를 바이너리 버전(컴파일해서 최종 결과물로 나온 실행파일)만 올려놨다. 그런데 많은 사람들이 소스코드를 오픈을 해달라고 요구하더라. 국내에서는 로그프레소를 검색해 보면 회사 정보를 알 수 있지만, 해외에서는 전혀 알려지지 않았으니까 스캐너를 신뢰하지 못해서였다. 취약점을 찾으려고 스캐너를 다운받았는데, 이게 오히려 악성코드일 수 있다는 생각을 한 것 같다.
그래서 소스코드를 공개하고 오픈소스 커뮤니티와 리뷰를 하는 과정을 많이 거치면서 사람들에게 신뢰 얻고 빠르게 알려진 것 같다. 점점 많이 쓰이니까 글로벌 IT 벤더들이 우리 스캐너를 보안 권고문에 포함하기도 했다. 또 그것을 보고 더 많이 사용자가 유입되는 일들이 벌어졌다. 현재 스캐너 다운로드는 약 45만 건을 기록하고 있다."
구 "마이크로소프트 애저 데이터브릭스, VM웨어, 델, 시스코는 보안권고문에 우리 스캐너를 포함시켰다. SAS는 우리 스캐너를 포크해서 SAS 고객에 맞춘 버전인 '로구치노(loguccino)'를 만들었다. IBM 소트웨어를 인수한 HCL은 우리 제품을 내부에 통합하기도 했다. 소스가 모두 공개돼 있으니까 살펴보고 고객들에게 제공했을 때 리스크가 없겠다고 판단을 한 것 같다."
-다른 비슷한 스캐너가 많이 나왔는데, 로그프레소 스캐너가 더 빨리 확산된 이유는 뭐라고 보나
구 "결국 적극적인 피드백이 차별화를 만들었다고 본다. 이용자들도 이 것이 잘 동작하는지 신뢰를 할 수 있어야 하는데, 적극적인 피드백으로 신뢰를 줬다."
양 "이슈 페이지에 보면 한 200개 이상 요구사항이 들어왔다. 12월 한 달 동안은 거의 잠을 못잤다. 해외, 특히 유럽 사용자들이 많다보니까 이슈를 올려준 시간대가 다 한국시간으로는 새벽이고, 대응이 늦어지면 또 사람들이 빠져나갈 것 같아서 빨리 대응하려다 보니까 잠을 거의 못잤다."
-생각보다 많은 시간과 노력이 들어갔는데...스캐너를 공개하길 잘했다고 생각하나
구 "어떤 분들은 수백만 달러를 써도 못 할 마케팅을 했다고 말해주기도 하더라. 이런 활동이 당장 매출로 이어지는 것은 아니지만, 기술 회사에 필요한 글로벌 마케팅은 사실 이런 것이라고 본다. 기업에 필요한 것을 만들어서 올리고 사용자들이 피드백을 주고 다시 개선하고 이런 과정들을 공개적으로 다 보여줬다. 그 과정에서 기술력도 검증 받는 효과가 있었다."
-로그프레소 스캐너를 오픈소스 프로젝트로 진행하면서 느낀 점이 있다면
양 "지금까지 4~5명 정도가 로그프레소 스캐너 프로젝트에 컨트리뷰트했다. 특정한 기능을 추가해준 것부터 테스트 코드를 보내준 것까지 여러 가지로 기여를 해줬다.
이 과정에서 약간 아쉽게 생각된 부분은 국내 오픈소스 생태계에 대한 부분이다. 오픈소스 기여 활동에 관심이 적어서 아쉽다. 그냥 올려놓은 코드를 테스트만 해줘도 개발자 입장에서는 도움이 많이 된다. 그런데 국내에서는 뭔가 글을 올리는 것 자체도 좀 부담스럽게 생각하는 느낌이다. 지금 깃허브에 올라온 대부분의 이슈들도 다 영어권 사용자들한테 나온 피드백이다. 국내에선 딱 한 건 밖에 없었다."
-로그4j 취약점 대응이 장기화 될 것이란 전망이 많은데...어떻게 대응해야 하나
양 "거의 모든 프로그램에 로그4j가 들어가 있다. 전부 다 패치가 이뤄지는지 관리하려면 엄청나게 시간이 소요될 수밖에 없다. 장기간 관리가 필요할 수밖에 없어서, 로그4j 이슈가 오래 갈 것이라고 얘기하는 사람이 많다.
공공기관이나 대기업들 같은 경우는 인프라 관리가 잘 돼 있어 조치가 빨리 이뤄졌지만, 중소기업은 버그 식별조차 안 된 경우가 많다. 또 대기업이나 공공기관이라고 할지라도 인터넷 서비스에 있는 로그4j는 찾아서 막아 놨지만, 내부 시스템에 있는 것들은 아직 다 처리하지 않았을 가능성이 많다. 공격자가 다른 취약점을 타고 내부로 들어오게 되면 내부에서 쓰는 로그4j 애플리케이션들이 굉장한 위험요소가 될 수 있다. 그래서 취약점을 완벽하게 박멸하는 게 중요하다.
우리가 계속적으로 로그4j를 추적하고 모니터링할 수 있도록 '로그4j 워치 서비스'를 내놓은 이유이기도 하다."
구 "로그4j 워치는 스캔 후 리포트까지 받아볼 수 있게 만든 클라우드 서비스다. 기업이 로그4j 사태에 대응하려면, 스캔한 내용을 정리한 리포트도 필요하다. 그런 부분을 워치 서비스가 제공해준다. 10대까지는 무료 플랜으로 제공한다. 그 이상으로 점검이 필요한 경우에는 별도로 협의를 하고 있는데, 그렇다고 많은 비용을 받는 것은 아니다. 공익적인 차원에서 운영하는 측면이 더 크다.
지금은 로그4j와 관련해 큰 불은 어느정도 껐고, 잔불이 좀 남아 있는 상태라고 보면 될 거 같다. 이 잔불이 어떤 형태로든 기업의 보안에 영향을 줄 수 있기 때문에 주의해야 한다. 지금도 자동화된 로그4j 공격 패킷이 돌아다니고 있다. 누구라도 하나만 걸려라라는 식으로 이미 알려진 취약점을 가지고 공격을 한다. 이런 공격은 항상 돌아다니기 때문에 취약점을 방어해야 한다.
결국 이 문제 해결하려면 안전한 버전으로 업데이트하고 패치를 해야 한다. 그렇게 하려면 작동하는 시스템이 취약한 오픈소스 버전을 쓰고 있는지 아닌지를 알 수 있어야 한다."
임유경 기자lyk@zdnet.co.kr