[Web] 운영체제 명령 실행 (OC)

운영체제 명령 실행

 

취약점 개요

■ 위험도
- 상

■ 점검 목적
- 적절한 검증절차를 거치지 않은 사용자 입력 값에 의해 의도하지 않은 시스템 명령어가 실행되는 것을 방지하기 위함

■ 보안 위협
- 해당 취약점이 존재하는 경우 부적절하게 권한이 변경되거나 시스템 동작 및 운영에 악영향을 줄 가능성이 있으므로 "|", "&", ";", "`" 문자에 대한 필터링 구현이 필요함

점검 및 조치 방법

■ 점검 및 판단 기준
- 양호 : 임의의 명령어 입력에 대한 검증이 이루어지는 경우
- 취약 : 임의의 명령어 입력에 대한 명령이 실행되는 경우



■ 조치 방법
- 애플리케이션은 운영체제로부터 명령어를 직접적으로 호출하지 않도록 구현하는게 좋지만, 부득이하게 사용해야 할 경우 소스 코드나 웹 방화벽에서 특수문자, 특수 구문에 대한 검증을 할 수 있도록 조치해야 함

■ 점검 방법
Step 1) 웹 애플리케이션 인수값에 시스템 명령어 전달 시 명령이 실행되는지 확인


■ 보안설정방법
Step 1) 웹 방화벽에 모든 사용자 입력 값을 대상으로 악용될 수 있는 특수문자, 특수 구문 등을 필터링 할 수 있도록 규칙 적용
Step 2) 애플리케이션은 운영체제로부터 명령어를 직접적으로 호출하지 않도록 구현
Step 3) 명령어를 직접 호출하는 것이 필요한 경우에는, 데이터가 OS의 명령어 해석기에 전달되기 전에 입력 값을 검증/확인 하도록 구현
Step 4) 입력 값에 파라미터 데이터의 "|", "&", ";", "`" 문자에 대한 필터링 처리

■ 용어 설명 / 팁
- & : 윈도우 명령어 해석기에서 첫 번째 명령이 성공했을 경우만 두 번째 명령어를 실행
- | : 첫 번째 명령어가 성공하는지에 상관없이 두 번째 명령어를 실행
- ` : 쉘 해석기가 명령어를 해석하다 역 작은따옴표(`) 내에 포함된 명령어를 만나면 기존 명령어를 계속 실행하기 전에 역 작은 따옴표로 둘러싸인 명령어를 먼저 실행
예) `ls -al`

댓글

Designed by JB FACTORY