lpr 버퍼오버플로우 취약점과 대책

Security Notice

lpr 버퍼오버플로우 취약점과 대책

설명

  • 많은 유닉스 시스템에서 사용되는 BSD 기반의 lpr 프린팅 패키지에 취약점이 존재한다.
  • lpr 프로그램이 사용자가 입력한 인수에 대해 길이를 충분하게 검사하지 않기 때문에 사용자는 lpr 프로그램의 내부 스택을 겹쳐 쓸 수 있게 된다.
  • 적절하게 만들어진 argument를 이용하면 lpr 프로그램이 임의의 명령을 실행하도록 만들 수 있는데, 이러한 명령어는 lpr 프로그램의 권한으로 실행된다.
  • 만일 lpr 프로그램에 setuid 루트 권한이 설정되어 있으면 침입자는 관리자(root)의 권한으로 임의의 프로그램을 실행시킬 수 있다.

해결책

  1. lpr wrapper를 설치한다.
    AUSCERT 에서 개발한 프로그램을 아래의 주소에서 구해서 설치한다. 이 프로그램은 lpr 프로그램을 대신하여 명령어 라인 인수의 길이를 검사한다.
    ftp://ftp.auscert.org.au/pub/auscert/tools/overflow_wrapper/overflow_wrapper.c
  2. 각 벤더에서 제공하는 패치를 설치한다.
    - Berkeley Software Design, Inc
    BSD/OS 3.0 은 취약성을 갖고 있지 않으며, BSD/OS 2.1은 다음의 주소에서 패치를 구할 수 있다.
    - Digital Equipment Corporation
    Digital ULTRIX 또는 Digital UNIX OS 프로그램에는 취약점이 존재하지 않는다.
    - FreeBSD
    FreeBSD 2.1.6과 2.2에서는 취약점이 제거되었으며, 그 이전 버전을 사용하는 경우에는 다음의 권고문을 참조하여 패치를 적용한다.
    . 권고문
    ftp://freebsd.org/pub/CERT/advisories/FreeBSD-SA-96:18.lpr.asc
    . 패치
    ftp://freebsd.org/pub/CERT/patches/SA-96:18
    - IBM
    AIX는 취약점이 존재하지 않으며, AIX에 존재하는 lpr 프로그램은 setuid 권한이 설정되어있지 않다.
    - Linux
    Linux 보안 FAQ를 참조한다.
    ftp://bach.cis.temple.edu/pub/Linux/Security/FAQ/updates/Update-11-25-1996.vulnerability-lpr-0.06-v1.2
    - The Santa Cruz Operation, Inc. (SCO)
    다음의 SCO OS는 취약점이 존재하지 않음
    . SCO CMW+ 3.0
    . SCO Open Desktop/Open Server 3.0, SCO UNIX 3.2v4
    . SCO OpenServer 5.0
    . SCO UnixWare 2.1
0 변경된 사항