endpoint-security

2 개의 포스트

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 같은 서명 기반 규칙으로 기본 허용 목록을 구성하고, 실제 실행 로그와 사용자 예외 요청을 반영하면서 잠금 범위를 점진적으로 확대하는 방식을 추천할 수 있다.

figma

보안과 사용성을 고려 (새 탭에서 열림)

Figma는 엔드포인트 보안을 강화할수록 사용성이 떨어진다는 통념을 반박하며, 보안 통제는 자동화·셀프서비스·데이터 기반 설계를 통해 업무를 방해하지 않아야 한다고 주장한다. 보안 정책이 지나치게 불편하면 사용자는 우회하거나 규정을 지키지 않게 되므로, 안전한 상태를 유지하면서도 빠르게 복구하고 필요한 접근 권한을 즉시 제공하는 전략이 효과적이다. ## 보안과 사용성을 함께 고려해야 하는 이유 - 강력한 정책만으로는 충분한 보안을 달성할 수 없다. - 복잡하고 자주 변경해야 하는 비밀번호 정책은 메모지에 비밀번호를 적거나 여러 서비스에서 재사용하는 행동을 유발할 수 있다. - 사용자가 보안 통제를 업무 지원으로 받아들이면 보안팀과 협력하고 정책을 준수할 가능성이 높아진다. - Figma는 보안을 단순한 통제가 아니라 회사의 생산성과 성공을 지원하는 요소로 본다. ## 엔드포인트 보안 기준과 자동 격리 - Figma의 Endpoint Security Baseline(ESB)은 회사 기기를 안전하게 유지하기 위한 보안 통제 모음이다. - 브라우저 자동 업데이트 - 원격 로그인 기능 비활성화 - 커널 확장 프로그램 실행 여부 점검 - 커널 확장 프로그램은 macOS 커널에서 직접 코드를 실행할 수 있어 데이터 탈취, 보안 기능 해제, 인증 정보 도용에 악용될 수 있다. - ESB는 OSQuery를 사용해 기기 상태를 SQL과 유사한 방식으로 점검한다. - 위험 요소가 발견되면 기기를 자동으로 격리해 AWS, GitHub, GSuite 같은 중요 시스템에 접근하지 못하게 한다. - IT 지원 티켓을 요구하는 대신 다음 절차를 자동화한다. - 가능한 문제를 먼저 자동 수정 - 사용자의 조치가 필요하면 Slack으로 알림 - Slack에서 셀프서비스 복구 방법 제공 - 기기가 안전해지면 즉시 접근 권한 복원 - 결과적으로 취약한 기기는 민감한 데이터에 접근하지 못하면서도, 정상 상태로 빠르게 복구된다. ## Santa 기반 애플리케이션 허용 목록 - Santa는 macOS에서 승인된 바이너리만 실행하도록 하는 오픈소스 바이너리 허용 목록 도구다. - 보호된 시스템 확장 프로그램으로 동작해 변조에 강하고, 악성코드 실행을 예방할 수 있다. - 모든 애플리케이션을 사전에 차단하면 업무 중단이 발생할 수 있으므로, Figma는 먼저 Monitor Mode로 실제 실행 프로그램을 관찰했다. - 수집한 데이터를 바탕으로 다음을 확인했다. - 일반 직원은 Slack, Chrome 등 표준 애플리케이션을 주로 사용했다. - 엔지니어는 직접 컴파일한 바이너리를 자주 실행하므로 자동 허용 절차가 필요했다. - 엔지니어가 사용하는 생산성 도구를 조사하고 보안 검토 후 허용 목록에 추가했다. - Lockdown Mode를 전체 기기에 적용해도 약 90%의 기기는 프로그램이 한 번도 차단되지 않을 것으로 분석됐다. - 나머지 예외적인 애플리케이션은 Slack 기반 셀프서비스 승인 워크플로로 처리했다. - 단계적으로 배포한 결과 업무 흐름을 거의 방해하지 않으면서 엔드포인트 보안을 크게 강화했다. ## Just-in-time 접근 제어와 Opal - 기업의 리소스 접근 방식은 일반적으로 두 극단으로 나뉜다. - **통제 없는 방식:** 누구나 프로덕션 환경에 접근할 수 있어 빠르지만 침해 위험이 크다. - **과도한 절차 방식:** 접근 승인을 위해 복잡한 절차를 거쳐야 해 생산성이 낮아진다. - 지나치게 엄격한 절차는 개발자가 개발 환경에서 프로덕션 서비스를 실행하거나 승인되지 않은 도구를 사용하는 ‘섀도 IT’를 유발할 수 있다. - Figma는 이 두 극단을 피하기 위해 필요한 순간에만 권한을 부여하는 **Just-in-time 접근 방식**을 사용한다. - Opal은 SaaS 애플리케이션과 프로덕션 환경 등에 대한 접근 권한을 필요할 때 요청하고 승인받도록 지원하는 도구로 소개된다. ## 실용적인 설계 원칙 - 보안 위반을 발견하면 즉시 차단하되, 복구 과정은 자동화한다. - 사용자가 IT 티켓을 기다리지 않고 Slack 등 익숙한 도구에서 직접 문제를 해결할 수 있게 한다. - 정책을 전면 적용하기 전에 실제 사용 데이터를 수집해 예외와 업무 영향을 파악한다. - 개발자처럼 사용 패턴이 다양한 그룹에는 동적 허용 목록과 셀프서비스 승인을 제공한다. - 접근 권한은 영구적으로 부여하기보다 필요한 시점에만 제한적으로 제공한다.