보안

Injection 공격에 대하여 (SQL, NoSQL, LDAP ...)

만보만보잠만보 2024. 1. 11. 19:31

Injection 공격은 웹 애플리케이션의 취약점을 악용하여 공격자가 임의의 코드를 삽입하여 데이터베이스를 조작하거나 시스템을 손상시키는 공격입니다. OWASP Top10에 항상 올라오는 공격으로 해외보고서나 우리나라 보안 보고서를 보면 항상 상위권을 차지하는 위험도가 높은 공격입니다.

 

아래는 대표적인 Injection 공격 예시입니다.

 

SQL injection

SQL injection 공격은 웹 애플리케이션이 사용자 입력을 제대로 검증하지 않을 때 발생합니다. 공격자는 악의적인 SQL 코드를 입력하여 데이터베이스에 접근하거나 데이터를 조작할 수 있습니다.

 

Blind SQL injection

Blind SQL injection 공은 공격자가 데이터베이스의 정보를 얻기 위해 특정 조건을 충족하는 데이터를 찾는 방식으로 SQL injection 공격을 수행하는 방법입니다. 공격자는 직접 데이터베이스의 결과를 볼 수 없기 때문에, 서버의 응답이나 동작의 변화를 통해 정보를 추론하는 방식으로 진행됩니다.

 

NoSQL injection

NoSQL injection 공격 공격자가 악성 코드를 NoSQL 데이터베이스에 삽입하여 데이터를 손상시키거나 탈취하는 공격입니다. NoSQL DBMS로는 대표적으로 MongoDB, Redis, Cassandra가 있습니다.

 

LDAP injection

LDAP injection 공격은 웹 애플리케이션이 LDAP 서버에 사용자 입력을 제대로 검증하지 않을 때 발생합니다. 공격자는 악의적인 LDAP 코드를 삽입하여 사용자 인증 정보를 훔치거나 데이터베이스에 접근할 수 있습니다.

 

Injection 공격을 방지하기 위한 방법

  • 사용자 입력을 항상 검증하고 필터링합니다.
  • PreparedStatement와 같은 안전한 코딩 방식을 사용합니다.
  • 데이터베이스에 최소한의 권한만 부여합니다.
  • 웹 애플리케이션을 최신 버전으로 유지합니다.
  • IDS나 IPS를 사용합니다.

'보안' 카테고리의 다른 글

b374k 이용 방법  (0) 2024.03.21
b374k 설치와 사용 방법  (0) 2024.03.20
cve를 볼 수 있는 사이트  (0) 2023.03.17
카카오톡 오픈 채팅 보안  (0) 2023.03.14
네이버페이 피싱뉴스  (0) 2023.02.25