[보안뉴스 문가용 기자] 트위터의 비밀 소스코드 일부가 깃허브에 3개월 가량 공개되어 있었다는 사실이 뒤늦게 밝혀졌다. 깃허브(GitHub)는 세계에서 가장 큰 코드 호스팅 플랫폼으로 마이크로소프트가 소유하고 있으며, 1억 명 이상의 개발자들이 수도 없이 들락날락 거린다. 어마어마한 양의 코드가 저장되고 또 공유된다.

[이미지 = utoimage]
3월 24일 깃허브는 트위터 측의 요청에 따라 퍼블릭스페이스(PublicSpace)라는 이름의 리포지터리를 삭제했다. 이 리포지터리 내에는 트위터의 소스코드와 내부 도구들이 일부 저장되어 있었다고 한다. 퍼블릭스페이스를 등록한 건 FreeSpeechEnthusiast라는 이름으로 활동하는 사용자였다. ‘언론의 자유를 옹호한다’는 뜻의 이 이름은 지난 10월 일론 머스크가 트위터를 인수한 것에 대한 저항의 의지를 담은 것으로 분석된다.
유출된 코드는 네 개의 폴더로 나눠져 유출되어 있었다. 폴더의 이름은 auth, aws-dal-reg-svc로 3월 24일부터 내용을 확인할 수는 없지만 개발자들이라면 이 이름들을 통해 어떤 파일들이 있을지 대충 감을 잡을 수 있다고 한다.
FreeSpeechEnthusiast가 깃허브에 가입한 건 1월 3일이며, 공개된 소스코드 전부를 같은 날에 업로드 한 것으로 밝혀졌다. 3개월 가까이에 세계 최대 SNS 플랫폼 중 하나의 소스코드가 일반 대중들에게 노출되어 있었다는 뜻이다.
소스코드 유출, 보통 어떻게 발생하는가?
주요 소프트웨어 기업들은 내부에 수천만 줄의 코드를 보유하고 있고, 이것을 매일처럼 만지고 다룬다. 따라서 누군가는 이 과정에서 실수를 저지르기도 하고, 일부 코드는 여러 경로로 유출되기도 한다. 깃가디언(GitGuardian)의 연구원인 드웨인 맥다니엘(Dwayne McDaniel)은 “소스코드 유출에 해커들이 개입하는 경우가 많다”며 “작년 랩서스(Lapsus$)라는 갱단이 삼성과 우버 등에서 소스코드를 유출했다는 사실이 이를 증명한다”고 말한다.
하지만 소스코드 유출이 외부 해커들에 의해서만 발생하는 건 아니다. 이번 트위터의 경우 여러 가지 정황을 살폈을 때, 회사에 불만을 품은 내부 직원의 소행일 가능성이 높아 보인다. 맥다니엘은 “소스코드를 다루는 개발자들이 실수로 코드 일부를 잘못 저장하거나 전송하는 바람에 공개되는 경우가 상당히 많다”고 말한다.
“거대한 자동차 회사인 도요타의 경우 하청 계약업자가 실수로 코드 복사본을 전체공개로 잘못 설정하기도 했죠. 개발자들이 다루는 코드 리포지터리의 수가 워낙 많고, 매일처럼 새로운 게 생기고 사라지고 하니 헷갈릴 수밖에 없습니다. 이건 개발자들 한 사람 한 사람이 정신을 못 차리고 있어서 생기는 문제가 아니라 현대의 CI/CD 체제가 너무 복잡하고 리포지터리가 빠르게 늘어나서 그런 것입니다.”
소스코드 유출, 어떤 문제를 가지고 있나?
트위터와 같은 기업들의 경우 소스코드 유출은 커다란 문제로 이어질 수 있다. 특히 사이버 보안 및 저작권 침해 사고가 야기될 가능성이 높다고 전문가들은 말한다. 보안 업체 시놉시스(Synopsys)의 수석 보안 전략가 팀 맥키(Tim Mackey)는 “소스코드 리포지터리에는 코드 외에 다른 정보들도 저장되어 있는 경우가 많다”고 지적한다. “각종 실험 결과, 샘플 데이터, 소프트웨어 설정 관련 코멘트 등 여러 가지가 함께 저장되는 경우가 많습니다.”
민감한 개인정보와 인증 정보가 코드에 숨겨져 있는 경우도 무시할 수 없다. “애플리케이션들이라고 해서 전부 시장에 나와 고객들과 만나는 게 아닙니다. 어떤 애플리케이션들은 출시 계획 없이 특수한 다른 목적을 가지고 만들어지기도 합니다. 주로 특정 조직이나 부서 내부에서만 사용되는 앱들이 여기에 속합니다. 이런 앱들에는 내부에서만 유통될 내부 정보가 삽입되어 있기도 합니다.” 맥키의 설명이다.
맥다니엘은 “기업들은 각종 비밀들을 관리하는 전략을 좀 더 면밀하게 세워둘 필요가 있다”고 설명한다. “비밀 정보는 따로 보관하고, 특별하게 모니터링하고, 특별한 권한을 가진 사람만 다룰 수 있게 해야 합니다. 뿐만 아니라 미리 유출되었을 수 있다는 가정 하에 외부 상황을 모니터링 할 수단도 필요합니다. 코드가 유출되었다는 사실을 파악했을 때의 조치 절차도 미리 마련해야 하고요.”
맥키는 “특별히 소스코드만의 관리 전략이 있어야 이번 트위터 사건처럼 내부자의 일탈을 막을 수 있게 된다”고 강조한다. “누군가 소스코드 유출을 내부에서부터 계획한다고 해도 막을 수 있어야 합니다. 여러 단계의 승인을 거쳐야 한다든지, 소스코드를 외부로 내보내는 일을 원천적으로 봉쇄한다든지, 소스코드가 활용되는 모든 사안들을 모니터링 한다든지 하는 방법이 마련되어야 하죠. 소스코드 유출은 순식간에 회사를 큰 위기에 빠트릴 수 있습니다.”
3줄 요약
1. 누군가 트위터의 소스코드를 깃허브에 올림.
2. 회사에 불만을 품은 내부자의 소행으로 보임.
3. 소스코드에는 코드 이상의 정보들이 저장되어 있어 고강도 안전 대책이 필요.
[국제부 문가용 기자(globoan@boannews.com)]
<저작권자: 보안뉴스(www.boannews.com) 무단전재-재배포금지>