Over the limit

[Security] Tampering 템퍼링이란 본문

Security

[Security] Tampering 템퍼링이란

ellapk 2024. 12. 17. 11:19

 

템퍼링(Tampering)이란?

템퍼링(Tampering)이란 데이터, 소프트웨어, 하드웨어, 혹은 시스템에 대해 허가되지 않은 방식으로 변경하거나 조작하는 행위. 보통 악의적인 목적으로 이루어지며, 데이터의 무결성(Integrity)과 신뢰성을 손상시킬 수 있음

 

 

예를 들어, 네트워크를 통해 전송되는 데이터가 중간에서 변경되거나, API 호출에 전달된 파라미터가 조작되는 경우, 이 외에도 하드웨어 장치를 물리적으로 변경하거나, 소프트웨어 코드를 리버스 엔지니어링하여 악성 코드를 삽입하는 것도 포함

 


 

템퍼링의 주요 사례

  1. 데이터 전송 중 조작
    • 네트워크 상에서 송수신되는 데이터 패킷을 가로채 변경
    • 예: Man-in-the-Middle 공격에서 암호화되지 않은 데이터를 수정.
  2. API 요청 변조
    • 클라이언트와 서버 간의 API 요청/응답을 조작하여 의도하지 않은 동작을 유발
    • 예: 가격 조작, 불법적인 데이터 접근
  3. 소프트웨어 코드 변경
    • 애플리케이션 바이너리나 소스코드를 변경하여 악성 동작을 추가
    • 예: 게임 클라이언트 해킹, 라이선스 우회
  4. 하드웨어 조작
    • 물리적 장치에 접근해 하드웨어를 변경하거나 불법적인 칩을 추가
    • 예: 카드 결제 단말기에서 스키머 장치 삽입

 


 

템퍼링의 예방책

  1. 데이터 암호화
    • 데이터 전송 시 암호화 프로토콜(예: HTTPS, TLS)을 사용하여 중간에서의 변경 방지
  2. 무결성 검증
    • 해시(Hash) 알고리즘이나 디지털 서명을 사용하여 데이터의 무결성 확인
    • 예: 파일 다운로드 시 SHA256 체크섬 검증.
  3. API 요청 보호
    • API 키, OAuth 토큰, HMAC 등의 인증 방식을 통해 요청 보호
    • 요청 데이터에 서명을 추가해 변조 여부를 확인
  4. 코드 난독화
    • 애플리케이션의 코드를 난독화(Obfuscation)하여 리버스 엔지니어링과 조작을 어렵게 만듦
    • 난독화를 제공하는 안티 템퍼링 소프트웨어는 해커들의 리버스 엔지니어링 공격을 막아 템퍼링 방지에 효과적
  5. 화이트박스 암호화(Whitebox Cryptography)
    • 암호화를 통해 코드와 암호화 키를 보호하여 해커가 소프트웨어를 분석하거나 조작하지 못하도록 방지
    • 암호화된 코드와 데이터를 통해 템퍼링을 어렵게 만듦
  6. 해시코드(Hash Code)와 체크섬(Checksum)
    • 보호된 코드에 변화가 있는지 탐지하는 데 효과적
    • 코드나 데이터가 수정되었는지 확인하여 템퍼링 여부를 판단
  7. 물리적 보안 강화
    • 하드웨어 장치에 대한 접근을 제한하고, 잠금 장치나 경고 시스템을 추가
  8. 침입 탐지 및 모니터링
    • 네트워크 트래픽과 시스템 로그를 모니터링하여 이상 활동을 감지
    • 예: 템퍼링 시도에 대한 경고 알림 설정
  9. 소프트웨어 업데이트 및 패치
    • 알려진 취약점에 대한 패치를 신속히 적용하여 템퍼링 위험을 줄임