본문 바로가기
정보처리/소프트웨어개발

인터페이스 구현 기능 구현 2/2

by 피갓자 2025. 5. 7.

인터페이스 구현 기능 구현
인터페이스 구현 기능 구현

인터페이스 보안 기능 적용

인터페이스 보안 취약점

데이터 통신 시 데이터 탈취 위협

  • 인터페이스를 위한 송수신 시스템 간의 데이터 통신 시 스니핑(Sniffing)을 통해 데이터 전송 내역을 감청하여 데이터를 탈취하는 위협이 존재

데이터 통신 시 데이터 위변조 위협

  • 인터페이스를 위한 송수신 시스템 간의 데이터 통신 시 전송 데이터에 대한 삽입, 삭제, 변조 공격을 통한 시스템 위협이 존재

인터페이스 보안 구현 방안

시큐어 코딩 가이드 적용

력데이터 검증 및 표현

  • 프로그램 입력값에 대한 검증 누락 부적절한 검증, 잘못된 형식 지정
  • 사용자 프로그램 입력 데이터에 대한 유효성 검증 체계를 수립하고 실패 시 처리 기능 설계 및 구현

안 기능

  • 보안 기능(인증, 접근 제어, 기밀성, 암호화, 권한 관리 등)의 부적절한 구현
  • 인증 접근 통제, 권한 관리, 비밀번호 등의 정책이 적절하게 반영되도록 설계 및 구현

간 및 상태

  • 거의 동시에 수행 지원하는 병렬 시스템, 하나 이상의 프로세스가 동작하는 환경에서 시간 및 상태의 부적절한 관리
  • 공유 자원의 접근 직렬화, 병렬 실행 가능 프레임워크 사용, 블록문 내에서만 재귀 함수 호출

러 처리

  • 에러 미처리, 불충분한 처리 등으로 에러 메시지에 중요 정보가 포함
  • 에러 상황을 처리하지 않거나, 불충분하게 처리되어 중요 정보 유출 등 보안 약점 발생하지 않도록 시스템 설계 및 구현

드 오류

  • 개발자가 범할 수 있는 코딩 오류로 인해 발생
  • 코딩 규칙 도출 후 검증 가능한 스크립트 구성과 경고 순위의 최상향 조정 후 경고 메시지 코드 제거

슐화

  • 기능성이 불충분한 캡슐화로 인해 인가되지 않은 사용자에게 데이터 누출
  • 디버거 코드 제거와 필수 정보 외의 클래스 내 프라이빗(Private) 접근 권한 설정

API 오용

  • 의도된 사용에 반하는 방법으로 API를 사용하거나, 보안에 취약한 API를 사용
  • 개발 언어별 취약 API 확보 및 취약 API 검출 프로그램 사용

데이터베이스 보안 적용

데이터 암호화 알고리즘

  • 칭 키 암호화 알고리즘 : 암복호화에 같은 암호 키를 쓰는 알고리즘. 예를 들어, DES, ARIA 128/192/256, SEED, AES
  • 대칭 키 암호화 알고리즘 : 공개키는 누구나 알 수 있지만, 비밀키는 키의 소유자만이 알 수 있도록 공개키와 비밀키를 사용하는 알고리즘. 예를 들어, RSA, ECC, ECDSA
  • 암호화 알고리즘 : 해시값으로 원래 입력값을 찾아낼 수 없는 일방향성의 특성을 가진 알고리즘. 예를 들어, SHA-256/384/512, HAS-160

데이터베이스 암호화 기법

API 방식

  • 애플리케이션 레벨에서 암호 모듈(API)을 적용하는 애플리케이션 수정 방식
  • 애플리케이션 서버에 암복호화, 정책 관리, 키 관리 등의 부하 발생

Plug-in 방식

  • 암복호화 모듈이 DB 서버에 설치된 방식
  • DB 서버에 암복호화, 정책 관리, 키 관리 등의 부하 발생

TDE 방식

  • DB 서버의 DBMS 커널이 자체적으로 암복호화 기능을 수행하는 방식
  • 내장된 암호화 기능(TDE, Transparent Data Encryption)을 이용

Hybrid 방식

  • API 방식과 Plug-in 방식을 결합하는 방식
  • DB 서버와 애플리케이션 서버로 부하 분산

중요 인터페이스 데이터의 암호화 전송

IPSec(IP Security)

  • 네트워크 계층(3계층)에서 무결성과 인증을 보장하는 인증 헤더(AH)와 기밀성을 보장하는 암호화(ESP)를 이용하여 양 종단 간(End Point) 구간에 보안 서비스를 제공하는 터널링 프로토콜
  • 동작 모드는 전송(Transport) 모드와 터널(Tunnel) 모드가 있음
  • 주요 프로토콜은 AH, ESP, IKE(키 교환)가 있고, IPSEC 정책에는 SPD, SAD가 음

SSL/TLS

  • 전송 계층(4계층)과 응용 계층(7계층) 사이에서 클라이언트와 서버 간의 웹 데이터 암호화(기밀성), 상호 인증 및 전송 시 데이터 무결성을 보장하는 보안 프로토콜
  • 인증 모드는 익명 모드, 서버 인증 모드, 클라이언트-서버 인증 모드가 있음
  • IPSec과는 다르게 Client와 Server 간에 상호인증, 암호 방식에 대해 협상을 거치는 특징이 있음
  • 대칭 키 암호화, 공개키 암호화, 일방향 해시함수, 메시지 인증코드 등 특정 암호 기술에 의존하지 않고 다양한 암호 기술 적용
  • https://~ 표시형식과 443 포트 이용

S-HTTP(Secure Hypertext Transfer Protocol)

  • 웹상에서 네트워크 트래픽을 암호화하는 주요 방법의 하나로써 클라이언트와 서버 간에 전송되는 모든 메시지를 각각 암호화하여 전송
  • 메시지 보호는 HTTP를 사용한 애플리케이션에 대해서만 가능
  • 서버 접속 시 shttp:// URL 사용