Web Security

OS Injection란?

junnybottle 2023. 3. 20. 19:24

OS Injection

악의적인 사용자가 시스템에 액세스하여 실행되는 애플리케이션의 취약점을 이용하여 운영 체제(OS)에 악성 코드를 삽입하는 공격 기술이다.

사용자 입력을 통해 악성 코드를 삽입하거나 시스템을 해킹하거나 제어하는 데 사용된다.

SQL Injection 공격에서는 데이터베이스에 쿼리를 삽입하여 데이터를 탈취하거나 조작하는 것이 가능하다.

OS Injection에서는 시스템 자원에 대한 액세스 권한을 획득하여 다양한 악성 행위를 수행할 수 있다.

 

매우 위험한 공격 기술로서, 시스템 보안에 매우 큰 위협을 끼친다. 따라서 시스템 보안 강화를 위해 취약점을 해결하고, 보안 업데이트를 정기적으로 적용하는 것이 중요하다.

 

OS Injection 식별한 경우 몇 가지 초기 명령을 실행하여 손상된 시스템에 대한 정보를 얻는 것이 유용하다.

Linux 및 Windows 플랫폼에서 유용한 일부 명령

OS Injection 조건

웹 애플리케이션 구동 중인 계정에 시스템 명령을 실행할 수 있는 권한이 있어야 한다.

Shell로 부터 전달되는 명령에 사용자로부터 입력받은 데이터를 포함해야 한다.

사용자 데이터는 정상적인 shell 명령어로 인식되어야 한다.

 

OS Injection 방지하는 방법

1. 제일 효과적인 방법은 애플리케이션 계층 코드에서 OS 명령을 호출하지 않는 것이다.

만약, OS 명령을 호출해야한다면 강력한 입력 유효성 검사를 수행해야 한다.

 - 허용된 값의 화이트리스트에 대한 유효성 검사

 - 입력이 숫자인지 확인

 - 입력에 영숫자 문자만 포함되어 있고 다른 구문이나 공백은 포함되어 있지 않은지 확인

 

2. 최소한의 권한으로만 실행하기

root 권한이 아닌 user 권한으로 실행하게 하는 방법이다.