05. 인터페이스 보안
01. 인터페이스 보안
1) 인터페이스 보안 기능
- 민감 정보 가상화 : 인터페이스 데이터 중 민감 정보를 쉽게 식별 되지 않도록 하는 기능
- 인증 보안 수행 : 인터페이스 수행에 필요한 인증 기능
- 이상 거래 감지 : 외부 불법 접근 시도, 무작위 공격 행위 탐지 기능
- 필드 암호화, 복호화 : 보안이 필요한 필드는 인터페이스 하기 전에 암호화, 복호화 하는 기능
- 파일 암호화, 복호화 : 파일 서버에 저장된 파일을 암호화, 복호화 하는 기능
- 암호화 키 전송 : UI 암호화, 해시를 위한 암호화 키를 반환하는 기능
- 필터링(Filtering) : 필터링을 통해 필수 정보만 전달하는 기능
- 체크섬(Checksum) : 송수신 메시지의 위조, 변조를 확인할 수 있는 기능
2) 인터페이스에 보안 기능 적용
- Transport Layer Network 보안
- 상대방 인증을 고려하여 IPSec AH와 IKE 프로토콜을 적용함
- 데이터 기밀성 보장이 필요하므로 IPSec ESP와 IPSec Transport Mode를 적용함
- Application Layer Network 보인
- 서버만 공개키 인증서를 가지고 통신하기 위하여 SSL의 서버 인증 모드를 운영함
- 연결 단위 외 메시지 단위로도 인증 및 암호화가 필요하므로 S-HTTP를 적용하여 메시지를 암호화함
3) 애플리케이션 보안 기능 적용
- 비인가자 접근 권한 관리
- 객체 접근 권한을 고려하여 구현함
- 변수를 직접 핸들링 할 수 없게 하고 접근 권한을 가진 함수만 접근할 수 있게 함
- 악의적 코드 삽입 금지
- 특수 문자를 통한 SQL 변조 시도 등 악의적인 공격 패턴을 입력하지 못하도록 사전 방지함
- 악의적 시도 시 에러 처리
- 악의적 공격 시도 시 사용자 정의 예외 처리를 적용하고 에러 처리 내용이 외부에서 조회 되지 않도록 권한 관리를 함
5) 데이터베이스에 보안 기능 적용
- 데이터베이스 접근 권한
- 데이터베이스, 스키마, 엔티티(테이블)의 접근 권한 관리를 함
- 민감 데이터 관리
- 개인정보나 업무상 민감 데이터는 암, 복호화나 익명화 처리를 통해 데이터베이스에서 관리함
- 악의적 시도 시 에러 처리
- 공격 패턴에 대한 사용자 정의 예외 처리를 적용하고 에러 처리 내용이 외부에서 조회 되지 않도록 권한 관리를 함
02. 데이터베이스 보안
1) 데이터베이스 보안
- 데이터베이스 보안의 개념
- 데이터베이스 내에 저장된 데이터를 허가를 받지 않거나 그러한 권한이 없는 사용자로부터의 변경, 파괴, 노출 및 일관성이 없도록 하는 행위로부터 보호하는 방법
- 데이터베이스는 회사 내부에 존재하는 정보이고, 이미 허가된 사용자들만 접근할 수 있다는 것을 기본 조건으로 함
- 데이터베이스 보안은 데이터베이스 관리자 등 인가 사용자들의 작업 내역에 대한 감사, 자료 유출 방지의 의미로 초점이 맞춰져야 함
- 데이터베이스 보안으로 인해 사용자는 원하는 작업을 수행하는 데 필요한 자원 활용에 대한 허가가 있어야 함
- 데이터베이스 보안 설계 목표와 정책
- 비인가 사용자를 통한 정보 노출을 방지하고, 인가된 사용자는 데이터 접근 및 수정이 가능하도록 보장하는 것
- 데이터베이스 보안 목표를 달성하기 위해서는 보안 정책 수립에 일관성이 보장되어야 하며, 보안 정책은 보안 모델을 통해 운영체제와 DBMS를 통해서 보장되어야 함
- 데이터베이스 보안 정책 수립의 고려사항
- 자원에 접근하는 사용자 식별 및 인증
- 자원에 접근하는 사용자는 인증을 기반으로 실체가 보장되어야 함
- 만약 타인이 사용자의 실체를 인증 받아야 하는 경우가 발생하면 타인이 사용자의 인증을 사용할 수 없어야 함
- 보안 규칙과 권한 규칙에 대한 정의
- 보안 규칙은 특정 사용자가 접근 가능한 데이터와 데이터에 대하여 허용된 행위나 제한된 조건을 기록하는 것이며 보안 모델을 통해 구현됨
- 보안 규칙에 대한 검사 구현
- 보안 규칙에 대한 검사 구현은 운영체제와 데이터베이스 관리 시스템을 활용하여 보장되어야 함
- 자원에 접근하는 사용자 식별 및 인증
- 접근 통제 메커니즘
- Value-Dependent Control(값 종속 통제)
- 일반적인 통제 정책들의 경우 저장된 데이터 값에 영향을 받지 않지만, 상황에 따라 저장 값을 근거로 접근 통제를 관리하는 경우도 발생함
- Multi-User Control(다중 사용자 통제)
- 특정 객체에 대해 복수 사용자가 함께 접근 권한을 요구하는 경우 다수 사용자에 대한 접근 통제 지원 수단이 필요함
- Context-Based Control(내용 기반 통제)
- 특정 외부 요소에 근거하여 접근을 관리하는 방법으로 보안 정책과 결합하여 보안 시스템을 구축함
- Value-Dependent Control(값 종속 통제)
2) 데이터베이스 보안의 위협 요소
- 데이터의 노출 - 기밀성 위협
- 데이터의 부적절한 수정 - 무결성 위협
- 서비스의 거부 - 가용성 위협
3) 데이터베이스 보안의 요구사항
- 부적절한 접근 방지
- 허가된 사용자의 접근 요청을 DBMS에 의해 검사하도록 해야 함
- 추론 방지
- 비기밀 데이터에서 기밀 데이터를 얻어내는 것을 방지해야 함
- 데이터베이스의 무결성 보장
- 모든 트랜잭션은 원자적이어야 하며 수행된 작업과 트랜잭션 이후에 변화된 값들은 기록되어야 함
- 데이터베이스의 운영적 무결성 보장
- 모든 트랜잭션을 병행 처리하는 동안 일관성이 보장되어야 함
- 로킹은 데이터의 접근을 상호 배타적으로 통제하는 병행 처리 기법으로 데이터의 논리적 일관성을 보장함
- 데이터베이스의 의미적 무결성 보장
- 데이터 내의 허용된 값을 통제하여 변경된 데이터의 논리적 일관성을 보장해야 함
- 감사 기능
- 데이터베이스에 대한 모든 접근 사용자의 감사 기록을 생성해야 함
- 사용자 인증
- DBMS 사용자의 엄격한 인증을 필요로 함
- 비밀 데이터의 관리 보호
- 데이터베이스의 치명적인 영향을 줄 수 있는 중요 정보를 철저히 관리하고 보호해야 함
- 제한
- 데이터베이스 시스템 간의 부적절한 정보 전송, 복사 등을 방지해야 함
4) 데이터베이스 암호화
- 데이터베이스의 기밀성을 유지하기 위해 중요 민감 데이터는 암호화하는 기법을 사용함
- 다양한 암호 알고리즘을 활용하여 중요 데이터는 암호화함
5) 데이터베이스 암호화 알고리즘
- 데이터베이스 암호화 알고리즘은 크게 대칭 키, 해시, 비대칭 키 알고리즘이 사용됨
구분 | 내용 |
---|---|
대칭키 암호 알고리즘 | ARIA 128/192/256, SEED |
해시 알고리즘 | SHA -256/384/512, HAS-160 |
비대칭 키 알고리즘 | RSA, ECDSA |
6) 데이터베이스의 암호화 기법
- API 방식
- 애플리케이션 레벨에서 암호화 모듈을 적용하는 애플리케이션 수정 방식
- 암호화/보안 방식은 별도로 애플리케이션을 개발한 후 통합해야 함
- 애플리케이션 서버에 암/복호화, 정책 관리, 키 관리할 때 서버에 부하가 발생함
- 애플리케이션 개발 통합 기간이 필요함
- 애플리케이션 변경 및 암호화 필드 변경에 따른 유지보수가 필요함
- Filter(Plug-in) 방식
- 데이터베이스 레벨의 확장성 프로시저 기능을 이용하여 DBMS에 Plug-in 또는 Snap-in 모듈로 동작하는 방식
- 암호화/보안 방식은 데이터베이스 내 설치하고 연동해야 함
- 데이터베이스 서버에 암/복호화, 정책 관리, 키 관리할 때 서버에 부하가 발생함
- 애플리케이션 변경이 불필요함
- 관리자용 GUI 이용, 다수 데이터베이스 통합 관리가 가능하여 편의성이 높음
- Hybrid 방식
- API 방식과 Filter 방식을 결합하거나, Filter 방식에 추가적으로 SQL문에 대한 최적화를 대행해 주는 어플라이언스를 제공하는 방식
- 암호화/보안 방식은 어플라이언스/베이터베이스 내에 설치함
- 어플라이언스 : 운영체제나 응용 소프트웨어의 설치, 설정 등을 행하지 않고 구입해서 접속하면 곧 사용할 수 있는 정보처리 장치
- 데이터베이스와 어플라이언스를 사용하므로 서버 부하가 분산됨
- 애플리케이션 변경이 불필요함