시큐어코딩
- home
- 보안소식
- 시큐어코딩
04. [입력 데이터 검증 및 표현] 운영체제 명령어 삽입
2018.03.07 16:51
안녕하세요, 지에스인포입니다.
이번에는 입력 데이터 검증 및 표현의 4번째 항목인 '운영체제 명령어 삽입'에 대해서 알아보겠습니다.
운영체제 명령어 삽입은 행정자치부에서 발표한 '소프트웨어 개발보안 가이드'에서 '입력 데이터 검증 및 표현'에 속해있는 주요 항목입니다.
분석, 설계 단계의 보안요구항목에서는 '입력데이터 검증 및 표현'의 '시스템 자원 접근 및 명령어 수행 입력값 검증'이라는 항목으로, 구현 단계 보안약점에서는 '입력데이터 검증 및 표현'의 '운영체제 명령어 삽입'이라는 이름으로 명시가 되어있습니다.
# 운영체제 명령어 삽입이란?
운영체제 명령어 삽입이란, 적절한 검증절차를 거치지 않은 사용자 입력 값이 운영체제 명령어의 일부 또는 전부로 구성되어 실행되는 경우 발생할 수 있는 보안약점으로, 공격자가 악의적인 명령어를 입력함으로써 부적절하게 권한이 변경되거나 시스템 동작 및 운영에 악영향을 미칠 수 있습니다.
예를 들어 살펴보겠습니다.
위 페이지는 운영체제 명령어를 이용해서 서비스를 제공하는 테스트 페이지입니다. 버튼을 누르게 되면 실행할 프로그램의 이름이 파라미터로 전달되고, 윈도우의 cmd 명령어를 통해 실행이 됩니다. 만약 공격자가 전달되는 파라미터를 변조하여 shutdown 명령을 보내게 된다면, 서버는 다운되고 정상적인 서비스가 불가능 할 것입니다.
이와 같이 외부 입력 값을 이용해서 운영체제 명령어를 조작하거나 악의적인 명령을 수행토록 하는 보안약점이 바로 운영체제 명령어 삽입입니다.
# 운영체제 명령어 삽입을 막기 위한 보안 대책은?
운영체제 명령어 삽입을 방어하기 위한 대책은 소프트웨어 개발 생명 주기에 따라 크게 두 가지로 나눌 수 있습니다.
운영체제 명령어 삽입을 방어하는 데에는 정해진 답은 없지만, 소프트웨어 개발보안 가이드에서 제시하는 방법은 위와 같으며, 각각의 상황에 맞게 적절히 사용하기를 권장하고 있습니다.
오늘은 운영체제 명령어 삽입에 대해 살펴봤습니다.
다음은 시큐어코딩 5번째 항목, "위험한 형식 파일 업로드"에 대해 알아보겠습니다.
댓글 0
본사주소 : 서울특별시 금천구 가산디지털1로 181, 가산더블유센터 1508호 COPYRIGHT ⓒ ALL RIGHT RESERVED.