Rei’s Tech diary

Chapter 5. 인터페이스 구현 본문

정보처리기사/[2] 소프트웨어 개발

Chapter 5. 인터페이스 구현

Reiger 2022. 3. 13. 15:20

[1] 인터페이스 설계 확인

#. 시스템 인터페이스 정의서 주요 항복 (인최 크시데)

- 인터페이스 ID

- 최대 처리 횟수

- 데이터 크기

- 시스템 정보

- 데이터 정보

 

#. 내·외부 인터페이스 기술 표준 확인

① EAI(Enterprise Application Integration) 방식

- 기업에서 운영되는 서로 다른 플랫폼 및 어플리케이션 간의 정보 전달, 연계, 통합을 가능하게 해주는 솔루션

- EAI를 사용함으로써 각 비즈니스 간 통합 및 연계성을 증대시켜 효율성을 높여줄 수 있으며 각 시스템 간의 확장성을 높여줄 수 있음

 

EAI 구축 유형

1) 포인트 투 포인트 (Point-to-Point)

- 중간에 미들웨어를 두지 않고 각각의 애플리케이션 간에 점 대 점 형태로 연결

 

2) 허브 앤 스포크 (Hub & Spoke)

- 단일한 접점의 허브 시스템을 통하여 데이터를 전송하는 중앙 집중식 방식

- 허브 장애 시 전체 장애 발생

 

3) 메시지 버스 (Message Bus)

- 애플리케이션 사이 미들웨어(버스)를 두어 연계하는 미들웨어 통합 방식

- 뛰어난 확장성과 대용량 데이터 처리 가능

 

4) 하이브리드 (Hybrid)

- 그룹 내는 허브 앤 스포크 방식을 사용, 그룹 간에는 메시지 버스 방식을 사용하는 통합방식

 

② ESB (Enterprise Service Bus) 방식

- 기업에서 운영되는 서로 다른 플랫폼 및 어플리케이션들 간을 하나의 시스템으로 관리 운영할 수 있도록 서비스 중심의 통합을 지향하는 아키텍처 또는 기술

- ESB는 버스를 중심으로 각각 프로토콜이 호환이 가능하도록 애플리케이션의 통합을 낮은 결합 방식으로 지원하는 방식

 

[2] 인터페이스 기능 구현

#. 인터페이스 보안의 중요성

- 인터페이스는 시스템 모듈 간 통신 및 정보 교환의 중요한 접점이기 때문에 인터페이스 보안 취약성은 시스템에 심각한 피해를 입힐 수 있다.

- 인터페이스 모듈 자체의 보안 취약점으로 인해 "데이터 변조 및 탈취" 등의 보안 사고가 발생할 수 있다.

 

#. 시큐어 코딩 가이드 ★

적용 대상 보안 약점 대응 방안
입력 데이터
검증 및 표현
프로그램 입력값에 대한 검증 누락, 부적절한 검증, 잘못된 형식 지정 사용자, 프로그램 입력 데이터에 대한 유효성 검증 체계를 수립하고 실패 시 처리 설계 및 구현
보안 기능 보안 기능(인증, 접근 제어, 기밀성, 암호화, 권한 관리 등)의 부적절한 구현 인증, 접근 통제, 권한 관리, 비밀 번호 등의 정책이 적절하게 반영되도록 설계 및 구현
시간 및 상태 거의 동시에 수행 지원하는 병렬 시스템, 하나 이상의 프로세스가 동작하는 환경에서 시간 및 상태의 부적절한 관리 공유 자원의 접근 직렬화, 병렬 실행 가능 프레임워크 사용, 블록문 내에서만 재귀 함수 호출
에러 처리 에러 미처리, 불충분한 처리 등으로 에러 메시지에 중요 정보가 포함 에러 또는 오류 상황을 처리하지 않거나, 불충분하게 처리되어 중요 정보 유출 등 보안 약점이 발생하지 않도록 시스템 설계 및 구현
코드 오류 개발자가 범할 수 있는 코딩 오류로 인해 유발 코딩 규칙 도출 후 검증 가능한 스크립트 구성과 경고 순위의 최상향 조정 후 경고 메시지 코드 제거
캡슐화 기능성이 불충분한 캡슐화로 인해 인사되지 않은 사용자에게 데이터 누출 디버거 제거와 필수 정보 외의 클래스 내 프라이빗 접근자 지정
API 오용 의도된 사용에 반하는 방법으로 API를 사용하거나, 보안에 취약한 API 사용 개발 언어별 취약 API 확보 및 취약 API 검출 프로그램 사용

#. 데이터베이스 암호화 알고리즘

구분 의미파악
대칭 키 암호화 알고리즘 암호화 알고리즘의 한 종류로, 암˙복호화에 같은 암호 키를 쓰는 알고리즘을 의미
ex) ARIA 128/192/256, SEED
비대칭 키 암호화 알고리즘 공개키는 누구나 알 수 있지만 그에 대응하는 비밀키는 키의 소유자만이 알 수 있도로그 공개키와 비밀키를 사용하는 알고리즘
ex) RSA, ECC, ECDSA
해시 암호화 알고리즘 해시 값으로 원래 입력값을 찾아낼 수 없는, 일방향성의 특성을 가진 알고리즘
ex) SHA-256/384/512, HAS-160

참고) DES, 3DES 암호화 알고리즘은 낮은 보안성 때문에 인터페이스 구현 시 사용하지 않는다.

 

#. 데이터베이스 암호화 기법

구분 설명
API 방식 - 애플리케이션 레벨에서 암호 모듈(API)를 적용하는 애플리케이션 수정 방식
- 애플리케이션 서버˙복호화, 정책 관리, 키 관리 등의 부하 발생
Plug-in 방식 - DB 레벨의 확장성 프러시저 기능을 이용, DBMS에 Plug-in 모듈로 동작하는 방식
- DB 서버 ˙복호화, 정책 관리, 키 관리 등의 부하 발생
Hybrid 방식 - API 방식 + Plug-in 방식
- DB 서버와 애플리케이션 서버로 부하 분산

 

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

1) IPSec (IP Security)

- IP 계층에서 무결성과 인증을 보장하는 인증헤더와 기밀성을 보장하는 암호화를 이용하여 양 종단 간 구간에 보안 서비스를 제공하는 터널링 프로토콜

- 주요 프로토콜은 AH, ESP, IKE 가 있고, 정책에는 SPD, SAD가 있다.

 

2) SSL/TLS

- 전송계층과 응용계층 사이에서 클라이언트와 서버 간의 웹 데이터 암호화, 상호 인증 및 전송 시 데이터 무결성을 보장하는 보안 프로토콜

 

3) S-HTTP

- 웹 상에서 네트워크 트래픽을 암호화하는 주요 방법 중 하나로 클라이언트와 서버 간에 전송되는 모든 메시지를 각각 암호화하여 전송

 

[3] 인터페이스 구현 검증

#. 인터페이스 구현 검증 도구 ★

도구 설명
xUnit ˙ java(junit), C++(Cppunit), .Net(Nunit)등 다양한 언어를 지원하는 단위 테스트 프레임 워크
˙ 소프트웨어의 함수나 클래스 같은 서로 다른 구성 원소(단위)를 테스트 할 수 있게 해주는 도구
STAF ˙ 서비스 호출, 컴포넌트 재사용 등 다양한 환경을 지원하는 테스트 프레임워크
˙ 각 테스트 대상 분산 환경에 데몬을 사용하여 테스트 대상프로그램을 통해 테스트를 수행, 통합하며 자동화하는 검증 도구
FitNesse ˙ 웹 기반 테스트 케이스 설계/실행/결과 확인 등을 지원하는 테스트 프레임워크
˙ 사용자가 테스트 케이스 테이블을 작성하면 빠르고 편하게 자동으로 원하는 값에 대한 테스트를 할 수 있다는 장점이 있음
NTAF ˙ FitNesse와 STAF의 장점을 결합하여 개발된 테스트 자동화 프레임워크
˙ STAF의 분산환경 지원기능과 FitNesse의 효율적인 테스트 케이스 디자인 및 레포팅 기능이 NTAF에서 지원
Selenium ˙ 다양한 브라우저 지원 및 개발언어를 지원하는 웹 애플리케이션 테스트 프레임워크
˙ 테스트 스크립트 언어를 학습할 필요 없이 기능 테스트를 만들기 위한 플레이백 도구를 제공
watir ˙ Ruby 기반 웹 애플리케이션 테스트 프레임워크
˙ 모든 언어 기반의 웹 어플리케이션 테스트와 브라우저 호환성 테스팅 가능