‘심장출혈’ 버그보다 심각한 ‘셸쇼크’ 버그 경고

가 +
가 -

많은 웹서버에서 악용될 수 있는 심각한 보안 취약점이 발견됐다. 리눅스와 유닉스에서 널리 쓰이는 셸 프로그램 ‘배시(Bash)’에서 임의의 코드를 실행할 수 있는 버그다. 레드햇 보안팀은 이 버그가 올해 초 밝혀진 오픈SSL ‘심장출혈’ 버그보다 심각한 문제를 야기할 수 있다며 ‘셸쇼크’라는 이름을 붙였다.

배시는 리눅스와 유닉스에서 널리 사용되는 오픈소스 셸 프로그램이다. 셸 프로그램은 직접 명령어를 입력하는 커맨드프롬프트 환경에서 자주 쓰는 명령어를 간단히 사용할 수 있도록 도와주는 프로그램이다. 개발자나 시스템 관리자의 편의를 높이는 데 쓴다. 배시는 리눅스와 유닉스 운영체제(OS)에서 널리 쓰이는 셸 프로그램이다. 유닉스 계열인 맥OS에서도 배시를 쓸 수 있다. 리눅스는 웹서버 OS로 가장 널리 쓰인다. 미국 CERT는 셸쇼크 버그가 유닉스를 기반으로 한 리눅스와 맥OS 모두에 영향을 미칠 수 있다고 경고했다.

셸쇼크 버그는 모든 배시 버전에서 발견됐다. 셸쇼크 버그가 있는 배시 프로그램을 쓰는 웹서버에서는 환경변수를 설정하며 빈 함수를 동시에 선언하면 그 뒤에 어떤 코드가 있든지 무조건 실행된다고 한다. 예를 들어 쿠키 함수를 설정하고 함수 값을 비워둔 뒤 악성코드를 실행하는 명령을 넣으면 덧붙이면 웹서버가 거리낌없이 악성코드를 실행한다는 얘기다.

레드햇 보안팀은 “이 보안 문제를 해커가 악용할 수 있다”라고 경고했다. 보안 전문회사 에라타시큐리티 최고경영자(CEO)인 로버트 그라함은 외부 웹서버에서 자기한테 접속 신호(핑)를 보내도록 명령을 내려 그 서버가 셸쇼크 버그를 품고 있는지 간단히 알아보기만 했는데도 3천개 서버에서 문제를 찾았다고 밝혔다.

외부 웹서버에 접속신호(핑)를 돌려달라는 명령을 내려 '셸쇼크' 버그가 있는지 확인하는 모습 (출처 : 에라타 시큐리티)

▲ 외부 웹서버에 접속신호(핑)를 돌려달라는 명령을 내려 ‘셸쇼크’ 버그가 있는지 확인하는 모습 (출처 : 에라타시큐리티)

올해 4월 밝혀진 ‘심장출혈’ 버그는 오픈SSL 암호화 기술을 쓰는 웹서버에서 오가는 암호화된 데이터를 온전히 엿들을 수 있는 문제였다. 하지만 심장출혈 버그로 바로 시스템을 빼앗을 수는 없었다. 셸쇼크 버그를 이용하면 그것이 가능하다. 애초에 시스템 관리자 권한을 빼앗지 않아도 웹서버에서 명령을 실행할 수 있다. 보안회사 파이어아이 위협분석 담당자 다리엔 킨드룬드는 <더레지스터>와 인터뷰에서 셸쇼크 버그를 “끔찍하다”라고 표현했다.

“하트블리드보다 심각합니다. 엄청나게 많은 인터넷 트래픽을 처리하는 서버에 영향을 미치기 때문입니다. 보수적으로 잡아도 전세계 웹서버 20~50%정도가 영향을 받을 겁니다. 자세히 말하자면, 셸쇼크 버그는 그누 배시를 사용하는 웹서버에 영향을 미치죠. 거의 모든 CGI 기반 웹서버가 포함될 겁니다.”

레드햇은 9월24일 재빨리 패치를 내놓았지만, 셸쇼크 버그를 완전히 잡지는 못했다. 이미 이 문제가 보고됐으며 레드햇은 패치를 마련하는 중이다. 아카마이는 배시 셸프로그램을 지우고 다른 셸을 사용하라고 조언했다.

네티즌의견(총 0개)