2019-11-22 23:21 (금)
오래된 리눅스 커널 보안취약점 발견돼…주의
상태바
오래된 리눅스 커널 보안취약점 발견돼…주의
  • 페소아 기자
  • 승인 2017.03.22 12:36
이 기사를 공유합니다

linux-1.jpg
HDLC는 High Level Data Link Control의 약자로 모뎀, X.25, 프레임 릴레이, ISDN 및 기타 일반적인 네트워킹 기술에 사용되는 오래된 네트워크 데이터 프레이밍 프로토콜이다.

러시아 포지티브 테크놀로지(Positive Technologies)의 연구원인 포포프(Alexander Popov)는 HDLC를 구현한 리눅스 커널 드라이버에서 보안 취약점을 발견했다. 이 버그는 2009년 6월 이후로 리눅스 커널에 존재해왔다.

그는 커널 4.10.1의 n_hdlc드라이버(drivers/tty/n_hdlc.c)에서 레이스컨디션 취약점을 발견했다(CVE-2017-2635). 이것은 TTY/Serial 드라이버 개발 트리의 일부로, 권한이 없는 로컬 사용자가 이 버그를 이용해 취약한 시스템에서 더 높은 권한을 얻거나 서비스 거부 공격을 유발할 수 있다. 이 취약점은 Common Vulnerability Scoring system(CVSS) 점수가 7.8로 매우 높다. 결함을 악용하기가 상대적으로 쉽고 특정 하드웨어 또는 주변 장치가 대상 시스템에서 공격받지 않아도 되기 때문이다.

레드햇은 이 문제가 레드햇 엔터프라이즈 리눅스 6, 7 및 레드햇 엔터프라이즈 MRG 2, 레드햇의 리얼타임 리눅스 등 패키지에 영향을 미친다고 보고했다. 레드햇은 조만간 운영체제에 대한 업데이트를 발표할 예정이다. 우분투의 모회사인 Canonical은 대부분에 대한 패치를 이미 발표했고, 수세(SUSE)는 여전히 패치 작업을 하고 있어 조만간 출시될 예정이다.

이제는 2017년 모뎀 드라이버에 대해서 걱정해야만 한다. 포포브는 “거의 사용되지는 않지만, 대부분의 리눅스에는 모듈이 포함되어 있다. 정상적으로는 로드되지 않지만 권한이 없는 사용자가 터미널을 열고 N_HDLC라인 규칙을 설정하기 위해 TIOCSETD ioctl을 호출하면 모듈이 자동으로 로드된다”고 설명했다. 이 과정은 로컬사용자가 쉽게 실행가능하다. 문제는 호스팅 및 클라우드 컴퓨팅의 경우 많은 사람들이 리눅스 서버에 로컬 액세스 권한을 갖는다는 것이다. 

모듈이 시스템에 존재하는지 확인하기 위해서는 아래 명령을 이용해 볼 수 있다.

# modinfo n_hdlc

만약 이 명령으로 모듈을 찾지 못했다면 해당 취약점의 영향에서 벗어난 것이나, 만약 나타난다면 아래 명령으로 사용중인지를 확인해야 한다.

# lsmod | grep n_hdlc

이상한 네트워크 구성을 운용하고 있지 않다면, 이것이 로드되어서는 안되고, 모듈이나 파일 이름이 없다는 메시지를 받아야 한다. 만약 로드되었다면 사용자 시스템이 해킹되고 있을 가능성이 있다.

배포판에 패치가 아직 없다면 이 모듈이 로드되는 것을 차단하여 문제가 계속 발생하는 것을 막을 수 있다. 커널 로드를 수동으로 방지해 이 문제를 임시로 해결할 수 있다. Root 권한으로 아래 명령을 실행해 시스테a wjsqksdml moprobe 규칙을 수정하도록 한다.

# echo “install n_hdlc /bin/true” >> /etc/modprobe.d/disable-n_hdlc.conf

만약 모듈이 이미 로드된 경우 시스템을 재부팅하면 다시 로드되지 않는다.

★정보보안 대표 미디어 데일리시큐!★