보안 개발 수명 주기 - 패턴

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에 대한 침투 테스트 건너뛰기

관련 패턴

참조: