기출문제/정보처리기사
2021년 3회 정보처리기사 기출문제 88번
엉클지니
2025. 3. 19. 13:31
88. SQL Injection 공격과 관련한 설명으로 틀린것은?
① SQL Injection은 임의로 작성한 SQL 구문을 애플리케이션에 삽입하는 공격방식이다.
② SQL Injection 취약점이 발생하는 곳은 주로웹 애플리케이션과 데이터베이스가 연동되는 부분이다.
❸ DBMS의 종류와 관계없이 SQL Injection공격 기법은 모두 동일하다.
④ 로그인과 같이 웹에서 사용자의 입력 값을 받아 데이터베이스 SQL문으로 데이터를요청하는 경우 SQL Injection을 수행할 수 있다.
문제 분석:
이 문제는 SQL Injection 공격에 관한 설명 중 틀린 설명을 찾는 문제입니다. SQL Injection은 웹 애플리케이션에서 데이터베이스에 대한 쿼리를 실행할 때 발생할 수 있는 취약점을 악용하여, 사용자가 의도하지 않은 SQL 명령을 실행하게 하는 공격 방식입니다.
각 보기 분석:
- ① SQL Injection은 임의로 작성한 SQL 구문을 애플리케이션에 삽입하는 공격방식이다.
- 맞는 설명입니다.
- SQL Injection 공격은 공격자가 애플리케이션의 입력 필드를 통해 악의적인 SQL 구문을 삽입하여 애플리케이션이 의도하지 않은 SQL 명령을 실행하도록 유도하는 방식입니다. 따라서 이 설명은 정확합니다.
- ② SQL Injection 취약점이 발생하는 곳은 주로 웹 애플리케이션과 데이터베이스가 연동되는 부분이다.
- 맞는 설명입니다.
- SQL Injection 취약점은 웹 애플리케이션과 데이터베이스 간의 상호작용에서 발생합니다. 특히, 사용자가 입력한 값을 SQL 쿼리의 일부로 사용할 때 제대로 처리되지 않으면 공격자가 SQL Injection을 통해 악성 쿼리를 삽입할 수 있습니다.
- ❸ DBMS의 종류와 관계없이 SQL Injection 공격 기법은 모두 동일하다.
- 틀린 설명입니다.
- SQL Injection 공격 기법은 DBMS(Database Management System)의 종류에 따라 다를 수 있습니다. 서로 다른 DBMS는 SQL 구문이 약간 다를 수 있고, 각 DBMS마다 특정 기능이나 취약점이 다르게 동작할 수 있습니다. 예를 들어, MySQL, PostgreSQL, MSSQL 등에서는 SQL 구문에 차이가 있을 수 있기 때문에 공격 기법도 달라질 수 있습니다. 따라서 DBMS 종류에 따라 SQL Injection 공격의 세부적인 기법은 다를 수 있습니다.
- ④ 로그인과 같이 웹에서 사용자의 입력 값을 받아 데이터베이스 SQL문으로 데이터를 요청하는 경우 SQL Injection을 수행할 수 있다.
- 맞는 설명입니다.
- 로그인과 같은 사용자 입력을 데이터베이스 쿼리에 반영할 때 SQL Injection 공격이 가능해집니다. 예를 들어, 사용자가 입력한 값을 적절히 필터링하지 않고 SQL 쿼리문에 직접 삽입하면 공격자가 악성 SQL 쿼리를 삽입하여 로그인 과정에서 SQL Injection 공격을 수행할 수 있습니다.
해설:
- SQL Injection 공격은 웹 애플리케이션에서 사용자의 입력값을 SQL 쿼리문에 그대로 삽입할 때 발생합니다. 이를 방지하기 위해서는 입력값 검증과 매개변수화된 쿼리 사용이 중요합니다.
- DBMS의 종류에 따라 SQL Injection 공격 기법이 다를 수 있다는 점을 기억해야 합니다. 각 DBMS는 고유한 쿼리 문법과 특성을 가질 수 있기 때문에, 공격 기법도 다를 수 있습니다.
결론:
정답은 ❸번입니다. DBMS의 종류에 관계없이 SQL Injection 공격 기법이 모두 동일하다고 말할 수 없으며, 각 DBMS에 따라 공격 기법은 달라질 수 있습니다.