반응형
정의
운영체제 명령 실행 취약점은 악의적인 사용자가 운영체제의 명령어를 이용하여 시스템에 악성 코드를 실행시키거나 비정상적인 동작을 유도하는 취약점입니다.
취약점 발생 지점 리스트
- 모든 페이지
- http request를 받았을때, 피라미터값에 따라 운영체제가 명령을 실행하는 경우
취약점 검증 방법
- 웹 애플리케이션에 전달되는 파라미터 값에 공개적으로 알려진 운영체제 명령 실행 코드 삽입 후 명령어가 실행되는지 확인
- Apache Struts 2 RCE(Remote Code Execution) 취약점(공개적으로 알려진 운영체제 명령 실행 코드) 참고사이트: https://cwiki.apache.org/confluence/display/WW/Security+Bulletins
- 아래코드는 Struts 2 프레임워크의 취약점을 사용한것이며, action:%25{3\\*4}에 따라서 웹페이지가 취약하다면, 3*4인 12가 페이지에 출력됩니다.
<http://host/struts2-blank/example/X.action?action:%25{3\\*4}>
공격법
공격 시나리오
- 공격자가 악의적인 입력을 생성하여 시스템에 전달합니다.
- 취약한 부분에서 해당 입력을 운영체제 명령어로 해석하거나 명령어 실행 함수에 직접 전달합니다.
- 악성 코드가 실행되거나 시스템이 비정상적으로 동작하게 됩니다.
발생 과정
세부 과정 설명
- 공격자는 악성 입력을 생성합니다.
- 취약한 부분에서 입력 검증이 미흡하거나 외부 입력을 운영체제 명령어로 잘못 해석합니다.
- 이로 인해 악성 코드가 시스템에서 실행되거나 시스템이 비정상적으로 동작합니다.
대응방법
- 헤더 정보 제한: http 요청 몇 응답페이지에서 버전정보가 뜨지 않도록 설정합니다.
- http 엔티티: 사용자 입력을 운영체제 명령어의 인자로 전달하여 명령어의 실행을 안전하게 처리합니다.
- 입력 검증 및 필터링: 사용자 입력을 신뢰할 수 있는 형태로 변환 또는 제한하여 악성 코드 삽입을 방지합니다.
- 권한 제한: 실행 가능한 명령어의 범위를 제한하거나 명령어 실행에 필요한 권한을 제한하여 공격의 영향을 최소화합니다.
- 적절한 명령어 실행 함수 사용: 안전한 운영체제 명령어 실행 함수를 사용하거나, 보안 검사를 수행하는 라이브러리를 활용합니다.
반응형
'old > Cyber Security' 카테고리의 다른 글
LDAP 인젝션 치트시트 (0) | 2023.09.01 |
---|---|
LDAP(Lightweight Directory Access Protocol)이란 (0) | 2023.08.31 |
사이버 보안: 인증과 인가 취약점이란? (0) | 2023.08.25 |
사이버 보안: 동적분석과 정적분석이란? (0) | 2023.08.24 |
파일 업로드 공격 치트시트 (0) | 2023.08.21 |