이번 글의 세 문항은 공개 기출문제의 원문을 재현하지 않은 창작 문제다. 정답과 해설은 게시 시점에 확인한 OWASP와 NIST의 공개 문서를 근거로 작성했다.

문제 1 — 접근통제와 인증·인가

문제

웹 애플리케이션에서 로그인한 사용자가 자신의 권한을 넘어 다른 사용자의 주문을 조회할 수 있는 결함을 가장 직접적으로 설명하는 OWASP Top 10:2021 범주는?

선택지

  1. A01:2021 Broken Access Control
  2. A02:2021 Cryptographic Failures
  3. A06:2021 Vulnerable and Outdated Components
  4. A10:2021 Server-Side Request Forgery

정답

1번

해설

인증은 행위자의 신원을 확인하는 과정이고, 인가는 해당 행위자가 특정 자원에 접근할 수 있는지 결정하는 과정이다. 로그인 자체가 성공했더라도 객체별 권한 검사를 빠뜨리면 다른 사용자의 주문을 읽는 수평적 권한 상승이 발생할 수 있다. OWASP Top 10:2021은 이를 A01 Broken Access Control로 분류한다.

오답 포인트

2번은 암호화 실패, 3번은 취약하거나 오래된 구성요소, 4번은 서버가 외부 요청을 대신 보내는 SSRF와 관련된다. 인증 성공을 곧 모든 자원에 대한 인가로 해석하면 안 된다.

출처 또는 검증 근거

OWASP Top 10:2021 공식 문서 및 접근통제 설명: https://top10.owasp.org/2021/ · https://devguide.owasp.org/en/02-foundations/05-top-ten/

문제 2 — 입력값과 SQL 인젝션

문제

사용자 입력을 SQL 문자열에 직접 이어 붙이는 대신 SQL 인젝션 위험을 줄이기 위한 기본적인 개발 통제는?

선택지

  1. 입력값을 Base64로 한 번 인코딩한 뒤 문자열 결합한다.
  2. 준비된 문장과 매개변수 바인딩을 사용하고 입력을 검증한다.
  3. 데이터베이스 오류 메시지를 사용자에게 상세히 노출한다.
  4. 관리자 화면에서만 문자열 결합을 허용한다.

정답

2번

해설

신뢰할 수 없는 입력이 명령어나 질의의 구문으로 해석되지 않도록 질의 구조와 값을 분리하는 것이 핵심이다. 준비된 문장과 매개변수 바인딩은 SQL 구문과 입력값을 분리하며, 허용 목록 기반 검증과 최소권한 계정 사용을 함께 적용하면 방어층을 보강할 수 있다.

오답 포인트

Base64는 보안 통제가 아니라 인코딩이며 SQL 구문과 입력을 분리하지 않는다. 오류 상세 노출은 정보 유출을 늘리고, 관리자 화면이라는 위치만으로 입력이 신뢰되는 것은 아니다.

출처 또는 검증 근거

OWASP Top 10:2021 공식 문서의 A03 Injection 설명: https://top10.owasp.org/2021/

문제 3 — 암호키 관리

문제

암호화 알고리즘을 선택했지만 키의 생성·보호·교체·폐기 절차를 정의하지 않았다. 이 상황을 가장 정확히 평가한 것은?

선택지

  1. 알고리즘만 안전하면 키 관리는 필요 없다.
  2. 키 관리 수명주기와 보호 정책이 빠져 운영상 암호 보장이 약해진다.
  3. 키를 소스코드에 하드코딩하면 배포가 쉬워진다.
  4. 모든 시스템이 하나의 키를 영구적으로 공유해야 한다.

정답

2번

해설

암호시스템의 보안은 알고리즘뿐 아니라 키잉 자료의 생성, 저장·보호, 사용, 교체와 폐기 같은 관리 절차에 의존한다. NIST SP 800-57은 암호키 관리 지침과 키 유형별 보호, 키 관리 기능을 다룬다. 따라서 키 수명주기와 접근권한·감사 정책을 설계하지 않은 시스템은 알고리즘이 강해도 운영 위험이 남는다.

오답 포인트

키를 소스코드에 넣으면 저장소·로그·배포물로 유출될 수 있다. 하나의 장기 공유 키는 침해 범위와 교체 비용을 키우며, 알고리즘 선택만으로 키 관리 문제를 해결할 수 없다.

출처 또는 검증 근거

NIST CSRC, Recommendation for Key Management 안내: https://csrc.nist.gov/projects/key-management/key-management-guidelines