코더는 보안을 정복 : 공유 및 학습 시리즈 - 이메일 헤더 주입

게시일: 2019년 3월 21일
by Jaap Karan Singh
사례 연구

코더는 보안을 정복 : 공유 및 학습 시리즈 - 이메일 헤더 주입

게시일: 2019년 3월 21일
by Jaap Karan Singh
리소스 보기
리소스 보기

사용자가 이메일을 사용하여 응용 프로그램을 통해 피드백, 약속 미리 알림 및 기타 다양한 정보를 보낼 수 있도록 웹 사이트 및 응용 프로그램이 요즘 일반적입니다. 일반적으로 이 프로세스는 상당히 양호하며 대부분의 사람들은 잠재적인 보안 위험 측면에서 그것에 대해 생각하지 않습니다.

그러나 사용자 입력을 허용하는 다른 디자인 요소와 마찬가지로 제대로 구성되지 않으면 악의적인 사용자가 악의적인 방식으로 조작할 수 있습니다. 사용자에게 서버에서 실수로 처리되는 입력 필드에 코드를 입력할 수 있는 기능을 제공하는 데만 필요한 것입니다. 갑자기 이메일 응용 프로그램이 무기화 될 수 있습니다.

이 에피소드에서 우리는 배울 것입니다 :

  • 공격자가 전자 메일 헤더 주입을 트리거하는 방법
  • 이메일 헤더 주사가 위험한 이유
  • 이 취약점을 해결할 수 있는 기술입니다.

공격자는 이메일 헤더 주입을 트리거하는 방법은 무엇입니까?

프로그래밍 가능한 것으로 생각되는 경우가 많지는 않지만 대부분의 이메일 연락처 응용 프로그램 이나 응용 프로그램에 넣은 기능은 쿼리의 특성을 변경하는 입력을 수락할 수 있습니다. 사용자가 전자 메일 주소와 같은 정보를 계약 필드에 입력한 후 서버에서 자동으로 수행됩니다. 그런 다음 프로그램은 메시지를 구성하고 적절한 받는 사람을 추가하고 기본 전자 메일 서버를 사용하여 메시지를 보냅니다.

일반적인 이메일 POST 요청은 다음과 같이 보일 수 있습니다.

포스트/연락처.php HTTP/1.1
호스트: www.example.com

그리고 사용자가 자신의 정보를 입력 한 후 다음과 같은 다음과 같은 코드를 생성 :

이름=리얼네임&답장=RealName@ValidServer.com&메시지=귀하의약속 알림

문제는 해커가 자신의 연락처 정보 대신 프로세스에 코드를 삽입하기 시작할 때 발생합니다. 이는 SQL 주입 유형 공격과 는 달리 전자 메일 응용 프로그램에 대해 수행됩니다. 대신 대상 사용자에게 응용 프로그램에서 스팸을 보내는 조작 된 쿼리의 예는 다음과 같습니다.

이름=FakeName\nbcc: SpammedVictim@TargetAddress.com&replyTo= FakeName@ValidServer.com&message=스팸 메시지

이메일 헤더 주입이 위험한 이유는 무엇입니까?

악의적인 사용자의 기술과 의도에 따라 이메일 헤더 주입 공격은 단순히 성가신 것에서 심각도 면에서 매우 위험할 수 있습니다. 심각도 척도의 로우 엔드에서 회사 내 비밀 또는 공개되지 않은 사서함으로 전송된 나가는 메시지의 BCC 필드에 연락처 정보를 삽입하여 해커에게 공개할 수 있습니다.

더 많은 관련, 그것은 완전히 귀하의 이메일 서버를 제어 하 여 스팸 을 보낼 수 있습니다., 피싱 또는 조직에서 다른 공격 이메일. 그들은 시도하고 이메일이 실제로 거기에서 유래 될 것이기 때문에, 내부 서버에서 오는 사실을 가짜 필요가 없습니다. 또한 해당 활동을 모니터링하지 않으면 프로세스를 자동화하고 조직의 서버를 사용하여 수백 또는 수천 개의 전자 메일을 발송할 수 있으며 실제로 해당 활동을 선동하는 것처럼 보입니다.

이메일 헤더 주입 문제 제거

SQL 주입 및 이러한 특성의 다른 공격과 마찬가지로 악의적인 사용자가 전자 메일 헤더 취약점을 악용할 가능성을 제거하는 열쇠는 사용자 입력을 신뢰하지 않습니다. 사용자가 정보를 입력할 수 있는 경우 이메일 주소 입력과 같은 사소한 프로세스처럼 보이지만 최악의 경우 를 가정해야 합니다. 또는 적어도 최악의 경우 가능하다고 가정하십시오.

입력 유효성 검사는 모든 매개 변수에 대해 수행해야 하며 앱 또는 웹 사이트에 이메일 연락처 기능을 추가할 때 포함됩니다. 화이트리스팅은 다른 모든 것을 부인하면서 유효하다고 판단되는 프로세스와 필드를 구체적으로 사용하도록 설정하는 데 사용할 수 있습니다. 실제로 대부분의 프레임워크에는 필요한 프레임워크에 만 함수를 잠그는 데 사용할 수 있는 라이브러리가 있습니다. 이렇게 하면 악의적인 사용자가 입력한 코드 나 명령이 서버에서 인식하고 처리되지 않습니다.

이메일 헤더 주입에 대한 자세한 정보

추가 읽기를 위해, 당신은 OWASP 이메일 헤더 주사에대해 말하는 것을 살펴 볼 수 있습니다. 또한 새로운 방어 지식을 테스트에 넣을 수 있습니다. Secure Code Warrior 사이버 보안 팀이 궁극적인 사이버 전사가 될 수 있도록 하는 플랫폼. 이 취약점을 물리치는 것에 대해 자세히 알아보려면 Secure Code Warrior 블로그.

지금 이메일 주입을 찾아 고칠 준비가 되었다고 생각하십니까? 플랫폼으로 가서 기술을 테스트하십시오: [여기에서 시작]

리소스 보기
리소스 보기

저자

야프 카란 싱

더 알고 싶으신가요?

블로그에서 최신 보안 코딩 인사이트에 대해 자세히 알아보세요.

Atlassian의 광범위한 리소스 라이브러리는 안전한 코딩 숙련도를 확보하기 위한 인적 접근 방식을 강화하는 것을 목표로 합니다.

블로그 보기
더 알고 싶으신가요?

개발자 중심 보안에 대한 최신 연구 보기

광범위한 리소스 라이브러리에는 개발자 중심의 보안 코딩을 시작하는 데 도움이 되는 백서부터 웨비나까지 유용한 리소스가 가득합니다. 지금 살펴보세요.

리소스 허브

코더는 보안을 정복 : 공유 및 학습 시리즈 - 이메일 헤더 주입

게시일: 2019년 3월 21일
Jaap Karan Singh

사용자가 이메일을 사용하여 응용 프로그램을 통해 피드백, 약속 미리 알림 및 기타 다양한 정보를 보낼 수 있도록 웹 사이트 및 응용 프로그램이 요즘 일반적입니다. 일반적으로 이 프로세스는 상당히 양호하며 대부분의 사람들은 잠재적인 보안 위험 측면에서 그것에 대해 생각하지 않습니다.

그러나 사용자 입력을 허용하는 다른 디자인 요소와 마찬가지로 제대로 구성되지 않으면 악의적인 사용자가 악의적인 방식으로 조작할 수 있습니다. 사용자에게 서버에서 실수로 처리되는 입력 필드에 코드를 입력할 수 있는 기능을 제공하는 데만 필요한 것입니다. 갑자기 이메일 응용 프로그램이 무기화 될 수 있습니다.

이 에피소드에서 우리는 배울 것입니다 :

  • 공격자가 전자 메일 헤더 주입을 트리거하는 방법
  • 이메일 헤더 주사가 위험한 이유
  • 이 취약점을 해결할 수 있는 기술입니다.

공격자는 이메일 헤더 주입을 트리거하는 방법은 무엇입니까?

프로그래밍 가능한 것으로 생각되는 경우가 많지는 않지만 대부분의 이메일 연락처 응용 프로그램 이나 응용 프로그램에 넣은 기능은 쿼리의 특성을 변경하는 입력을 수락할 수 있습니다. 사용자가 전자 메일 주소와 같은 정보를 계약 필드에 입력한 후 서버에서 자동으로 수행됩니다. 그런 다음 프로그램은 메시지를 구성하고 적절한 받는 사람을 추가하고 기본 전자 메일 서버를 사용하여 메시지를 보냅니다.

일반적인 이메일 POST 요청은 다음과 같이 보일 수 있습니다.

포스트/연락처.php HTTP/1.1
호스트: www.example.com

그리고 사용자가 자신의 정보를 입력 한 후 다음과 같은 다음과 같은 코드를 생성 :

이름=리얼네임&답장=RealName@ValidServer.com&메시지=귀하의약속 알림

문제는 해커가 자신의 연락처 정보 대신 프로세스에 코드를 삽입하기 시작할 때 발생합니다. 이는 SQL 주입 유형 공격과 는 달리 전자 메일 응용 프로그램에 대해 수행됩니다. 대신 대상 사용자에게 응용 프로그램에서 스팸을 보내는 조작 된 쿼리의 예는 다음과 같습니다.

이름=FakeName\nbcc: SpammedVictim@TargetAddress.com&replyTo= FakeName@ValidServer.com&message=스팸 메시지

이메일 헤더 주입이 위험한 이유는 무엇입니까?

악의적인 사용자의 기술과 의도에 따라 이메일 헤더 주입 공격은 단순히 성가신 것에서 심각도 면에서 매우 위험할 수 있습니다. 심각도 척도의 로우 엔드에서 회사 내 비밀 또는 공개되지 않은 사서함으로 전송된 나가는 메시지의 BCC 필드에 연락처 정보를 삽입하여 해커에게 공개할 수 있습니다.

더 많은 관련, 그것은 완전히 귀하의 이메일 서버를 제어 하 여 스팸 을 보낼 수 있습니다., 피싱 또는 조직에서 다른 공격 이메일. 그들은 시도하고 이메일이 실제로 거기에서 유래 될 것이기 때문에, 내부 서버에서 오는 사실을 가짜 필요가 없습니다. 또한 해당 활동을 모니터링하지 않으면 프로세스를 자동화하고 조직의 서버를 사용하여 수백 또는 수천 개의 전자 메일을 발송할 수 있으며 실제로 해당 활동을 선동하는 것처럼 보입니다.

이메일 헤더 주입 문제 제거

SQL 주입 및 이러한 특성의 다른 공격과 마찬가지로 악의적인 사용자가 전자 메일 헤더 취약점을 악용할 가능성을 제거하는 열쇠는 사용자 입력을 신뢰하지 않습니다. 사용자가 정보를 입력할 수 있는 경우 이메일 주소 입력과 같은 사소한 프로세스처럼 보이지만 최악의 경우 를 가정해야 합니다. 또는 적어도 최악의 경우 가능하다고 가정하십시오.

입력 유효성 검사는 모든 매개 변수에 대해 수행해야 하며 앱 또는 웹 사이트에 이메일 연락처 기능을 추가할 때 포함됩니다. 화이트리스팅은 다른 모든 것을 부인하면서 유효하다고 판단되는 프로세스와 필드를 구체적으로 사용하도록 설정하는 데 사용할 수 있습니다. 실제로 대부분의 프레임워크에는 필요한 프레임워크에 만 함수를 잠그는 데 사용할 수 있는 라이브러리가 있습니다. 이렇게 하면 악의적인 사용자가 입력한 코드 나 명령이 서버에서 인식하고 처리되지 않습니다.

이메일 헤더 주입에 대한 자세한 정보

추가 읽기를 위해, 당신은 OWASP 이메일 헤더 주사에대해 말하는 것을 살펴 볼 수 있습니다. 또한 새로운 방어 지식을 테스트에 넣을 수 있습니다. Secure Code Warrior 사이버 보안 팀이 궁극적인 사이버 전사가 될 수 있도록 하는 플랫폼. 이 취약점을 물리치는 것에 대해 자세히 알아보려면 Secure Code Warrior 블로그.

지금 이메일 주입을 찾아 고칠 준비가 되었다고 생각하십니까? 플랫폼으로 가서 기술을 테스트하십시오: [여기에서 시작]

우리는 당신에게 우리의 제품 및 / 또는 관련 보안 코딩 주제에 대한 정보를 보낼 수있는 귀하의 허가를 바랍니다. 우리는 항상 최대한의주의를 기울여 귀하의 개인 정보를 취급 할 것이며 마케팅 목적으로 다른 회사에 판매하지 않을 것입니다.

전송
양식을 제출하려면 '분석' 쿠키를 활성화하세요. 완료되면 언제든지 다시 비활성화할 수 있습니다.