Well-Architected Trust에 대해 자세히 알아보기 → 보안 개발 수명 주기
보안은 초기 설계에서 배포 및 운영에 이르기까지 개발 수명 주기 전체에 통합되어야 합니다. 해당 패턴은 교대 근무 왼쪽 보안 관행을 활성화하고, 일반적인 취약점을 해결하고, 배포 파이프라인을 보호합니다.
교대 근무 왼쪽 보안
패턴
| 찾을 위치 | 유사성 |
|---|---|
| 개발 | 툴링 | ✅ 개발자 워크플로에 통합된 IDE 보안 스캔 |
| 개발 | 설계 | ✅ STRIDE 메서드를 사용하여 설계 단계 동안 완료된 위협 모델링 |
| 개발 | 요구 사항 | ✅ 사용자 스토리 및 수락 기준에 포함된 보안 요구 사항 |
| 개발 | 소스 제어 | ✅ 사전 커밋 후크에 보안 정책 적용(암호 스캔, 코드 분석) |
| 개발 | 교육 | ✅ 발전하는 위협을 반영하기 위해 개발자 보안 교육을 정기적으로 새로 고침 |
| 개발 | CI/CD | ✅ CI/CD 파이프라인의 자동화된 보안 테스트 실패 중 중요한 결과에 대한 구축 |
| 개발 | 코드 검토 | ✅ 인증, 권한 부여, 데이터 액세스 코드에 필요한 보안 동료 검토 |
| 개발 | 코드 분석 | ✅ 린터 및 정적 분석을 통해 적용되는 보안 코딩 표준 |
| 개발 | 종속성 | ✅ 모든 커밋에 종속성 취약성 스캔 실행 |
| 개발 | 테스트 | ✅ 진입 테스트 범위에 GA 릴리스 이전의 새로운 기능 포함 |
안티 패턴
| 찾을 위치 | 불만 사항 |
|---|---|
| 개발 | 테스트 | ⚡️ 릴리스 전 수동 검토로 보안 테스트 연기 |
| 개발 | 교육 | ⚡️ 온보딩 중에 한 번만 보안 교육 수행 |
| 개발 | 코드 검토 | ⚡️ 병합 후 보안 팀에서 코드 검토 |
| 개발 | 설계 | ⚡️ 아키텍처 변경 시 위협 모델이 업데이트되지 않음 |
| 개발 | 소스 제어 | ⚡️ 위양성을 줄이기 위해 비활성화된 암호 스캔 |
| 개발 | CI/CD | ⚡️ 릴리스 마감일 시 보안 결과 무시 |
Salesforce용 OWASP 상위 10
패턴
| 찾을 위치 | 유사성 |
|---|---|
| 주입 | ✅ SOQL 쿼리는 바인딩 변수를 사용하여 주입을 방지합니다. |
| 주입 | ✅ SOQL, SOSL 또는 동적 쿼리에서 사용하기 전에 사용자 입력의 유효성을 검사하고 비활성화 |
| 주입 | ✅ 신뢰할 수 있는 입력으로만 동적 SOQL 제한 |
| 액세스 제어 | ✅ Security.stripInaccessible()을 사용하여 적용되는 CRUD 및 FLS 권한 |
| XSS | ✅ Lightning 구성 요소는 UI 렌더링에서 사용자 생성 콘텐츠를 이스케이프합니다. |
| 주입 | ✅ 외부 API 통합은 모든 입력을 확인하고 비활성화합니다. |
| 액세스 제어 | ✅ 게스트 사용자 액세스 최소화 및 엄격한 제한 |
| 인증 | ✅ 외부 인증에 사용되는 명명된 자격 증명(하드 코딩된 자격 증명 아님) |
| 인증 | ✅ PKCE로 올바르게 구현된 OAuth 2.0 플로 |
| 세션 관리 | ✅ 세션 보안 정책에 시간 초과 및 IP 제한 적용 |
| 구성 | ✅ 보안 상태 확인 검토 분기별 및 고위험 결과 수정 |
| 액세스 제어 | ✅ 권한 과잉 방지를 위해 사용자 정의 메타데이터 및 권한 감사 |
안티 패턴
| 찾을 위치 | 불만 사항 |
|---|---|
| 주입 | ⚡️ 사용자 입력과 문자열 연결을 사용하여 작성된 SOQL 쿼리 |
| 액세스 제어 | ⚡️ 게스트 사용자 프로필에 만들기, 업데이트 또는 삭제 권한 부여 |
| XSS | ⚡️ Lightning 구성 요소는 템플릿에서 이스케이프되지 않은 표현식을 사용합니다. |
| 인증 | ⚡️ 외부 통합은 코드에 하드 코딩된 자격 증명을 사용합니다. |
| 로깅 | ⚡️ 디버그 로그에 암호 또는 PII와 같은 중요한 데이터가 포함됩니다. |
| 액세스 제어 | ⚡️ FLS 및 CRUD 확인은 "모든 사용자를 제어함"으로 인해 생략됩니다. |
| 구성 | ⚡️ 보안 상태 확인 결과 무시 또는 무기한 연기 |
보안 파이프라인 설계
패턴
| 찾을 위치 | 유사성 |
|---|---|
| 파이프라인 | 소스 제어 | ✅ 필수 검토 및 상태 확인을 적용하는 지점 보호 규칙 |
| 파이프라인 | 액세스 제어 | ✅ 배포 파이프라인은 최소한의 필수 권한이 있는 서비스 계정을 사용합니다. |
| 파이프라인 | 암호 | ✅ 보안 저장소에 저장된 암호(소스 제어 또는 환경 변수에는 없음) |
| 파이프라인 | 배포 | ✅ 프로덕션 배포에는 공식 직원으로부터 수동 승인문이 필요합니다. |
| 파이프라인 | 감사 | ✅ 배포 로그는 승인 내역을 통해 시점을 배포한 사람을 수집합니다. |
| 파이프라인 | 유효성 검사 | ✅ 배포 전 확인에는 보안 스캔 및 규정 준수 확인이 포함됩니다. |
| 파이프라인 | 액세스 제어 | ✅ 파이프라인 관리 액세스에 필요한 다단계 인증 |
| 파이프라인 | 모니터링 | ✅ 파이프라인 구성 변경으로 보안 팀 알림 트리거 |
| 파이프라인 | 유효성 검사 | ✅ 자동화된 배포 후 확인으로 예상되는 보안 제어가 활성화됨 |
| 파이프라인 | 종속성 | ✅ 배포 전에 보안 영향에 대해 평가된 종속성 업데이트 |
안티 패턴
| 찾을 위치 | 불만 사항 |
|---|---|
| 파이프라인 | 암호 | ⚡️ 버전 관리에 적용된 암호(나중에 제거된 경우에도) |
| 파이프라인 | 소스 제어 | ⚡️ 검토 없이 모든 사람이 기본/프로덕션 지점에 병합할 수 있습니다. |
| 파이프라인 | 액세스 제어 | ⚡️ 배포 파이프라인은 관리자 수준 권한으로 실행됩니다. |
| 파이프라인 | 배포 | ⚡️ 승인 게이트 없이 완전히 자동화된 프로덕션 배포 |
| 파이프라인 | 감사 | ⚡️ 배포 로그는 변경을 시작하거나 승인한 사람을 수집하지 않습니다. |
| 파이프라인 | 유효성 검사 | ⚡️ 마감일을 무시하거나 무시한 실패한 보안 스캔 |
| 파이프라인 | 모니터링 | ⚡️ 추적 또는 검토되지 않은 파이프라인 구성 변경 사항 |
| 파이프라인 | 유효성 검사 | ⚡️ 배포 후 확인은 기능 정확성만 확인합니다. |
보안 테스트 전략
패턴
| 찾을 위치 | 유사성 |
|---|---|
| 테스트 | 정적 분석 | ✅ Salesforce 코드 분석기는 개발자 IDE에서 즉시 사용자 의견을 제공하고 CI/CD 파이프라인에서 자동화된 게이트로 실행됩니다. |
| 테스트 | 침투 테스트 | ✅ 신뢰할 수 없는 사용자(특히 Experience Cloud 사이트 및 공개 API)에게 노출되는 사용자 정의 응용 프로그램에 대해 실시된 침투 테스트 |
| 테스트 | 단위 테스트 | ✅ 보안에 초점을 맞춘 Apex 단위 테스트는 다른 권한 프로파일을 가진 사용자로 실행됩니다. |
| 테스트 | 종속성 | ✅ 종속성 스캔은 AgentExchange 패키지 및 JavaScript 라이브러리의 알려진 취약성 모니터링 |
| 테스트 | 보안 검토 | ✅ AppExchange 또는 AgentExchange 보안 검토 제출 시 정적 분석 보고서 준비 |
| 테스트 | 보안 검토 | ✅ 솔루션이 타사 웹 응용 프로그램 또는 서비스를 통합할 때 준비된 동적 스캔(투명 테스트) 보고서 |
| 테스트 | 종속성 | ✅ 구독 및 모니터링된 설치된 패키지에 대한 보안 고지 사항 |
안티 패턴
| 찾을 위치 | 불만 사항 |
|---|---|
| 테스트 | 적용 범위 | ⚡️ 보안 테스트는 정적 분석과 같은 단일 기법만 사용 |
| 테스트 | 단위 테스트 | Apex 테스트는 기능적 동작을 검증하지만, 권한이 낮은 사용자로 실행되지 않습니다. |
| 테스트 | 보안 검토 | ⚡️ AppExchange 또는 AgentExchange 제출이 필요한 정적 분석 또는 동적 스캔 보고서 없이 준비됨 |
| 테스트 | 침투 테스트 | ⚡️ 공용 Experience Cloud 사이트 및 API에 대한 침투 테스트 건너뛰기 |
관련 패턴
참조:
- 규정 준수 및 규제 패턴 — 플랫폼 거버넌스 및 감사 제어
- ID 및 액세스 관리 패턴 — 인증 및 인증
- 사고 대응 패턴 — 보안 이벤트 감지 및 대응
- 에이전트 패턴 — 에이전트별 보안 제어