티스토리 뷰

728x90
반응형

인터페이스 설계 확인

 

1. 외/내부 모듈간 공통기능 및 데이터 인터페이스 확인

(1) 인터페이스 산출물

: 인터페이스는 크게 UI와 시스템 인터페이스로 구분됨.

(2) 인터페이스 설계서

시스템 인터페이스 설계서

: 시스템 인터페이스 설계서는 이기종 시스템 및 컴포넌트 간 데이터 교환 및 처리를 위해 각 시스템의 교환되는 정보가 정의된 문서.

: 시스템 인터페이스 목록 주요항목: 인터페이스 번호, 일련번호, 인터페이스ID, 인터페이스명, 송신시스템, 수신시스템, 대내외 구분, 연계방식, 통신유형, 처리유형, 주기, 데이터형식, 수신담당자확인, 관련요구사항ID

시스템 인터페이스 정의서

: 각 인터페이스 번호 당 인터페이스가 되는 데이터, 데이터 형식, 송수신 시스템의 정보 등을 구체화하는 문서

: 시스템 인터페이스 목록에 있는 각 인터페이스의 상세정보를 보여줌.

상세기능별 인터페이스 명세서

: 데이터 송/수신 시스템간의 데이터 저장과 속성 등의 상세내역을 포함.

: 주요항목: 인터페이스ID, 인터페이스명, 오퍼레이션명, 오퍼레이션개요, 사전조건, 사후조건, 파라미터, 반환값

(3) /동적 모형, 데이터명세에 따른 인터페이스 설계서

: 정적, 동적 모형을 통해 각 시스템의 구성요소를 표현한 다이어그램을 활용해 시스템, 컴포넌트별 인터페이스와 요구 조건을 확인할 수 있음.

: 시스템을 구성하는 주요 구성요소간 트잭 확인을 통해 시스템에서 인터페이스와 인터페이스를 통해 상호교환되는 트랜잭션을 확인할 수 있음.

데이터 명세를 통한 인터페이스 설계서

: 데이터 명세는 제공하는 인터페이스 서비스에 대한 상세 명세를 표현하는 산출물임.

 

2. /내부 모듈 연계를 위한 인터페이스 기능 식별

/내부 모듈 연계 방법(EAI, ESB연계방법)

(1) EAI(Enterprise Application integration) 방식

: EAI는 기업에서 운영되는 서로 다른 플랫폼 및 애플리케이션 간의 정보를 전달, 연계, 통합이 가능하도록 해주는 솔루션임.

: EAI 사용으로 각 비즈니스간 통합 및 연계성을 증대시켜 효율성을 높이며, 시스템간 확장성을 높임.

(2) ESB(Enterprise Service Bus) 방식

2. /내부 모듈 연계를 위한 인터페이스 기능 식별 절차

1) 외부 및 내부 모듈 간 연계된 기능 식별

: 식별된 공통기능 및 데이터 인터페이스를 통해 외부 및 내부 모듈과 연계된 기능을 시나리오로 식별함.

 

3. /내부 모듈간 인터페이스 데이터 표준 확인

: 인터페이스 데이터 표준 확인은 상호 연계하고자 하는 시스템 간 인터페이스가 되어야 할 범위의 데이터 형식과 표준을 정의하는 활동임.

1) 식별된 데이터 인터페이스를 통해 인터페이스 데이터 표준 확인

(1) 데이터 인터페이스 입출력 의미 파악

: 식별된 데이터 인터페이스의 입출력값이 의미하는 내용을 파악함.

(2) 데이터 인터페이스 입출력 의미 파악을 통한 데이터 표준 확인

2) 인터페이스 기능을 통한 인터페이스 데이터 항목 식별

: 식별된 인터페이스 기능을 통해 인터페이스 데이터 항목을 식별함.

: 필요 데이터 항목과 이전에 식별된 데이터 인터페이스 항목에서 수정/추가/삭제되어야 할 항목이 있는지 검토

3) 데이터 표준 최종 확인

: 식별된 인터페이스 기능 및 데이터 항목을 통해 필요한 데이터 표준 및 조정해야 할 항목을 검토하고, 송수신 시스템간 인터페이스 데이터 표준을 최종 확인함.

 

인터페이스 기능 구현

: 개발하고자하는 응용SW와 연계대상 모듈 간 세부설계서를 확인하여 일관, 정형화된 인터페이스기능을 구현할 수 있다

모듈 간 세부 설계서 확인

1) 컴포넌트 명세서

: 컴포넌트의 개요, 내부 클래스 동작, 인터페이스를 통해 외부와 통신하는 명세를 정의.

2) 인터페이스 명세서

: 컴포넌트 명세서에 명시된 인터페이스 클래스의 세부 조건 및 기능을 명시한 명세서

: 인터페이스 명칭, 사전/사후조건, 인터페이스 데이터 및 인터페이스 완료 후 성공 여부를 반환받는 반환값등이 정의됨.

일관되고 정형화된 인터페이스 기능 정의

: 분석된 인터페이스의 기능, 데이터 표준, 모듈 설계 명세서를 통하여 일관되고 정형화된 인터페이스의 기능을 정의함.

정의된 인터페이스 기능에 대한 정형화

: 정의된 인터페이스 기능을 표준화하고 정형화함.

: 특정 hw, sw에 의존적이지 않게 작성, 가독성을 높이기 위해 프로세스 형태나 유스케이스 다이어그램의 형태로 작성함.

정의된 인터페이스 기능 구현 분석

기능구현정의 기능 분석결과
송신측에서 필요대상을 선택해 수신측에 데이터 전송 대상자 선택 DB에 저장된 인사정보를 SQL로 선택해 인터페이스 대상을 확인
인터페이스 데이터 생성 json 또는 인터페이스 테이블 형식에 맞게 DB에 있는 정보가공
인터페이스 데이터 전송 요청 인터페이스 데이터를 생성 후 https에서 인터페이스 또는 수신측으로 전송요청
데이터 전달 인터페이스 데이터 전송 수신지주소에 rest방식으로 전달될 수도 있으며, DB커넥션을 이용해 DB프로시저, 트리거 등을 활용해 전송
인터페이스 데이터 수신 인터페이스 데이터를 수신 후 데이터 형식이 맞는지 점검.
규칙을 사전에 정의하고 활용
인터페이스 데이터 검증 데이터 포맷과 논리적 제약조건의 오류검사
후속 기능 수행 각 세부 데이터를 활용해 수신시스템에서 정의된 동작을 진행
수신측으로부터 전달 여부에 대한 값을 반환 인터페이스 수신결과 생성, 전송 정상수신-, 아니면 거짓을 json형태로 전송
수신측에서 처리한 인터페이스 결과 반환 응답 json을 통해 수행여부를 확인하고 화면상으로 표시.

인터페이스 기능 구현 기술

(1) JSON(javascript object notation)

: AJAX에서 많이 사용되고, XML을 대체하는 데이터포맷.

: 언어 독립형 데이터 포맷.

json 장점 json 단점
XML보다 가볍고 빠름
자료 종류에 큰 제한X
XML은 모두 STRING이고, json은 다양
javascript 코드 안에서 JSON 객체에 접근쉬움
태그가 없어서 가독성떨어짐
DTD 같은 것이 없어 데이터 형식이 틀렸을 경우 체크가 쉽지 않음

2) XML (Extensible Markup Language)

: XMLHTML의 단점을 보완한 인터넷언어로, SGML의 복잡한 단점을 개선한 특수한 목적을 갖는 마크업 언어.

: 송수신 시스템간 데이터 연계 편의성을 위해 전송되는 데이터 구조를 동일한 형태로 정의.

: 인간, 기계 모두 이해하는 텍스트형태로 마크업 포맷으 정의하기 위한 메타언어

: 사용자가 직접 문서의 태그를 정의할 수 있으며, 다른 사용자가 정의한 태그를 사용할 수 있음.

: 크게 XML 프롤로그 부분과 XML요소로 구성됨.

: XML 문서는 맨 첫줄에 <xml> 태그를 사용하여 XML 문서임을 명시하는 선언부.

: <xml> 태그의 이름은 소문자로만 사용함.

문법 구성요소 설명
version XML 버전
encoding XML 언어 셋 명시, 생략 가능. 기본값=utf-8
standalne xml 문서를 해석할 때 외부 문서의 참조여부 명시, 생략가능. 생략시 기본값=no(외부문서참조함)

(3) AJAX(Asynchronous Javascript And XML)

: 자바스크립트를 사용해 웹서버와 클라이언트간 비동기적으로 XML데이터를 교환하고 조작.

: 브라우저가 가진 XMLHttpRequest 객체를 이용해 새로 로드 안하고 일부데이터만 로드하는 기법.

: 하이퍼텍스트 표기언어(HTML)만으로는 어려운 작업을 웹페이지에서 구현.

주요기술 설명
XMLHttpRequest -웹브라우저와 웹서버간 메서드가 데이터를 전송하는 객체폼의 API
-비동기 통신을 담당하는 자바스크립트 객체
JavaScript -객체 기반의 스크립트 프로그래밍 언어
-웹브라우저 내에서 주로 사용하며 다른 응용프로그램의 내장 객체에도 접근할 수 있는 기능 소유
XML -HTML의 단점을 보완한 인터넷 언어로서 SGML의 복잡한 단점을 개선한 특수한 목적을 갖는 마크업언어
DOM -XML 문서를 트리 구조의 형태로 접근할 수 있게 해주는 API
-플랫폼/언어 중립적으로 구조화된 문서를 표현하는 객체지향모델
XSLT -XML문서를 다른 XML문서로 변환하는데 사용하는 XML기반언어
-W3C에서 제정한 표준. 탐색하기위해 XPath를 사용
HTML -인터넷 웹(WWW) 문서를 표현하는 표준화된 마크업 언어
CSS -마크업 언어가 실제 표시되는 방법을 기술하는 언어
-OS나 사용프로그램과 관계없이 글자크기, 줄간격 등 자유선택가능한 스타일 시트

(4) REST(Representational State Transfer)

: 웹같은 분산 하이퍼미디어 환경에서 자원의 존재/상태 정보를 표준화된 HTTP 메서드로 주고받는 웹 아키텍처.

: 웹 창시자(HTTP) 1Roy Fielding2000년 논문에 의해서 소개됨

: 구성요소: 리소스(자원), 메서드(처리), 메시지

REST 메서드

메서드 의미
POST Create
GET Select
PUT Update
DELETE Delete

REST 리소스

: REST는 모든 것을 리소스, 즉 명사로 표현하며, 각 세부 리소스에는 id를 붙임.

REST 특징

: REST 리소스에 대한 처리 방법

특징 설명
클라이언트/서버 구조 역할 명확 구분되므로 클라리언트와 서버는 독립적으로 구현, 의존성 축소
무 상태성 상태정보는 저장/관리하지않음-> API서버는 들어오는 요청만 단순처리함. -> 구현 단순
일관된 인터페이스 HTTP 표준에 따르면 특정 언어/기술에 종속되지 않고 모든 플랫폼에 사용 가능. URI로 지정한 리소스에 대한 조작이 가능한 아키텍처 스타일
캐시 처리 가능 - HTTP가 가진 캐싱 기능 적용 가능
HTTP 프로토콜 표준에서 사용하는 Last-Modified 태그나 E-Tag를 이용하면 캐싱 구현 가능
자체 표현 구조 -API 메시지 자체만 보고도 API를 이해할 수 있는 구조를 가짐
-리소스와 메서드를 이용해 어떤 메소드에 무슨 행위를 하는지 알수있으며, 메시지 포맷 역시 JSON을 이용해 직관적 이해 가능한 구조임.

 

3) 인터페이스 구현

(1) 데이터 통신을 사용하여 인터페이스 구현하는 방법

방법 설명
인터페이스 객체 생성 구현 인터페이스 객체 생성위해 DB정보를 SQL을 통하여 선택한 후 JSON으로 생성
인터페이스 객체 전송 후 전송결과를 수신측에서 반환받도록 구현 - 송신측에서 제이슨으로 작성된 인터페이스객체를 ajax 기술을 이용해 수신측에 송신
수신측에서 json 인터페이스객체를 파싱후 처리
송신측에 T/F값 전달해 인터페이스 성공 여부확인전달

 

(2) 인터페이스 개체(Entity)를 사용해 인터페이스 구현

방법 설명
송신시스템의 인터페이스 테이블 송신정보 관리위한 항목과 송신시스템에서 필요한 항목 구현
-인터페이스 이벤트 발생 시 인터페이스 테이블에 인터페이스 내용이 기록되도록 구현
-DB커넥션이 수신측 인터페이스 테이블과 연계되도록 구현
-프로시저, 트리거, 배치작업 등의 방법을 통해 수신테이블로 데이터전송하도록 구현
수신시스템의 인터페이스 테이블 -수신관련 정보 관리위한 항목과 수신시스템에서 필요한 항목 구현
-인터페이스데이터를 읽은후 사전 정의된 데이터 트잭을 진행하도록 구현
-데이터읽거나 트잭 진행시 오류발생하면 오류코드와 오류내용을 입력하도록 구현

인터페이스 예외처리 방안

1) 데이터통신을 사용한 인터페이스에서 예외처리방법

(1) 송신측: AJAX 호출 후 반환값 받아 어떻게 처리할지 호출하는 부분에서 사전정의.반환값은 성공/실패로 나뉘며 예외처리는 실패시 발생

(2) 수신측: 받은 JSON객체를 처리시 try~catch문으로 예외처리, 이를 송신측에 전달. 별도 예외처리 안해도 에러발생시 에러 결과가 반환.

2) 인터페이스 개체사용한 인터페이스에서 예외처리방법

(1) 송신측: 송신 인터페이스 테이블에 예외유형에 따른 예외코드와 상세한 원인을 함께 입력. 송신 인터페이스 테이블에 프로시저, 트리거 등을 통해 데이터 전송 시 발생하는 예외 유형을 정의하고, 예외 원인을 함께 입력

(2) 수신측: 데이터가 없거나 잘못된 값을 읽을 경우 예외발생. 예외사항을 기록

 

 

인터페이스 보안 기능 적용

1) 인터페이스 보안 취약점

(1) 데이터 통신 시 데이터 탈취 위협

: 스니핑으로 전송내역 감청, 데이터 탈취 위협 존재

(2) 데이터 통신 시 데이터 위/변조 위협

: 전송데이터에 대한 삽입, 삭제, 변조공격을 통한 시스템위협 존재.

2) 인터페이스 보안 구현 방안

(1) 시큐어 코딩 가이드 적용

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

(2) 데이터베이스 보안 적용

: DB 기밀성 유지위해 인터페이스 시 활용되는 중요 데이터에 대해 필요한 보안 요구사항을 적용함.

: 안전성이 검증된 암호화 알고리즘을 활용해 민감데이터는 암호화하고, DB 보안 요구사항은 인터페이스 조건에 부합되도록 적용.

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

구분 설명
대칭키 암호화알고리즘 /복호화에 같은 암호키를 쓰는 알고리즘
ARIA 128/192/256, SEED
비대칭 키 암호화 알고리즘 공개키, 비밀키를 사용.
공개키는 누구나 알수있으나, 비밀키는 소유자만 알 수 있음.
RSA, ECC, ECDSA
해시 암호화 알고리즘 해시값으로 원래값을 알아낼 수 없는 일방향성
SHA-256/384/512, HAS-160

 

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

보안기술 설명
IPSec
(ip security)
-IP 계층(3계층)에서 무결성과 인증을 보장하는 인증헤더(AH)와 기밀성 보장하는 암호화(ESP)를 이용해 양종단간(End Point) 구간에 보안 서비스를 제공하는 터널링 프로토콜
-동작 모드는 전송(transport) 모드와 터널모드가 있음
-주요프로토콜: AH, ESP, IKE(키교환)가 있고, IPSEC정책에는 SPD, SAD가 있음.
SSL/TLS -전송계층(4계층)과 응용계층(7계층) 사이 clinet,server간 웹데이터 암호화(기밀성), 상호인증 및 전송 시 데이터 무결성을 보장하는 보안 프로토콜
-인증모드는 익명모드, 서버인증모드, 클라이언트-서버인증 모드가 있음
-clientserver간 상호인증, 암호방식에 대해 협상을 거침
-대칭키/공개키암호화, 일방향 해시함수, 메시지인증코드 등 특정암호기술에 의존하지 않고 다양한 암호기술적용
-Https://~ 표시형식과 443포트이용
S-HTTP
(Secure Hypertext Transfer Protocol)
-웹상에서 넽웤 트래픽을 암호화. client, server간 전송되는 모든 메시지를 각각 암호화하여 전송
-메시지보호는 HTTP를 사용한 애플리케이션에 대해서만 가능
-서버접속시 shttp:// url사용

 

3) 인터페이스 보안 기능 적용 프로세스

(1) 인터페이스 각 구간의 보안 취약점 분석

: 송수신 영역의 구현 기술 및 특징을 구체적으로 분석

: 송수신 영역의 구현기술은 보안취약점이 발생할 수 있는 영역을 구분하여 분석함.

: 분석된 인터페이스 기능을 대상으로 보안 취약점을 분석

인터페이스 송/수신부 보안 취약점 분석 사례

 

단계 영역 보안취약점
송신데이터선택 애플리케이션 - 송신데이터 선택 객체 접근 권한 탈취
- 객체 선택 시 SQL 검증 필요
네트워크 DB 정보 전달 시 탈취, 악의적 서버 변조
송신객체생성 애플리케이션 생성 객체 접근 권한 탈취
객체 생성시 악의적 코드삽입
인터페이스 송신 애플리케이션 -송신시점에서 악의적사이트로전달(수신변조)
네트워크 - 송수신 넽웤 통신 내역탈취 및 위변조
인터페이스 수신 애플리케이션 - 악의적 파서 공격
수신 객체 접근 권한 탈취
데이터 처리결과 전송 애플리케이션 -데이터 처리 객체 접근 권한 탈취
-악의적 데이터 삽입 및 위변조
DB -프로시저에 악의적 입력값 삽입(sql injection)
-에러처리 미흡->강제적 내부 오류발생시 미인지
애플리케이션 -DB정보 전달 시 탈취 가능성, 악의적으로 반환 값 변조

(2) 분석된 보안 취약점을 근거로 인터페이스 보안 기능적용

네트워크 구간에 대한 보안 기능 적용

: 데이터 탈취 위변조를 막기 위해 네트워크 트래픽에 대한 암호화를 적용하고 전송 구간 암호화를 구현함.

단계 보안요구사항 보안기능적용
넽웤계층보안 상대방인증적용 IPSec AH, IKE 프로토콜 적용
데이터 기밀성보장필요 IPSec ESP 프로토콜 적용
응용계층보안 서버만 공개키 인증서 가지고 통신(위험분산) SSL 서버 인증모드 운영
연결단위 외 메시지 단위로도 인증 및 암호화 필요 S-HTTP 적용해 메시지 암호화

-애플리케이션 보안 기능 적용

: 애플리케이션 구현 코드 보안 취약점을 보완하는 방향으로 보안 기능을 적용

: 시큐어 코딩 가이드를 참조해 보안 기능을 적용

보안 요구사항 보안기능적용
비인가자 접근권한관리 - 객체접근 권한 고려해 비인가자 접근 제한되도록 구현
변수를 직접처리X, 접근 권한을 가진 함수(메서드)만 접근할 수 있게 구현
악의적 코드삽입금지 -특문을 통한 SQL변조시도등 공격패턴 입력못하게 사전 필터링
악의적 시도 시 에러 처리 -사용자 정의 예외 처리를 적용하고 에러처리내용이 외부에서 조회되지 않도록 권한 관리 강화

데이터베이스 보안 기능 적용

: DB접근강화, DB동작객체(SQL, 프로시저, 트리거) 보안 취약점 제거.

: 민감데이터(개인식별정보 등)의 경우 데이터 자체의 보안 방안(암호화, 익명화)

5-3. 인터페이스 구현 검증

인터페이스 구현 검증 도구의 개념

: 구현된 인터페이스의 동작을 검증하기 위해 인터페이스 구현 및 감시도구를 통해 인터페이스 동작 상태를 검증하고 모니터링.

2. 인터페이스 구현 검증 도구의 종류

도구 설명
xUnit 자바, C++, Net 등 다양 언어 지원하는 단위테스트 프레임워크
SW 함수, 클래스같은 서로다른 구성원소 테스트 가능
STAF 서비스호출, 컴포넌트 재사용 등 다양환경 지원하는 테스트 프레임워크
각 테스트 대상 분산 환경에 데몬 사용해 테스트 대상 프로그램을 통해 테스트 수행하고 통합하며 자동화하는 검증 도구
FitNesse 웹기반 테스트케이스 지원하는 테스트 프레임워크
사용자가 테스트케이스 테이블 작성하면 빠르고 편하게 자동으로 원하는 값에 대해 테스트할 수 있는 장점이 있음.
NTAF FItNesse의 장점인 협업기능과 STAF 장점인 재사용+확장성을 통합한 NHN(naver)의 테스트 자동화프레임워크
Selenium 다양한 브라우저, 언어 지원하는 웹 앱 테스트 프레임워크
테스트 스크립트 언어 학습필요없이 기능 테스트 만들기위한 도구 제공
watir 루비기반 웹 앱 테스트 프레임워크
모든 언어 기반의 웹앱 테스트와 브라우저 호환성 테스팅 가능

3. 인터페이스 감시 도구

:인터페이스 동작이 잘 진행되는지 지속적으로 확인하기 위한 앱 모니터링 툴(APM; application performance management)을 사용해 동작상태를 감시함.

: DB, 웹앱의 트잭과 변숫값 등 종합적 정보를 조회하고, 커넥션풀 등 지소적 모니터링이 필요한 자웡늘 효과적으로 관리.

인터페이스 감시도구 설명
스카우터 앱에 대한 모니터링 및 DB agent를 통해 오픈소스 DB 모니터링 기능, 인터페이스 감시 기능 제공
제니퍼 앱의 개발부터 테스트, 오픈, 운영, 안정화까지 전 생애주기 단계동안 성능을 모니터링하고 분석해주는 APM SW

4. 인터페이스 구현 검증 프로세스

-인터페이스 명세서를 통한 구현 검증에 필요한 요건 분석

: 인터페이스 명세서의 기능 참조해 구현 검증 및 감시에 필요한 기능을 분석.

기능 구현 정의 검증요건 감시요건
송신측에서 인터페이스 대상 선택 전송 입력대상과 인터페이스객체 정보 일치하는가 - DB SQL 모니터링
조회 트잭 모니터링
Json 생성 객체 모니터링
인터페이스객체전송 -암호화된 통신으로 올바르게 수신측에 전달되었는가 -통신 암호화 모니터링
-패킷 정보 모니터링
-연결된 트잭 변수 모니터링
수신후 수신측 트잭 결과 반환 수신된 데이터와 연관있는 트잭 결괏값과 일치여부 -객체입력, 출력값 모니터링
-객체 동작 성공, 실패 여부 모니터링

인터페이스 오류 처리 확인

1) 사용자 화면에서 오류를 인지하도록 구현

2) 인터페이스 오류 로그 생성

3) 인터페이스 관련 테이블에 오류사항 기록

인터페이스 오류 처리 보고서 작성

: 최초발생보고서, 오류처리경과보고서, 완료보고서

 

728x90
반응형
댓글