코더는 보안을 정복 : 공유 및 시리즈 알아보기 - 교차 사이트 요청 위조
웹 사이트 또는 응용 프로그램 운영자를 정면으로 겨냥한 공격과 달리 CSRF(많은 교차 사이트 요청 위조) 공격의 목표는 사용자로부터 직접 돈, 상품 또는 자격 증명을 훔치는 것입니다. 이는 사이트 운영자가 CSRF 코드 취약점을 무시해야 한다는 것을 의미하지는 않으며, 궁극적으로 도난당한 자금을 교체하는 경우 순전히 금전적 공격의 경우 안전하지 않은 코드가 있는 호스팅 사이트의 책임이 될 수 있습니다. 그리고 대상 사용자가 대신 자격 증명을 잃거나 무의식적으로 암호를 변경하는 경우, 범죄자는 특히 피해자가 권한있는 액세스 권한이있는 경우 도난 당한 신원을 사용하여 혼란을 과시 할 수 있습니다.
CSRF 공격은 매우 복잡하며 여러 계층에 의존하여 성공합니다. 즉, 많은 것들이 작동하기 위해 공격자에 찬성 휴식해야합니다. 그럼에도 불구하고, 그들은 매우 인기있는 공격 벡터 때문에 성공적인 공격은 해커에게 직접 돈을 전송할 수 있습니다, 또는 무죄와 사이트에 대해 이동할 수 있도록 그들을 설정. 모든 해커의 방법을 간다면, 대상 사용자는 심지어 그들이 공격에 피해자 떨어졌다는 것을 알 수 없습니다.
좋은 소식은 CSRF 공격이 작동하도록 너무 많은 이동해야하기 때문에, 자신의 트랙에서 그들을 중지 할 수있는 몇 가지 훌륭한 방어 기술이 있다는 것입니다.
이를 위해 CSRF 공격의 세 가지 주요 측면에 대해 설명합니다.
- 작동 방식
- 왜 그렇게 위험합니까?
- 어떻게 그들을 추위를 막기 위해 장소에 방어를 넣을 수 있습니다.
CSRF 공격은 어떻게 작동합니까?
CSRF 공격은 대상 사용자로부터 직접 돈, 상품 또는 자격 증명을 훔칠 수 있기 때문에 이를 만들어야 하는 많은 작업에도 불구하고 인기가 있습니다. 그리고 그들은 종종 다른 플랫폼에서 시도되기 때문에, 수년에 걸쳐 그들은 이름과 모니커의 다양한 집어 들었다. XSRF, 씨 서핑, 세션 라이딩, 교차 사이트 참조 위조 또는 적대적인 연결이라고 하는 CSRF 공격을 들을 수 있습니다. Microsoft는 대부분의 문서에서 원클릭 공격으로 참조하는 것을 좋아합니다. 그러나 그들은 모두 CSRF 공격이며, 그들을 물리 칠 수있는 기술은 동일합니다.
CSRF 공격은 사용자가 비즈니스를 수행하거나 작업을 수행하는 사이트에 로그인한 경우 발생할 수 있습니다. 핵심은 사용자가 로그인하여 웹 사이트 또는 응용 프로그램에 적극적으로 인증해야 한다는 것입니다. 공격은 일반적으로 보조 웹 사이트 또는 전자 메일에서 시작됩니다. 종종 공격자는 소셜 엔지니어링 기술을 사용하여 사용자가 공격 스크립트로 손상된 웹 사이트로 연결되는 전자 메일의 링크를 클릭하도록 속입니다.
손상된 웹 사이트에는 활성 브라우저가 명령을 실행하도록 지시하는 스크립트가 포함되어 있으며, 일반적으로 사용자의 암호를 변경하거나 공격자가 제어하는 계정으로 송금하는 것과 같은 악의적인 내용이 포함됩니다. 사용자가 인증되는 한 사이트는 권한이 부여된 사용자가 명령이 발급되고 있다고 생각할 것입니다. 왜 그렇지 않을까요? 사용자는 이미 자신을 인증하고 사이트에 액세스하는 데 필요한 암호를 제공했습니다. 그들은 심지어 제대로 사무실 터미널에 앉아, 지오 펜스 내에 있을 수 있습니다. 암호를 변경하거나 자금을 이체하려는 경우 요청을 한다고 믿지 않을 이유가 없습니다.
공격의 요소를 분해, 이 사람이 공격자에 대 한 철수 너무 어려운 이유가 분명 하다. 우선, 사용자는 공격이 발생하는 사이트로 적극적으로 인증되어야 합니다. 사용자가 브라우저 세션을 종료하거나 로그오프한 후 공격 스크립트가 있는 전자 메일이 들어오면 공격이 실패합니다.
공격자는 또한 해당 사이트에서 어떤 스크립트를 허용할지 알기 위해 대상 사이트에서 많은 정찰을 수행해야 합니다. 공격자는 피해자의 화면을 볼 수 없으며 웹 사이트의 피드백은 공격자가 아닌 피해자에게 이동합니다. 공격자가 자신의 계정에 갑자기 돈이 나타나는 등 공격 작동의 증거를 볼 수 없다면, 그들은 그것이 성공했는지 즉시 알지 못합니다.
공격 시 사용자가 로그인하고 대상 사이트에서 어떤 스크립트를 허용할지 알 수 있는 어렵지만 불가능하지 않은 매개 변수 내에서 CSRF 공격을 실행하는 코드는 사이트 자체에 따라 달라지지만 매우 간단할 수 있습니다.
은행 이나 금융 응용 프로그램은 이와 같이 돈을 전송 하기 위해 GET 요청을 사용 하 여 가정 해 봅시다.
HTTP://BANK.COM/TRANSFERDO?ACCT=NANCYSMITH12&AMOUNT=100 HTTP/1.1받기
이 코드는 NancySmith12라는 사용자에게 $100를 전송하라는 요청을 보낼 것입니다.
그러나 대상 사용자가 동료로부터 오는 것으로 위장한 전자 메일을 받은 경우 CSRF 공격 스크립트가 클릭 작업에 포함될 수 있습니다.
<a href="http://bank.com/transfer.do?acct=ShadyLady15&amount=100000">Can you quickly read over this quarterly report?<a></a></a>
대상 사용자가 사회 공학 링크에 대해 떨어졌고 금융 응용 프로그램과 브라우저 세션이 여전히 열려있는 동안 클릭하면 브라우저는 ShadyLady15의 계정에 $ 100,000을 보내도록 응용 프로그램에 요청할 것입니다.
스크립트는 사용자가 볼 수 없는 보이지 않는 이미지에 숨겨져 있을 수도 있지만 브라우저가 다음과 같이 요청을 하도록 트리거할 수도 있습니다.
<img src="http://bank.com/transfer.do?acct=ShadyLady15&amount=100000" width="0" height="0" border="0">
결과는 동일합니다. ShadyLady15는 공격을 감지하지 않고도 $100,000를 받습니다.
CSRF가 왜 그렇게 위험합니까?
CSRF 공격은 랜섬웨어 공격이 라운드를 계속하는 것과 같은 이유로 오늘날 인기가 있습니다. 그것은 공격자와 피해자의 돈 사이에 거의 홉을 두고. 랜섬웨어 공격에서 시스템은 암호화되고 사용자는 해당 데이터를 해독하기 위해 돈을 갈취합니다. CSRF 공격을 사용하면 훨씬 적은 단계입니다. 그들이 일할 때, 피해자는 단순히 그것을 모르고 공격자에게 돈을 보냅니다.
피해자의 돈이나 회사의 재정에 대한 직접적인 공격 외에도 성공적인 CSRF 공격을 사용하여 유효한 사용자를 사용하여 네트워크를 손상시킬 수 있습니다. 공격자가 CSRF 악용을 사용하여 관리자의 암호를 변경할 수 있다고 가정해 보십시오. 그들은 즉시 데이터를 훔치기 시작, 네트워크 방어를 통해 구멍을 열거나 백도어를 설치하기 위해 그 암호를 사용할 수 있습니다.
그것은 많은 작업, 그리고 어느 정도 행운, 성공적인 CSRF 공격은 그들의 궁극적인 목표에 관계 없이 해커에 대 한 복권 을 승리 처럼 될 수 있습니다. 네트워크를 공격할 때, 거의 모든 종류의 공격은 SIEM 및 사이버 보안 직원의 레이더 를 낮추기 위해 몇 달 동안 낮고 느린 정찰이 필요합니다. 대조적으로, 하나의 CSRF 공격은 사이버 킬 체인을 따라 꽤 많은 단계를 건너 뛸 수 있습니다, 그들은 궁극적 인 목표에 매우 가까운 시작하게.
CSRF 공격을 중지하려면 어떻게 해야 합니까?
대부분의 취약점과 달리 CSRF 공격으로 인해 오류가 실제로 코드에 있는 것이 아니라 공격자가 브라우저에서 사용자가 원하지 않는 요청을 하도록 강제하여 작성한 악용과 함께 사용자가 원하지 않는 요청을 하고 알지 못할 수도 있습니다. 그러나 그들은 패배 할 수 있습니다.
가장 좋은 방법 중 하나는 개발자가 새 세션이 생성될 때마다 사용자의 ID에 CSRF 토큰을 추가하도록 하는 것입니다. 고유하고 임의의 문자 문자열로 구성되어야 하며 사용자에게 보이지 않아야 합니다. 그런 다음 CSRF 토큰 요청을 새 요청이 제출할 때마다 서버에서 검사하는 양식에 숨겨진 필드로 추가합니다. 사용자의 브라우저를 통해 요청을 제출하는 공격자는 숨겨진 토큰 필드에 대해 알지 못하므로 모든 요청이 실패합니다.
더 쉬운 방법, 그리고 매우 많은 프로그래밍을 필요로하지 않는 하나는 암호 변경 요청이나 송금 주문과 같은 민감한 아무것도에 Captcha 도전을 추가하는 것입니다. 요청자가 로봇이 아님을 확인하는 한 단추를 클릭하거나 이 경우 CSRF 스크립트를 클릭하도록 요청하는 것만큼 간단할 수 있습니다. 공격자는 도전에 대한 응답을 스크립트할 수 없으며, 송금 요청을 하는 것과 같은 작업을 먼저 하지 않고 갑자기 CAPTCHA 챌린지를 받는 사용자는 무언가가 있다는 것을 알게 될 것입니다. 또는 조직이 보안 이름으로 작업을 느리게 하려는 양에 따라 스마트폰과 같은 타사 토큰을 사용하여 일회성 암호 생성을 사용할 수 있습니다.
마지막으로, 그것은 철갑 하지 않지만, 마이크로소프트 가장자리 또는 구글 크롬 같은 많은 브라우저는 지금 장소에 같은 원산지 정책 제한 을 가지고 다른 사람 하지만 로컬 사용자. 사용자가 가장 업데이트된 브라우저 버전을 사용하여 사이트와 상호 작용하도록 강요하면 개발 팀에 전혀 세금을 부과하지 않고 CSRF 보안의 다른 계층을 구축하는 데 도움이 될 수 있습니다.
CSRF의 문 슬래밍
이러한 높은 잠재적 인 지불금으로 CSRF 공격은 완전히 죽지 않을 것입니다, 그러나 우리는 당신이 그들이 그렇게 지속이유를 배웠으면 좋겠다, 좋은 네트워크에서 그들을 차단하는 방법.
추가 읽기를 위해, 당신은 진화로이 취약점을 연대기 살아있는 문서 역할을 OWASP 크로스 사이트 요청 위조 방지 치트 시트를 살펴 볼 수 있습니다. 보안 지식을 강화하고 싶다면, 방문하여 이 위협과 더 많은 것을 물리치는 법을 배울 수 있습니다. Secure Code Warrior 블로그.
새로운 방어 지식을 테스트할 준비가 되었다고 생각하십니까? 무료 데모와 함께 놀아보시면 Secure Code Warrior 오늘 플랫폼.
CSRF 공격은 매우 복잡하며 여러 계층에 의존하여 성공합니다. 즉, 많은 것들이 작동하기 위해 공격자에 찬성 휴식해야합니다. 그럼에도 불구하고, 그들은 매우 인기 있고 수익성있는 공격 벡터입니다.
야프 카란 싱은 보안 코딩 전도자, 수석 싱 및 공동 설립자입니다 Secure Code Warrior .
Secure Code Warrior 는 전체 소프트웨어 개발 수명 주기에서 코드를 보호하고 사이버 보안을 최우선으로 생각하는 문화를 조성할 수 있도록 도와드립니다. 앱 보안 관리자, 개발자, CISO 등 보안과 관련된 모든 사람이 안전하지 않은 코드와 관련된 위험을 줄일 수 있도록 도와드릴 수 있습니다.
데모 예약야프 카란 싱은 보안 코딩 전도자, 수석 싱 및 공동 설립자입니다 Secure Code Warrior .
웹 사이트 또는 응용 프로그램 운영자를 정면으로 겨냥한 공격과 달리 CSRF(많은 교차 사이트 요청 위조) 공격의 목표는 사용자로부터 직접 돈, 상품 또는 자격 증명을 훔치는 것입니다. 이는 사이트 운영자가 CSRF 코드 취약점을 무시해야 한다는 것을 의미하지는 않으며, 궁극적으로 도난당한 자금을 교체하는 경우 순전히 금전적 공격의 경우 안전하지 않은 코드가 있는 호스팅 사이트의 책임이 될 수 있습니다. 그리고 대상 사용자가 대신 자격 증명을 잃거나 무의식적으로 암호를 변경하는 경우, 범죄자는 특히 피해자가 권한있는 액세스 권한이있는 경우 도난 당한 신원을 사용하여 혼란을 과시 할 수 있습니다.
CSRF 공격은 매우 복잡하며 여러 계층에 의존하여 성공합니다. 즉, 많은 것들이 작동하기 위해 공격자에 찬성 휴식해야합니다. 그럼에도 불구하고, 그들은 매우 인기있는 공격 벡터 때문에 성공적인 공격은 해커에게 직접 돈을 전송할 수 있습니다, 또는 무죄와 사이트에 대해 이동할 수 있도록 그들을 설정. 모든 해커의 방법을 간다면, 대상 사용자는 심지어 그들이 공격에 피해자 떨어졌다는 것을 알 수 없습니다.
좋은 소식은 CSRF 공격이 작동하도록 너무 많은 이동해야하기 때문에, 자신의 트랙에서 그들을 중지 할 수있는 몇 가지 훌륭한 방어 기술이 있다는 것입니다.
이를 위해 CSRF 공격의 세 가지 주요 측면에 대해 설명합니다.
- 작동 방식
- 왜 그렇게 위험합니까?
- 어떻게 그들을 추위를 막기 위해 장소에 방어를 넣을 수 있습니다.
CSRF 공격은 어떻게 작동합니까?
CSRF 공격은 대상 사용자로부터 직접 돈, 상품 또는 자격 증명을 훔칠 수 있기 때문에 이를 만들어야 하는 많은 작업에도 불구하고 인기가 있습니다. 그리고 그들은 종종 다른 플랫폼에서 시도되기 때문에, 수년에 걸쳐 그들은 이름과 모니커의 다양한 집어 들었다. XSRF, 씨 서핑, 세션 라이딩, 교차 사이트 참조 위조 또는 적대적인 연결이라고 하는 CSRF 공격을 들을 수 있습니다. Microsoft는 대부분의 문서에서 원클릭 공격으로 참조하는 것을 좋아합니다. 그러나 그들은 모두 CSRF 공격이며, 그들을 물리 칠 수있는 기술은 동일합니다.
CSRF 공격은 사용자가 비즈니스를 수행하거나 작업을 수행하는 사이트에 로그인한 경우 발생할 수 있습니다. 핵심은 사용자가 로그인하여 웹 사이트 또는 응용 프로그램에 적극적으로 인증해야 한다는 것입니다. 공격은 일반적으로 보조 웹 사이트 또는 전자 메일에서 시작됩니다. 종종 공격자는 소셜 엔지니어링 기술을 사용하여 사용자가 공격 스크립트로 손상된 웹 사이트로 연결되는 전자 메일의 링크를 클릭하도록 속입니다.
손상된 웹 사이트에는 활성 브라우저가 명령을 실행하도록 지시하는 스크립트가 포함되어 있으며, 일반적으로 사용자의 암호를 변경하거나 공격자가 제어하는 계정으로 송금하는 것과 같은 악의적인 내용이 포함됩니다. 사용자가 인증되는 한 사이트는 권한이 부여된 사용자가 명령이 발급되고 있다고 생각할 것입니다. 왜 그렇지 않을까요? 사용자는 이미 자신을 인증하고 사이트에 액세스하는 데 필요한 암호를 제공했습니다. 그들은 심지어 제대로 사무실 터미널에 앉아, 지오 펜스 내에 있을 수 있습니다. 암호를 변경하거나 자금을 이체하려는 경우 요청을 한다고 믿지 않을 이유가 없습니다.
공격의 요소를 분해, 이 사람이 공격자에 대 한 철수 너무 어려운 이유가 분명 하다. 우선, 사용자는 공격이 발생하는 사이트로 적극적으로 인증되어야 합니다. 사용자가 브라우저 세션을 종료하거나 로그오프한 후 공격 스크립트가 있는 전자 메일이 들어오면 공격이 실패합니다.
공격자는 또한 해당 사이트에서 어떤 스크립트를 허용할지 알기 위해 대상 사이트에서 많은 정찰을 수행해야 합니다. 공격자는 피해자의 화면을 볼 수 없으며 웹 사이트의 피드백은 공격자가 아닌 피해자에게 이동합니다. 공격자가 자신의 계정에 갑자기 돈이 나타나는 등 공격 작동의 증거를 볼 수 없다면, 그들은 그것이 성공했는지 즉시 알지 못합니다.
공격 시 사용자가 로그인하고 대상 사이트에서 어떤 스크립트를 허용할지 알 수 있는 어렵지만 불가능하지 않은 매개 변수 내에서 CSRF 공격을 실행하는 코드는 사이트 자체에 따라 달라지지만 매우 간단할 수 있습니다.
은행 이나 금융 응용 프로그램은 이와 같이 돈을 전송 하기 위해 GET 요청을 사용 하 여 가정 해 봅시다.
HTTP://BANK.COM/TRANSFERDO?ACCT=NANCYSMITH12&AMOUNT=100 HTTP/1.1받기
이 코드는 NancySmith12라는 사용자에게 $100를 전송하라는 요청을 보낼 것입니다.
그러나 대상 사용자가 동료로부터 오는 것으로 위장한 전자 메일을 받은 경우 CSRF 공격 스크립트가 클릭 작업에 포함될 수 있습니다.
<a href="http://bank.com/transfer.do?acct=ShadyLady15&amount=100000">Can you quickly read over this quarterly report?<a></a></a>
대상 사용자가 사회 공학 링크에 대해 떨어졌고 금융 응용 프로그램과 브라우저 세션이 여전히 열려있는 동안 클릭하면 브라우저는 ShadyLady15의 계정에 $ 100,000을 보내도록 응용 프로그램에 요청할 것입니다.
스크립트는 사용자가 볼 수 없는 보이지 않는 이미지에 숨겨져 있을 수도 있지만 브라우저가 다음과 같이 요청을 하도록 트리거할 수도 있습니다.
<img src="http://bank.com/transfer.do?acct=ShadyLady15&amount=100000" width="0" height="0" border="0">
결과는 동일합니다. ShadyLady15는 공격을 감지하지 않고도 $100,000를 받습니다.
CSRF가 왜 그렇게 위험합니까?
CSRF 공격은 랜섬웨어 공격이 라운드를 계속하는 것과 같은 이유로 오늘날 인기가 있습니다. 그것은 공격자와 피해자의 돈 사이에 거의 홉을 두고. 랜섬웨어 공격에서 시스템은 암호화되고 사용자는 해당 데이터를 해독하기 위해 돈을 갈취합니다. CSRF 공격을 사용하면 훨씬 적은 단계입니다. 그들이 일할 때, 피해자는 단순히 그것을 모르고 공격자에게 돈을 보냅니다.
피해자의 돈이나 회사의 재정에 대한 직접적인 공격 외에도 성공적인 CSRF 공격을 사용하여 유효한 사용자를 사용하여 네트워크를 손상시킬 수 있습니다. 공격자가 CSRF 악용을 사용하여 관리자의 암호를 변경할 수 있다고 가정해 보십시오. 그들은 즉시 데이터를 훔치기 시작, 네트워크 방어를 통해 구멍을 열거나 백도어를 설치하기 위해 그 암호를 사용할 수 있습니다.
그것은 많은 작업, 그리고 어느 정도 행운, 성공적인 CSRF 공격은 그들의 궁극적인 목표에 관계 없이 해커에 대 한 복권 을 승리 처럼 될 수 있습니다. 네트워크를 공격할 때, 거의 모든 종류의 공격은 SIEM 및 사이버 보안 직원의 레이더 를 낮추기 위해 몇 달 동안 낮고 느린 정찰이 필요합니다. 대조적으로, 하나의 CSRF 공격은 사이버 킬 체인을 따라 꽤 많은 단계를 건너 뛸 수 있습니다, 그들은 궁극적 인 목표에 매우 가까운 시작하게.
CSRF 공격을 중지하려면 어떻게 해야 합니까?
대부분의 취약점과 달리 CSRF 공격으로 인해 오류가 실제로 코드에 있는 것이 아니라 공격자가 브라우저에서 사용자가 원하지 않는 요청을 하도록 강제하여 작성한 악용과 함께 사용자가 원하지 않는 요청을 하고 알지 못할 수도 있습니다. 그러나 그들은 패배 할 수 있습니다.
가장 좋은 방법 중 하나는 개발자가 새 세션이 생성될 때마다 사용자의 ID에 CSRF 토큰을 추가하도록 하는 것입니다. 고유하고 임의의 문자 문자열로 구성되어야 하며 사용자에게 보이지 않아야 합니다. 그런 다음 CSRF 토큰 요청을 새 요청이 제출할 때마다 서버에서 검사하는 양식에 숨겨진 필드로 추가합니다. 사용자의 브라우저를 통해 요청을 제출하는 공격자는 숨겨진 토큰 필드에 대해 알지 못하므로 모든 요청이 실패합니다.
더 쉬운 방법, 그리고 매우 많은 프로그래밍을 필요로하지 않는 하나는 암호 변경 요청이나 송금 주문과 같은 민감한 아무것도에 Captcha 도전을 추가하는 것입니다. 요청자가 로봇이 아님을 확인하는 한 단추를 클릭하거나 이 경우 CSRF 스크립트를 클릭하도록 요청하는 것만큼 간단할 수 있습니다. 공격자는 도전에 대한 응답을 스크립트할 수 없으며, 송금 요청을 하는 것과 같은 작업을 먼저 하지 않고 갑자기 CAPTCHA 챌린지를 받는 사용자는 무언가가 있다는 것을 알게 될 것입니다. 또는 조직이 보안 이름으로 작업을 느리게 하려는 양에 따라 스마트폰과 같은 타사 토큰을 사용하여 일회성 암호 생성을 사용할 수 있습니다.
마지막으로, 그것은 철갑 하지 않지만, 마이크로소프트 가장자리 또는 구글 크롬 같은 많은 브라우저는 지금 장소에 같은 원산지 정책 제한 을 가지고 다른 사람 하지만 로컬 사용자. 사용자가 가장 업데이트된 브라우저 버전을 사용하여 사이트와 상호 작용하도록 강요하면 개발 팀에 전혀 세금을 부과하지 않고 CSRF 보안의 다른 계층을 구축하는 데 도움이 될 수 있습니다.
CSRF의 문 슬래밍
이러한 높은 잠재적 인 지불금으로 CSRF 공격은 완전히 죽지 않을 것입니다, 그러나 우리는 당신이 그들이 그렇게 지속이유를 배웠으면 좋겠다, 좋은 네트워크에서 그들을 차단하는 방법.
추가 읽기를 위해, 당신은 진화로이 취약점을 연대기 살아있는 문서 역할을 OWASP 크로스 사이트 요청 위조 방지 치트 시트를 살펴 볼 수 있습니다. 보안 지식을 강화하고 싶다면, 방문하여 이 위협과 더 많은 것을 물리치는 법을 배울 수 있습니다. Secure Code Warrior 블로그.
새로운 방어 지식을 테스트할 준비가 되었다고 생각하십니까? 무료 데모와 함께 놀아보시면 Secure Code Warrior 오늘 플랫폼.
웹 사이트 또는 응용 프로그램 운영자를 정면으로 겨냥한 공격과 달리 CSRF(많은 교차 사이트 요청 위조) 공격의 목표는 사용자로부터 직접 돈, 상품 또는 자격 증명을 훔치는 것입니다. 이는 사이트 운영자가 CSRF 코드 취약점을 무시해야 한다는 것을 의미하지는 않으며, 궁극적으로 도난당한 자금을 교체하는 경우 순전히 금전적 공격의 경우 안전하지 않은 코드가 있는 호스팅 사이트의 책임이 될 수 있습니다. 그리고 대상 사용자가 대신 자격 증명을 잃거나 무의식적으로 암호를 변경하는 경우, 범죄자는 특히 피해자가 권한있는 액세스 권한이있는 경우 도난 당한 신원을 사용하여 혼란을 과시 할 수 있습니다.
CSRF 공격은 매우 복잡하며 여러 계층에 의존하여 성공합니다. 즉, 많은 것들이 작동하기 위해 공격자에 찬성 휴식해야합니다. 그럼에도 불구하고, 그들은 매우 인기있는 공격 벡터 때문에 성공적인 공격은 해커에게 직접 돈을 전송할 수 있습니다, 또는 무죄와 사이트에 대해 이동할 수 있도록 그들을 설정. 모든 해커의 방법을 간다면, 대상 사용자는 심지어 그들이 공격에 피해자 떨어졌다는 것을 알 수 없습니다.
좋은 소식은 CSRF 공격이 작동하도록 너무 많은 이동해야하기 때문에, 자신의 트랙에서 그들을 중지 할 수있는 몇 가지 훌륭한 방어 기술이 있다는 것입니다.
이를 위해 CSRF 공격의 세 가지 주요 측면에 대해 설명합니다.
- 작동 방식
- 왜 그렇게 위험합니까?
- 어떻게 그들을 추위를 막기 위해 장소에 방어를 넣을 수 있습니다.
CSRF 공격은 어떻게 작동합니까?
CSRF 공격은 대상 사용자로부터 직접 돈, 상품 또는 자격 증명을 훔칠 수 있기 때문에 이를 만들어야 하는 많은 작업에도 불구하고 인기가 있습니다. 그리고 그들은 종종 다른 플랫폼에서 시도되기 때문에, 수년에 걸쳐 그들은 이름과 모니커의 다양한 집어 들었다. XSRF, 씨 서핑, 세션 라이딩, 교차 사이트 참조 위조 또는 적대적인 연결이라고 하는 CSRF 공격을 들을 수 있습니다. Microsoft는 대부분의 문서에서 원클릭 공격으로 참조하는 것을 좋아합니다. 그러나 그들은 모두 CSRF 공격이며, 그들을 물리 칠 수있는 기술은 동일합니다.
CSRF 공격은 사용자가 비즈니스를 수행하거나 작업을 수행하는 사이트에 로그인한 경우 발생할 수 있습니다. 핵심은 사용자가 로그인하여 웹 사이트 또는 응용 프로그램에 적극적으로 인증해야 한다는 것입니다. 공격은 일반적으로 보조 웹 사이트 또는 전자 메일에서 시작됩니다. 종종 공격자는 소셜 엔지니어링 기술을 사용하여 사용자가 공격 스크립트로 손상된 웹 사이트로 연결되는 전자 메일의 링크를 클릭하도록 속입니다.
손상된 웹 사이트에는 활성 브라우저가 명령을 실행하도록 지시하는 스크립트가 포함되어 있으며, 일반적으로 사용자의 암호를 변경하거나 공격자가 제어하는 계정으로 송금하는 것과 같은 악의적인 내용이 포함됩니다. 사용자가 인증되는 한 사이트는 권한이 부여된 사용자가 명령이 발급되고 있다고 생각할 것입니다. 왜 그렇지 않을까요? 사용자는 이미 자신을 인증하고 사이트에 액세스하는 데 필요한 암호를 제공했습니다. 그들은 심지어 제대로 사무실 터미널에 앉아, 지오 펜스 내에 있을 수 있습니다. 암호를 변경하거나 자금을 이체하려는 경우 요청을 한다고 믿지 않을 이유가 없습니다.
공격의 요소를 분해, 이 사람이 공격자에 대 한 철수 너무 어려운 이유가 분명 하다. 우선, 사용자는 공격이 발생하는 사이트로 적극적으로 인증되어야 합니다. 사용자가 브라우저 세션을 종료하거나 로그오프한 후 공격 스크립트가 있는 전자 메일이 들어오면 공격이 실패합니다.
공격자는 또한 해당 사이트에서 어떤 스크립트를 허용할지 알기 위해 대상 사이트에서 많은 정찰을 수행해야 합니다. 공격자는 피해자의 화면을 볼 수 없으며 웹 사이트의 피드백은 공격자가 아닌 피해자에게 이동합니다. 공격자가 자신의 계정에 갑자기 돈이 나타나는 등 공격 작동의 증거를 볼 수 없다면, 그들은 그것이 성공했는지 즉시 알지 못합니다.
공격 시 사용자가 로그인하고 대상 사이트에서 어떤 스크립트를 허용할지 알 수 있는 어렵지만 불가능하지 않은 매개 변수 내에서 CSRF 공격을 실행하는 코드는 사이트 자체에 따라 달라지지만 매우 간단할 수 있습니다.
은행 이나 금융 응용 프로그램은 이와 같이 돈을 전송 하기 위해 GET 요청을 사용 하 여 가정 해 봅시다.
HTTP://BANK.COM/TRANSFERDO?ACCT=NANCYSMITH12&AMOUNT=100 HTTP/1.1받기
이 코드는 NancySmith12라는 사용자에게 $100를 전송하라는 요청을 보낼 것입니다.
그러나 대상 사용자가 동료로부터 오는 것으로 위장한 전자 메일을 받은 경우 CSRF 공격 스크립트가 클릭 작업에 포함될 수 있습니다.
<a href="http://bank.com/transfer.do?acct=ShadyLady15&amount=100000">Can you quickly read over this quarterly report?<a></a></a>
대상 사용자가 사회 공학 링크에 대해 떨어졌고 금융 응용 프로그램과 브라우저 세션이 여전히 열려있는 동안 클릭하면 브라우저는 ShadyLady15의 계정에 $ 100,000을 보내도록 응용 프로그램에 요청할 것입니다.
스크립트는 사용자가 볼 수 없는 보이지 않는 이미지에 숨겨져 있을 수도 있지만 브라우저가 다음과 같이 요청을 하도록 트리거할 수도 있습니다.
<img src="http://bank.com/transfer.do?acct=ShadyLady15&amount=100000" width="0" height="0" border="0">
결과는 동일합니다. ShadyLady15는 공격을 감지하지 않고도 $100,000를 받습니다.
CSRF가 왜 그렇게 위험합니까?
CSRF 공격은 랜섬웨어 공격이 라운드를 계속하는 것과 같은 이유로 오늘날 인기가 있습니다. 그것은 공격자와 피해자의 돈 사이에 거의 홉을 두고. 랜섬웨어 공격에서 시스템은 암호화되고 사용자는 해당 데이터를 해독하기 위해 돈을 갈취합니다. CSRF 공격을 사용하면 훨씬 적은 단계입니다. 그들이 일할 때, 피해자는 단순히 그것을 모르고 공격자에게 돈을 보냅니다.
피해자의 돈이나 회사의 재정에 대한 직접적인 공격 외에도 성공적인 CSRF 공격을 사용하여 유효한 사용자를 사용하여 네트워크를 손상시킬 수 있습니다. 공격자가 CSRF 악용을 사용하여 관리자의 암호를 변경할 수 있다고 가정해 보십시오. 그들은 즉시 데이터를 훔치기 시작, 네트워크 방어를 통해 구멍을 열거나 백도어를 설치하기 위해 그 암호를 사용할 수 있습니다.
그것은 많은 작업, 그리고 어느 정도 행운, 성공적인 CSRF 공격은 그들의 궁극적인 목표에 관계 없이 해커에 대 한 복권 을 승리 처럼 될 수 있습니다. 네트워크를 공격할 때, 거의 모든 종류의 공격은 SIEM 및 사이버 보안 직원의 레이더 를 낮추기 위해 몇 달 동안 낮고 느린 정찰이 필요합니다. 대조적으로, 하나의 CSRF 공격은 사이버 킬 체인을 따라 꽤 많은 단계를 건너 뛸 수 있습니다, 그들은 궁극적 인 목표에 매우 가까운 시작하게.
CSRF 공격을 중지하려면 어떻게 해야 합니까?
대부분의 취약점과 달리 CSRF 공격으로 인해 오류가 실제로 코드에 있는 것이 아니라 공격자가 브라우저에서 사용자가 원하지 않는 요청을 하도록 강제하여 작성한 악용과 함께 사용자가 원하지 않는 요청을 하고 알지 못할 수도 있습니다. 그러나 그들은 패배 할 수 있습니다.
가장 좋은 방법 중 하나는 개발자가 새 세션이 생성될 때마다 사용자의 ID에 CSRF 토큰을 추가하도록 하는 것입니다. 고유하고 임의의 문자 문자열로 구성되어야 하며 사용자에게 보이지 않아야 합니다. 그런 다음 CSRF 토큰 요청을 새 요청이 제출할 때마다 서버에서 검사하는 양식에 숨겨진 필드로 추가합니다. 사용자의 브라우저를 통해 요청을 제출하는 공격자는 숨겨진 토큰 필드에 대해 알지 못하므로 모든 요청이 실패합니다.
더 쉬운 방법, 그리고 매우 많은 프로그래밍을 필요로하지 않는 하나는 암호 변경 요청이나 송금 주문과 같은 민감한 아무것도에 Captcha 도전을 추가하는 것입니다. 요청자가 로봇이 아님을 확인하는 한 단추를 클릭하거나 이 경우 CSRF 스크립트를 클릭하도록 요청하는 것만큼 간단할 수 있습니다. 공격자는 도전에 대한 응답을 스크립트할 수 없으며, 송금 요청을 하는 것과 같은 작업을 먼저 하지 않고 갑자기 CAPTCHA 챌린지를 받는 사용자는 무언가가 있다는 것을 알게 될 것입니다. 또는 조직이 보안 이름으로 작업을 느리게 하려는 양에 따라 스마트폰과 같은 타사 토큰을 사용하여 일회성 암호 생성을 사용할 수 있습니다.
마지막으로, 그것은 철갑 하지 않지만, 마이크로소프트 가장자리 또는 구글 크롬 같은 많은 브라우저는 지금 장소에 같은 원산지 정책 제한 을 가지고 다른 사람 하지만 로컬 사용자. 사용자가 가장 업데이트된 브라우저 버전을 사용하여 사이트와 상호 작용하도록 강요하면 개발 팀에 전혀 세금을 부과하지 않고 CSRF 보안의 다른 계층을 구축하는 데 도움이 될 수 있습니다.
CSRF의 문 슬래밍
이러한 높은 잠재적 인 지불금으로 CSRF 공격은 완전히 죽지 않을 것입니다, 그러나 우리는 당신이 그들이 그렇게 지속이유를 배웠으면 좋겠다, 좋은 네트워크에서 그들을 차단하는 방법.
추가 읽기를 위해, 당신은 진화로이 취약점을 연대기 살아있는 문서 역할을 OWASP 크로스 사이트 요청 위조 방지 치트 시트를 살펴 볼 수 있습니다. 보안 지식을 강화하고 싶다면, 방문하여 이 위협과 더 많은 것을 물리치는 법을 배울 수 있습니다. Secure Code Warrior 블로그.
새로운 방어 지식을 테스트할 준비가 되었다고 생각하십니까? 무료 데모와 함께 놀아보시면 Secure Code Warrior 오늘 플랫폼.
웹 사이트 또는 응용 프로그램 운영자를 정면으로 겨냥한 공격과 달리 CSRF(많은 교차 사이트 요청 위조) 공격의 목표는 사용자로부터 직접 돈, 상품 또는 자격 증명을 훔치는 것입니다. 이는 사이트 운영자가 CSRF 코드 취약점을 무시해야 한다는 것을 의미하지는 않으며, 궁극적으로 도난당한 자금을 교체하는 경우 순전히 금전적 공격의 경우 안전하지 않은 코드가 있는 호스팅 사이트의 책임이 될 수 있습니다. 그리고 대상 사용자가 대신 자격 증명을 잃거나 무의식적으로 암호를 변경하는 경우, 범죄자는 특히 피해자가 권한있는 액세스 권한이있는 경우 도난 당한 신원을 사용하여 혼란을 과시 할 수 있습니다.
CSRF 공격은 매우 복잡하며 여러 계층에 의존하여 성공합니다. 즉, 많은 것들이 작동하기 위해 공격자에 찬성 휴식해야합니다. 그럼에도 불구하고, 그들은 매우 인기있는 공격 벡터 때문에 성공적인 공격은 해커에게 직접 돈을 전송할 수 있습니다, 또는 무죄와 사이트에 대해 이동할 수 있도록 그들을 설정. 모든 해커의 방법을 간다면, 대상 사용자는 심지어 그들이 공격에 피해자 떨어졌다는 것을 알 수 없습니다.
좋은 소식은 CSRF 공격이 작동하도록 너무 많은 이동해야하기 때문에, 자신의 트랙에서 그들을 중지 할 수있는 몇 가지 훌륭한 방어 기술이 있다는 것입니다.
이를 위해 CSRF 공격의 세 가지 주요 측면에 대해 설명합니다.
- 작동 방식
- 왜 그렇게 위험합니까?
- 어떻게 그들을 추위를 막기 위해 장소에 방어를 넣을 수 있습니다.
CSRF 공격은 어떻게 작동합니까?
CSRF 공격은 대상 사용자로부터 직접 돈, 상품 또는 자격 증명을 훔칠 수 있기 때문에 이를 만들어야 하는 많은 작업에도 불구하고 인기가 있습니다. 그리고 그들은 종종 다른 플랫폼에서 시도되기 때문에, 수년에 걸쳐 그들은 이름과 모니커의 다양한 집어 들었다. XSRF, 씨 서핑, 세션 라이딩, 교차 사이트 참조 위조 또는 적대적인 연결이라고 하는 CSRF 공격을 들을 수 있습니다. Microsoft는 대부분의 문서에서 원클릭 공격으로 참조하는 것을 좋아합니다. 그러나 그들은 모두 CSRF 공격이며, 그들을 물리 칠 수있는 기술은 동일합니다.
CSRF 공격은 사용자가 비즈니스를 수행하거나 작업을 수행하는 사이트에 로그인한 경우 발생할 수 있습니다. 핵심은 사용자가 로그인하여 웹 사이트 또는 응용 프로그램에 적극적으로 인증해야 한다는 것입니다. 공격은 일반적으로 보조 웹 사이트 또는 전자 메일에서 시작됩니다. 종종 공격자는 소셜 엔지니어링 기술을 사용하여 사용자가 공격 스크립트로 손상된 웹 사이트로 연결되는 전자 메일의 링크를 클릭하도록 속입니다.
손상된 웹 사이트에는 활성 브라우저가 명령을 실행하도록 지시하는 스크립트가 포함되어 있으며, 일반적으로 사용자의 암호를 변경하거나 공격자가 제어하는 계정으로 송금하는 것과 같은 악의적인 내용이 포함됩니다. 사용자가 인증되는 한 사이트는 권한이 부여된 사용자가 명령이 발급되고 있다고 생각할 것입니다. 왜 그렇지 않을까요? 사용자는 이미 자신을 인증하고 사이트에 액세스하는 데 필요한 암호를 제공했습니다. 그들은 심지어 제대로 사무실 터미널에 앉아, 지오 펜스 내에 있을 수 있습니다. 암호를 변경하거나 자금을 이체하려는 경우 요청을 한다고 믿지 않을 이유가 없습니다.
공격의 요소를 분해, 이 사람이 공격자에 대 한 철수 너무 어려운 이유가 분명 하다. 우선, 사용자는 공격이 발생하는 사이트로 적극적으로 인증되어야 합니다. 사용자가 브라우저 세션을 종료하거나 로그오프한 후 공격 스크립트가 있는 전자 메일이 들어오면 공격이 실패합니다.
공격자는 또한 해당 사이트에서 어떤 스크립트를 허용할지 알기 위해 대상 사이트에서 많은 정찰을 수행해야 합니다. 공격자는 피해자의 화면을 볼 수 없으며 웹 사이트의 피드백은 공격자가 아닌 피해자에게 이동합니다. 공격자가 자신의 계정에 갑자기 돈이 나타나는 등 공격 작동의 증거를 볼 수 없다면, 그들은 그것이 성공했는지 즉시 알지 못합니다.
공격 시 사용자가 로그인하고 대상 사이트에서 어떤 스크립트를 허용할지 알 수 있는 어렵지만 불가능하지 않은 매개 변수 내에서 CSRF 공격을 실행하는 코드는 사이트 자체에 따라 달라지지만 매우 간단할 수 있습니다.
은행 이나 금융 응용 프로그램은 이와 같이 돈을 전송 하기 위해 GET 요청을 사용 하 여 가정 해 봅시다.
HTTP://BANK.COM/TRANSFERDO?ACCT=NANCYSMITH12&AMOUNT=100 HTTP/1.1받기
이 코드는 NancySmith12라는 사용자에게 $100를 전송하라는 요청을 보낼 것입니다.
그러나 대상 사용자가 동료로부터 오는 것으로 위장한 전자 메일을 받은 경우 CSRF 공격 스크립트가 클릭 작업에 포함될 수 있습니다.
<a href="http://bank.com/transfer.do?acct=ShadyLady15&amount=100000">Can you quickly read over this quarterly report?<a></a></a>
대상 사용자가 사회 공학 링크에 대해 떨어졌고 금융 응용 프로그램과 브라우저 세션이 여전히 열려있는 동안 클릭하면 브라우저는 ShadyLady15의 계정에 $ 100,000을 보내도록 응용 프로그램에 요청할 것입니다.
스크립트는 사용자가 볼 수 없는 보이지 않는 이미지에 숨겨져 있을 수도 있지만 브라우저가 다음과 같이 요청을 하도록 트리거할 수도 있습니다.
<img src="http://bank.com/transfer.do?acct=ShadyLady15&amount=100000" width="0" height="0" border="0">
결과는 동일합니다. ShadyLady15는 공격을 감지하지 않고도 $100,000를 받습니다.
CSRF가 왜 그렇게 위험합니까?
CSRF 공격은 랜섬웨어 공격이 라운드를 계속하는 것과 같은 이유로 오늘날 인기가 있습니다. 그것은 공격자와 피해자의 돈 사이에 거의 홉을 두고. 랜섬웨어 공격에서 시스템은 암호화되고 사용자는 해당 데이터를 해독하기 위해 돈을 갈취합니다. CSRF 공격을 사용하면 훨씬 적은 단계입니다. 그들이 일할 때, 피해자는 단순히 그것을 모르고 공격자에게 돈을 보냅니다.
피해자의 돈이나 회사의 재정에 대한 직접적인 공격 외에도 성공적인 CSRF 공격을 사용하여 유효한 사용자를 사용하여 네트워크를 손상시킬 수 있습니다. 공격자가 CSRF 악용을 사용하여 관리자의 암호를 변경할 수 있다고 가정해 보십시오. 그들은 즉시 데이터를 훔치기 시작, 네트워크 방어를 통해 구멍을 열거나 백도어를 설치하기 위해 그 암호를 사용할 수 있습니다.
그것은 많은 작업, 그리고 어느 정도 행운, 성공적인 CSRF 공격은 그들의 궁극적인 목표에 관계 없이 해커에 대 한 복권 을 승리 처럼 될 수 있습니다. 네트워크를 공격할 때, 거의 모든 종류의 공격은 SIEM 및 사이버 보안 직원의 레이더 를 낮추기 위해 몇 달 동안 낮고 느린 정찰이 필요합니다. 대조적으로, 하나의 CSRF 공격은 사이버 킬 체인을 따라 꽤 많은 단계를 건너 뛸 수 있습니다, 그들은 궁극적 인 목표에 매우 가까운 시작하게.
CSRF 공격을 중지하려면 어떻게 해야 합니까?
대부분의 취약점과 달리 CSRF 공격으로 인해 오류가 실제로 코드에 있는 것이 아니라 공격자가 브라우저에서 사용자가 원하지 않는 요청을 하도록 강제하여 작성한 악용과 함께 사용자가 원하지 않는 요청을 하고 알지 못할 수도 있습니다. 그러나 그들은 패배 할 수 있습니다.
가장 좋은 방법 중 하나는 개발자가 새 세션이 생성될 때마다 사용자의 ID에 CSRF 토큰을 추가하도록 하는 것입니다. 고유하고 임의의 문자 문자열로 구성되어야 하며 사용자에게 보이지 않아야 합니다. 그런 다음 CSRF 토큰 요청을 새 요청이 제출할 때마다 서버에서 검사하는 양식에 숨겨진 필드로 추가합니다. 사용자의 브라우저를 통해 요청을 제출하는 공격자는 숨겨진 토큰 필드에 대해 알지 못하므로 모든 요청이 실패합니다.
더 쉬운 방법, 그리고 매우 많은 프로그래밍을 필요로하지 않는 하나는 암호 변경 요청이나 송금 주문과 같은 민감한 아무것도에 Captcha 도전을 추가하는 것입니다. 요청자가 로봇이 아님을 확인하는 한 단추를 클릭하거나 이 경우 CSRF 스크립트를 클릭하도록 요청하는 것만큼 간단할 수 있습니다. 공격자는 도전에 대한 응답을 스크립트할 수 없으며, 송금 요청을 하는 것과 같은 작업을 먼저 하지 않고 갑자기 CAPTCHA 챌린지를 받는 사용자는 무언가가 있다는 것을 알게 될 것입니다. 또는 조직이 보안 이름으로 작업을 느리게 하려는 양에 따라 스마트폰과 같은 타사 토큰을 사용하여 일회성 암호 생성을 사용할 수 있습니다.
마지막으로, 그것은 철갑 하지 않지만, 마이크로소프트 가장자리 또는 구글 크롬 같은 많은 브라우저는 지금 장소에 같은 원산지 정책 제한 을 가지고 다른 사람 하지만 로컬 사용자. 사용자가 가장 업데이트된 브라우저 버전을 사용하여 사이트와 상호 작용하도록 강요하면 개발 팀에 전혀 세금을 부과하지 않고 CSRF 보안의 다른 계층을 구축하는 데 도움이 될 수 있습니다.
CSRF의 문 슬래밍
이러한 높은 잠재적 인 지불금으로 CSRF 공격은 완전히 죽지 않을 것입니다, 그러나 우리는 당신이 그들이 그렇게 지속이유를 배웠으면 좋겠다, 좋은 네트워크에서 그들을 차단하는 방법.
추가 읽기를 위해, 당신은 진화로이 취약점을 연대기 살아있는 문서 역할을 OWASP 크로스 사이트 요청 위조 방지 치트 시트를 살펴 볼 수 있습니다. 보안 지식을 강화하고 싶다면, 방문하여 이 위협과 더 많은 것을 물리치는 법을 배울 수 있습니다. Secure Code Warrior 블로그.