인터페이스 보안
IT 위키
더 많은 작업
- Interface Security
- 시스템 간 인터페이스를 통해 송수신되는 데이터의 기밀성·무결성을 보장하기 위해 네트워크, 애플리케이션, 데이터베이스 구간에 적용하는 보안 기능
- 인터페이스 구성 요소(송수신 시스템, 연계 서버, 네트워크 구간, 연계 테이블)별로 발생할 수 있는 위협을 식별한다.
- 주요 위협: 전송 구간 스니핑과 데이터 변조, 인증되지 않은 호출, 입력값 미검증으로 인한 삽입 공격, 연계 테이블의 과도한 접근 권한, 오류 메시지를 통한 정보 노출
- 식별한 취약점별로 적용 구간과 보안 기능을 정한다.
| 구간 | 적용 방법 |
|---|---|
| 네트워크 구간 | 송수신 구간의 도청·변조를 막기 위해 트래픽을 암호화한다. 인터페이스 특성에 따라 IPSec, SSL/TLS, S-HTTP 등을 적용한다. |
| 애플리케이션 구간 | 소프트웨어 개발보안 가이드를 참조하여 코드상의 보안 취약점을 보완한다(시큐어 코딩). |
| 데이터베이스 구간 | 데이터베이스, 스키마, 엔티티의 접근 권한과 프로시저·트리거 등 동작 객체의 보안 취약점을 점검하고, 민감한 데이터는 암호화·익명화한다. |
- 입력 데이터 검증, 보안 기능, 에러 처리, 세션 통제 등 시큐어 코딩 항목을 인터페이스 프로그램에도 적용한다.
- 인터페이스 호출 시 인증과 권한 확인을 수행하고, 오류 메시지에 내부 정보가 노출되지 않도록 한다.
- 개발 전 과정의 보안 활동은 Secure SDLC 문서를 참고한다.
- 연계 계정에는 필요한 객체에 대한 최소 권한만 부여한다.
- 개인정보 등 민감 데이터는 암호화하여 저장·전송하며, 방식과 알고리즘은 데이터베이스 암호화 문서를 참고한다.
- 연계 테스트는 송신 시스템에서 연계 데이터를 추출·전송하고 수신 시스템에서 반영하기까지의 과정을 검증한다.
- 연계 테스트 케이스는 송수신 시스템의 데이터 항목과 형식, 정상·오류 상황별 기대 결과를 정의하여 작성한다.
- 절차: 연계 테스트 케이스 작성 → 테스트 환경 구축 → 테스트 수행 → 테스트 수행 결과 검증
| 도구 | 설명 |
|---|---|
| xUnit | Java(JUnit), C++(CppUnit), .NET(NUnit) 등 다양한 언어를 지원하는 단위 테스트 프레임워크 |
| STAF | 서비스 호출, 컴포넌트 재사용 등 다양한 환경을 지원하는 테스트 프레임워크. 각 테스트 대상 분산 환경에 데몬을 두어 테스트를 수행·통합하는 자동화 검증 도구이다. |
| FitNesse | 웹 기반으로 테스트 케이스의 설계, 실행, 결과 확인 등을 지원하는 테스트 프레임워크 |
| NTAF | FitNesse의 협업 기능과 STAF의 재사용·확장성을 통합한 NHN의 테스트 자동화 프레임워크 |
| Selenium | 다양한 브라우저와 개발 언어를 지원하는 웹 애플리케이션 테스트 프레임워크 |
| watir | Ruby 언어를 사용하는 웹 애플리케이션 테스트 프레임워크 |
- APM(Application Performance Management/Monitoring)을 사용하여 인터페이스 동작 상태를 감시한다.
- APM은 데이터베이스와 웹 애플리케이션의 트랜잭션, 변수 값, 호출 함수, 로그, 시스템 부하 등 종합적인 정보를 조회·분석한다.
- 오픈소스 APM 도구로 스카우터(Scouter) 등이 있다.
- 네트워크 구간 보안 프로토콜(IPSec, SSL/TLS, S-HTTP)을 고르거나 IPSec의 AH·ESP·IKE를 묻는 문제가 출제된다.
- 구현 검증 도구의 설명을 주고 도구명을 답하게 하는 문제가 자주 나온다. 특히 STAF(데몬 기반 분산 환경), FitNesse(웹 기반), NTAF(NHN), watir(Ruby)가 핵심 키워드이다.
- 인터페이스 감시 도구로 APM을 묻는 단답형 문제가 출제된다.