코더는 보안을 정복 : 공유 및 학습 시리즈 - 비즈니스 논리 문제

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

코더는 보안을 정복 : 공유 및 학습 시리즈 - 비즈니스 논리 문제

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

이 공유 및 학습 시리즈에서 다루고 있는 다른 대부분의 취약점과 달리 비즈니스 논리 문제는 코딩 오류와 직접 적으로 연관되지 않습니다. 코딩 문제가 문제의 일부일 수 있지만 비즈니스 논리 오류는 앱이 처음 생성될 때 디자인 결함이나 잘못된 논리적 가정의 결과입니다.

사용자가 응용 프로그램을 사용할 때 예기치 않은 작업을 수행하면 비즈니스 논리 문제가 발생할 수 있습니다. 예기치 않게 주문을 취소하거나, 쿠폰 코드를 너무 여러 번 적용하거나, 예상 단계를 건너뛰고 응용 프로그램이 처리하는 방법을 모르는 작업을 수행함으로써 거의 모든 것이 될 수 있습니다. 비즈니스 논리 결함을 악용하는 것은 심지어 어떤 교육을 필요로하지 않습니다, 상자 밖에서 생각하는 호기심 마음을 가진 단지 악의적 인 사용자.

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

  • 공격자가 비즈니스 논리의 결함을 악용하는 방법
  • 비즈니스 논리 결함이 있는 응용 프로그램이 위험한 이유
  • 비즈니스 논리 오류를 방지할 수 있는 기술입니다.

공격자는 비즈니스 논리 문제를 어떻게 악용합니까?

대부분의 악용과 달리 이 취약점을 일으킬 수 있는 특정 코드 문자열을 가리킬 수 없습니다. 대신, 그것은 예상 되지 않은 작업을 복용 하는 사용자에 게 온다, 어떤 프로그램은 처리 하는 방법을 모른다. 예를 들어 은행 응용 프로그램을 통해 사용자가 다른 계좌로 송금할 수 있다고 가정해 보겠습니다. 그러나 악의적인 사용자가 돈을 보내는 대신 다른 계정으로 음수를 보내려고 합니다. 은행 응용 프로그램은 어떻게 반응합니까? 충돌할 까요? 전송을 거부할 것인가? 아니면 실제로 그 음수의 균형을 위해 전송을 시작한 사용자에게 돈을 다시 보낼 수 있습니까?

전자 상거래 사이트는 특히 독특하지는 않지만 많은 사용자가 상호 작용하도록 설계되어 많은 구성 요소가 있기 때문에 비즈니스 논리 결함에 취약합니다. 예기치 않게 주문을 취소, 여러 번 단일 쿠폰을 적용하거나 심지어 자신의 장바구니를 과부하는 예상되지 않은 조건으로 응용 프로그램을 제시 할 수 있습니다. 알 수없는 상황에 직면 했을 때 프로그램이 어떻게 반응할지 알 수있는 방법은 없습니다. 최상의 시나리오는 오류 메시지를 생성할 수 있지만 앱이 무료로 상품을 제공하는 것과 같은 더 나쁜 조치를 취하지 않는다는 보장은 없습니다.

비즈니스 로직 문제가 위험한 이유는 무엇입니까?

비즈니스 논리 문제는 프로그래밍이나 해커 교육이 없는 사람조차도 누구나 악용할 수 있기 때문에 매우 위험할 수 있습니다. 실제로 는 실험과 시간만 필요하며, 주위를 클릭하고 응용 프로그램이 응답하도록 설계된 방식의 결함을 찾으려고 시도합니다. 악의적인 사용자가 사이트의 비즈니스 논리에 결함을 발견하면 가능한 한 악용할 수 있습니다.

가장 큰 위험은 일반적으로 금융, 사용자가 구입 하는 데 20 그들을 위해 지불 하지 않고 큰 화면 텔레비전, 또는 그런 것. 그러나 비즈니스 논리 결함으로 인해 다른 문제가 발생할 수도 있습니다. 예를 들어 사이트를 보호하는 암호 함수가 사용자가 지속적으로 취소할 경우 어떻게 해야 할지 모르는 경우 로그인 프로세스를 모두 우회할 수 있습니다.

비즈니스 논리 문제가 발생할 수 있는 피해가 얼마나 발생할 지 예측할 수 있는 방법은 없습니다. 종종 문제의 첫 번째 표시는 사용자가 그들을 악용 한 후 오래 온다.

비즈니스 논리 문제 해결

안타깝게도 취약점 스캐너와 같은 일반적인 도구를 사용하면 비즈니스 논리 문제에 대한 테스트를 쉽게 자동화할 수 없으므로 비즈니스 논리 문제를 식별하거나 해결하는 데 도움이 되지 않습니다. 이를 방지하는 가장 좋은 방법은 응용 프로그램이 개발되는 동안 부정적인 테스트 사례에 대한 좋은 계획, 오류 처리 및 테스트를 구현하는 것입니다. 먼저 응용 프로그램이 수행하도록 설계된 모든 가능하고 원하는 작업을 포함하는 명확하게 정의된 비즈니스 규칙 집합이 필요합니다.

비즈니스 규칙 계획으로 무장한 비즈니스 논리 결함이 들어오는 것을 방지하는 가장 좋은 방법 중 하나는 데이터 및 트랜잭션이 응용 프로그램 내에서 흐르는 가능한 모든 방법을 보여주는 흐름 차트를 만드는 것입니다. 여기에는 사용자가 선택하거나 입력 데이터를 만들 수 있는 모든 인스턴스에 대한 모델링 동작이 포함됩니다. 흐름 다이어그램의 가능한 작업이 비즈니스 규칙 계획의 함수와 일치하는지 지속적으로 확인합니다.

마지막으로 위협 모델링을 사용하여 설계, 구현 및 테스트 단계에서 비즈니스 논리의 결함을 식별합니다. 페일세이프로 특별히 예상되지 않는 상황이 발생하면 프로그램이 취해야 할 작업을 만듭니다. 이는 작업을 거부하고 관리자에게 발생한 문제에 대해 경고하는 것만큼 간단할 수 있습니다.

비즈니스 논리 문제에 대한 자세한 정보

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

지금 비즈니스 논리 취약점을 찾고 파괴할 준비가 되셨습니까? 플랫폼으로 가서 기술을 테스트하십시오: [여기에서 시작]

리소스 보기
리소스 보기

저자

야프 카란 싱

더 알고 싶으신가요?

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

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

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

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

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

리소스 허브

코더는 보안을 정복 : 공유 및 학습 시리즈 - 비즈니스 논리 문제

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

이 공유 및 학습 시리즈에서 다루고 있는 다른 대부분의 취약점과 달리 비즈니스 논리 문제는 코딩 오류와 직접 적으로 연관되지 않습니다. 코딩 문제가 문제의 일부일 수 있지만 비즈니스 논리 오류는 앱이 처음 생성될 때 디자인 결함이나 잘못된 논리적 가정의 결과입니다.

사용자가 응용 프로그램을 사용할 때 예기치 않은 작업을 수행하면 비즈니스 논리 문제가 발생할 수 있습니다. 예기치 않게 주문을 취소하거나, 쿠폰 코드를 너무 여러 번 적용하거나, 예상 단계를 건너뛰고 응용 프로그램이 처리하는 방법을 모르는 작업을 수행함으로써 거의 모든 것이 될 수 있습니다. 비즈니스 논리 결함을 악용하는 것은 심지어 어떤 교육을 필요로하지 않습니다, 상자 밖에서 생각하는 호기심 마음을 가진 단지 악의적 인 사용자.

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

  • 공격자가 비즈니스 논리의 결함을 악용하는 방법
  • 비즈니스 논리 결함이 있는 응용 프로그램이 위험한 이유
  • 비즈니스 논리 오류를 방지할 수 있는 기술입니다.

공격자는 비즈니스 논리 문제를 어떻게 악용합니까?

대부분의 악용과 달리 이 취약점을 일으킬 수 있는 특정 코드 문자열을 가리킬 수 없습니다. 대신, 그것은 예상 되지 않은 작업을 복용 하는 사용자에 게 온다, 어떤 프로그램은 처리 하는 방법을 모른다. 예를 들어 은행 응용 프로그램을 통해 사용자가 다른 계좌로 송금할 수 있다고 가정해 보겠습니다. 그러나 악의적인 사용자가 돈을 보내는 대신 다른 계정으로 음수를 보내려고 합니다. 은행 응용 프로그램은 어떻게 반응합니까? 충돌할 까요? 전송을 거부할 것인가? 아니면 실제로 그 음수의 균형을 위해 전송을 시작한 사용자에게 돈을 다시 보낼 수 있습니까?

전자 상거래 사이트는 특히 독특하지는 않지만 많은 사용자가 상호 작용하도록 설계되어 많은 구성 요소가 있기 때문에 비즈니스 논리 결함에 취약합니다. 예기치 않게 주문을 취소, 여러 번 단일 쿠폰을 적용하거나 심지어 자신의 장바구니를 과부하는 예상되지 않은 조건으로 응용 프로그램을 제시 할 수 있습니다. 알 수없는 상황에 직면 했을 때 프로그램이 어떻게 반응할지 알 수있는 방법은 없습니다. 최상의 시나리오는 오류 메시지를 생성할 수 있지만 앱이 무료로 상품을 제공하는 것과 같은 더 나쁜 조치를 취하지 않는다는 보장은 없습니다.

비즈니스 로직 문제가 위험한 이유는 무엇입니까?

비즈니스 논리 문제는 프로그래밍이나 해커 교육이 없는 사람조차도 누구나 악용할 수 있기 때문에 매우 위험할 수 있습니다. 실제로 는 실험과 시간만 필요하며, 주위를 클릭하고 응용 프로그램이 응답하도록 설계된 방식의 결함을 찾으려고 시도합니다. 악의적인 사용자가 사이트의 비즈니스 논리에 결함을 발견하면 가능한 한 악용할 수 있습니다.

가장 큰 위험은 일반적으로 금융, 사용자가 구입 하는 데 20 그들을 위해 지불 하지 않고 큰 화면 텔레비전, 또는 그런 것. 그러나 비즈니스 논리 결함으로 인해 다른 문제가 발생할 수도 있습니다. 예를 들어 사이트를 보호하는 암호 함수가 사용자가 지속적으로 취소할 경우 어떻게 해야 할지 모르는 경우 로그인 프로세스를 모두 우회할 수 있습니다.

비즈니스 논리 문제가 발생할 수 있는 피해가 얼마나 발생할 지 예측할 수 있는 방법은 없습니다. 종종 문제의 첫 번째 표시는 사용자가 그들을 악용 한 후 오래 온다.

비즈니스 논리 문제 해결

안타깝게도 취약점 스캐너와 같은 일반적인 도구를 사용하면 비즈니스 논리 문제에 대한 테스트를 쉽게 자동화할 수 없으므로 비즈니스 논리 문제를 식별하거나 해결하는 데 도움이 되지 않습니다. 이를 방지하는 가장 좋은 방법은 응용 프로그램이 개발되는 동안 부정적인 테스트 사례에 대한 좋은 계획, 오류 처리 및 테스트를 구현하는 것입니다. 먼저 응용 프로그램이 수행하도록 설계된 모든 가능하고 원하는 작업을 포함하는 명확하게 정의된 비즈니스 규칙 집합이 필요합니다.

비즈니스 규칙 계획으로 무장한 비즈니스 논리 결함이 들어오는 것을 방지하는 가장 좋은 방법 중 하나는 데이터 및 트랜잭션이 응용 프로그램 내에서 흐르는 가능한 모든 방법을 보여주는 흐름 차트를 만드는 것입니다. 여기에는 사용자가 선택하거나 입력 데이터를 만들 수 있는 모든 인스턴스에 대한 모델링 동작이 포함됩니다. 흐름 다이어그램의 가능한 작업이 비즈니스 규칙 계획의 함수와 일치하는지 지속적으로 확인합니다.

마지막으로 위협 모델링을 사용하여 설계, 구현 및 테스트 단계에서 비즈니스 논리의 결함을 식별합니다. 페일세이프로 특별히 예상되지 않는 상황이 발생하면 프로그램이 취해야 할 작업을 만듭니다. 이는 작업을 거부하고 관리자에게 발생한 문제에 대해 경고하는 것만큼 간단할 수 있습니다.

비즈니스 논리 문제에 대한 자세한 정보

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

지금 비즈니스 논리 취약점을 찾고 파괴할 준비가 되셨습니까? 플랫폼으로 가서 기술을 테스트하십시오: [여기에서 시작]

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

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