Show HN: Bearer – 오픈 소스 코드 보안 스캐닝 솔루션 (SAST)
요약
Bearer는 Snyk Code, SonarQube 등 기존 코드 보안 솔루션의 오픈 소스 대안으로, 민감한 데이터(PII, PD, PHI 등) 흐름을 중심으로 코드베이스를 스캔하는 SAST(Static Application Security Testing) 도구입니다. 이 솔루션은 개발자 경험에 중점을 두고 설계되었으며, 알려진 취약점(CWE)이 실제 민감 데이터 유출에 미치는 영향을 평가하여 보안 이슈의 중요도를 명확히 제시합니다. Bearer는 클래스/메서드 이름 분석과 OpenAPI, SQL 등 데이터 정의 파일 분석을 결합하고, 120개 이상의 데이터 유형 분류 엔진을 활용해 코드 내 민감한 데이터 흐름을 탐지합니다. 또한 cURL이나 Docker 이미지로 쉽게 설치 및 실행할 수 있어 개발자 친화적입니다.
핵심 포인트
- 민감한 데이터를 중심으로 보안 위험을 평가하는 독특한 SAST 접근 방식을 제공합니다.
- 개발자 경험(developer experience)에 중점을 두어, CI/CD 환경에서 쉽고 빠르게 통합할 수 있습니다.
- 단순히 취약점만 찾는 것이 아니라, 알려진 CWE가 실제 민감 데이터 유출에 미치는 영향을 연결하여 중요도를 판단합니다.
- 클래스 구조 분석과 OpenAPI/SQL 등 데이터 정의 파일 분석을 결합하여 민감한 데이터 흐름(sensitive data flows)을 탐지합니다.
- YAML 기반의 규칙 시스템으로 사용자가 직접 커스터마이징 가능한 확장성을 제공합니다.
안녕하세요 HN,
저희는 Bearer의 공동 창업자이며, 오늘 Snyk Code, SonarQube 또는 Checkmarx와 같은 코드 보안 솔루션의 오픈 소스 대안을 출시합니다. 본질적으로 저희는 민감한 데이터(PII, PD, PHI)를 통한 독특한 접근 방식을 통해 보안 및 엔지니어링 팀이 코드베이스 내의 보안 위험과 취약점(vulnerabilities)을 발견, 필터링 및 우선순위를 지정할 수 있도록 돕습니다.
저희 웹사이트는 https://www.bearer.com 이며, GitHub 주소는 https://github.com/bearer/bearer 입니다.
저희는 원래 보안 전문가가 아니라 15년 이상 소프트웨어 개발자 및 엔지니어링 리더로 활동해 왔으며, 보안 도구에서 자주 부족하다고 느꼈던 부분인 개발자 경험 (developer experience)에 강력한 중점을 둠으로써 보안 제품에 새로운 관점을 제공할 수 있다고 생각했습니다.
진정한 개발자 친화적인 보안 솔루션을 구축하는 것 외에도, 저희는 많은 팀이 정적 코드 보안 솔루션 (static code security solutions)이 얼마나 소음이 심한지(noisy) 불평하는 것을 들었습니다. 그 결과, 그들은 종종 가장 중요한 문제를 분류(triaging)하는 데 어려움을 겪으며, 궁극적으로 이를 해결(remediate)하는 것도 어렵습니다. 저희는 문제의 중요한 부분이 보안 이슈의 실제 영향에 대한 명확한 이해가 부족하다는 사실에 있다고 믿습니다. 그러한 이해 없이는 개발자에게 심각한 보안 결함을 해결해 달라고 요청하기가 매우 어렵습니다.
저희는 민감한 데이터의 관점을 통해 보안 이슈의 영향을 살펴봄으로써 이 문제에 대한 독특한 접근 방식을 구축했습니다. 흥미롭게도, 오늘날 대부분의 보안 팀의 궁극적인 책임은 해당 민감한 데이터를 확보하고 비용이 많이 드는 데이터 손실 및 유출로부터 조직을 보호하는 것이지만, 지금까지 그 연결 고리는 만들어진 적이 없었습니다.
실질적인 측면에서, 저희는 알려진 코드 취약점 (CWE)이 궁극적으로 애플리케이션 보안에 영향을 미치는 다양한 방식을 평가하는 일련의 규칙을 제공하며, 이를 귀하의 민감한 데이터 흐름과 일치시킵니다. 이 글을 쓰는 시점에 Bearer는 100개 이상의 규칙을 제공합니다.
해당 규칙들이 탐지할 수 있는 몇 가지 예시는 다음과 같습니다:
- 쿠키 (cookies), 내부 로거 (internal loggers), 제3자 로깅 서비스 (third-party logging services)를 통한 민감한 데이터 유출 및 분석 환경 (analytics environments)으로의 유출.
- 민감한 정보 유출로 이어질 수 있는 필터링되지 않은 사용자 입력 (Non-filtered user input).
- 취약한 암호화 라이브러리 (weak encryption libraries) 사용 또는 암호화 알고리즘 (encryption algorithms)의 오용.
- 민감한 정보의 암호화되지 않은 송수신 통신 (HTTP, FTP, SMTP).
- 하드코딩된 비밀값 (Hard-coded secrets) 및 토큰 (tokens).
- 그리고 여기서 확인할 수 있는 더 많은 예시들: https://docs.bearer.com/reference/rules/
규칙은 모든 것이 YAML 기반이므로, 귀하만의 규칙을 생성할 수 있도록 쉽게 확장 가능합니다. 예를 들어, 초기 사용자 중 일부는 이 시스템을 사용하여 백업 환경에서의 민감한 데이터 유출이나 건강 데이터에 대한 애플리케이션 수준의 암호화 누락을 탐지하는 데 사용했습니다.
우리가 어떻게 코드만 보고 민감한 데이터 흐름 (sensitive data flows)을 탐지할 수 있는지 궁금하실 것입니다. 본질적으로, 우리는 이를 탐지하기 위해 정적 코드 분석 (static code analysis)을 수행합니다. 간단히 말해, 우리는 다음 두 가지 수준에서 이러한 민감한 데이터 흐름을 찾습니다:
- 클래스 이름 (class names), 메서드 (methods), 함수 (functions), 변수 (variables), 속성 (properties) 및 어트리뷰트 (attributes)를 분석합니다. 그런 다음 이를 탐지된 데이터 구조 (data structures)와 연결합니다. 여기에는 변수 조정 (variable reconciliation) 등이 포함됩니다.
- OpenAPI, SQL, GraphQL 및 Protobuf와 같은 데이터 구조 정의 파일을 분석합니다.
그 다음, 우리는 이를 분류 엔진 (classification engine)으로 전달하여 개인 정보 (Personal Data, PD), 민감한 개인 정보 (Sensitive PD), 개인 식별 정보 (Personally identifiable information, PII) 및 개인 건강 정보 (Personal Health Information, PHI)와 같은 민감한 데이터 카테고리로부터 120개 이상의 데이터 유형을 평가합니다. 이 모든 내용은 여기에 문서화되어 있습니다: https://docs.bearer.com/explanations/discovery-and-classific...
앞서 말씀드린 바와 같이, 개발자 경험 (developer experience)이 핵심입니다. 그렇기 때문에 cURL, Homebrew, apt-get, yum 또는 Docker 이미지로 15초 만에 Bearer를 설치할 수 있습니다. 그런 다음 로컬에서 CLI로 실행하거나 CI/CD의 일부로 실행할 수 있습니다.
현재는 JavaScript 및 Ruby 스택을 지원하지만, 곧 더 많은 스택이 추가될 예정입니다!
여러분의 의견을 알려주세요. 그리고 여기에서 리포지토리 (repo)를 확인해 보세요: https://github.com/Bearer/bearer
AI 자동 생성 콘텐츠
본 콘텐츠는 HN Show HN (AI)의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기