qmail

qmail
qmail
원본 작성자대니얼 J. 번스타인
최종 발매
1.03 / 1998년 6월 15일; 23년(1998-06-15)
리포지토리cr.yp.to/software/qmail-1.03.tar.gz
기록 위치C
운영 체제유닉스 유사
유형메일 전송 에이전트
면허증공공 영역[1]
웹사이트cr.yp.to/qmail.html
넷메일
최종 발매
1.06 / 2007년 11월 30일; 14년(2007-11-30)
리포지토리netqmail.org/netqmail-1.06.tar.gz
웹사이트netqmail.org
s/qmail
안정적 해제
4.1.10 / 2021년 8월 1일; 7개월(2021-08-01)
웹사이트fehcom.de/sqmail/
notqmail[2]
안정적 해제
1.08 / 2020년 5월 20일; 21개월(2020-05-20)
리포지토리github.com/notqmail/notqmail
웹사이트notqmail.org

qmailUnix에서 실행되는 메일 전송 에이전트(MTA)이다.이 책은 1995년 12월부터 인기 있는 Sendmail 프로그램의 보다 안전한 대체물로 Daniel J. Bernstein에 의해 쓰여졌다.원래 무면허 소프트웨어였던 qmail의 소스 코드는 나중에 저자에 의해 공개 도메인에서 전용되었다.[3]

특징들

보안

처음 출판되었을 때, qmail은 최초의 보안 인식 메일 전송 에이전트였다. 그 이후로, 다른 보안 인식 MTA가 출판되었다.qmail의 가장 인기 있는 전신인 Sendmail은 보안을 목표로 설계되지 않았고, 그 결과 공격자의 영원한 표적이 되었다.sendmail과는 대조적으로, qmail은 상호 신뢰할 수 없는 컴포넌트로 구성된 모듈형 아키텍처를 가지고 있다. 예를 들어, qmail의 SMTP listener 컴포넌트는 큐 관리자나 SMTP 발신인의 다른 자격 증명으로 실행된다.qmail도 C 표준 라이브러리에 대한 보안 인식 대체와 함께 구현되었으며, 그 결과 스택 및 힙 오버플로, 형식 문자열 공격 또는 임시 파일 레이스 조건에 취약하지 않았다.

퍼포먼스

출시 당시 qmail은 특히 메일링 리스트 서버와 같은 대량 메일 작업의 경우 Sendmail보다 훨씬 빨랐다.qmail은 원래 대형 메일링 리스트를 관리하는 방법으로 설계되었다.

단순성

qmail 도입 당시 Sendmail 구성은 악명높게도 복잡했고, qmail은 구성과 배치가 간단했다.

혁신

qmail은 우편물에 여러 가지 혁신의 사용을 장려한다(일부는 번스타인이 발명한 것이지만, 다른 일부는 그렇지 않다).

메일디르
번스타인은 개별 이메일 메시지를 별도의 파일로 나누는 qmail용 Maildir 형식을 발명했다.모든 메시지를 하나의 파일에 저장한 사실상의 표준 mbox 형식과는 달리, Maildir는 많은 잠금 및 동시성 문제를 방지하고 NFS를 통해 안전하게 프로비저닝될 수 있다. qmail은 또한 mbox 우편함에 전달한다.
와일드카드 우편함
qmail은 사용자 통제 와일드카드의 개념을 도입했다.qmail 호스트의 "사용자 와일드카드"로 주소가 지정된 메일이 별도의 우편함으로 배달되어 사용자는 메일링 리스트와 스팸 관리를 위해 여러 메일 주소를 게시할 수 있다.

qmail은 QMTP(Quick Mail Transport Protocol)와 QMQP(Quick Mail Queuing Protocol) 프로토콜도 소개한다.

모듈성

qmail은 각각의 주요 기능이 다른 주요 기능과 분리되어 있는 거의 완전한 모듈형 시스템이다.새로운 모듈이 원본과 동일한 인터페이스를 유지하는 한 qmail 시스템의 어떤 부분이라도 다른 모듈로 교체하는 것은 쉽다.

논란

보안 보상과 게오르기 구닌스키의 취약성

1997년 번스타인은 이 소프트웨어의 최신 버전에 검증 가능한 보안 구멍을 낸 첫 번째 사람에게 미화 500달러의 보상을 제공했다.[4]

2005년 보안 연구원인 게오르기 구닌스키는 qmail에서 정수 오버플로를 발견했다.64비트 플랫폼에서 가상 메모리가 충분한 기본 구성에서 특정 Qmail 구성 요소에 막대한 양의 데이터를 전송하면 원격 코드가 실행될 수 있다.번스타인은 qmail의 실제 배치는 취약하지 않을 것이라고 주장하며 이것이 실제 공격이라고 주장한다.Qmail 구성요소에 대한 리소스 제한 구성은 취약성을 완화한다.[5]

2007년 11월 1일 번스타인은 보상금을 US$1000으로 인상했다.[1]다음 날 슬라이드 프레젠테이션에서 번스타인은 10년 된 qmail-1.03에 "알려진 버그"가 4개 있었는데, 이 중 "보안 구멍"은 하나도 없었다고 밝혔다.그는 구닌스키가 발견한 버그는 "확인되지 않은 카운터의 잠재적 오버플로"라고 특징지었다."다행히 역성장은 기억력이나 그에 따른 구성에 의해 제한되었지만, 이것은 순전히 행운이었다."[6]

2020년 5월 19일, 퀄리스[7] 의해 구닌스키의 취약성에 대한 실무적 착취가 발표되었지만, 작가들의 상태를 착취하는 것은 추가적인 환경적 제약이 포함되어 있기 때문에 보상을 거절당했다.

업데이트 빈도

핵심 qmail 패키지는 수년간 업데이트되지 않았다.[8]새로운 기능은 처음에 제3자 패치에 의해 제공되었는데, 이 패치는 그 당시 가장 중요한 기능을 넷크메일이라는 하나의 메타패치로 통합하였다.[9]

표준 준수

qmail은 Sendmail을 대체하도록 설계되지 않았으며, Sendmail이 모든 상황에서 그랬던 것처럼 정확하게 행동하지는 않는다.이런 행동의 차이가 비판의 근거가 된 경우도 있다.예를 들어, 메시지를 바운스하기 위한 Qmail의 접근방식(QSBMF라는 형식)은 RFC 1894에서 IETF가 지정한 배달 상태 알림의 표준 형식과 다르며,[10] 한편 RFC 3464로 표준 초안까지 진전되어 SMTP 규격에서 권장된다.[11]

게다가, 일부 qmail 기능은 메일 포워딩 복잡성을 도입하여 비판을 받아왔다. 예를 들어, qmail의 "와일드카드" 배달 메커니즘과 보안 설계는 SMTP 트랜잭션 중에 위조되거나 존재하지 않는 보낸 사람의 메시지를 거부하지 못하게 한다.[12]과거에는, 현대의 스팸 전달 기술은 바운스 동작에 의해 영향을 덜 받지만, 이러한 차이점들은 스팸 릴레이로 악용될 때 qmail을 다르게 행동하게 만들었을지도 모른다.

저작권 상태

qmail은 2007년 11월에 공개되었다.[13]2007년 11월까지 qmail은 라이센스 없는 소프트웨어로서, 특정 제한사항(주로 호환성을 수반하는)이 충족되는 경우에만 소스 형태나 사전 컴파일된 형태("var-qmail 패키지")로 배포 허가를 받았다.이런 이례적인 라이선스 협약은 일부 가이드라인(DFSG 등)에 따라 qmail을 무상으로 만들었고, 논란의 원인이 됐다.

qmail은 유일하게 광범위하게 배치된 공용 도메인 소프트웨어 메시지 전송 에이전트(MTA)이다.

참고 항목

참조

  1. ^ a b "Some thoughts on security after ten years of qmail 1.0" (PDF). Retrieved 2007-12-01.
  2. ^ notqmail 발표
  3. ^ "Information for distributors". I hereby place the qmail package (in particular, qmail-1.03.tar.gz, with MD5 checksum 622f65f982e380dbe86e6574f3abcb7c) into the public domain. You are free to modify the package, distribute modified versions, etc.
  4. ^ "The qmail security guarantee". Retrieved 2007-10-05.
  5. ^ Georgi Guninski. "Georgi Guninski security advisory #74, 2005". Retrieved 2007-10-05.
  6. ^ "Some thoughts on security after ten years of qmail 1.0 [Slide presentation]" (PDF). Retrieved 2008-01-17.
  7. ^ "'[oss-security] Remote Code Execution in qmail (CVE-2005-1513)' - MARC". marc.info. Retrieved 2021-03-03.
  8. ^ "Life with qmail; History". Retrieved 2007-12-01.
  9. ^ "netqmail". netqmail.org. Retrieved 2021-03-03.{{cite web}}: CS1 maint : url-status (링크)
  10. ^ Vaudreuil, Gregory M.; Moore, Keith. "An Extensible Message Format for Delivery Status Notifications". tools.ietf.org. Retrieved 2021-03-03.
  11. ^ Vaudreuil, Gregory M.; Moore, Keith. "An Extensible Message Format for Delivery Status Notifications". tools.ietf.org. Retrieved 2021-03-03.
  12. ^ Moen, Rick (October 2006). "On Qmail, Forged Mail, and SPF Records". Linux Gazette (131).
  13. ^ "Bernstein releases code into the public domain". Retrieved 2007-11-30.

외부 링크