sendmail 8.7.5 취약성

Security Notice

sendmail 8.7.5 취약성

영향

  • 공격자가 root권한을 얻을 수 있다.

설명

  • 자원 고갈문제
    전자우편이 .forward 파일 또는 .forward 또는 alias 파일 내의 :include: 문장에 의해 지정된 프로그램에 전달될 경우, 그 프 로그램은 .forward 파일 또는 :include: 문장에서 참조하는 파일의 소유자 (이러한 사용자들을 제어사용자라고 부름) 권한으로 실행되며, 프로그램이 아닌 파일에 전달될 경우에는 해당 파일이 제어사용자의 권한으로 열려진다.
    전자우편이 즉시 전달되지 못한 경우, 메일 큐에 저장되며 적절한 권한을 확보할 수 있도록 제어사용자의 이름으로 큐 파일에 기록해 둔다. 이때 getpwuid(3) 를 호출하여 얻어진 제어사용자의 이름만 기록되는데, getpwuid가 실패하면 sendmail 디폴트사 용자(8.7.* 버전의 DefaultUser 옵션, 이전 버전의 u 및 g 옵션에 의해 지정됨)로 지정된다.
    어떤 경우 시스템 자원이 고갈되면 /etc/passwd 파일 내에 해당 uid에 대한 항목이 존재하더라도 getpwuid(3)가 실패할 수 있는 데, getpwuid는 uid가 발견되지 않음 과 시스템 자원이 없음을 의미하는 오류값을 구별하지 못하며 따 라서 sendmail도 이를 구분하지 못하게 되어 디폴트사용자로 지정되는 것이다. Sendmail의 특정 자원이 고갈되면 sendmail은 디 폴트사용자 소유의 파일을 생성하며 생성된 파일들은 디폴트사용자 소유의 다른 파일에 접근하는데 사용될 수 있게 되고 상위 권 한을 갖는 다른 사용자의 권한을 획득할 수도 있다.
  • 버퍼오버플로우 문제
    Sendmail의 버전 8.7.5 과 그 이전의 버전에서 몇가지의 버퍼오버플로우 문제가 있으며 국지 사용자에 대해 인가되지 않은 관리 자권한을 허용할 수도 있다.

해결책

문제들을 해결하려면 업체들이 제공하는 패치를 설치하거나, 최신의 sendmail 버전을 설치해야 하며, 자원고갈에 대해서는 send mail의 저자인 Eric Allman이 제공한 다음과 같은 임시 조치를 취할 수 있다.

proc 메일러로서 smrsh(sendmail restricted shell)를 이용하여 디폴트사용자로서 수행되는 프로그램을 제한할 수 있다. 손상을 최소화시키는 방법은 문제가 생기지 않도록 디폴트사용자를 설정하는 것이다. Sendmail은 호환성의 향상을 위해 디폴트사용자를 1:1(daemon)로 지정하지만 특별한 mailnull 계정을 이용하면 위험을 최소화시킬 수 있다. ma ilnull 사용자는 다른 어떠한 파일도 소유하지 않아야 하며, 실질적인 홈 디렉토리나 쉘을 갖지 않도록 해야 하는데, 다음 은 패스워드 파일 항목과 /etc/group 항목의 예이다.

○ /etc/passwd

mailnull:*:32765:32765:Sendmail Default User:/no/such/dir:/no/such/shell

○ /etc/groups

mailnull:*:32765:

이렇게 사용자를 추가한 후에, /etc/sendmail.cf의 DefaultUser=1:1 라인을 DefaultUser=mailnull 로 바꿔야 하며, 만약 8.6.* 버전을 사용하고 있는 경우에는 Ou1, Og1 라인들을 Ou32765과 Og32765로 바꿔야 한다.

마지막으로, sendmail 8.7.* 버젼과 함께 제공된 m4(1) 기반의 sendmail 구성 방식을 사용하고 있을 경우, 다음을 m4 입력 파일 (통상적으로 sendmail.mc)에 추가해 주어야 한다.

define(confDEF_USER_ID, 32765:32765)

탐지 및 예방

  • 패치의 설치, 업그레이드, 또는 임시 조치를 취한 이후에라도 다음과 같은 점들에 유의해야 한다.
  • 모든 sendmail 버전에 대해 smrsh 를 사용해야 한다.
  • /bin/mail을 사용하고 있을 경우, mail.local로 교체해야 한다. mail.local은 sendmail 배포본에 포함되어 있으며, 기타 운영체제에도 포함되어 있다.
0 변경된 사항