Post

Shell shock

Bash 코드 인젝션 취약점(CVE-2014-6271 / CVE-2014-7169)

환경변수 함수정의 뒤에 임의의 실행코드를 추가하면 Bash에서 해당 환경 변수를 임포트하는 과정에서 추가된 실행코드가 루트권한으로 함께 실행된다.

1
2
3
bash-3.2$ env efunc='() { :;}; echo vulerable'
vulnerable

사용 중인 시스템에 취약점 CVE-2014-7169이 존재 여부는 아래의 명령어를 통해 간단히 테스트 할 수 있다.

Bash 코드 인젝션 취약점 스캔

공격자는 아래와 같은 과정을 통해 원격코드 실행을 테스트함으로써 해당 취약점이 포함된 Bash를 구동하는 웹 CGI 환경을 지속적으로 탐색하는 것으로 관찰되었다.

따라서 일반적인 웹 환경의 /cgi-bin/ 디렉토리 이하의 CGI 프로그램에 접근하거나 웹 로그에서 임의의 실행코드 인젝션 행위가 관찰되는지 확인해볼 필요가 있다.

특히 웹 환경에서의 취약점을 갖는 Bash를 구동하는 웹 CGI 프로그램이 확인되면, 공격자는 검색 엔진을 통해 해당 프로그램을 이용하고 있는 공격 대상 웹 서버들을 손쉽게 확보할 수 있다. 이에 자동화 과정을 통해 다수의 공격 대상을 기반으로 한 좀비 네트워크 구성의 가능성이 대두되고 있다.

실제로 아래와 같이 일반적인 코드 인젝션 기법에 많이 이용되는 공격 기술이 연동되고 있는 형태가 계속해서 보고되고 있다. 외부의 웹사이트로부터 악의적인 실행코드를 다운로드 할 수 있는 wget 실행 명령어의 코드 인젝션을 통해 외부 웹사이트로부터 DOS 기능을 가진 리눅스형 악성코드(V3 진단명: Linux/CVE-2014-6271) 및 IRCBot 기능을 갖는 펄 스크립트형 악성코드 (Perl/Shellbot)를 /tmp 공간에 저장하고 실행하는 형태의 공격 방식을 취하고 있다. 아래는 wget 실행명령 코드 인젝션 공격 기법이다.

참고

http://www.kisa.or.kr/uploadfile/201411/201411171024220680.pdf

http://www.ahnlab.com/kr/site/securityinfo/secunews/secuNewsView.do?cmd=scrap&seq=22926&menu_dist=2

This post is licensed under CC BY 4.0 by the author.