패스잇
보안 · 중급

애플리케이션 개발 초기 단계에서부터 'Insecure Design' 취약점을 예방하기 위해 설계 과정에 어떤 보안 원칙들을 적용해야 할까요? 구체적인 예를 들어 설명해주세요.

힌트 · 위협 모델링을 통한 잠재적 취약점 식별, 최소 권한 원칙 적용, 심층 방어(Defense in Depth) 전략 수립, 보안 기본값(Secure by Design) 설정 등이 있습니다.

보안 설계 원칙위협 모델링최소 권한 원칙방어 심층보안 코딩 표준

모범답안

애플리케이션 개발 초기부터 Insecure Design 취약점을 예방하려면 몇 가지 보안 원칙을 설계 단계에 적용해야 합니다.

가장 먼저, 위협 모델링을 통해 잠재적인 공격 경로와 취약점을 식별합니다. 예를 들어, 사용자 인증 기능을 설계할 때 발생 가능한 공격 시나리오(무차별 대입 공격, SQL Injection 등)를 미리 예측하고 대응 방안을 마련하는 것이죠.

두 번째로, 최소 권한 원칙을 적용하여 각 기능과 사용자에게 필요한 최소한의 권한만 부여합니다. 예를 들어, 일반 사용자는 관리자 기능에 접근할 수 없도록 권한을 제한하는 것이죠.

세 번째로, 심층 방어(Defense in Depth) 전략을 수립하여 여러 단계의 보안 장치를 마련합니다. 하나의 방어선이 뚫리더라도 다른 방어선이 작동하여 공격을 막을 수 있도록 하는 것이죠.

마지막으로, **보안 기본값(Secure by Design)**을 설정하여 개발 초기부터 보안을 고려한 설정을 적용합니다. 예를 들어, 비밀번호 저장 시 암호화 알고리즘을 기본적으로 적용하고, 안전하지 않은 HTTP 대신 HTTPS를 기본 프로토콜로 사용하는 것이죠. 또한, OWASP에서 제시하는 보안 코딩 표준을 준수하여 개발하는 것도 중요합니다.

읽었다면, 이제 직접 답해볼 차례예요

패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.

함께 보는 OWASP / 취약점 면접 질문

← OWASP / 취약점 면접 질문 전체 보기