Bumblebee: 복잡한 개발 환경을 위한 오픈소스 스캐너

BBetter Stack
Computing/SoftwareManagementInternet Technology

Transcript

00:00:00공급망 공격에서 정말 짜증 나는 점이 뭔지 아세요? 모두가 당황할 때쯤이면
00:00:04이미 문제는 '운영 환경이 안전한가?'가 아니라 '누가 로컬에 이걸 설치했는가?'가 되어버린다는 거죠.
00:00:09이건 Bumblebee입니다. Perplexity에서 만든 새로운 오픈 소스 도구로, 개발자 기기를 스캔하여
00:00:15패키지, 확장 프로그램, MCP 설정을 패키지 관리자를 실행하거나
00:00:21프로젝트 코드를 실행하지 않고도 찾아냅니다. 일일이 확인할 필요 없이 몇 초 만에 로컬 인벤토리를 얻을 수 있죠.
00:00:26실제로 한번 실행해 보겠습니다. 그러고 나서 어디서 작동하고 어디서 안 되는지 이야기해 보죠.
00:00:36자, 예전 모델은 간단했어요. 레포를 스캔하고, 컨테이너를 스캔하고, 운영 환경을 스캔하는 것이었죠.
00:00:41하지만 요즘은 다들 그렇게 일하지 않습니다. 오늘날 노트북 한 대에는 패키지 관리자,
00:00:46브라우저 확장 프로그램, 에디터 확장 프로그램, AI 코딩 도구, 로컬 에이전트까지 이 모든 게 함께 공존합니다.
00:00:53한 기기에 너무 많은 신뢰가 쌓여 있는 셈이죠. Perplexity는 바로 이 문제를 위해
00:00:58Bumblebee를 내부적으로 개발했고, 며칠 전에 오픈 소스로 공개했습니다. Bumblebee는 읽기 전용 단일 바이너리 스캐너로,
00:01:05로컬 메타데이터에서 패키지, 에디터 확장 프로그램, 브라우저 확장 프로그램, 그리고 AI 도구 설정을 인벤토리화합니다.
00:01:11npm ls도, pip show도, 임의의 프로젝트 코드 실행도 필요 없습니다. 그저 메타데이터만 읽을 뿐이죠. 실행해 봅시다.
00:01:19워크플로를 빠르게 해주는 코딩 도구를 좋아하신다면 구독해 주세요. 영상이 계속 올라올 겁니다.
00:01:24좋습니다. 첫 번째 단계로 GitHub에서 go install을 통해 설치해야 합니다.
00:01:29그럼 단일 Go 바이너리가 생깁니다. 데몬도 없고 서비스도 필요 없죠. 이제 자가 테스트를 실행해 보죠.
00:01:37명령어는 'Bumblebee self test'를 실행하면 끝입니다. 결과가 잘 나오길 바랍니다. 오, 좋네요. 스캐너가
00:01:46알려진 고정 데이터를 올바르게 감지했습니다. 방금 그 테스트가 확인해 준 거죠. 이제 기본 스캔을 실행하겠습니다.
00:01:52간단합니다. 'Bumblebee scan profile'을 입력하고, 'baseline'이라고 설정한 뒤,
00:01:57nd.json 파일을 넣어주면 됩니다. 이건 일반적인 개발자 엔드포인트 인벤토리를 위해 사용하는 스캔입니다. 공통,
00:02:05글로벌 및 사용자 수준의 패키지 경로, 에디터 확장 프로그램, 브라우저 확장 프로그램, 지원되는 MCP
00:02:10설정을 확인합니다. 이제 출력 결과를 보죠. head 명령어를 실행해 보겠습니다. 이게 바로 Bumblebee가
00:02:17수행하는 핵심입니다. 각 줄이 구조화된 레코드입니다. 생태계, 패키지 이름,
00:02:25버전, 소스 파일, 신뢰 수준, 메타데이터, 그리고 Bumblebee가 발견한 위치까지 알 수 있습니다. 그러니 이제,
00:02:31'시스템 어딘가에 이게 설치되어 있을까?'라고 궁금해할 필요 없이, 바로 여기서 확인할 수 있게 된 거죠.
00:02:36이건 읽기 전용 메타데이터 파싱이기 때문에 Bumblebee는 npm을 호출하지 않습니다. 파이썬 패키지를
00:02:43가져오지도 않고, Go 프로젝트를 빌드하지도 않습니다. 오로지 파일만 읽을 뿐이죠.
00:02:50이게 사고 대응 시 유용한 이유입니다. Go가 설치되어 있다면,
00:02:55지금 영상을 멈추고 직접 본인 기기에서 시도해 보셔도 좋습니다. 아주 쉽게 실행할 수 있거든요.
00:03:00좋아요, 그런데 이게 왜 또 다른 보안 스캐너가 아닌 걸까요? 이미 그런 도구는 많잖아요. 음,
00:03:06처음 보면 그렇게 생각할 수도 있습니다. 그냥 또 다른 SCA 도구인가 싶겠지만, 실제로는
00:03:12그렇지 않습니다. SCA 도구는 주로 애플리케이션 종속성에 관한 것이고, SBOM 도구는 배포하는 것에 관한 것입니다.
00:03:19EDR은 실행된 파일에 대한 것이죠. Bumblebee는 '로컬 개발자 상태'에 집중합니다. 예를 들어, 악성
00:03:26패키지 권고 사항이 떴다고 해보죠. 어떤 노트북이 노출되었는지 알아야 합니다. 뻔한 방법은
00:03:32모두에게 패키지 관리자 명령어를 실행해 보라고 하는 건데, 그게 여기서 가장 위험한 행동입니다.
00:03:38만약 악성 코드를 찾고 있다면, 명령어를 실행하는 과정에서 의도치 않게 그 악성
00:03:42행위를 유발하고 싶진 않겠죠. 그래서 Bumblebee는 간단합니다. 메타데이터를 읽고, 인벤토리를 출력하고, 알려진 취약점과 대조한 뒤,
00:03:49바로 종료합니다. 끝이에요. 스캔 프로필은 세 가지가 있습니다. 첫 번째는 'baseline'입니다. 이것은
00:03:55가벼운 정기 스캔용입니다. 글로벌 패키지, 사용자 수준 도구 체인, 확장 프로그램,
00:04:02그리고 MCP 설정을 확인합니다. 기본적으로 개발자 기기에 보통 존재하는 것들이죠. 이 스캔이
00:04:09그 질문에 답을 해줍니다. 그다음은 프로젝트 스캔입니다. 코드, 소스, 작업 폴더와 같은
00:04:14알려진 작업 디렉토리를 위한 것이죠. 실제 개발 폴더 전반의 잠긴 파일들이 중요할 때 사용하세요.
00:04:20그리고 더 깊게 스캔할 수도 있습니다. 이것이 사고 대응 모드입니다.
00:04:26특정 경로를 지정하거나 홈 디렉토리처럼 넓은 범위를 지정할 수 있는데, 보통 취약점 카탈로그나
00:04:32지속 시간 제한을 함께 사용합니다. 평소에는 'Bumblebee scan profile baseline'을 쓰다가,
00:04:38나쁜 일이 생기면 더 깊은 스캔으로 전환하는 거죠. 명령어로 더 깊게 스캔할 수도 있습니다.
00:04:44평소엔 baseline, 사고 발생 시엔 deep scan, 이게 전체적인 과정입니다.
00:04:51커버리지도 상당히 흥미로운 부분입니다. Bumblebee는 npm, pnpm, yarn, bun,
00:04:58Go 모듈 등 모든 것을 아우를 수 있죠. 게다가 지원되는 MCP JSON 설정까지 살펴봅니다. 이건 매우 중요한 기능인데,
00:05:06요즘 MCP 설정이 새로운 ENV 파일이 되어가고 있기 때문입니다. 시스템 곳곳에 퍼져 있거든요. Bumblebee는 또한
00:05:13NDJSON 형태로 출력합니다. 어떤 사람들은 싫어하겠지만, 다른 관점에서 보면
00:05:18JQ로 파이프를 연결하거나, 파일로 저장하거나, MDM으로 수집하거나, SIEM으로 전송하거나,
00:05:25혹은 다른 에이전트 워크플로에 전달할 수 있다는 뜻입니다. 그저 지루하고 스크립트 가능한 인프라가 되려는 거죠. 이런 종류의
00:05:32문제에서는 지루한 게 최고입니다. 자, 이건 빠릅니다. 정말 빨라요. 비표준 라이브러리 의존성이
00:05:38전혀 없는 단일 Go 바이너리거든요. 개발자에게 아주 친화적인 시작점입니다. 즉,
00:05:45안전하게 설계되었다는 뜻입니다. 읽기 전용 접근 방식은 사소한 디테일이 아닙니다. 공급망 사고 중에는,
00:05:51함부로 패키지 관리자를 실행하는 게 최선의 계획은 아닐 수 있습니다. 만약 보고 있는 패키지에
00:05:58악성 라이프사이클 스크립트나 이상한 플러그인 동작이 포함되어 있다면, 스캐너가
00:06:03그걸 실행해 버리길 원치는 않을 테니까요. 또한, 이건 실제적인 공백을 채워줍니다. 대부분의 팀은
00:06:10CI, 컨테이너 운영 환경, 그리고 엔드포인트에 대한 가시성은 어느 정도 확보하고 있지만, 개발자 기기는
00:06:17지저분해지기 쉽습니다. 미완성 프로젝트, 옛날 클론들, 글로벌 패키지, 테스트 가상 환경,
00:06:23AI 도구까지 공식 인벤토리에는 절대 나타나지 않는 모든 것들이 있죠. Bumblebee는
00:06:30그런 로컬 상태를 볼 수 있는 실용적인 방법을 제공합니다. 마지막으로, AI 설정 커버리지도 시기적절합니다. 로컬
00:06:36에이전트, MCP 서버, 도구 호출 워크플로가 빠르게 움직이고 있으니까요. 하지만 Bumblebee를
00:06:43사용하기 전에 이 점을 명심하세요. 이건 아주, 아주 따끈따끈한 신상입니다. 이제 막 나왔죠.
00:06:49그러니 변화를 예상하세요. 지금은 macOS와 Linux에 집중하고 있습니다. 취약점 카탈로그 흐름은 훌륭하지만,
00:06:54좋은 권고 데이터가 있을 때 Bumblebee가 훨씬 유용해진다는 뜻이기도 합니다. 이건 EDR이 아닙니다.
00:07:02이건 좀 더 좁은 질문에 답하는 도구입니다. '이 기기에 어떤 패키지, 확장 프로그램, 개발 도구 설정이 존재하는가?'
00:07:09그리고 '나쁜 것으로 알려진 것과 일치하는 게 있는가?'가 포인트입니다. 기존 보안 스택을 대체하는 게 아니라,
00:07:14보안 스택이 제대로 보지 못하는 부분을 메워주는 도구죠. 그래서
00:07:19Bumblebee를 써야 할까요? 제 대답은 '네'입니다. 특히 일상 업무가
00:07:24npm, Go, VS Code, Cursor, Claude, 서버 등을 다룬다면요. 일주일에 한 번씩 기본 스캔을 실행하세요.
00:07:32명령어 하나면 됩니다. 'Bumblebee scan profile'을 실행하면 제가 보여드린 작업을 수행할 겁니다.
00:07:37이제 기기에 뭐가 있는지 스냅샷을 갖게 된 거죠. NDJSON을 중앙 어딘가에 저장해 두세요.
00:07:43그러고 나서 사고가 터지면 Slack에서 일일이 '혹시 이거 설치한 사람?'이라고 물어보는 대신,
00:07:49전체적으로 검색할 수 있습니다. Bumblebee는 로컬 패키지 메타데이터, 확장 프로그램 매니페스트,
00:07:55지원되는 AI 도구 설정을 통해 개발자 기기가 현재 무엇을 노출하고 있는지 알려줍니다. 첫 1시간 안에
00:08:02무슨 일이 벌어질지 모를 때 엄청나게 유용하죠. 아무도 논쟁하고 싶어 하지 않거든요. 누구에게 노출되었는지, 어디에 있는지,
00:08:08얼마나 빨리 증명할 수 있는지가 중요할 뿐이죠. 그런 면에서 Bumblebee는 매우 매력적입니다. 우리가 새로 얻은
00:08:14아주 강력한 오픈 소스 도구예요. 이런 코딩 도구와 팁이 좋으셨다면 BetterStack 채널을
00:08:18구독해 주세요.
00:08:20다음 영상에서 뵙겠습니다.

Key Takeaway

Bumblebee는 개발자 기기의 메타데이터를 읽기 전용으로 스캔하여, 외부 환경의 간섭 없이 로컬에 설치된 패키지 및 AI 도구 설정을 신속하게 인벤토리화하고 보안 가시성을 확보하는 오픈 소스 도구입니다.

Highlights

  • Bumblebee는 npm, pnpm, yarn, bun, Go 모듈 등 개발자 기기의 패키지, 에디터 확장 프로그램, AI 도구 설정을 읽기 전용으로 인벤토리화하는 오픈 소스 스캐너입니다.

  • 패키지 관리자를 직접 실행하거나 코드를 구동하지 않고 메타데이터만 파싱하여, 악성 패키지에 의한 코드 실행 위험 없이 안전하게 로컬 상태를 파악합니다.

  • 데이터는 구조화된 NDJSON 형식으로 출력되어 JQ 파이프라인, SIEM 전송, MDM 수집 등 자동화된 보안 워크플로에 즉시 통합 가능합니다.

  • baseline, project, deep scan 등 세 가지 스캔 프로필을 제공하며, 평시에는 가벼운 정기 스캔으로, 사고 발생 시에는 심층 스캔으로 전환하여 사용할 수 있습니다.

  • Go로 작성된 단일 바이너리 형태로 제공되어 별도의 서비스나 데몬 설치 없이 즉시 실행이 가능합니다.

Timeline

Bumblebee의 개발 배경과 목적

  • 공급망 공격 발생 시 로컬 기기의 위험 노출 여부를 빠르게 확인하는 것이 핵심입니다.
  • 현재 개발자 기기에는 패키지 관리자, 브라우저/에디터 확장 프로그램, AI 코딩 도구 등 신뢰 수준이 각기 다른 소프트웨어가 혼재되어 있습니다.
  • Bumblebee는 패키지 관리자를 호출하거나 코드를 실행하지 않고 로컬 메타데이터만 읽어 들입니다.

개발 환경이 복잡해지면서 로컬 기기에 쌓인 정보의 파편화가 보안 대응을 어렵게 만듭니다. 기존의 방식처럼 패키지 관리자 명령어를 직접 실행하는 것은 악성 코드를 의도치 않게 작동시킬 위험이 있습니다. Bumblebee는 이러한 위험 없이 기기 내부의 설정을 파악하기 위해 Perplexity에서 개발하여 오픈 소스로 공개했습니다.

설치 및 기본 사용법

  • GitHub에서 go install 명령을 통해 단일 바이너리로 설치할 수 있습니다.
  • Bumblebee self test 명령으로 스캐너의 정상 작동 여부를 확인할 수 있습니다.
  • Bumblebee scan profile baseline [파일경로] 명령으로 개발자 엔드포인트의 기본 스캔을 실행합니다.

설치는 별도의 데몬이나 서비스 구축 없이 단일 Go 바이너리만으로 완료됩니다. 스캔 결과는 NDJSON 형식으로 출력되며, 생태계, 패키지 이름, 버전, 위치 등 구조화된 데이터를 포함합니다. 이 방식은 읽기 전용으로 수행되므로 시스템의 동작을 전혀 방해하지 않습니다.

보안 스캐닝 전략과 프로필

  • Bumblebee는 애플리케이션 종속성에 집중하는 SCA나 배포 파일 중심의 SBOM과 달리 로컬 개발자 기기 상태에 집중합니다.
  • baseline 스캔은 글로벌 패키지 및 사용자 수준 도구 체인 확인용으로 정기 스캔에 적합합니다.
  • 사고 대응 시에는 deep scan을 사용하여 특정 경로의 잠긴 파일까지 깊게 추적할 수 있습니다.

보안 스택이 파악하지 못하는 로컬 기기의 사각지대를 메우는 것이 이 도구의 핵심입니다. 세 가지 스캔 프로필을 통해 상황에 맞는 가시성을 제공합니다. 특히 MCP(Model Context Protocol) 설정과 같은 최신 AI 도구 구성 요소까지 스캔 범위에 포함하여 최신 개발 환경의 변화에 대응합니다.

활용 시나리오 및 운영 주의사항

  • 안전한 읽기 전용 스캔 방식은 사고 대응 시 의도치 않은 악성 스크립트 실행을 방지합니다.
  • 현재 macOS와 Linux 환경을 주로 지원하며 향후 지속적인 업데이트가 예정되어 있습니다.
  • 정기적인 스냅샷을 생성하여 중앙 저장소에 보관하면 보안 사고 발생 시 신속한 탐색이 가능합니다.

이 도구는 기존 보안 인프라를 대체하는 것이 아니라 가시성이 부족한 로컬 개발 환경의 공백을 채웁니다. 실무자는 일주일에 한 번씩 스캔을 실행하여 기기 상태를 스냅샷으로 저장해 두는 것을 권장합니다. 이를 통해 사고 발생 시 불필요한 논쟁 없이 누가, 무엇을, 어디에 설치했는지 즉시 확인할 수 있습니다.

Community Posts

No posts yet. Be the first to write about this video!

Write about this video