보안과 개인정보

Spam Scanner는 비공개 데이터인 메일을, 적대적일 수 있는 발신자로부터 받아 읽습니다. 이 페이지에서는 Spam Scanner가 외부로 보내는 모든 것과, 읽은 내용을 다루는 방식을 설명합니다.

컴퓨터 밖으로 나가는 데이터#

기본적으로는 한 가지뿐입니다. 메시지에 있는 링크의 호스트 이름을 Cloudflare의 필터링 리졸버에서 조회합니다. 1.1.1.2와 1.0.0.2(악성코드와 피싱), 1.1.1.3과 1.0.0.3(성인 콘텐츠 포함)입니다. 이는 example.com 같은 이름에 대한 일반 DNS 조회이며, 메시지나 주소의 어떤 부분도 전송하지 않습니다. phishing: {cloudflare: false} 또는 --no-cloudflare로 끌 수 있고, 성인 콘텐츠 검사만 끄려면 phishing: {adult: false}를 사용합니다.

그 밖의 모든 것은 설정하기 전까지 꺼져 있습니다.

검사보내는 데이터받는 곳
authentication발신자의 SPF, DKIM, DMARC, ARC 레코드에 대한 DNS 조회사용 중인 리졸버 또는 dnsServers
dnsbl뒤집은 클라이언트 IP 주소와 링크 도메인을 담은 DNS 조회사용 중인 리졸버나 dns.servers를 거쳐 차단 목록의 네임 서버로
llm메시지 요약(원격 제공자에게는 개인 데이터를 제거하고 보냄)지정한 언어 모델 서버(개인정보 보호)
reputation.apiUrl발신자의 IP 주소, 도메인, 주소지정한 서비스
clamav첨부 파일소켓을 통해 사용 중인 clamd로

원격 측정, 업데이트 확인, 실행 중 다운로드는 없습니다. 모델은 패키지 안에 포함되어 배포됩니다.

보관하는 데이터#

요청하지 않는 한 아무것도 보관하지 않습니다. 검사는 기록하거나 저장하지 않습니다. learn()은 메모리에 있는 분류기를 변경하며, 디스크에는 saveModel(), spamscanner learn, 또는 서버의 --out 옵션으로만 기록됩니다. 모델 파일에는 단어나 메시지 텍스트가 아니라 해시된 특징 개수가 들어 있습니다.

언어 모델의 답변은 보낸 내용의 해시를 키로 메모리에 캐시되므로, 같은 메시지가 반복해서 와도 한 번만 묻습니다. DNS 응답은 10분 동안 메모리에 캐시됩니다.

적대적인 입력#

  • 첨부 파일은 바이트로 식별하며, 실행하거나 다른 프로그램으로 열지 않습니다. ZIP 압축 파일은 항목 수 제한을 두고 중앙 디렉터리에서 읽으며, 중첩된 압축 파일은 풀지 않습니다.
  • 본문 텍스트는 maxLength(100,000자)까지만 읽으며, 서버는 25MB까지의 메시지를 받습니다.
  • 모든 네트워크 검사에는 제한 시간(timeout, 기본 10초)이 있습니다. 실패하거나 시간이 초과된 검사는 건너뛰고, 그 검사 없이 검사를 마칩니다.
  • 메시지에 이미 있는 X-Spam-* 헤더는 milter메일 필터: Sendmail에서 시작되어 Postfix도 사용하는 프로토콜로, 별도 프로그램이 SMTP 세션 중에 각 메시지를 검사할 수 있게 합니다., 콘텐츠 필터, --headers가 제거하므로, 발신자가 자기 메일을 정상으로 표시할 수 없습니다.
  • Microsoft의 스팸 판정 헤더는 메시지가 Microsoft 서버에서 직접 왔을 때만 신뢰하며, Received 헤더는 메시지의 출처를 판단하는 데 결코 쓰지 않습니다.
  • AI 필터를 겨냥한 텍스트는 스팸으로 점수가 매겨지며, 언어 모델에는 메시지가 지시가 아니라 데이터라고 알려 줍니다. 프롬프트 인젝션

서버#

milter, HTTP, TCP, spamdSpamAssassin의 데몬입니다. spamc, Exim, Haraka 등 SpamAssassin 클라이언트가 이 프로토콜을 사용합니다. 서버는 --host로 달리 지정하지 않는 한 127.0.0.1에서 수신합니다. HTTP API는 토큰을 상수 시간으로 비교하며, 토큰이 없으면 /learn을 거부합니다. 어느 서버도 TLS를 지원하지 않습니다. 네트워크를 거쳐 접속하려면 사설 네트워크, SSH 터널, 또는 TLS를 쓰는 리버스 프록시를 사용하십시오.

권한이 없는 사용자로 실행하십시오. Postfix 가이드의 systemd 유닛에는 일반적인 보안 강화 설정이 들어 있습니다.

취약점 신고#

보안 문제는 공개 이슈가 아니라 GitHub의 취약점 신고 기능으로 비공개 신고하십시오.

GitHub에서 이 페이지 편집 · Markdown ·