ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 보안.
    자격증/정보처리기사 2024. 12. 19. 16:56
    1.ROP

     

    Return-Oriented Programming

     

    리턴 지향 프로그래밍 공격기법.

    이 공격 기법에서 핵심적으로 사용되는 **리턴 명령어(ret instruction)**와 관련이 있습니다. ROP 공격은 기존의 프로그램 코드 내에서 끝에 리턴 명령어(즉, 함수가 끝날 때 호출되는 명령어)를 포함하는 가젯(code gadget)을 연결하여 공격을 수행하기 때문에, 그 이름이 이렇게 지어진 것

     

    return ~

     

    버퍼 오버플로우 공격은 악성 코드를 삽입하여 이를 실행하는 방식
    ROP는 이미 **프로그램 내에 존재하는 코드 조각(가젯)**들을 활용하여 공격을 수행합니다.

    리턴 지향 프로그래밍(ROP)의 이름의 유래

    1. 리턴 명령어(ret instruction):
      • ROP 공격에서 리턴 명령어는 프로그램 코드 내에서 중요한 역할을 합니다. ROP 공격자는 리턴 명령어로 끝나는 코드 조각들을 찾아서 연결하여 악성 코드를 실행합니다.
      • 리턴(ret) 명령어는 함수 호출이 끝났을 때 제어를 호출한 지점으로 돌려주는 명령어입니다. ROP에서는 이 리턴 명령어가 중요한데, 악성 코드가 삽입되지 않고 기존의 프로그램 코드에서 리턴 명령어가 끝나는 부분을 재사용하는 방식이기 때문입니다.
    2. 기존 코드 조각 사용:
      • 전통적인 버퍼 오버플로우 공격은 악성 코드를 삽입하여 이를 실행하는 방식이지만, ROP는 이미 **프로그램 내에 존재하는 코드 조각(가젯)**들을 활용하여 공격을 수행합니다.
      • 코드 조각은 보통 짧은 코드로, 끝에 리턴 명령어가 포함되어 있습니다. 이를 연결하여 프로그램 흐름을 제어하고, 악성 코드를 실행시키는 방식이므로 "리턴 지향"이라고 불립니다.
    3. "지향(Oriented)"의 의미:
      • "지향"이라는 단어는 어떤 방향으로 나아가거나 특정 방식으로 행동한다는 의미입니다. ROP에서 "지향"은 공격자가 리턴 명령어를 중심으로 기존 코드 조각들을 이어붙여서 특정 작업을 수행하도록 공격 방향을 설정한다는 의미입니다.

    핵심 아이디어

    ROP 공격은 기존 프로그램의 코드 조각을 활용하여 악성 코드를 실행하는 방법입니다. 이때 **리턴 명령어(ret)**가 중요한 역할을 하므로, 공격의 핵심이 리턴 명령어를 기반으로 한 코드 조각 연결에 있다는 점에서 "리턴 지향"이라는 이름이 붙여졌습니다.

    따라서 ROP 공격 기법의 이름은 이 공격 방식이 리턴 명령어를 활용하여 기존 코드에서 연결하는 방식에 중점을 두기 때문에 붙여진 것입니다.

     

    2. 파밍


    Pharming 은 farm에서 수확 harvest하는 것을 비유. 배틀그라운드에서 아이템 습득하는 행위도 파밍이라 함.

     정상적인 웹사이트에 접속하지만 이미 DNS 설정을 변조해 악성 웹사이트로 유도해 사용자의 개인정보를 얻는 수법.

    피싱은 낚시질로 악성 링크를 클릭하도록 속임에 있어 파밍보다는 알아차리기 쉽다.

     

    공격 시나리오

    1. 사용자가 www.mybank.com이라는 URL을 입력합니다.
    2. DNS 설정이 공격에 의해 변조되어 가짜 IP 주소로 연결됩니다.
    3. 사용자는 겉보기엔 정상적인 웹사이트처럼 보이는 가짜 페이지에 접속합니다.
    4. 해당 페이지에서 ID와 비밀번호를 입력하면 정보가 공격자에게 전달됩니다.

    공격 시나리오

    1. 공격자 준비 단계:
      • 공격자는 사용자를 속이기 위해 가짜 웹사이트나 이메일을 만듭니다.
      • 이 가짜 웹사이트는 유명 기업(예: 은행, 쇼핑몰, 이메일 서비스 등)의 웹사이트와 유사하게 디자인됩니다.
    2. 유인 단계:
      • 공격자는 이메일, SMS, 메신저 등을 통해 가짜 웹사이트로 유도하는 메시지를 발송합니다.
      • 메시지에는 "긴급", "계정 잠금", "보안 문제 해결"과 같은 심리적 압박을 가하는 내용이 포함됩니다.
        • 예: "귀하의 계정이 해킹되었습니다. 지금 즉시 로그인하세요."
    3. 사용자 행동 유도:
      • 사용자가 메시지 속 링크를 클릭하면, 가짜 웹사이트로 연결됩니다.
      • 가짜 웹사이트에서 사용자가 ID, 비밀번호, 카드 정보 등을 입력하게 유도합니다.
    4. 정보 탈취:
      • 사용자가 입력한 정보가 공격자에게 전달됩니다.
      • 공격자는 해당 정보를 이용해 실제 계정에 접근하거나 금전적 이익을 취합니다.

    피싱 vs 파밍의 주요 차이

    구분피싱파밍

    출처자의 행동 사용자를 속이기 위해 악성 링크를 클릭하도록 유도함 사용자가 스스로 입력한 정상 URL을 가짜 사이트로 자동 연결되도록 설정
    공격 방법 이메일, 문자, 메신저 등을 통한 직접적인 유인 DNS 변조, 호스트 파일 변조 등 시스템 설정 조작을 통해 자동적으로 실행
    사용자 개입 여부 사용자가 악성 링크를 클릭해야 공격 성공 사용자가 정상 URL을 입력하더라도 공격 성공
    기술 수준 상대적으로 단순함 더 높은 기술이 요구됨
    대상 특정 개인이나 소규모 그룹을 대상으로 하는 경우가 많음 특정 웹사이트나 다수의 사용자를 대상으로 대규모로 진행

     

     

    3. 피싱

     

    **피싱(Phishing)**이라는 이름은 **'낚시(Fishing)'**에서 유래되었습니다. 여기서 "ph"는 해커들이 주로 사용하는 은어(스펠링 변형)에서 비롯된 것으로, 전화(phreaking) 같은 단어에서 비슷한 변형이 나타난 사례가 있습니다.

     

    피싱의 이름이 가진 의미

    • **'Fishing'**은 낚시를 뜻하며, 물고기를 잡기 위해 미끼를 던지고 기다리는 과정에서 비롯된 비유입니다.
    • 공격자는 **미끼(가짜 이메일, 가짜 웹사이트, 메시지 등)**를 던져 사용자(피해자)가 이를 물도록 유도하는 방식과 비슷합니다.
    • "ph"를 사용한 Phishing은 해커들이 초기 해킹 문화에서 "f"를 "ph"로 바꿔 사용하는 관행을 반영한 것입니다.

    왜 '낚시'인가?

    1. 미끼 사용:
      • 피싱 공격은 가짜 정보를 담은 이메일, 웹사이트, 또는 메시지 등을 미끼로 사용합니다.
      • 예를 들어, "귀하의 계정에 문제가 발생했습니다. 지금 즉시 로그인하세요." 같은 메시지로 사용자를 속입니다.
    2. 목표는 '정보':
      • 물고기가 미끼를 물 듯, 사용자가 가짜 웹사이트에 개인정보(예: 계정 비밀번호, 카드 정보)를 입력하면 공격자가 이를 탈취합니다.
    3. 다수의 피해자 대상:
      • 피싱은 대규모로 미끼를 뿌리는 경우가 많습니다. 이를 통해 다수의 사용자 중 일부가 미끼를 물도록 유도합니다.

    피싱의 역사는?

    • 피싱은 1990년대 초반, 인터넷 사용이 증가하면서 등장했습니다.
    • 초기에는 이메일을 통해 은행, 온라인 쇼핑몰, 또는 유명 웹사이트로 위장하여 사용자의 정보를 탈취하려는 방식으로 시작되었습니다.
    • 지금도 피싱은 가장 일반적이고 효과적인 사회 공학적 공격(social engineering) 기법 중 하나로 남아 있습니다.
    728x90

    '자격증 > 정보처리기사' 카테고리의 다른 글

    Tamper Proofing  (0) 2023.07.26

    댓글

Designed by Tistory.