[취약점] 운영체제 명령 실행
2024. 3. 22. 13:37ㆍ정보 보안/취약점
정의
웹 사이트 내에서 운영체제 명령을 실행하는 것으로 적절한 검증 절차를 거치지 않은 사용자 입력 값에 의해 의도치 않은 시스템 명령어가 실행되는 취약점을 의미한다.
공격 시나리오
부적절하게 권한이 변경되거나 시스템 동작 및 운영에 악영향을 줄 가능성이 존재한다.
대응 방안
- 취약한 버전의 웹 서버 및 웹 애플리케이션 서버를 최신 버전으로 업데이트
- 애플리케이션에서 운영체제 명령어를 직접적으로 호출하는 기능 제거, 부득이하게 사용해야 하는 경우 특수문자, 특수 구문에 대한 검증 기능 구현("|", "&", ";", "`" 등의 특수문자)
판단 기준
주요정보통신기반시설
- 양호 : 임의의 명령어 입력에 대한 검증이 이루어지는 경우
- 취약 : 임의의 명령어 입력에 대해 명령이 실행되는 경우
점검 예시
주요정보통신기반시설
- 에러 페이지 또는 HTTP 응답 헤더에 노출되는 웹 서버 버전 정보를 수집하여 해당하는 운영체제에 대한 명령 실행에 관해 알려진 취약점을 검색한다.
- 웹 애플리케이션에 전달되는 파라미터 값에 공개적으로 알려진 운영체제 명령 실행 코드를 삽입하여 해당 명령어가 실행되는지 확인한다.
전자금융기반시설
- 내부 서버에 명령어를 내릴 수 있는 인터페이스가 존재할 경우, 지정된 명령어 이외의 임의 명령 실행 가능 여부 점검
구체적 보안 설정 방법
1. 웹 방화벽에 모든 사용자 입력 값을 대상으로 악용될 수 있는 특수문자, 특수 구문 등을 필터링할 수 있도록 규칙을 적용한다.
2. 애플리케이션에서 운영체제 명령어를 직접적으로 호출하지 않도록 구현한다. 부득이하게 기능을 구현해야 하는 경우 운영체제 명령여 실행 코드를 입력하는 사용자 입력 값에 대한 검증 및 확인 작업을 철저하게 진행한다.
3. 사용자 입력 값 중 "&", "|", ";", "`" 특수문자에 대한 필터링 처리 기능을 구현한다.
※ “&”, “|”, “`” 문자 설명
• & : 윈도우 명령어 해석기에서 첫 번째 명령이 성공했을 경우만 두 번째 명령어를 실행
• | : 첫 번째 명령어가 성공하는지에 상관없이 두 번째 명령어를 실행
• ` : 쉘 해석기가 명령어를 해석하다 역 작은따옴표(`) 내에 포함된 명령어를 만나면 기존 명령어를 계속 실행하기 전에 역 작은따옴표로 둘러싸인 명령어를 먼저 실행 (예) `ls –al`
'정보 보안 > 취약점' 카테고리의 다른 글
[취약점] 크로스사이트 스크립팅(XSS) (0) | 2024.03.23 |
---|---|
[취약점] 악성 콘텐츠 (0) | 2024.03.23 |
[취약점] 정보 누출 (0) | 2024.03.23 |
[취약점] 디렉터리 인덱싱 (0) | 2024.03.22 |
[취약점] SQL 인젝션 (0) | 2024.03.22 |