정보처리기사 실기보안SQL Injection 방어난이도 5DESCRIPTIVE

정보처리기사 실기 SQL Injection 방어 기출문제 #383

문제

NoSQL 인젝션(NoSQL Injection) 공격의 특징과 공격 원리를 설명하고, 이를 방어하기 위한 구체적인 대응 방안을 4가지 이상 서술하시오.

정답

NoSQL 인젝션은 MongoDB, CouchDB 등 NoSQL 데이터베이스에서 입력값 검증 부재로 공격자가 악의적인 쿼리나 연산자를 삽입하여 인증 우회, 데이터 탈취, 권한 상승 등을 수행하는 공격이다. 대응 방안: 1) 스키마 검증과 데이터 타입 강제를 통한 입력값 검증, 2) 화이트리스트 기반 쿼리 연산자 제한, 3) ORM/ODM 사용으로 쿼리 추상화, 4) 최소 권한 원칙에 따른 DB 계정 권한 제한, 5) 쿼리 로깅 및 이상 행위 모니터링 구축

NoSQL 인젝션쿼리 연산자스키마 검증화이트리스트ORMODM최소 권한모니터링

해설

NoSQL 데이터베이스는 관계형 DB와 달리 JSON 형태의 쿼리를 사용하므로 $where, $ne, $regex 등의 연산자를 악용한 공격이 가능하다. 예를 들어 로그인 시 {username: 'admin', password: {$ne: null}}과 같은 쿼리로 패스워드 없이 인증을 우회할 수 있다. 스키마 검증은 입력 데이터의 구조와 타입을 강제하여 예상치 못한 연산자 삽입을 차단하고, 화이트리스트는 허용된 연산자만 사용하도록 제한한다.

이런 문제 20~50개를 한 번에 풀어보세요

매번 새로 추가되는 모의고사 + 오답 자동 복습 + 회차별 실력 추적. 회원가입 후 무료 이용.