Blog


버그바운티 클럽이 전해드리는 이야기를 확인하세요.



[BIG SHOT] 국내 버그바운티 프로그램 소개 - 2022년 2월

새해들어 처음으로 쓰는 빅샷입니다. 아쉽게도 국내 버그바운티 관련 소식 중 마땅한게 없어 개인적으로 흥미를 느꼈던 해외 소식으로 시작해봅니다. 수년간 방치된 우버의 버그(이미지 출처: 우버)우버(Uber)의 버그 중 하나가 수년째 방치되고 있다가 최근 미국 언론에서 이 문제에 대해 다루기 시작하자 마침내 조치를 한 것으로 보입니다.  우버는 스마트폰을 기반으로 한 미국 최대의 승차 공유 서비스입니다. 이 버그는 우버의 내부 API에 존재하는 HTML 인젝션 취약점을 통해 우버의 공식 이메일 시스템(SendGrid:기업의 이메일 전송을 지원하는 클라우드 기반 서비스)에서 임의로 이메일을 발송할 수 있는 버그입니다. 우버가 2016년에 회원정보 유출을 겪었던 점을 고려하면 악의적인 공격자가 유출된 회원정보를 대상으로 사회공학 이메일을 보낼 수 있으므로 이 문제는 더욱 심각하게 받아들였어야 합니다. 하지만 우버는 그러지 않았습니다. 우버는 해커원이라는 버그바운티 플랫폼을 통해 버그바운티 프로그램을 운영하고 있습니다. 그것도 수년째 운영하며 매년 적지 않은 비용을 지불하고 있는데 왜 이런 일이 발생했을까요? 사실 2015년부터 2021년까지 여러 보안연구원들이 이 버그에 대해 몇 차례 경고하였으나 해커원의 분류팀에 의해 이 버그는 아래의 사유를 이유로 "범위에서 벗어남"으로 분류되어 버렸습니다. 우버의 버그바운티 프로그램 정책 스크린샷 (이미지 출처: 해커원)많은 버그바운티 플랫폼 회사는 쓰나미처럼 밀려오는 버그 보고서를 감당하기 어려운 프로그램 운영사를 대신해 보고서를 분류해주는 서비스를 제공합니다. 버그바운티 플랫폼에서 버그를 보고한 보안연구원과 1차적으로 소통하면서 버그에 대해 검증, 심각도 결정, 무효 버그에 대한 거부 등 보고서 수신 이후의 적절한 대응을 한다고 보면 됩니다. 해커원의 Hackerone Triage 서비스가 대표적입니다. 이번 우버의 문제는 해커원의 보고서 분류 실수가 큰 것 같습니다. 이번 일로 우버의 버그 외에도 버그바운티 플랫폼이 제공하는 분류 서비스의 취약점 또한 드러난 셈입니다. 사람이 하는 일에 완벽이란 없겠지만 미연에 방지할 수 있는 사고임에도 자칫 분류를 잘못하여 더 큰 사고로 이어진다면 피해는 고스란히 사용자의 몫이 되겠죠. 이 사례에 비추어 봤을 때 버그바운티 플랫폼 운영사에서도 제출된 보고서는 다양한 상황과 이미 발견된 다른 버그들과의 연계성 등을 고려하여 시나리오 기반으로 영향도를 분석하여 분류하는 시스템과 프로세스가 필요하지 않을까 생각해봅니다. 국내 버그바운티 플랫폼들도 우버와 같은 유사 사례가 남지 않도록 고민하고 주의를 기울여야 할 부분인 것 같네요.테슬라 자동차를 원격제어할 수 있는 보안 결함(이미지 출처: 경향신문 기사)며칠 전 10대 보안연구원 David Colombo(@david_colombo)에 의해 25개 이상의 테슬라 차량을 원격제어할 수 있는 보안 결함이 공개되었습니다. 사실 이 결함은 테슬라 자체의 문제가 아니고 차량 소유자가 주로 사용하는 서드파티 도구, 테슬라메이트(TeslaMate)라는 오픈소스 로깅 소프트웨어에서 발견된 결함입니다. 테슬라메이트는 차량 데이터와 연동된 웹 환경의 대시보드가 제공됩니다. 그러나 테슬라메이트에 존재하는 인증 결함 및 차량 소유자의 구성 실수로 인해 최소 백개 이상의 대시보드가 인터넷에 그대로 노출되었고 이 안에는 차량을 원격제어할 수 있는 API 키가 포함되어 있었습니다. 즉 시동 걸기/끄기, 창문잠그기, 경적울리기 등 차량의 일부 기능에 대한 원격 제어가 가능했습니다. 이 결함은 조치되었고 결함을 발견한 David Colombo는 더 이상 결함을 악용하지 못하게 된 이후 자신의 블로그에 공개하였습니다.  오픈소스 솔루션의 버그 잡기에 나선 유럽연합(EU)유럽연합에서 5개의 오픈소스 소프트웨어에 대한 버그 바운티를 실시한다고 합니다. 이번 오픈소스 버그바운티는 버그바운티 플랫폼인 Intigriti를 통해 진행되었습니다.EU launches bug bounty programs for five open source solutions유럽연합의 이와 같은 시도는 이번이 처음은 아니고 이미 수차례 진행된 바 있습니다. 얼마 전에는 구글에서 향후 10년간은 오픈소스 소프트웨어의 버그를 찾는데 기여하겠다는 기사가 보도된 적도 있었습니다. 해커원을 비롯한 몇몇 단체들로 구성되어 진행중인 IBB(Internet Bug Bounty) 또한 오픈소스 소프트웨어의 보안을 위한 프로젝트 중 하나입니다. 이와 같은 움직임은 오픈소스 소프트웨어에 대한 중요성을 인식하고 있다는 방증이지 않을까 싶습니다. 오픈소스 소프트웨어의 보안 취약점을 찾고 고치기 위한 노력의 중요성은 지난 달 터진 log4shell 사태로 인해 그 어느 때보다 많은 분들이 통감하고 계실 것 같습니다. 하지만 이런 인식과 노력에도 불구하고 잊을만하면 한번씩 크게 터집니다. log4shell 이전에도 비슷한 수준으로 전 세계적 파장을 불러 일으켰던 사건이 있었습니다. OpenSSL에서 발견된 heartbleed(하트블리드)를 잊지 않으셨을 겁니다. OpenSSL도 역시 오픈소스 소프트웨어입니다. 사실 오픈소스 생태계를 이끌고 있는 분들의 인터뷰를 보면 참담합니다. 물론 누군가는 좋아서 취미삼아 하는 일일 수 있지만 본인이 개발한 오픈소스 소프트웨어가 널리 보급되어 있다면 개발자에게는 그에 따른 책임과 의무가 생기게 됩니다. 오픈소스 소프트웨어의 개발과 유지보수 및 보안을 위한 인력은 극히 제한적입니다. 자발적으로 기여하겠다고 나선 사람들도 있지만 과연 얼마나 많을까요? 그리고 이들 또한 대부분 생계 유지를 위한 생업이 따로 있다는 점을 잊지말아야 합니다. 이들은 모두 없는 시간 쪼개어 밤잠 설쳐가며 오픈소스 소프트웨어를 개발합니다. 보안 사고라도 터지면 수습을 위해 이들이 보낼 몇 달은 말할 것도 없겠네요. 생업에도 부정적인 영향이 있을 수 있습니다. 개발자는 결국 시간에 쪼들리고 돈에 쪼들리는 등 현실적인 문제에 부딪히다가 오픈소스 소프트웨어를 유료화로 전환하거나 역사의 뒤안길로 사라지게 합니다. 우리는 오픈소스 소프트웨어의 보안 사고로부터 어떤 교훈을 얻어야할까요? 이제 우리는 그들의 희생과 노력에 감사한 마음만 갖고 라이센스를 준수하며 사용하는 것만으로 보답을 다 했다고 생각해서는 안될 것입니다. 오픈소스 소프트웨어를 비즈니스에 활용하는 기업들이 전세계적으로 계속 증가하고 있고 오픈소스 소프트웨어의 보안 결함에 대한 영향력은 커질 수 밖에 없습니다. 이런 추세에 맞게 공격자들은 오픈소스 소프트웨어를 공격 대상으로 더 선호하게 되었습니다. 오픈소스 소프트웨어를 적극적으로 활용하는 정부와 기업에서는 건전한 오픈소스 소프트웨어의 생태계와 해커로부터 안전한 오픈소스 소프트웨어의 개발을 위해 현실적으로 도움이 되는 투자와 지원을 해야하지 않을까요? 한번 생각해 볼 문제입니다.2022년 2월 국내 버그바운티 프로그램※ 소개되는 버그바운티 프로그램은 프로그램 시작일과 프로그램 시행 기간을 고려하여 선정됩니다. "신규"는 프로그램 시작일을 기준으로 당월에 새롭게 시작된 프로그램을 뜻하며, "기존"은 프로그램을 시행한지 오래되었더라도 글 작성 시점 기준으로 12개월 이내에 시작되고 시행기간이 유효한 프로그램을 의미합니다. ■ 신규 프로그램: 1건Klaytn Blockchain제공 플랫폼: 패치데이기간: 2022년 1월 12일 - 2023년 1월 12일  최대 현상금: 50,000,000원타겟 시스템 유형: Klaytn 노드 및 스마트 컨트랙트의 소스코드, 블록체인 노드프로그램 URL: https://patchday.io/klaytn/klaytn-blockchain■ 기존 프로그램: 14건엔큐리티제공 플랫폼: 버그캠프기간: 2021년 10월 12일 - 최대 현상금: 0원타겟 시스템 유형: 웹프로그램 URL: https://bugcamp.io/programs/4be6ca31e4e7777e989d13efcf858c13(주)내스타일제공 플랫폼: 버그캠프기간: 2021년 10월 13일 - 최대 현상금: 0원타겟 시스템 유형: 웹프로그램 URL: https://bugcamp.io/programs/42f84873c958644cb121e2a5af0d9457TARGOS제공 플랫폼: 버그캠프기간: 2021년 10월 19일 - 최대 현상금: 0원타겟 시스템 유형: 웹프로그램 URL: https://bugcamp.io/programs/42a3639e491c069da8be40a8d15df4f5찜 어플리케이션제공 플랫폼: 버그캠프기간: 2021년 10월 24일 - 최대 현상금: 0원타겟 시스템 유형: 모바일프로그램 URL: https://bugcamp.io/programs/48059806ce94fc0184b9d61d491de51c주식회사 스패로우제공 플랫폼: 버그캠프기간: 2021년 10월 25일 - 최대 현상금: 0원타겟 시스템 유형: 웹프로그램 URL: https://bugcamp.io/programs/49e3c23aa416ca8aa6b21fdc0b933a3eCodeEngn제공 플랫폼: 버그캠프기간: 2021년 6월 10일 - 최대 현상금: 500,000원타겟 시스템 유형: 웹프로그램 URL: https://bugcamp.io/programs/4d39f5f7058e3a6089a17e1beae024ab 한국CISSP협회 대표홈페이지제공 플랫폼: 버그캠프기간: 2021년 6월 7일 -최대 현상금: 100,000원타겟 시스템 유형: 웹프로그램 URL: https://bugcamp.io/programs/4ca1fd4c425ccca6ba9d90911a5dd908Remote Browser제공 플랫폼: 버그캠프기간: 2021년 7월 21일 -최대 현상금: 500,000원타겟 시스템 유형: 웹프로그램 URL: https://bugcamp.io/programs/475e65db7e2b11c68ac1d7aeeea1bae2Webhacking.kr제공 플랫폼: 버그캠프기간: 2021년 8월 2일 부터최대 현상금: 1,500,000원 타겟 시스템 유형: 웹프로그램 URL: https://bugcamp.io/programs/441035cefaf0279ab99189ea3433443dNaver Whale제공 플랫폼: 패치데이기간: 2021년 10월 25일 - 최대 현상금: USD $7,500타겟 시스템 유형: 소프트웨어(네이버 웨일브라우저)프로그램 URL: https://patchday.io/naver/naver-whalePatchDay제공 플랫폼: 패치데이기간: 2021년 10월 5일 - 최대 현상금: 2,000,000원타겟 시스템 유형: 웹프로그램 URL: https://patchday.io/theori/patchday/Dreamhack제공 플랫폼: 패치데이기간: 2021년 10월 5일 - 최대 현상금: 2,000,000원타겟 시스템 유형: 웹프로그램 URL: https://patchday.io/theori/dreamhack수산아이엔티제공 플랫폼: 버그캠프기간: 2021년 10월 27일 - 최대 현상금: 0원타겟 시스템 유형: 웹프로그램 URL: https://bugcamp.io/programs/4a35dad2cc737abcb5935dfd67c15759스마트 안심케어제공 플랫폼: 버그캠프기간: 2021년 11월 22일 - 최대 현상금: 0원타겟 시스템 유형: 웹프로그램 URL: https://bugcamp.io/programs/49b1cee7bb158f4ea9ebe4f7e74739e3
 2022-01-27 08:32 KST      1215

[해킹 도구를 소개합니다 #2] Subfinder: 하위도메인 열거 도구

이번 해도소 코너에서 우리가 소개해드릴 도구는 Subfinder 입니다.Subfinder는 Project Discovery라는 해커와 개발자의 업무 자동화에 필요한 오픈소스 소프트웨어를 개발하는 회사에서 만든 프로그램입니다. 이 도구는 해커가 테스트하려는 타겟 도메인의 잠재적인 하위 도메인을 찾아주는 하위 도메인 열거 도구입니다. 보통 하위 도메인 열거는 정찰, 정보 수집이라고 불리는 초기 단계에서 수행하는 작업으로 취약점을 찾을 수 있는 공격 표면을 확장하고 잠재적으로 취약한 엔드포인트를 발견할 수 있는 확률을 높여주므로 매우 중요한 작업입니다. 이에 우리는 하위 도메인 열거 도구 중 하나인 Subfinder를 소개하기로 결정했습니다. Subfinder 외에도 다양한 하위 도메인 열거 도구가 존재하며 다른 도구들은 Weapons에서 확인이 가능합니다. 설치Subfinder를 설치하기 위해서는 go1.14+가 필요하며 go를 설치하셨다고 가정합니다. Subfinder를 설치할 수 있는 방법은 다음과 같습니다.go를 통한 직접 설치go get -v github.com/projectdiscovery/subfinder/cmd/subfindertar 또는 zip 파일을 통한 설치https://github.com/projectdiscovery/subfinder/releases/ 로 이동하셔서 본인의 환경을 고려해 원하시는 버전을 검토합니다.다음 명령을 통해 Subfinder를 다운로드 받습니다. wget https://github.com/projectdiscovery/subfinder/releases/download/v2.4.8/subfinder_2.4.8_linux_amd64.tar.gztar -zxvf subfinder_2.4.8_linux_amd64.tar.gzmv subfinder /usr/bin/subfinder설치가 끝났다면 다음 명령으로 Subfinder를 실행해봅니다../subfinder아래와 같은 출력화면이 표시된다면 정상적으로 설치가 된 것입니다.출력 화면수동 소스 API 키 설정위의 설치 과정만으로도 Subfinder는 정상적으로 동작합니다. 하지만 Subfinder에서 지원하는 Binaryedge, Certspotter, Censys, Virustotal과 같은 수동 소스의 API 키를 설정해주시면 다양한 수동 소스를 통해 더욱 많은 하위도메인을 찾을 가능성이 높아집니다.수동 소스의 API 키를 설정하기 위해서 $HOME/.config/subfinder/config.yaml 파일을 열어 아래와 같은 내용을 찾습니다. binaryedge: []censys: []certspotter: []chaos: []dnsdb: []github: []intelx: []passivetotal: []recon: []robtex: []securitytrails: []shodan: []spyse: []threatbook: []urlscan: []virustotal: []zoomeye: []그리고 본인이 사용하고자하는 소스의 [ ] 안에 본인의 API 키를 입력합니다. 예를 들면 다음과 같습니다....생략...virustotal: [Enter_your_api_key_here]...생략...사용법단일 도메인 대상 하위 도메인 열거-d 옵션을 사용하면 테스트하고자 하는 타겟에 대해 하위 도메인을 열거할 수 있습니다. 이것은 가장 기본적이고 간단한 사용법입니다../subfinder -d target.com다음은 트위터를 대상으로 실행한 결과입니다. $ ./subfinder -d twitter.com               __    _____           __            _______  __/ /_  / __(_)___  ____/ /__  _____  / ___/ / / / __ \/ /_/ / __ \/ __  / _ \/ ___/ (__  ) /_/ / /_/ / __/ / / / / /_/ /  __/ /    /____/\__,_/_.___/_/ /_/_/ /_/\__,_/\___/_/ v2.4.8 projectdiscovery.ioUse with caution. You are responsible for your actionsDevelopers assume no liability and are not responsible for any misuse or damage.By using subfinder, you also agree to the terms of the APIs used.[INF] Enumerating subdomains for twitter.comcareers.twitter.commta47.e.twitter.comdeveloper-staging.twitter.combbmas.twitter.combrandhub.twitter.comapi-39-4-5-39-4-9.twitter.comema.twitter.com...중간 생략...vpn-lab.smfc.twitter.comaudubon.fra2.twitter.comgoldenglobes.twitter.com[INF] Found 1137 subdomains for twitter.com in 3 seconds 330 milliseconds다수의 도메인 대상 하위 도메인 열거만일 다수의 도메인을 대상으로 실행하고 싶다면 아래와 같이 도메인 리스트가 나열된 파일을 먼저 만드십시요. target1.comtarget2.comtarget3.com...위의 파일을 domains.txt 라는 이름으로 저장했다고 합시다. -dL 옵션을 사용하면 domains.txt 파일에 저장된 각 도메인을 대상으로 하위 도메인을 검색할 수 있습니다../subfinder -dL domains.txt 파일로 결과 저장다음과 같이 -o 옵션을 사용하여 검색 결과를 로컬PC에 파일로 저장할 수 있습니다../subfinder -d target.com -o result.txt수동으로 API 키 설정 파일 지정-config 옵션을 통해 설정 파일을 지정할 수 있습니다../subfinder -config ~/.config/subfinder/config.yaml -d target.com -o result.txt특정 수동 소스 제외 -exclude-sources 옵션을 사용해 검색 시 사용을 원하지 않는 수동 소스를 제외할 수 있습니다../subfinder -exclude-sources censys -d target.com화면에 하위도메인만 출력-silent 옵션을 통해 실행 시 기본으로 표시되는 Subfinder 로고나 알림성 메시지가 출력되지 않도록 할 수 있습니다. 출력에는 검색된 하위 도메인 내역만 표시됩니다../subfinder -silent -d target.com 이 외에도 도움말을 참고하시면 활용할 수 있는 더욱 많은 옵션이 있습니다../subfinder -h버그바운티 실무에서의 Subfinder 활용버그바운티 프로그램의 취약점 점검 대상이 와일드카드 도메인(*.target.com)인 경우에는 하위도메인을 찾아내는 일이 가장 우선되어야 합니다. 따라서 사실상 이 도구를 활용할 수 있는 방법은 보안연구원의 창의력에 달려 있습니다. 다음은 Subfinder 도구를 사용한 사례입니다. 명령에 사용된 다른 도구들은 별도로 설명하지 않습니다.라이브 호스트/도메인/자산 검색 (@YashGoti)subfinder -d http://tesla.com -silent | httpx -silent -follow-redirects -mc 200 | cut -d '/' -f3 | sort -uSubdomain Takerover(하위도메인 인수) 취약점 점검 (@hahwul)subfinder -d {target} >> domains ; assetfinder -subs-only {target} >> domains ; amass enum -norecursive -noalts -d {target} >> domains ; subjack -w domains -t 100 -timeout 30 -ssl -c ~/go/src/github.com/haccer/subjack/fingerprints.json -v 3 >> takeover ; 소개를 마치며지금까지 Subfinder라는 하위 도메인 열거 도구의 설치부터 기본적인 사용법에 대해 소개해드렸습니다. 다양한 하위 도메인 열거 도구가 존재하고 각 도구마다의 장단점이 있습니다. 반드시 Subfinder를 사용해야만 하위도메인을 찾을 수 있는 것은 아닙니다. 개인의 취향이나 선호도에 따라 subfinder가 아닌 다른 도구를 사용하셔도 무방합니다. 버그바운티에 참여하는 보안연구원 대부분은 하위 도메인 열거에 우수한 성능이 입증된 도구 몇 개를 선정해 함께 사용하곤 하며 Subfinder 역시 버그바운티 활동을 하는 많은 보안연구원들이 선택한 도구 중 하나입니다. Subfinder를 통해 빠르고 쉽게 하위 도메인을 찾길 바랍니다. Subfinder Github - https://github.com/projectdiscovery/subfinder
 2021-07-06 10:15 KST      2872