기출문제/정보처리기사

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 명령을 실행하게 하는 공격 방식입니다.

각 보기 분석:

  1. ① SQL Injection은 임의로 작성한 SQL 구문을 애플리케이션에 삽입하는 공격방식이다.
    • 맞는 설명입니다.
    • SQL Injection 공격은 공격자가 애플리케이션의 입력 필드를 통해 악의적인 SQL 구문을 삽입하여 애플리케이션이 의도하지 않은 SQL 명령을 실행하도록 유도하는 방식입니다. 따라서 이 설명은 정확합니다.
  2. ② SQL Injection 취약점이 발생하는 곳은 주로 웹 애플리케이션과 데이터베이스가 연동되는 부분이다.
    • 맞는 설명입니다.
    • SQL Injection 취약점은 웹 애플리케이션과 데이터베이스 간의 상호작용에서 발생합니다. 특히, 사용자가 입력한 값을 SQL 쿼리의 일부로 사용할 때 제대로 처리되지 않으면 공격자가 SQL Injection을 통해 악성 쿼리를 삽입할 수 있습니다.
  3. ❸ DBMS의 종류와 관계없이 SQL Injection 공격 기법은 모두 동일하다.
    • 틀린 설명입니다.
    • SQL Injection 공격 기법은 DBMS(Database Management System)의 종류에 따라 다를 수 있습니다. 서로 다른 DBMS는 SQL 구문이 약간 다를 수 있고, 각 DBMS마다 특정 기능이나 취약점이 다르게 동작할 수 있습니다. 예를 들어, MySQL, PostgreSQL, MSSQL 등에서는 SQL 구문에 차이가 있을 수 있기 때문에 공격 기법도 달라질 수 있습니다. 따라서 DBMS 종류에 따라 SQL Injection 공격의 세부적인 기법은 다를 수 있습니다.
  4. ④ 로그인과 같이 웹에서 사용자의 입력 값을 받아 데이터베이스 SQL문으로 데이터를 요청하는 경우 SQL Injection을 수행할 수 있다.
    • 맞는 설명입니다.
    • 로그인과 같은 사용자 입력을 데이터베이스 쿼리에 반영할 때 SQL Injection 공격이 가능해집니다. 예를 들어, 사용자가 입력한 값을 적절히 필터링하지 않고 SQL 쿼리문에 직접 삽입하면 공격자가 악성 SQL 쿼리를 삽입하여 로그인 과정에서 SQL Injection 공격을 수행할 수 있습니다.

해설:

  • SQL Injection 공격은 웹 애플리케이션에서 사용자의 입력값을 SQL 쿼리문에 그대로 삽입할 때 발생합니다. 이를 방지하기 위해서는 입력값 검증매개변수화된 쿼리 사용이 중요합니다.
  • DBMS의 종류에 따라 SQL Injection 공격 기법이 다를 수 있다는 점을 기억해야 합니다. 각 DBMS는 고유한 쿼리 문법과 특성을 가질 수 있기 때문에, 공격 기법도 다를 수 있습니다.

결론:

정답은 ❸번입니다. DBMS의 종류에 관계없이 SQL Injection 공격 기법이 모두 동일하다고 말할 수 없으며, 각 DBMS에 따라 공격 기법은 달라질 수 있습니다.