테마
인터페이스 보안과 구현 검증
시스템 사이 인터페이스는 데이터가 밖으로 오가는 길이라 도청이나 변조의 표적이 된다. 그래서 인터페이스를 만들 때는 구간마다 보안 기능을 적용하고, 다 만든 뒤에는 도구로 제대로 동작하는지 검증한다. 실기 시험은 보안을 적용하는 세 영역, 보안 프로토콜이 어느 계층에서 동작하는지, 무결성(integrity) 검사 도구와 구현 검증 도구의 이름을 묻는다.
인터페이스 보안 기능 적용
인터페이스 보안은 먼저 인터페이스의 보안 취약점을 분석하고, 그에 맞는 보안 기능을 적용하는 순서로 한다. 적용하는 곳은 보통 세 영역이다.
| 영역 | 적용 내용 |
|---|---|
| 네트워크 | 송수신 구간 스니핑(sniffing)을 막도록 트래픽 암호화 |
| 애플리케이션 | 보안 가이드에 따라 코드 취약점 보완 |
| 데이터베이스 | DB·스키마(schema)·엔티티(entity) 접근 권한, 프로시저(procedure)·트리거(trigger) 보안 |
네트워크 영역에서는 두 시스템 사이를 오가는 패킷을 누가 엿보는 스니핑(sniffing)이 주요 위협이다. 그래서 인터페이스 구조에 맞춰 IPsec, SSL/TLS, S-HTTP 가운데 하나로 전송 구간을 암호화한다. 애플리케이션 영역은 소프트웨어 개발 보안 가이드를 참고해 코드의 취약점을 고친다. 데이터베이스 영역은 권한을 좁히고 민감한 데이터를 암호화한다.
보안 프로토콜과 동작 계층
세 프로토콜은 어느 계층에서 보호하느냐가 다르다. 계층이 낮을수록 그 위의 모든 통신을 한 번에 보호하고, 높을수록 특정 애플리케이션의 메시지만 보호한다.
| 프로토콜 | 동작 계층 | 보호 대상 |
|---|---|---|
| IPsec | 네트워크 계층 | IP 패킷 단위 |
| SSL/TLS | 전송 계층과 응용 계층 사이 | 연결(세션) 단위 |
| S-HTTP | 응용 계층 | HTTP 메시지 단위 |
IPsec(IP Security, IP 보안)은 IP 패킷에 인증과 암호화를 적용한다. 구성 요소는 무결성과 출처 인증을 주는 AH(Authentication Header, 인증 헤더)와, 여기에 암호화까지 주는 ESP(Encapsulating Security Payload, 캡슐화 보안 페이로드)다. 운영 모드는 페이로드만 보호하는 전송 모드와, 원래 패킷 전체를 새 패킷으로 감싸는 터널 모드가 있다. 해시 함수(hash function)처럼 되돌릴 수 없는 방식이 아니라 받는 쪽이 복호화(decryption)할 수 있는 양방향 암호 방식을 쓴다. SSL(Secure Sockets Layer, 보안 소켓 계층)과 그 후속인 TLS(Transport Layer Security, 전송 계층 보안)는 TCP(Transmission Control Protocol, 전송 제어 프로토콜) 연결 위에서 인증·암호화·무결성을 보장한다. 이름에 전송 계층이 들어가지만, RFC(Request for Comments, 인터넷 표준 문서) 8446은 TLS가 아래 전송 계층에 순서가 보장된 신뢰성 있는 흐름만 요구하고 그 위에 응용 프로토콜이 얹힌다고 설명한다. 그래서 두 계층 사이로 분류한다. SSL은 보안 결함으로 폐기되어(RFC 7568은 SSL 3.0 사용을 금지한다) 지금은 TLS를 쓴다. S-HTTP(Secure HyperText Transfer Protocol, 보안 하이퍼텍스트 전송 프로토콜)는 HTTP 메시지 하나하나를 암호화하는 메시지 지향 방식이지만 실제로는 HTTPS(TLS 위의 HTTP)에 밀려 거의 쓰이지 않는다. 자세한 암호화 원리는 보안 대주제에서 다룬다.
데이터 무결성 검사 도구
데이터 무결성 검사 도구(data integrity checker)는 시스템 파일이 바뀌었는지 확인하고, 바뀌면 관리자에게 알려 주는 도구다. 정상 상태의 파일 해시값 목록을 미리 만들어 두고 주기적으로 현재 상태와 비교한다. 침입자가 파일을 몰래 바꾸는 일을 잡아낼 수 있어 인터페이스 보안 취약점 분석에 쓴다.
대표 도구는 Tripwire와 AIDE(Advanced Intrusion Detection Environment, 고급 침입 탐지 환경)다. AIDE 공식 사이트는 자신을 파일·디렉터리 무결성 검사기라고 소개한다. Samhain은 파일 무결성 검사에 로그 감시·루트킷 탐지를 더한 호스트 기반 침입 탐지 시스템(intrusion detection system)이고, Fcheck는 기준 상태와 비교해 파일 변경을 알리는 Perl 스크립트다. 시험에서는 Claymore와 Slipwire도 같은 무결성 검사 도구로 함께 나온다는 정도만 알아 두면 된다.
시험 포인트
- 인터페이스 보안 적용 세 영역: 네트워크·애플리케이션·데이터베이스.
- 계층: IPsec은 네트워크 계층, SSL/TLS는 전송 계층과 응용 계층 사이, S-HTTP는 응용 계층. IPsec 구성 요소 AH·ESP, 모드 전송·터널.
- "파일 변경 여부를 확인해 관리자에게 알림" → 데이터 무결성 검사 도구(Tripwire·AIDE·Samhain 등).
- 인터페이스 구현 검증 도구는 다음 문서에서 다룬다.
