외부에서 알 필요 없는 정보를 직접 접근 및 제어할 수 없도록 하는 것
접근 제어자(Access Modifier)를 통해 접근 범위를 설정할 수 있는 기능
코드 내부 데이터와 메서드를 숨기고 공개 인터페이스를 통해서만 접근이 가능하도록 하는 코드 보안 기술
| 접근 제한자 | 접근 권한 | 특징 |
|---|---|---|
| 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 |
| 장점 | 무결성, 보안성 확보 | 재사용성, 유지보수 용이 |
디지털 오디오, 비디오, 이미지 신호, 문서에 저작권 식별자를 투명하게 첨가하는 것
→ 불법 복제를 막는데 사용
→ 스테가노그래피(steganography)의 한 형태
유형 1)
유형2)
<예시>
보이지 않는 메시지를 쓰는 기술
→ 상대방은 메시지의 존재를 모름
→ 정보가 전달되고 있다는 사실을 숨김
** 암호와의 차이 : 암호는 메시지의 존재는 알지만 내용을 알지 못하는 것
<예시>
문자 마킹(character marking)
원문의 문자에 연필로 덧써서 빛을 적당한 각도로 비춰야 보임
보이지 않는 잉크(invisible ink)
종이에 열이나 화학처리를 해야만 보이는 잉크 사용
핀 구멍(Pin punctures)
빛을 비춰야만 보이는 작은 구멍을 원문에 넣는 방법
타자 수정 리본(Typewriter correction ribbon)
흑색 리본으로 타자된 줄 사이에 강한 빛에서만 보이는 수정 리본을 이용하여 타자하는 방법
→ RGB 하위 비트에 정보 삽입 가능
→ 중요하지 않은 비트에 정보를 숨기기 쉽고, 제거나 파괴도 쉬움
→ 견고하려면 중요한 비트에 정보를 저장(= robust steganography → 까다로움)해야하는데, 데이터를 손상해서는 안됨
네트워크 or 프로토콜 스테가노그래피
TCP, UDP, ICMP, IP 등과 같은 네트워크 프로토콜을 커버 오브젝트로 사용해 데이터를 숨기는 방식
→ OSI 계층 네트워크 모델에서 발생하는 비밀 채널의 경우 사용 가능
비밀통신에 대한 사실이 발견되면 안되는 사용자들에 의해 이용
→ 상대방이 비밀이라는 것을 알면 안됨
암호화의 경우 문제점
→ 암호화 한다는 사실이 드러나면 메시지가 중요하거나 비밀임을 암시
→ 즉, 송수신자간에 감출 사실이 있다고 생각하게 함
통신을 잘 숨겨서 주목을 받지 않음
→ 암호화가 불법인 국가에서는 쉽게 해독할 수 있는 암호화된 메시지를 보내면 의심 받을 위험이 커짐
메시지 내의 정보와 발신자/수신자간의 연결을 보호하는 암호화의 한 형태
스테가노그래피의 보안, 용량, 견고성은 텍스트 파일을 통한 정보 전송을 은밀하게 하고 비밀 커뮤니케이션 채널 개발에 유용함
권한이 없는 사람이 데이터에 액세스 할 염려 없이 민감한 정보가 포함된 파일의 암호화된 사본을 서버에 저장 가능
정부 & 법 집행 기관은 스테가노그래피 회사의 도움을 받아 비밀리에 통신 가능
상대적으로 적은 정보 비트를 은닉하는데 많은 오버헤드 요구
방법이 노출되면 재사용이 불가(키를 적용하는 기법으로 해결 가능)
→ 메시지를 먼저 암호화 한 후에 Steganography를 이용해 은닉
윤리적 해커(정보 기관, 군대, 교육&비즈니스 기관 등..)
→ steganography를 사용해 기밀 메시지와 정보를 눈에 띄지않게 삽입
범죄 해커
→ steganography를 이용해 데이터 파일을 손상시키거나, 멀웨어를 무해한 문서에 숨김
ex) BASH & PowerShell 스크립트를 이용해 자동화된 공격을 시작하여 Word나 Excel문서에 스크립트 삽입이 가능
→ 사용자가 이러한 문서를 열면 숨겨진 비밀 스크립트가 활성화되고 혼란이 이어짐
→ 랜섬웨어가 선호하는 전달 방법
| 요소 | Steganography | Crpytography |
|---|---|---|
| 정의 | 통신이 이루어지고있다는 사실을 숨기는 방법 | 정보를 이해하기 어렵게 만드는 방법 |
| 목적 | 통신 보안 유지 | 데이터 보호 사용 |
| Key | 선택사항이나, 키를 활용하면 보안성이 높아짐 | 필수 전제 조건 |
| Data Visibility | X | O |
| Failure | 숨겨진 정보가 해독되면 누구나 데이터 사용이 가능해짐 | 암호 해독키에 액세스할 수 있는 경우 암호 텍스트에서 원본 메시지를 복구 가능 |
| Data Structure | 데이터의 일반 구조 수정 X | 전체 데이터 구조 수정 |
난독화는 무언가를 불분명하거나 이해할 수 없거나 모호하게 만드는 것
→ 사이버 보안 전문가는 프로그래밍 코드와 같은 민감한 정보를 보호하기 위해 난독화를 사용함
→ 해커가 코드를 읽기 어렵게 만들어 데이터 악용을 방지
보안 커버 선택
→ 멀웨어를 운반할 올바른 블록이미지를 찾는것이 포함됨
→ 해커는 선택한 이미지 매체를 멀웨어 블록과 비교
→ 일치하면 이를 캐리어 이미지에 끼워넣어 멀웨어에 감염된 동일한 이미지를 생성
→ 이미지는 위협 탐지 방법을 빠르게 통과
최하위 중요 비트
→ 픽셀
→ 그레이스케일 이미지 픽셀 & 비트 중 가장 마지막 비트(8번째 비트) == 최하위 비트
→ 해커는 이 비트를 사용해 악성코드를 삽입함 ⇒ 전체 픽셀값이 하나만 줄어들기 때문에 사람의 눈으로 감지 할 수 없음
팔레트 기반 기법
→ 2번과 같이 이미지에 의존함
→ GIF와 같은 팔레트 기반 이미지에 메세지를 삽입 ⇒ 사이버 보안 위협 헌터나 윤리적 해커가 공격을 탐지하기 어려움
Steghide(스테가이드)
→ Steganography를 사용해 미디어나 텍스트와 같은 다른 파일의 정보를 숨기는 툴
Stegosuite(스테고스위트)
→ Java 기반의 Steganography도구로, 은밀한 목적으로 사진의 데이터를 간단히 난독화 가능
OpenPuff
→ 이미지, 동영상, 플레시 애니메이션과 같은 다른 미디어 유형의 데이터를 숨길 수 있는 고품질 툴
Xiao Steganography
→ BMP 이미지 혹은 WAV 파일에 정보를 숨길 때 사용
SSuite Picsel
→ 휴대용 프로그램, 이미지 파일 내에서 텍스트를 숨기는 옵션이지만 다른 프로그램과는 다른 방법을 사용
→ 일반적으로 PowerShell, BASH 스크립트를 사용해 자동화
→ 피해자가 스테가이드를 설치하도록 유도하지 않아도 공격자는 시스템에 액세스 가능
→ 침입자는 스테가노그래피 프로그램을 사용해 Excel&PowerShell 같은 널리 사용되는 Windows 도구를 활용함 ⇒ 피해자가 문서를 읽으면 해커가 시스템을 공격하기 더 쉬워짐
AI가 자신의 활동을 감추기 위해 사용하는 방법 중 하나로, AI 구현은 steganography 기법까지 조정해 탐지를 더 어렵게 만듦
→ 표준 공격 및 침투 테스트 전략(TTP)의 지표를 찾음
→ Steganography 소프트웨어가 사용하는 일반적인 시그니처는 이미 밝혀짐
ex) 안티바이러스 소프트웨어는 Steganography 프로그램의 일반적인 동작을 쉽게 발견할 수 있음