allowlist

1 개의 포스트

figma

생산성 저하 없는 Santa 배 (새 탭에서 열림)

Figma는 macOS용 오픈소스 바이너리 승인 도구인 Santa를 전사 노트북에 도입해 엔드포인트 보안을 강화하면서도 업무 중단을 최소화했다. 핵심 전략은 파일 접근 제한으로 먼저 성과를 낸 뒤, 모니터링 모드에서 실제 실행 데이터를 수집하고, 단계적으로 허용 목록과 차단 정책을 적용하는 것이다. 이를 통해 보안 강화와 사용자 생산성 사이의 균형을 맞췄다. ## 바이너리 승인과 계층형 엔드포인트 보안 - 바이너리 승인은 기기에서 승인된 애플리케이션만 실행하도록 제한하는 방식이다. - 악성코드가 엔드포인트에서 실행되는 것을 막아 공격 표면을 줄일 수 있다. - 다만 허용된 바이너리가 실행하는 스크립트, 확장 프로그램, 플러그인까지 통제하지는 못하므로 여러 보안 계층 중 하나로 활용해야 한다. - Santa는 다음 두 가지 모드를 제공한다. - **모니터링 모드**: 바이너리 실행 정보를 기록하지만 차단하지 않음 - **잠금 모드**: 허용 목록에 없는 바이너리 실행을 차단함 ## 파일 접근 권한으로 먼저 성과 만들기 - Santa의 파일 접근 권한(FAA)은 특정 파일에 접근할 수 있는 애플리케이션과 프로세스를 제한한다. - Figma는 공격자가 탈취를 시도하기 쉬운 브라우저 쿠키를 보호하는 데 FAA를 활용했다. - 브라우저 애플리케이션만 쿠키에 접근하도록 제한해, 악성 스크립트가 인증 정보를 읽는 위험을 줄였다. - FAA는 사용자의 일반적인 작업 흐름에 거의 영향을 주지 않기 때문에, 바이너리 실행 차단보다 먼저 도입하기에 적합했다. ## 허용 목록 규칙의 종류 Santa는 애플리케이션의 신뢰성을 식별하는 여러 규칙 유형을 지원한다. - **Binary**: 바이너리의 SHA-256 해시를 기준으로 허용한다. - 파일이 변조되면 해시가 달라져 기존 규칙이 무효화된다. - 가장 정밀하지만 업데이트마다 규칙 관리가 필요하다. - **TeamID**: Apple 개발자 팀이 서명한 모든 바이너리를 허용한다. - 특정 공급자의 여러 애플리케이션을 폭넓게 허용할 수 있다. - **SigningID**: 특정 개발자 서명 식별자에 해당하는 바이너리만 허용한다. - TeamID보다 좁은 범위로 통제할 수 있다. - **Compiler/Transitive**: 지정된 컴파일러가 만든 바이너리를 자동 허용한다. - 개발 환경처럼 빌드 산출물이 자주 바뀌는 경우 유용하다. - **PathRegex**: 파일 경로에 따라 허용하거나 차단한다. - 우회 가능성이 있어 신중하게 사용해야 한다. ## 모니터링 모드로 실제 사용 패턴 파악 - Figma는 처음부터 잠금 모드를 적용하지 않고 전사 기기에 모니터링 모드로 Santa를 배포했다. - 이 방식으로 모든 바이너리 실행 기록을 수집하면서 사용자 작업을 방해하지 않았다. - 수집된 데이터는 다음을 파악하는 데 활용됐다. - 직원들이 실제로 사용하는 애플리케이션 - 승인된 소프트웨어가 실행되는 방식 - 허용 목록에 추가해야 할 예외와 누락된 프로그램 - 이후 데이터를 분석해 잠금 모드에서 차단될 대상을 예측하고, 업무 중단을 줄이는 맞춤형 허용 목록을 구성했다. ## TeamID와 SigningID를 활용한 초기 허용 목록 - Figma는 Apple 개발자 인증서를 활용하는 **TeamID**와 **SigningID** 규칙부터 적용했다. - Zoom, Slack, Chrome, Notion, GitHub 등 회사에서 승인한 주요 애플리케이션을 규칙에 포함했다. - 이 규칙만으로도 Figma 기기에서 발생하는 바이너리 실행의 상당 부분을 처리할 수 있었다. - 이후 허용 목록에 포함되지 않은 실행 기록을 별도로 분석해 추가 규칙과 예외를 마련했다. - TeamID는 관리가 간편하지만 해당 개발자 팀이 서명한 모든 바이너리를 허용할 수 있고, SigningID는 더 세밀하지만 규칙 관리가 복잡해질 수 있다. ## 단계적 도입으로 생산성 보호 - 바이너리 승인 도구는 잘못 구성하면 개발 도구나 업무 애플리케이션까지 차단할 수 있다. - Figma는 다음과 같은 순서로 위험을 낮췄다. - 사용자 영향이 거의 없는 FAA부터 도입 - Santa를 모니터링 모드로 배포 - 실행 데이터를 기반으로 허용 목록 작성 - 주요 애플리케이션과 공급자에 대한 규칙 적용 - 충분히 검증한 뒤 잠금 모드로 전환 - 이 접근법은 보안팀이 정책을 추측해 작성하는 대신, 실제 조직의 소프트웨어 사용 데이터를 바탕으로 정책을 설계하게 한다. 실무적으로는 바이너리 차단을 한 번에 전면 적용하기보다, 파일 접근 제어와 모니터링부터 시작하는 것이 안전하다. 이후 TeamID·SigningID 같은 서명 기반 규칙으로 기본 허용 목록을 구성하고, 실제 실행 로그와 사용자 예외 요청을 반영하면서 잠금 범위를 점진적으로 확대하는 방식을 추천할 수 있다.