코더는 보안을 정복 : 공유 및 학습 시리즈 - 검증되지 않은 리디렉션 및 전달

게시일: 2019년 5월 23일
by Jaap Karan Singh
사례 연구

코더는 보안을 정복 : 공유 및 학습 시리즈 - 검증되지 않은 리디렉션 및 전달

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

검증되지 않은 리디렉션 및 전달을 처리할 수 있는 기능을 갖춘 웹 사이트 또는 응용 프로그램을 코딩하는 것은 사용자와 조직 모두에게 매우 위험할 수 있습니다. 이 일반적인 실수는 종종 피싱 사기를 저지르거나 일반적으로 제한될 페이지와 정보에 액세스하려는 해커에 의해 악용됩니다.

웹 응용 프로그램이 사용자를 새 페이지로 전달하도록 설계될 때마다 이러한 요청을 조작하거나 납치할 수 있습니다. 이는 전달 매개 변수가 의도하지 않은 대상을 가리키는 것을 방지하기 위한 유효성 검사 프로세스가 없는 경우 발생할 수 있습니다.

좋은 소식은 검증되지 않은 리디렉션 및 포워드가 사용자 환경에서 제거하기 쉬운 취약점 중 하나라는 것입니다. 제거되면 몇 가지 간단한 단계를 수행하여 나중에 생성되지 않도록 할 수 있습니다.

이 에피소드에서는 다음을 배우게 됩니다.

  • 해커가 검증되지 않은 리디렉션 및 전달 취약점을 악용하는 방법
  • 검증되지 않은 리디렉션 및 전진을 허용하는 것이 위험할 수 있는 이유
  • 이 문제를 찾고 해결하기 위해 사용할 수 있는 정책 및 기술입니다.

공격자는 검증되지 않은 리디렉션 및 포워드를 어떻게 악용합니까?

공격자는 먼저 사용자를 특정 페이지 또는 페이지로 전달하도록 설정된 웹 응용 프로그램을 찾아야 합니다. 대상 페이지가 코드에 정의되면 취약점이 없습니다. 예를 들어 Java에서는 하이퍼링크를 클릭하는 것과 같은 작업을 수행할 필요 없이 사용자를 새 위치로 보내는 안전하고 미리 정의된 방법이 될 수 있습니다.

response.sendRedirect("http://www.knownsafesite.com");

이 취약점은 사이트가 리디렉션에 대한 사용자 입력을 수락하도록 프로그램된 경우 또는 매개 변수가 열려 있는 경우 다른 소스에서 정보를 가져오는 경우에 발생합니다. 예를 들어 개발자는 'URL'GET 매개 변수를 사용할 수 있습니다.

response.sendRedirect(request.getParameter("url"));

이렇게 하면 더 많은 유연성을 제공하지만 검증되지 않은 리디렉션을 생성하고 취약점을 전달합니다. 해커는 앞으로 슬래시 후 정보를 추가하여 피싱 전자 메일의 일부로 선택한 사이트로 리디렉션을 트리거할 수 있습니다. 사용자는 링크의 첫 번째 부분에서 신뢰할 수 있는 도메인을 보고 웹 사이트가 해커의 사이트로 전달할 수 있다는 사실을 깨닫지 못합니다.

검증되지 않은 리디렉션과 전진이 왜 그렇게 위험합니까?

검증되지 않은 리디렉션과 전방을 허용함으로써 야기되는 위험은 상당할 수 있습니다. 사용자에게 가장 큰 위험은 피싱 공격의 희생자가 될 수 있다는 것입니다. 최상위 URL을 표시하기 때문에 피싱 전자 메일 또는 기타 통신을 신뢰하고 링크를 클릭할 가능성이 높습니다. 그리고 페이지가 실제 페이지처럼 보이도록 리디렉션되는 경우 속임수가 매우 효과적일 수 있습니다. 사용자 이름, 암호 또는 기타 자격 증명을 공유할 수 있으며 조작 중이라고 의심하지 않을 수 있습니다.

검증되지 않은 리디렉션 및 전달에 의해 제기된 위협 제거

응용 프로그램이 개발되는 동안 검증되지 않은 리디렉션 및 포워드는 수명을 시작합니다. 사실 이후에 제거할 수 있지만 이를 제거하는 가장 쉬운 방법은 처음에 리디렉션 또는 전달 기능의 일부로 사용자 매개 변수 또는 문자열을 열지 않는 것입니다. 대신 사용자가 전달되는 URL을 엄격하게 정의하여 변수를 제거하고 공격자의 기동 공간을 거부합니다. 더 나은 아직, 리디렉션 및 앞으로 전혀 사용하지 않는 것이 좋습니다.

리디렉션 또는 전달 프로세스의 일부로 변수를 사용하지 않도록 할 방법이 전혀 없는 경우 리디렉션이 유효한 대상 집합 중 하나로 이동되도록 유효성 검사 프로세스가 있어야 합니다. 마지막으로 실제 URL 대신 매핑 값을 사용합니다. 대신 해커는 URL 정보를 사용하려고 시도하며, 사용 중이 의심되는 경우에도 매핑 체계에서 추측할 수 없을 것입니다.

검증되지 않은 리디렉션 및 전달에 대한 자세한 정보

추가 읽기를 위해 검증되지 않은 리디렉션 및 전달에 대한 OWASP 참조 페이지를 살펴볼 수 있습니다. 또한 새로운 방어 지식을 테스트에 넣을 수 있습니다. Secure Code Warrior 사이버 보안 팀이 궁극적인 사이버 전사가 될 수 있도록 하는 플랫폼. 이 취약점을 물리치는 것에 대해 자세히 알아보려면 Secure Code Warrior 블로그.

검증되지 않은 리디렉션을 한 번에 처리합니다. 새로운 지식을 적용하고 게임 교육 플랫폼에서 기술을 테스트하십시오.

리소스 보기
리소스 보기

저자

야프 카란 싱

더 알고 싶으신가요?

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

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

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

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

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

리소스 허브

코더는 보안을 정복 : 공유 및 학습 시리즈 - 검증되지 않은 리디렉션 및 전달

게시일: 2019년 5월 23일
Jaap Karan Singh

검증되지 않은 리디렉션 및 전달을 처리할 수 있는 기능을 갖춘 웹 사이트 또는 응용 프로그램을 코딩하는 것은 사용자와 조직 모두에게 매우 위험할 수 있습니다. 이 일반적인 실수는 종종 피싱 사기를 저지르거나 일반적으로 제한될 페이지와 정보에 액세스하려는 해커에 의해 악용됩니다.

웹 응용 프로그램이 사용자를 새 페이지로 전달하도록 설계될 때마다 이러한 요청을 조작하거나 납치할 수 있습니다. 이는 전달 매개 변수가 의도하지 않은 대상을 가리키는 것을 방지하기 위한 유효성 검사 프로세스가 없는 경우 발생할 수 있습니다.

좋은 소식은 검증되지 않은 리디렉션 및 포워드가 사용자 환경에서 제거하기 쉬운 취약점 중 하나라는 것입니다. 제거되면 몇 가지 간단한 단계를 수행하여 나중에 생성되지 않도록 할 수 있습니다.

이 에피소드에서는 다음을 배우게 됩니다.

  • 해커가 검증되지 않은 리디렉션 및 전달 취약점을 악용하는 방법
  • 검증되지 않은 리디렉션 및 전진을 허용하는 것이 위험할 수 있는 이유
  • 이 문제를 찾고 해결하기 위해 사용할 수 있는 정책 및 기술입니다.

공격자는 검증되지 않은 리디렉션 및 포워드를 어떻게 악용합니까?

공격자는 먼저 사용자를 특정 페이지 또는 페이지로 전달하도록 설정된 웹 응용 프로그램을 찾아야 합니다. 대상 페이지가 코드에 정의되면 취약점이 없습니다. 예를 들어 Java에서는 하이퍼링크를 클릭하는 것과 같은 작업을 수행할 필요 없이 사용자를 새 위치로 보내는 안전하고 미리 정의된 방법이 될 수 있습니다.

response.sendRedirect("http://www.knownsafesite.com");

이 취약점은 사이트가 리디렉션에 대한 사용자 입력을 수락하도록 프로그램된 경우 또는 매개 변수가 열려 있는 경우 다른 소스에서 정보를 가져오는 경우에 발생합니다. 예를 들어 개발자는 'URL'GET 매개 변수를 사용할 수 있습니다.

response.sendRedirect(request.getParameter("url"));

이렇게 하면 더 많은 유연성을 제공하지만 검증되지 않은 리디렉션을 생성하고 취약점을 전달합니다. 해커는 앞으로 슬래시 후 정보를 추가하여 피싱 전자 메일의 일부로 선택한 사이트로 리디렉션을 트리거할 수 있습니다. 사용자는 링크의 첫 번째 부분에서 신뢰할 수 있는 도메인을 보고 웹 사이트가 해커의 사이트로 전달할 수 있다는 사실을 깨닫지 못합니다.

검증되지 않은 리디렉션과 전진이 왜 그렇게 위험합니까?

검증되지 않은 리디렉션과 전방을 허용함으로써 야기되는 위험은 상당할 수 있습니다. 사용자에게 가장 큰 위험은 피싱 공격의 희생자가 될 수 있다는 것입니다. 최상위 URL을 표시하기 때문에 피싱 전자 메일 또는 기타 통신을 신뢰하고 링크를 클릭할 가능성이 높습니다. 그리고 페이지가 실제 페이지처럼 보이도록 리디렉션되는 경우 속임수가 매우 효과적일 수 있습니다. 사용자 이름, 암호 또는 기타 자격 증명을 공유할 수 있으며 조작 중이라고 의심하지 않을 수 있습니다.

검증되지 않은 리디렉션 및 전달에 의해 제기된 위협 제거

응용 프로그램이 개발되는 동안 검증되지 않은 리디렉션 및 포워드는 수명을 시작합니다. 사실 이후에 제거할 수 있지만 이를 제거하는 가장 쉬운 방법은 처음에 리디렉션 또는 전달 기능의 일부로 사용자 매개 변수 또는 문자열을 열지 않는 것입니다. 대신 사용자가 전달되는 URL을 엄격하게 정의하여 변수를 제거하고 공격자의 기동 공간을 거부합니다. 더 나은 아직, 리디렉션 및 앞으로 전혀 사용하지 않는 것이 좋습니다.

리디렉션 또는 전달 프로세스의 일부로 변수를 사용하지 않도록 할 방법이 전혀 없는 경우 리디렉션이 유효한 대상 집합 중 하나로 이동되도록 유효성 검사 프로세스가 있어야 합니다. 마지막으로 실제 URL 대신 매핑 값을 사용합니다. 대신 해커는 URL 정보를 사용하려고 시도하며, 사용 중이 의심되는 경우에도 매핑 체계에서 추측할 수 없을 것입니다.

검증되지 않은 리디렉션 및 전달에 대한 자세한 정보

추가 읽기를 위해 검증되지 않은 리디렉션 및 전달에 대한 OWASP 참조 페이지를 살펴볼 수 있습니다. 또한 새로운 방어 지식을 테스트에 넣을 수 있습니다. Secure Code Warrior 사이버 보안 팀이 궁극적인 사이버 전사가 될 수 있도록 하는 플랫폼. 이 취약점을 물리치는 것에 대해 자세히 알아보려면 Secure Code Warrior 블로그.

검증되지 않은 리디렉션을 한 번에 처리합니다. 새로운 지식을 적용하고 게임 교육 플랫폼에서 기술을 테스트하십시오.

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

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