개발자를 위한 보안 정복: 공유 및 학습 시리즈 - 검증되지 않은 리다이렉트 및 포워드

검증되지 않은 리다이렉트 및 포워드를 처리할 수 있는 웹사이트나 애플리케이션을 코딩하는 것은 사용자뿐만 아니라 조직 전체에 매우 위험할 수 있습니다. 이러한 흔한 실수는 피싱 사기를 저지르거나 일반적으로 제한되어야 할 페이지 및 정보에 접근하려는 해커들에 의해 자주 악용됩니다.
웹 애플리케이션이 사용자를 새로운 페이지로 전달하도록 설계될 때마다 해당 요청이 조작되거나 가로채질 위험이 있습니다. 이는 포워딩 매개변수가 의도하지 않은 목적지를 가리키지 않도록 방지하는 검증 프로세스가 없을 때 발생할 수 있습니다.
다행히도 검증되지 않은 리다이렉트 및 포워드는 환경에서 제거하기 가장 쉬운 취약점 중 하나입니다. 일단 제거하고 나면, 향후 이러한 취약점이 다시 발생하지 않도록 몇 가지 간단한 조치를 취할 수 있습니다.
이번 에피소드에서는 다음 내용을 배웁니다.
- 해커가 검증되지 않은 리다이렉트 및 포워드 취약점을 악용하는 방법
- 검증되지 않은 리다이렉트 및 포워드를 허용하는 것이 위험한 이유
- 이 문제를 찾아 해결하기 위해 적용할 수 있는 정책 및 기술.
공격자는 어떻게 검증되지 않은 리다이렉트 및 포워드를 악용하는가?
공격자는 먼저 사용자를 특정 페이지로 전달하도록 설정된 웹 애플리케이션을 찾아야 합니다. 목적지 페이지가 코드 내에 정의되어 있다면 취약점은 존재하지 않습니다. 예를 들어 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 블로그를 방문하십시오.
검증되지 않은 리다이렉트 및 포워드 문제를 완전히 해결하세요. 새로운 지식을 적용하고 게임화된 교육 플랫폼에서 실력을 테스트해 보세요: [여기서 시작하기]
배포 전 AI 기반 개발 거버넌스 확보
AI 기반 위험을 측정하고, 커밋 시점에 보안 코딩 정책을 적용하며, SDLC 전반에 걸쳐 안전한 소프트웨어 제공 속도를 높이세요.
더 많은 블로그 살펴보기
보안 코딩, AI 거버넌스, 소프트웨어 리스크 관리에 관한 전문가 콘텐츠를 확인해 보세요.
%252520%252520(3).avif)
Supercharged Security Awareness: How Tournaments are Inspiring Developers at Erste Group
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in eros elementum tristique. Duis cursus, mi quis viverra ornare, eros dolor interdum nulla, ut commodo diam libero vitae erat. Aenean faucibus nibh et justo cursus id rutrum lorem imperdiet. Nunc ut sem vitae risus tristique posuere.

Security as culture: How Blue Prism cultivates world-class secure developers
Learn how Blue Prism, the global leader in intelligent automation for the enterprise, used Secure Code Warrior's agile learning platform to create a security-first culture with their developers, achieve their business goals, and ship secure code at speed
배포 전 AI 기반 개발 보안 확보
소프트웨어 개발 수명 주기 전반에서 개발자 리스크를 파악하고, 정책을 시행하며, 취약점을 예방하세요.



.avif)