[정보처리기사] 인터페이스 구현 - 인터페이스 보안 기능 적용
인터페이스 보안 기능 적용
인터페이스 보안 취약점
- 데이터 통신 시 데이터 탈취 위협
- 인터페이스를 위한 송,수신 시스템 간의 데이터 통신 시 스니핑을 통해 데이터 전송 내용을 감청하여
데이터를 탈취하는 위협이 존재한다.
- 데이터 통신 시 데이터 위,변조 위협
- 전송 데이터에 대한 삽입, 삭제, 변조 공격을 통한 시스템 위협이 존재한다.
인터페이스 보안 구현 방안
시큐어 코딩 가이드 적용
- 인터페이스 개발 시 보안 취약점을 방지할 수 있는 시큐어 코딩 가이드에 따른 개발 수행이 필요하다.
시큐어 코딩 가이드
1. 입력 데이터 검증 및 표현
- 보안 약점
- 프로그램 입력값에 대한 검증 누락, 부적절한 검증, 잘못된 형식 지점
- 대응 방안
- 사용자, 프로그램 입력 데이터에 대한 유효성 검증 체계를 수립하고 실패 시 처리 기능 설계 및 구현
2. 보안 기능
- 보안 약점
- 보안 기능(인증, 접근 제어, 기밀성, 암호화, 권한 관리 등)의 부적절한 구현
- 대응 방안
- 인증, 접근 통제, 권한 관리, 비밀번호 등의 정책이 적절하게 반영되도록 설계 및 구현
3. 시간 및 상태
- 보안 약점
- 거의 동시에 수행 지원하는 병렬 시스템, 하나 이상의 프로세스가 동작하는 환경에서 시간 및 상태의 부적절한 관리
- 대응 방안
- 공유 자원의 접근 직렬화, 병렬 실행 가능 프레임워크 사용, 블록문 내에서만 재귀 함수 호출
4. 에러 처리
- 보안 약점
- 에러 미처리, 불충분한 처리 등으로 에러 메시지에 중요 정보가 포함
- 대응 방안
- 에러 상황을 처리하지 않거나, 불충분하게 처리되어 중요 정보 유출 등 보안 약점 발생하지 않도록 시스템 설계 및 구현
5. 코드 오류
- 보안 약점
- 개발자가 범할 수 있는 코딩 오류로 인해 유발
- 대응 방안
- 코딩 규칙 검토 후 검증 가능한 스크립트 구성과 경고 순위의 최상향 조정 후 경고 메시지 코드 제거
6. 캡슐화
- 보안 약점
- 기능성이 불충분한 캡슐화로 인해, 인가되지 않은 사용자에게 데이터 누출
- 대응 방안
- 디버거 코드 제거와 필수정보 외의 클래스 내 프라이빗(Private) 접근자 지정
7. API 오용
- 보안 약점
- 의도된 사용에 반하는 방법으로 API를 사용하거나, 보안에 취약한 API의 사용
- 대응 방안
- 개발 언어별 취약 API 확보 및 취약 API 검출 프로그램 사용
데이터베이스 보안 적용
- 데이터베이스의 기밀성을 유지하기 위해서
인터페이스 시 활용되는 중요 데이터에 대해서는
필요한 보안 요구사항을 적용한다.
- 현재 시점에서 안전성이 검증된 암호화 알고리즘을 활용하여
중요한 민감 데이터는 반드시 암호화하고,
데이터베이스 보안 요구사항은 해당 인터페이스 조건에 부합하도록 적용한다.
데이터베이스 암호화 알고리즘
대칭 키 암호화 알고리즘
비대칭 키 암호화 알고리즘
해시 암호화 알고리즘
대칭 키 알고리즘 종류
비대칭 키 알고리즘 종류
해시 암호화 알고리즘
데이터베이스 암호화 기법
- API 방식
- Plug-in 방식
- TDE 방식
- Hybrid 방식
API 방식
- 애플리케이션 레벨에서 암호화 모듈(API)를 적용하는 애플리케이션 수정 방식
- 애플리케이션 서버에 암,복호화 / 정책 관리 키 관리 등의 부하 발생
Plug-in 방식
- 암, 복호화 모듈이 DB 서버에 설치된 방식
- DB 서버에 암,복호화 / 정책 관리 / 키 관리 등의 부하 발생
TDE 방식
- DB 서버에 DBMS 커널이 자체적으로 암,복호화 기능을 수행하는 방식
- 내장되어 있는 암호화 기능(TDE : Transparent Data Encryption)을 이용
Hybrid 방식
- API 방식과 Plug-in 방식을 결합하는 방식
- DB 서버와 애플리케이션 서버로 부하 분산
중요 인터페이스 데이터의 암호화 전송
- 민감한 정보를 통신 채널을 통하여 전송 시에는 반드시 암,복호화 과정을 거쳐야 하고, IPSec, SSL/TLS, S-HTTP 등 보안 채널을 활용하여 전송한다.
보안 기술
IPSec ( IP Security )
- IP 계층(3계층)에서 무결성과 인증을 보장하는 인증 헤더(AH)와 기밀성을 보장하는 암호화(ESP)를 이용하여 양 종단 간(End Point) 구간에 보안 서비스를 제공하는 터널링 프로토콜
- 동작 모드는 전송(Transport) 모드 와 터널(Tunnel) 모드가 있음.
- 주요 프로토콜을 AH, ESP, IKE(키 교환)이 있고,
IPSEC 정책에는 SPD, SAD가 있음.
SSL/TLS
- 전송계층(4계층)과 응용계층(7계층) 사이에서 클라이언트와 서버 간의 웹 데이터 암호화(기밀성), 상호 인증 및 전송 시 데이터 무결성을 보장하는 보안 프로토콜
- 인증 모드는 익명 모드, 서버인증 모드, 클라이언트-서버 인증 모드가 있음
- IPSec와 다르게 Client와 Server 간에 상호인증, 암호 방식에 대해 협상을 거치는 특징이 있음.
- 대칭 키 암호화, 공개키 암호화, 일방향 해시함수, 메시지 인증코드 등 특정 암호 기술에 의존하지 않고 다양한 암호 기술 적용
- https:// ~ 표시형식과 443 포트 이용
S-HTTTP
- S-HTTP는 웹상에서 네트워크 트래픽을 암호화하는 주요 방법 중 하나로서 클라이언트와 서버 간에 전송되는 모든 메시지를 각각 암호화하여 전송
- S-HTTP에서 메시지 보호는 HTTP를 사용한 애플리케이션에 대해서만 가능
- S-HTTP 서버 접속 시 shttp:// URL 사용