CASA 업데이트

2023년 3월 29일 업데이트

업계 동향 및 권장사항에 따라 앱 방어 연합(ADA) 실무 그룹은 2023년 1분기에 검토 세션을 진행하여 CASA 테스트 절차를 업데이트, 간소화, 표준화했습니다. 이러한 작업 세션을 기반으로 CASA 요구사항과 프로세스가 다음과 같이 업데이트되었습니다.

  • CASA 요구사항이 134개에서 73개로 업데이트되었습니다 (자세한 내용은 아래 참고).

  • CASA 평가를 통과하려면 애플리케이션이 CWE 등급과 관계없이 73개의 CASA 요구사항을 모두 통과하거나 충족해야 합니다.

  • 업데이트된 등급 설명에 실험실에서 실시한 2등급이 포함되었습니다.

  • 각 등급의 보증 정보를 추가했습니다.

  • Tier 2 자체 스캔 프로세스를 간소화하기 위해 업데이트되었습니다.

CASA 요구사항 업데이트

  • 업데이트된 현재 요구사항 목록은 여기에서 확인할 수 있습니다.

  • 다음 요구사항이 삭제되었습니다.


req_id

실무 그룹 의견

8.1.6

이 요구사항을 더 실행 가능한 것으로 재고해 주시기 바랍니다 (예: 백업은 X 시간 동안만 보관해야 함, 백업은 도난/손상 여부를 모니터링해야 함, 백업은 프로덕션으로 다시 이동할 수 있는지 정기적으로 감사해야 함). 현재 가정은 너무 광범위하므로 더 많은 정의가 필요합니다.

5.1.4

다른 테스트 사례의 중복입니다. 노력은 많이 들지만 가치가 낮은 테스트 사례입니다. 삭제하는 것이 좋습니다.

7.3.3

다른 테스트 사례의 중복입니다. 노력은 많이 들지만 가치가 낮은 테스트 사례입니다. 삭제하는 것이 좋습니다.

1.2.2

4.1.1과 같은 다른 요구사항에 포함되어 있으므로 삭제

2.2.4

4.3.1에 포함되므로 요구사항 삭제

(4.3.1 관리 인터페이스가 적절한 다단계 인증을 사용하여

관리 인터페이스 및 기타 내부 액세스 경로에서 피싱에 대한 명의 도용 방지 기능을 포함합니다.

2.2.5

대부분의 CSP에서 mTLS를 지원하지 않으며 CASA를 테스트한 대부분의 개발자가 비밀번호 기반 인증을 사용하므로 삭제

2.4.3

표준이 시행될 만큼 구체적이지 않습니다.

2.4.5

ASVS V5에서 요구사항이 삭제되었으며 2.4.1의 권장 해싱 알고리즘이 이 요구사항을 충족할 수 없음

2.7.5

서드 파티 OOB 제공업체 분석이 필요할 수 있으므로 테스트가 불가능합니다. 인증 코드는 수명이 짧으므로 위험은 낮습니다.

2.8.2

요구사항은 맞춤 MFA 솔루션에만 관련이 있으며 6.4.2 및 6.4.1에도 적용됩니다.

2.8.5

2.7.6에 포함되어 있으므로 요구사항을 삭제합니다. 실패한 시도 로깅은 ASVS의 로깅 요구사항에 포함됩니다.

2.8.6

애플리케이션 수준의 실제 OTP는 일반적인 사용 사례가 아니며 이 요구사항은 관리 인터페이스에 필요합니다. 하지만 요구사항 4.3.1(무단 사용을 방지하기 위해 관리 인터페이스가 적절한 다중 인증을 사용하는지 확인)에서 관리 인터페이스의 MFA를 다루므로 이 위험을 다룹니다.

2.9.1

이 요구사항은 ASVS에 따른 실제 기기를 다룹니다(암호화 보안 키는 스마트 카드 또는 FIDO 키로, 사용자가

암호화 기기를 컴퓨터에 연결하여 인증을 완료합니다. 인증자는 다음을 통해 챌린지 nonce를 보냅니다.

암호화 기기 또는 소프트웨어에 전송되고, 기기 또는 소프트웨어는 안전하게

저장된 암호화 키)를 사용하므로 이 요구사항은 CASA의 범위를 벗어납니다. 물리적 기기 인증 위험은 MFA (물리적 또는 소프트웨어) 목적으로 4.3.1에 설명되어 있습니다.

2.9.3

이 요구사항은 ASVS에 따른 실제 기기를 다룹니다(암호화 보안 키는 스마트 카드 또는 FIDO 키로, 사용자가

암호화 기기를 컴퓨터에 연결하여 인증을 완료합니다. 인증자는 다음을 통해 챌린지 nonce를 보냅니다.

암호화 기기 또는 소프트웨어에 전송되고, 기기 또는 소프트웨어는 안전하게

저장된 암호화 키)를 사용하므로 이 요구사항은 CASA의 범위를 벗어납니다. 물리적 기기 인증 위험은 MFA (물리적 또는 소프트웨어) 목적으로 4.3.1에 설명되어 있습니다.

2.10.1

요구사항이 2.10.2와 모순됨

2.10.3

오프라인 공격 및 비밀번호 저장 위험을 다루는 2.4.1 (애플리케이션의 사용자 비밀번호를 저장할 때 다음 비밀번호 해싱 함수 중 하나가 사용되는지 확인: argon2id, scrypt, bcrypt 또는 PBKDF2)에 포함됩니다.

2.10.4

6.4.2 키 자료가 애플리케이션에 노출되지 않고 대신 암호화 작업을 위해 볼트와 같은 격리된 보안 모듈을 사용하는지 확인합니다.

3.2.3

3.4.1, 3.4.2, 3.4.3에 해당

3.5.1

사용자가 OAuth 제공업체를 통해 토큰을 취소할 수 있음

4.3.3

요구사항은 관리 인터페이스 및 권한이 있는 액세스에 대한 MFA로 충족됩니다.

5.1.3

다른 입력 유효성 검사 요구사항으로 처리되는 경우와 유효성 검사 부족으로 실제 비즈니스 로직 취약점이 발생하지 않는 경우 심각도가 낮아질 수 있습니다. 예를 들어 전화번호를 올바르게 검증하지 않으면 정보 페이지에 전화번호가 잘못 표시될 뿐 직접적인 보안 영향은 없습니다.

5.1.4

다른 입력 유효성 검사 요구사항으로 처리되는 경우와 유효성 검사 부족으로 실제 비즈니스 로직 취약점이 발생하지 않는 경우 심각도가 낮아질 수 있습니다. 예를 들어 전화번호를 올바르게 검증하지 않으면 정보 페이지에 전화번호가 잘못 표시될 뿐 직접적인 보안 영향은 없습니다.

5.3.2

모든 유니코드 문자가 유효하다고 지정하는 이 요구사항의 부분은 테스트를 어렵게 만들 수 있습니다. 모든 유니코드 문자를 포함할 수 있을 만큼 큰 텍스트 형식이 모든 애플리케이션에 포함되는 것은 아닙니다. 또한 전체 유니코드 공간에 대한 특정 운영체제 및 해킹 도구 지원이 부족하여 서버에서 지원하더라도 이를 테스트할 수 없습니다. 전반적으로 보안 가치가 의심스럽습니다. 원래 베타에 포함되었으나 테스트 중 문제로 인해 삭제되었습니다.

6.2.5

6.2.4 및 6.2.3에 포함됨

6.2.6

6.2.4 및 6.2.3에 포함됨

6.3.1

6.2.4 및 6.2.3에 포함됨

6.3.3

다른 난수 생성 요구사항에 포함됩니다.

7.1.2

7.1.1에 포함됨

7.1.3

7.1.1에 포함됨

7.3.1

7.1.1에 포함됨

7.3.3

7.1.1에 포함됨

8.1.3

허용되거나 필요한 매개변수를 설명하기 어렵습니다. 테스트할 수 없는 케이스입니다. 무엇이 필요한가요? 예외가 유효한지 어떻게 판단하나요? CASA의 지원 범위 외로 간주됨

8.3.3

테스트 가능한 요구사항이 아니며 개인정보처리방침 및 서비스 약관과 관련이 있고 애플리케이션 보안과는 관련이 없습니다. 이는 법률 및 규정 준수 검토이며 CASA의 지원 범위에 해당하지 않습니다.

8.3.6

제어는 시스템별 (Windows/Linux 변형) 및 기기별이며 대부분의 경우 애플리케이션 제어가 아닙니다.

8.3.8

1.8.1, 1.8.2, 1.1.4에 해당

9.2.5

8.3.5에 포함되고 애플리케이션의 로깅 정책 검토를 로깅합니다.

10.1.1

아키텍처 검토 대상이며 권장사항입니다. 요구사항을 테스트할 수 없음

10.2.3

적당한 시간 내에 완료할 수 없습니다. 이상한 코드는 문서화하고 검토해야 하지만, 백도어가 없는지 확인하기 위해 특정 작업을 설정하려면 줄별 심층 코드 검토가 필요하며 백도어가 없음을 보장하지는 않습니다.

잘 설계된 악성 함수를 테스트하기 어려움

10.2.4

테스트할 방법이 없습니다. 적절한 시간 내에 수행할 수 없습니다. 이상한 코드는 문서화하고 검토해야 하지만, 백도어가 없는지 확인하기 위해 특정 작업을 설정하려면 줄별 심층 코드 검토가 필요하며 백도어가 없음을 보장하지는 않습니다.

잘 설계된 악성 함수를 테스트하기 어려움

10.2.5

테스트할 방법이 없습니다. 적절한 시간 내에 수행할 수 없습니다. 이상한 코드는 문서화하고 검토해야 하지만, 백도어가 없는지 확인하기 위해 특정 작업을 설정하려면 줄별 심층 코드 검토가 필요하며 백도어가 없음을 보장하지는 않습니다.

잘 설계된 악성 함수를 테스트하기 어려움

13.1.1

5.2.6 및 5.3.9에 해당

12.3.1

ASVS 및 CASA의 5장 (유효성 검사, 정리 및 인코딩)에 있는 다른 기존 요구사항에 포함되는 경로 탐색 위험

12.3.3

5.2.6 및 5.3.9에 해당

12.3.6

10.3.2, 12.4.1, 12.4.2에 해당

12.5.1

10.3.2 및 12.4.2에 해당

12.5.2

10.3.2, 12.4.1, 12.4.2에 해당

13.1.5

다른 입력 유효성 검사 요구사항으로 처리되는 경우와 유효성 검사 부족으로 실제 비즈니스 로직 취약점이 발생하지 않는 경우 심각도가 낮아질 수 있습니다. 예를 들어 전화번호를 올바르게 검증하지 않으면 정보 페이지에 전화번호가 잘못 표시될 뿐 직접적인 보안 영향은 없습니다.

13.2.2

다른 입력 유효성 검사 요구사항으로 처리되는 경우와 유효성 검사 부족으로 실제 비즈니스 로직 취약점이 발생하지 않는 경우 심각도가 낮아질 수 있습니다. 예를 들어 전화번호를 올바르게 검증하지 않으면 정보 페이지에 전화번호가 잘못 표시될 뿐 직접적인 보안 영향은 없습니다.

13.2.3

4.2.2에 포함됨

13.2.5

다른 입력 유효성 검사 요구사항으로 처리되는 경우와 유효성 검사 부족으로 실제 비즈니스 로직 취약점이 발생하지 않는 경우 심각도가 낮아질 수 있습니다. 예를 들어 전화번호를 올바르게 검증하지 않으면 정보 페이지에 전화번호가 잘못 표시될 뿐 직접적인 보안 영향은 없습니다.

13.3.1

다른 입력 유효성 검사 요구사항으로 처리되는 경우와 유효성 검사 부족으로 실제 비즈니스 로직 취약점이 발생하지 않는 경우 심각도가 낮아질 수 있습니다. 예를 들어 전화번호를 올바르게 검증하지 않으면 정보 페이지에 전화번호가 잘못 표시될 뿐 직접적인 보안 영향은 없습니다.

14.4.1

5.3.1에 해당

14.4.2

다른 입력 유효성 검사 요구사항으로 처리되는 경우와 유효성 검사 부족으로 실제 비즈니스 로직 취약점이 발생하지 않는 경우 심각도가 낮아질 수 있습니다. 예를 들어 전화번호를 올바르게 검증하지 않으면 정보 페이지에 전화번호가 잘못 표시될 뿐 직접적인 보안 영향은 없습니다.

14.4.3

5.2.7 및 5.3.3에 포함됨

14.4.5

6.2.1 및 9.2.1에 포함됨

14.4.7

12.4.1에 해당

14.5.3

14.5.2에 포함됨

2.1.5

2.1.1에 포함됨

2.1.6

2.1.1에 포함됨

2.2.3

위험이 다른 자동화 방지 컨트롤로 처리되므로 casa와 관련이 없습니다.

2.5.6

다른 비밀번호 보호 기능으로 보호됨

3.1.1

노출 위험이 낮고 ASVS의 다른 컨트롤로 보호됨

3.2.1

노출 위험이 낮고 ASVS의 다른 컨트롤로 보호됨

3.4.4

노출 위험이 낮고 ASVS의 다른 컨트롤로 보호됨

3.4.5

노출 위험이 낮고 ASVS의 다른 컨트롤로 보호됨

4.2.1

13.1.4에 해당

5.2.8

다른 입력 유효성 검사 및 삭제 검사로 처리됩니다.

5.3.5

다른 입력 유효성 검사 및 삭제 검사로 처리됩니다.

7.4.1

로깅 검사로 처리됨

8.2.3

8.1.1에 해당

9.1.1

6.2.1 및 9.2.1에 포함됨

1.2.3

1.1.4, 1.8.4, 1.8.2에 해당

1.4.4

1.1.4, 1.8.4, 1.8.2에 해당

1.5.2

1.1.4, 1.8.4, 1.8.2에 해당

1.5.3

1.1.4, 1.8.4, 1.8.2에 해당

1.5.4

1.1.4, 1.8.4, 1.8.2에 해당

1.9.1

1.1.4, 1.8.4, 1.8.2에 해당

1.11.3

1.1.4, 1.8.4, 1.8.2에 해당

1.14.1

1.1.4, 1.8.4, 1.8.2에 해당

1.14.2

1.1.4, 1.8.4, 1.8.2에 해당

1.14.3

1.1.4, 1.8.4, 1.8.2에 해당

1.14.4

1.1.4, 1.8.4, 1.8.2에 해당

1.14.5

1.1.4, 1.8.4, 1.8.2에 해당

1.14.6

1.1.4, 1.8.4, 1.8.2에 해당

6.1.2

6.1.1에 해당

6.1.3

6.1.1에 해당

2.10.2

2.5.4에 해당

2.2.1

11.1.4에 해당

2.7.3

2.7.2에 해당

2.7.4

2.7.2에 해당

5.1.2

자동화 방지 컨트롤이 적용됨

6.2.2

승인된 암호화 알고리즘이 정의되지 않음

8.2.1

8.1.1에 포함됨

9.1.2

9.2.1에 해당

9.1.3

9.2.1에 해당

5.5.1

1.8.2에 포함됨

14.2.1

1.14.6에 포함됨

3.3.4

스테이트리스 인증/권한 부여를 사용하는 애플리케이션에는 해당하지 않습니다. 삭제하라는 NCC Group의 권장사항에 동의합니다. 이는 3.3.3에 의해 처리되어야 합니다.



  • 다음 요구사항이 추가되었습니다.


req_id

설명

1.1.4

애플리케이션의 모든 신뢰 경계, 구성요소, 중요한 데이터 흐름의 문서와 근거를 확인합니다.

1.8.1

모든 민감한 정보가 식별되고 보호 수준으로 분류되었는지 확인합니다.

1.8.2

모든 보호 수준에 암호화 요구사항, 무결성 요구사항, 보관, 개인 정보 보호 및 기타 기밀성 요구사항과 같은 보호 요구사항 집합이 연결되어 있고 이러한 요구사항이

아키텍처에 적용됩니다.

2.1.1

사용자가 설정한 비밀번호의 길이가 12자 이상인지 확인

2.5.4

공유 계정 또는 기본 계정이 없는지 확인합니다 (예: 'root',

'admin' 또는 'sa')

4.2.1

민감한 데이터와 API가 레코드 생성, 읽기, 업데이트, 삭제를 타겟팅하는 안전하지 않은 직접 객체 참조(IDOR) 공격으로부터 보호되는지 확인합니다(예: 다른 사용자의 레코드 생성 또는 업데이트, 모든 사용자의 레코드 보기, 모든 레코드 삭제).

1.14.6

애플리케이션이 지원되지 않거나, 보안이 취약하거나,

NSAPI 플러그인, Flash, Shockwave, ActiveX와 같은 클라이언트 측 기술

Silverlight, NACL 또는 클라이언트 측 Java 애플릿