LINE Bug Bounty 결과

버그바운티를 준비하면서

안녕하세요. LINE에서 보안 업무를 맡고 있는 이명재(MJ)라고 합니다. 이번 블로그에서는 지난 블로그에서 소개했던 것처럼 LINE이 처음으로 도전한 2015년도 LINE Bug Bounty Program(8/24-9/23)이 무사히 마감되어 그동안 어떻게 진행되었는지를 여러분께 공유하려고 합니다.

서비스에 잠재된 취약점을 신속하게 발견하고 수정하여 사용자에게 안전한 서비스를 제공하는 것이 이 프로그램의 취지였는데요. 프로그램을 준비하는 과정에서 회사 내 여러 부서의 도움을 받았습니다. 프로그램을 준비하면서 가장 필요했던 것은 경영진의 서포트와 멤버 구성이었습니다. 우선 경영진은 예산집행에 있어서 후원을 아끼지 않았습니다. 보통 기업들이 Bug Bounty Program을 진행하는 데 있어 가장 어려운 부분이 충분한 예산 편성과 자금 확보입니다. 하지만 LINE의 경영진은 장기적으로 서비스 안전성을 확보하는 것이 나중에 보안사고로 발생하는 손실비용보다 더 효과적임을 이해해 주었습니다. 보상금은 취약점을 기준으로 최소 금액을 정했고, 최대 금액은 취약점 1건당 20,000달러(USD)로 치명적인 취약점일수록 큰 상금으로 산정하여 적절한 보상이 이루어질 수 있게 준비하였습니다.

다음으로 프로그램을 진행하기 위해 개발, 고객서비스 등 다양한 부서와의 협업체계로 진행되었습니다. 프로그램을 진행하기 위해서는 사용자가 취약점을 제보하고 제보한 내용의 심사현황을 알 수 있도록 LINE Bug Bounty 사이트를 준비해야 했습니다. 또한 프로그램 문의가 있으면 대응하기 위한 고객서비스 부서와의 커뮤니케이션도 필수였습니다. 다양한 이슈들을 해결하기 위한 다방면의 멤버로 구성된 협업체계가 있었기 때문에 원할한 준비가 가능했습니다.

접수상황

LINE Bug Bounty 접수폼을 통해 접수된 건수에 대해 먼저 공유하겠습니다.

날짜별 접수상황

8월 24일~9월 23일, 한 달 간의 총 접수건수는 194건을 기록했습니다. 아래의 [그림 1]과 같이 가장 많은 접수건수는 접수 첫날이었는데 LINE Bug Bounty Program의 웹 사이트를 8월 5일에 오픈하여 대상 서비스와 도메인을 미리 공개한 덕분에 취약점 접수가 시작되자마자 미리 파악했던 취약점을 등록한 것으로 파악됩니다. 시간이 가면서 접수건수가 줄다가, 접수마감일에 약간의 증가추세를 보였습니다.

[그림 1] 날짜별 접수건수 분포

국가별 접속비율

간단히 수치를 보면 일본에서 89건, 일본 외 국가에서 105건이 접수되었습니다. 또한 프로그램 진행기간 동안 5건 이상 보고해 주신 분이 10명이 있고 한 분이 최대 16건을 보고한 경우도 있었습니다. 아래 [그림 2]는 기간동안 웹 사이트에 접속한 국가별 접속 비율인데 일본뿐만 아니라 여러 국가에서 높은 관심을 보여주었음을 알 수 있습니다.

[그림 2] 국가별 접속비율

심사 및 결과

심사 과정

접수된 내용에 대한 심사는 1, 2차 심사로 나뉘어 진행되었습니다. 1차 심사는 보고된 내용이 보안 취약점과 관련된 내용인지, 충분한 설명이 있는지, 영어나 일본어로 보고되었는지 등에 대한 심사입니다. 예를 들어, LINE을 업데이트했는데 기동이 안 된다 등의 내용은 보안 취약점에 해당되지 않는 내용입니다. 또한 취약점에 대한 설명 없이, 단순히 증거화면만 있는 경우는 충분한 설명이 없기 때문에 1차 심사가 불가능했습니다.

2차 심사는 1차 심사에서 통과한 내용이 과연 취약점으로써 적합한지에 대한 심사입니다. 제보된 내용이 이용규약에 명시된 서비스나 도메인에 포함되어 있는지, 실제 보고된 익스플로잇(exploit) 코드가 재현되는지 등의 사실 확인 및 취약점으로 적합한지를 확인하는 것이 심사내용입니다.

심사는 총 5명의 심사위원으로 구성되었습니다. Application Security, Code Security, Web Security 부분의 5명의 보안 전문가로 구성되어 있으며, 실제 타사의 Bug Bounty에 참가한 경험이 있는 멤버도 있습니다. 2차 심사위원들이 해당 취약점 보고 내용을 검토하여 이번 Bug Bounty 인정 요건을 갖추었는지를 심도 있게 검토하였습니다.

2차 심사에 통과한 것들은 취약점으로 인정되어 보상금이 지불되며, Hall of fame(명예의 전당)에 보고자명, 취약점명 등이 공개되었습니다.

심사 결과

이번 프로그램에서는 XSS, CSRF 등 총 14건이 취약점으로 인정되었습니다. 또한 심사결과 이용규약상 프로그램 대상 범위가 아니기 때문에 정식인정은 되지 않았지만, LINE에 유익한 정보로 판단된 것들에 대해서는 따로 분류를 하여 보상금을 지불할 예정이며, Special Contributors라는 항목으로 10명이 공개되었습니다. 심사 결과에 대한 자세한 내용은 사이트(Hall of fame)에서 확인할 수 있습니다.

참가자와의 인터뷰

LINE Bug Bounty Program 참가자에게 간단한 소감을 들어봤습니다.

Q: 참가하게 된 계기가 있을까요?
A: 평소 모바일 환경에서 여러 가지 앱의 취약점을 찾는 것이 취미였는데, 마침 LINE에서 Bug Bounty Program을 시작한다는 소식을 접하고 참가해야겠다고 생각했습니다. 메신저 앱에 대한 Bug Bounty Program은 흔하지 않는데 좋은 기회라고 생각했습니다.

Q: 취약점을 발견하게 된 간단한 히스토리와 분석하면서 어려웠던 점이 있을까요?
A: 아무래도 소스코드 없이 앱을 분석해야 하니, 여러 가지 분석방법이 필요했습니다. 특히 타사 앱보다 LINE은 디버깅할 때 어려움이 있었습니다.

Q: 프로그램에 참가하면서 느꼈던 점이 있을까요?
A: 메신저 앱이라서 기존에 잘 알려지지 않은 공격 요소(attack vector)와 버그를 찾고, 익스플로잇(exploit)까지 작성하는 것이 재미있었습니다. 자신이 만든 공격코드가 실제 움직이는 것을 보고 보람을 느꼈습니다. 실제 경험으로 타사의 경우 취약점을 찾아서 공유해주면 고마워하기보다 부정적으로 받아들이는 느낌이 있었고, 패치에 많은 시간이 걸리는 경우가 있었습니다. 하지만 LINE은 Bug Bounty Program을 운영하는 것 자체가 보안에 관심과 의지가 있는 것이라고 생각합니다. 또한 취약점을 보고할 때, 취약점으로 인정되기 위해서 필요한 것이 무엇인지 스탭분이 친절하게 알려주셔서 편리했습니다.

Q: LINE Bug Bounty Program에 참가해서 아쉬웠던 점이 있을까요?
A: 특별히 아쉬웠던 점은 없습니다만 프로그램 대상이 메신저에 한정되어 있어서 웹으로 대상이 확대되면 더 좋을 것 같습니다.

앞으로의 버그바운티에 관하여

여러분의 많은 관심과 제보로 LINE은 Bug Bounty Program을 통해 여러 가지 취약점을 찾을 수 있었습니다. 발견된 취약점들은 LINE 최신 버전에서 고쳐졌으니 사용자들은 LINE을 업데이트하면 더욱 안전하게 사용할 수 있습니다.

약 한 달 간의 짧은 기간이었지만 Bug Bounty Program이 얼마나 효과적인지 깨달았습니다. 반대로 짧은 접수기간이나 심사에 걸린 시간, 심사내용에 만족하지 못하는 분들이 있을 수 있습니다. 자신의 예상과는 다르게, 심사에서 취약점으로 인정되지 않은 경우는 특히 그렇게 생각하실 수 있습니다. 하지만 이용규약에 명시한 것처럼 실제 LINE이 이미 파악하고 있는 취약점이거나, 다른 분이 먼저 보고한 취약점인 경우는 공정한 심사를 위해 취약점으로 인정되지 않은 것이니 널리 이해해 주시길 부탁드립니다.

또한 취약성 접수기간을 짧게 설정한 이유는 처음 도전하는 것이라서 여러 가지 시행착오를 예상했기 때문인데요. 이러한 것들은 앞으로 개선하도록 노력하겠습니다. 또한 다음 번에는 더욱 더 유익한 프로그램으로 성장할 수 있도록 준비할 것을 약속드리겠습니다.

LINE Bug Bounty Program은 종료되었지만 이후에라도 LINE의 보안 취약점을 발견하면 dl_bugbounty@linecorp.com 메일 주소로 리포팅해주시고, 자세한 정보는 LINE Bug Bounty Program 사이트를 참고해주세요.

Related Post