정보 은닉/Steganography

강혜인·2024년 8월 5일

Security

목록 보기
6/12

Information hiding(정보 은닉)

외부에서 알 필요 없는 정보를 직접 접근 및 제어할 수 없도록 하는 것

접근 제어자(Access Modifier)를 통해 접근 범위를 설정할 수 있는 기능

코드 내부 데이터와 메서드를 숨기고 공개 인터페이스를 통해서만 접근이 가능하도록 하는 코드 보안 기술

정보 은닉 목적

  • 객체에 포함된 정보의 손상과 오용 방지
  • 데이터 변경시에도 다른 객체에 영향없이 독립성 유지
  • 객체를 부품화하여 이식성과 호환성 확보

정보 은닉의 장점

  1. 필요 이상의 메소드나 필드가 외부에 노출되지 않기 때문에 보안이 강화됨
  2. 외부에서 내부 로직에 직접 접근할 수 없기 때문에 데이터의 신뢰성 증가
  3. 외부(→ 다른 개발자)에서 해당 기능을 사용하려면 복잡한 내부 로직을 알 필요 없이 해당 기능을 사용할 수 있는 방법만을 알면되기 때문에 개발이 편리해짐

정보 은닉 기법(Java)

  1. 객체의 구체적인 타입 은닉(= 업캐스팅)
  2. 객체의 필드 및 메소드 은닉(= 캡슐화)
  3. 구현 은닉(인터페이스 & 추상 클래스)

정보 은닉을 위한 접근 제한자

접근 제한자접근 권한특징
public모든 클래스, 패키지모든 권한 부여
private해당 클래스 내최소 권한 부여
protected동일 패키지 내상속시 타패키지 사용
package동일 패키지 내default 접근 제안자

정보 은닉 코드(예시)

public class Car{
private int speed;    // 클래스 내 사용가능
public void SetSpeed(int speed){  // speed 변수값 입력
	this.speed = speed;
}
public int getSpeed(){  // speed 변수값 출력
	return speed;
}
}
// speed 변수는 클래스 내에서만 사용되고, Setspeed와 getSpeed를 통해서만 변수 접근

정보 은닉과 캡슐화 비교

항목정보 은닉캡슐화
목적코드 보호데이터/함수 모듈화
특징I/F를 통해서만 접근속성/메서드 기능 집합
기법public, private 등class
장점무결성, 보안성 확보재사용성, 유지보수 용이

Digital Water Mark(정보 은닉)

디지털 오디오, 비디오, 이미지 신호, 문서에 저작권 식별자를 투명하게 첨가하는 것

→ 불법 복제를 막는데 사용

→ 스테가노그래피(steganography)의 한 형태

워터 마크의 여러가지 형태

유형 1)

  • Invisible : mark가 존재하는지 불분명
  • visible : TOP SECERET 같은 도장

유형2)

  • Robust(강성) : 공격을 받더라도 읽기 가능
  • Fragile(연성) : 데이터가 손상되면 파괴

<예시>

  • 디지털 음악에 robust invisible mark 첨가
    • 불법 복제 음악이 인터넷에 나타나면 근원지 추적 가능
  • 오디오 파일에 fragile invisible mark 첨가
    • 워터마크를 읽을 수 없다면 오디오가 변경되었음을 알 수 있음(무결성)
  • 지폐
  • 사진
    • 투명한(invisible) 워터 마크를 사진에 첨가, 손상을 입는다면 손상되지 않은 부분의 워터마크를 읽어 전체 사진 재생 가능

Steganography - Hidden Writing

보이지 않는 메시지를 쓰는 기술

→ 상대방은 메시지의 존재를 모름

→ 정보가 전달되고 있다는 사실을 숨김

** 암호와의 차이 : 암호는 메시지의 존재는 알지만 내용을 알지 못하는 것

<예시>

  1. 문자 마킹(character marking)

    원문의 문자에 연필로 덧써서 빛을 적당한 각도로 비춰야 보임

  2. 보이지 않는 잉크(invisible ink)

    종이에 열이나 화학처리를 해야만 보이는 잉크 사용

  3. 핀 구멍(Pin punctures)

    빛을 비춰야만 보이는 작은 구멍을 원문에 넣는 방법

  4. 타자 수정 리본(Typewriter correction ribbon)

    흑색 리본으로 타자된 줄 사이에 강한 빛에서만 보이는 수정 리본을 이용하여 타자하는 방법

    → RGB 하위 비트에 정보 삽입 가능

    → 중요하지 않은 비트에 정보를 숨기기 쉽고, 제거나 파괴도 쉬움

    → 견고하려면 중요한 비트에 정보를 저장(= robust steganography → 까다로움)해야하는데, 데이터를 손상해서는 안됨

  5. 네트워크 or 프로토콜 스테가노그래피

    TCP, UDP, ICMP, IP 등과 같은 네트워크 프로토콜을 커버 오브젝트로 사용해 데이터를 숨기는 방식

    → OSI 계층 네트워크 모델에서 발생하는 비밀 채널의 경우 사용 가능

스테가노그래피 장점

  1. 비밀통신에 대한 사실이 발견되면 안되는 사용자들에 의해 이용

    → 상대방이 비밀이라는 것을 알면 안됨

  2. 암호화의 경우 문제점

    → 암호화 한다는 사실이 드러나면 메시지가 중요하거나 비밀임을 암시

    → 즉, 송수신자간에 감출 사실이 있다고 생각하게 함

  3. 통신을 잘 숨겨서 주목을 받지 않음

    → 암호화가 불법인 국가에서는 쉽게 해독할 수 있는 암호화된 메시지를 보내면 의심 받을 위험이 커짐

  4. 메시지 내의 정보와 발신자/수신자간의 연결을 보호하는 암호화의 한 형태

  5. 스테가노그래피의 보안, 용량, 견고성은 텍스트 파일을 통한 정보 전송을 은밀하게 하고 비밀 커뮤니케이션 채널 개발에 유용함

  6. 권한이 없는 사람이 데이터에 액세스 할 염려 없이 민감한 정보가 포함된 파일의 암호화된 사본을 서버에 저장 가능

  7. 정부 & 법 집행 기관은 스테가노그래피 회사의 도움을 받아 비밀리에 통신 가능

스테가노그래피 단점

  1. 상대적으로 적은 정보 비트를 은닉하는데 많은 오버헤드 요구

  2. 방법이 노출되면 재사용이 불가(키를 적용하는 기법으로 해결 가능)

    → 메시지를 먼저 암호화 한 후에 Steganography를 이용해 은닉

윤리적 해커 & 범죄 해커의 Steganography 사용

  1. 윤리적 해커(정보 기관, 군대, 교육&비즈니스 기관 등..)

    → steganography를 사용해 기밀 메시지와 정보를 눈에 띄지않게 삽입

  2. 범죄 해커

    → steganography를 이용해 데이터 파일을 손상시키거나, 멀웨어를 무해한 문서에 숨김

    ex) BASH & PowerShell 스크립트를 이용해 자동화된 공격을 시작하여 Word나 Excel문서에 스크립트 삽입이 가능

    → 사용자가 이러한 문서를 열면 숨겨진 비밀 스크립트가 활성화되고 혼란이 이어짐

    → 랜섬웨어가 선호하는 전달 방법

Steganography와 Cryptography(암호화) 비교

요소SteganographyCrpytography
정의통신이 이루어지고있다는 사실을 숨기는 방법정보를 이해하기 어렵게 만드는 방법
목적통신 보안 유지데이터 보호 사용
Key선택사항이나, 키를 활용하면 보안성이 높아짐필수 전제 조건
Data VisibilityXO
Failure숨겨진 정보가 해독되면 누구나 데이터 사용이 가능해짐암호 해독키에 액세스할 수 있는 경우 암호 텍스트에서 원본 메시지를 복구 가능
Data Structure데이터의 일반 구조 수정 X전체 데이터 구조 수정

Steganography와 난독화의 차이

난독화는 무언가를 불분명하거나 이해할 수 없거나 모호하게 만드는 것

→ 사이버 보안 전문가는 프로그래밍 코드와 같은 민감한 정보를 보호하기 위해 난독화를 사용함

→ 해커가 코드를 읽기 어렵게 만들어 데이터 악용을 방지

Steganography 기법

  1. 보안 커버 선택

    → 멀웨어를 운반할 올바른 블록이미지를 찾는것이 포함됨

    → 해커는 선택한 이미지 매체를 멀웨어 블록과 비교

    → 일치하면 이를 캐리어 이미지에 끼워넣어 멀웨어에 감염된 동일한 이미지를 생성

    → 이미지는 위협 탐지 방법을 빠르게 통과

  2. 최하위 중요 비트

    → 픽셀

    → 그레이스케일 이미지 픽셀 & 비트 중 가장 마지막 비트(8번째 비트) == 최하위 비트

    → 해커는 이 비트를 사용해 악성코드를 삽입함 ⇒ 전체 픽셀값이 하나만 줄어들기 때문에 사람의 눈으로 감지 할 수 없음

  3. 팔레트 기반 기법

    → 2번과 같이 이미지에 의존함

    → GIF와 같은 팔레트 기반 이미지에 메세지를 삽입 ⇒ 사이버 보안 위협 헌터나 윤리적 해커가 공격을 탐지하기 어려움

Steganography Tools

  1. Steghide(스테가이드)

    → Steganography를 사용해 미디어나 텍스트와 같은 다른 파일의 정보를 숨기는 툴

  2. Stegosuite(스테고스위트)

    → Java 기반의 Steganography도구로, 은밀한 목적으로 사진의 데이터를 간단히 난독화 가능

  3. OpenPuff

    → 이미지, 동영상, 플레시 애니메이션과 같은 다른 미디어 유형의 데이터를 숨길 수 있는 고품질 툴

  4. Xiao Steganography

    → BMP 이미지 혹은 WAV 파일에 정보를 숨길 때 사용

  5. SSuite Picsel

    → 휴대용 프로그램, 이미지 파일 내에서 텍스트를 숨기는 옵션이지만 다른 프로그램과는 다른 방법을 사용

Steganography 공격 전달

→ 일반적으로 PowerShell, BASH 스크립트를 사용해 자동화

→ 피해자가 스테가이드를 설치하도록 유도하지 않아도 공격자는 시스템에 액세스 가능

→ 침입자는 스테가노그래피 프로그램을 사용해 Excel&PowerShell 같은 널리 사용되는 Windows 도구를 활용함 ⇒ 피해자가 문서를 읽으면 해커가 시스템을 공격하기 더 쉬워짐

+) 인공지능과 Steganography

AI가 자신의 활동을 감추기 위해 사용하는 방법 중 하나로, AI 구현은 steganography 기법까지 조정해 탐지를 더 어렵게 만듦

Steganography 탐지

→ 표준 공격 및 침투 테스트 전략(TTP)의 지표를 찾음

→ Steganography 소프트웨어가 사용하는 일반적인 시그니처는 이미 밝혀짐

ex) 안티바이러스 소프트웨어는 Steganography 프로그램의 일반적인 동작을 쉽게 발견할 수 있음

0개의 댓글