보안 개발 수명 주기 - 패턴

Well-Architected Trust에 대해 자세히 알아보기 → 보안 개발 수명 주기

보안은 초기 설계에서 배포 및 운영에 이르기까지 개발 수명 주기 전체에 통합되어야 합니다. 해당 패턴은 교대 근무 왼쪽 보안 관행을 활성화하고, 일반적인 취약점을 해결하고, 배포 파이프라인을 보호합니다.

패턴

찾을 위치유사성
개발 | 툴링✅ 개발자 워크플로에 통합된 IDE 보안 스캔
개발 | 설계✅ STRIDE 메서드를 사용하여 설계 단계 동안 완료된 위협 모델링
개발 | 요구 사항✅ 사용자 스토리 및 수락 기준에 포함된 보안 요구 사항
개발 | 소스 제어✅ 사전 커밋 후크에 보안 정책 적용(암호 스캔, 코드 분석)
개발 | 교육✅ 발전하는 위협을 반영하기 위해 개발자 보안 교육을 정기적으로 새로 고침
개발 | CI/CD✅ CI/CD 파이프라인의 자동화된 보안 테스트 실패 중 중요한 결과에 대한 구축
개발 | 코드 검토✅ 인증, 권한 부여, 데이터 액세스 코드에 필요한 보안 동료 검토
개발 | 코드 분석✅ 린터 및 정적 분석을 통해 적용되는 보안 코딩 표준
개발 | 종속성✅ 모든 커밋에 종속성 취약성 스캔 실행
개발 | 테스트✅ 진입 테스트 범위에 GA 릴리스 이전의 새로운 기능 포함

안티 패턴

찾을 위치불만 사항
개발 | 테스트⚡️ 릴리스 전 수동 검토로 보안 테스트 연기
개발 | 교육⚡️ 온보딩 중에 한 번만 보안 교육 수행
개발 | 코드 검토⚡️ 병합 후 보안 팀에서 코드 검토
개발 | 설계⚡️ 아키텍처 변경 시 위협 모델이 업데이트되지 않음
개발 | 소스 제어⚡️ 위양성을 줄이기 위해 비활성화된 암호 스캔
개발 | CI/CD⚡️ 릴리스 마감일 시 보안 결과 무시

패턴

찾을 위치유사성
주입✅ 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에 대한 침투 테스트 건너뛰기

참조: