728x90
1. 인터페이스 기능 구현 정의
- 모듈 간 세부 설계서 확인
- 컴포넌트 명세서
- 인터페이스 명세서
- 일관되고 정형화된 인터페이스 기능 정의
- 정의된 인터페이스 기능에 대한 정형화
2. 인터페이스 기능 구현
- 사전에 정의된 기능에 대한 구체적 분석
기능 구현 정의 | 기능 | 분석결과 |
송신 측에서 필요 대상을 선택하여 수신 측에 데이터 전송 | 대상자 선택 | DB에 저장된 인사 정보를 SQL로 선택하여 인터페이스 대상 확인 |
인터페이스 데이터 생성 | 제이슨 또는 인터페이스 테이블 형식에 맞게 DB에 있는 정보 가공 | |
인터페이스 데이터 전송 요청 | 인터페이스 데이터를 생성 후 해당 데이터를 https에서 인터페이스 또는 수신 측으로 전송 요청 | |
필요 항목에 대해서 데이터 전달 | 인터페이스 데이터 전송 | 수신지 주소에 레스트 방식으로 전달될 수도 있으며 DB커넥션을 이용하여 DB프로시저, 트리거 등을 활용하여 전송 |
인터페이스 데이터 수신 | 인터페이스 데이터를 수신하고 데이터의 형식이 맞는지 점검 각 규칙을 사전에 정의하고 활용 |
|
인터페이스 데이터 파싱 | 인터페이스 객체를 파서를 이용하여 파싱하거나 인터페이스 테이블에서 선택 | |
인터페이스 데이터 검증 | 각 세부 데이터의 포맷과 논리적인 제약조건의 오류 검사 | |
후속 기능 수행 | 각 세부 데이터를 활용해서 수신 시스템에서 정의된 동작을 진행 | |
전달 후 수신 측으로부터 전달 여부에 대한 값을 반환 | 수신 측에서 처리한 인터페이스 결과 반환 | 수신 측에서 보낸 응답 제이슨을 통해 수행 여부를 확인하고 이를 화면상으로 표시 |
- 인터페이스 구현
- 데이터 통신을 사용하는 인터페이스 구현
-
방법 설명 인터페이스 객체 생성 구현 인터페이스 객체를 생성하기 위해서 데이터베이스에 있는 정보를 SQL을 통하여 선택한 후 이를 제이슨으로 생성 인터페이스 객체 전송 후 전송 결과를 수신 측에서 반환 받도록 구현 송신 측에서 제이슨으로 작성된 인터페이스 객체를 AJAX기술을 이용하여 수신 측에 송신
수신 측에서는 제이슨 인터페이스 객체를 수신받고 이를 파싱 후 처리
수신 측의 처리 결과값은 송신 측에 True/False 값을 전달하여 인터페이스 성공 여부를 확인 전달 - 인터페이스 개체를 사용하는 인터페이스 구현
-
방법 설명 송신 시스템의 인터페이스 테이블 송신 관련 정보를 관리하기 위한 항목과 송신 시스템에서 필요한 항목 구현
인터페이스 이벤트 발생 시 인터페이스 테이블에 인터페이스 내용이 기록되도록 구현
데이터 전송을 위해서 DB커넥션이 수신 측 인터페이스 테이블과 연계되도록 구현
프로시저, 트리거, 배치 작업 등의 방법을 통해서 수신 테이블로 데이터를 전송하도록 구현수신 시스템의 인터페이스 테이블 수신 관련 정보를 관리하기 위한 항목과 수신 시스템에서 필요한 항목 구현
수신 측 시스템에서는 인터페이스 데이터를 읽은 후 사전에 정의된 데이터 트랜잭션을 진행할 수 있도록 구현
데이터를 읽을 때나 해당 트랜잭션이 진행될 때 오류가 발생하면 오류 코드 칼럼에 정의된 오류 코드와 오류 내용을 입력하도록 구현
3. 인터페이스 예외 처리 방안
- 데이터 통신을 사용한 인터페이스에서 예외 처리 방법
-
방법 설명 송신 측에서 예외 처리 방법 AJAX 호출 후 반환 값을 받아 어떻게 처리할지를 호출하는 부분에서 사전 정의
반환 값은 성공과 실패로 나뉘며, 예외 처리는 실패시 발생수신 측에서 예외 처리 방법 수신 측에서 받은 JSON 객체를 처리 시에 try ~catch 구문을 이용하여 발생한 예외를 처리하고 이를 송신 측에 전달
별도 예외 결과를 설정하지 않아도 에러 발생 시 에러 결과가 반환
-
- 인터페이스 개체를 사용하는 인터페이스에서 예외 처리 방법
-
방법 설명 송신 인터페이스 테이블에서 예외 처리 방법 예외 발생 시 송신 인터페이스 테이블에 예외 유형에 따른 예외 코드와 상세한 원인을 함께 입력
송신 인터페이스 테이블에 프로시저, 트리거 등을 통해 데이터 전송 시 발생하는 예외 유형을 정의하고, 예외 원인을 함께 입력수신 인터페이스 테이블에서 예외 처리 방법 수신 측에서 데이터가 없거나 잘못된 값을 읽을 경우 예외 발생
예외 발생 시 사전에 정의된 예외 코드를 입력하고 예외 발생 사유를 함께 기록
수신된 인터페이스 정보를 활용할 때 예외 발생 시, 수신 인터페이스 테이블에 별도의 예외 사항을 기록
-
4. 인터페이스 보안 기능 적용
- 인터페이스 보안 취약점
- 데이터 통신 시 데이터 탈취 위협
- 데이터 통신 시 데이터 위,변조 위협
- 인터페이스 보안 구현 방안
- 시큐어 코딩 가이드 적용
-
적용 대상 보안 약점 대응 방안 입력데이터 검증 및 표현 프로그램 입력값에 대한 검증 누락/부적절한 검증, 잘못된 형식 지정 사용자/프로그램 입력 데이터에 대한 유효성 검증 체계를 수립하고 실패 시 처리 기능 설계 및 구현 보안 기능 보안 기능(인증, 접근 제어, 기밀성, 암호화, 권한 관리 등)의 부적절한 구현 인증/접근 통제, 권한 관리, 비밀번호 등의 정책이 적절하게 반영되도록 설계 및 구현 시간 및 상태 거의 동시에 수행 지원하는 병렬 시스템, 하나 이상의 프로세스가 동작하는 환경에서 시간 및 상태의 부적절한 관리 공유 자원의 접근 직렬화, 병렬 실행 가능 프레임워크 사용, 블록문 내에서만 재귀 함수 호출 에러 처리 에러 미처리, 불충분한 처리 등으로 에러 메시지에 중요 정보가 포함 에러 상황을 처리하지 않거나, 불충분하게 처리되어 중요 정보 유출 등 보안 약점 발생하지 않도록 시스템 설계 및 구현 코드 오류 개발자가 범할 수 있는 코딩 오류로 인해 유발 코딩 규칙 도출 후 검증 가능한 스크립트 구성과 경고 순위의 최상향 조정 후 경고 메시지 코드 제거 캡슐화 기능성이 불충분한 캡슐화로 인해 인가되지 않은 사용자에게 데이터 누출 코딩 규칙 도출 후 검증 가능한 스크립트 구성과 경고 순위의 최상향 조정 후 경고 메시지 코드 제거 API 오용 의도된 사용에 반하는 방법으로 API를 사용하거나, 보안에 취약한 API의 사용 개발 언어별 취약 API 확보 및 취약 API 검출 프로그램 사용 - 데이터베이스 보안 적용
- 데이터베이스 암호화 알고리즘
- 대칭 키 암호화 알고리즘 : 암/복호화에 같은 암호 키를 쓰는 알고리즘
- 비대칭 키 암호화 알고리즘 : 공개키와 비밀키를 사용하는 알고리즘
- 해시 암호화 알고리즘 : 해시값으로 원래 입력값을 찾아낼 수 없는 일방향성의 특성을 가짐
- 데이터베이스 암호화 기법
- API 방식
- 애플리케이션 레벨에서 암호 모듈(API)을 적용하는 애플리케이션 수정 방식
- 애플리케이션 서버에 암/복호화, 정책 관리, 키 관리 등의 부하 발생
- Plug-In 방식
- DB 레벨의 확장성 프로시저 기능을 이용, DBMS에 Plug-in 모듈로 동작하는 방식
- DB 서버에 암/복호화, 정책 관리, 키관리 등의 부하 발생
- Hybrid 방식
- API 방식과 Plug-In 방식을 결합하는 방식
- DB서버와 애플리케이션 서버로 부하 분산
- API 방식
- 중요 인터페이스 데이터의 암호화 전송
- IPSec, SSL/TLS 등 보안 채널을 활용하여 전송
- IPSec : IP계층에서 무결성, 인증 보장하는 인증헤더와 기밀성을 보장하는 암호화를 이용한 IP 프로토콜
- SSL/TLS : 응용계층과 TCP/IP 계층 사이에서 웹 데이터 암호화 및 전송 시 기밀성 보장 공개키 기반 보안 프로토콜
- 분석된 보안 취약점을 근거로 인터페이스 보안 기능 적용
- 네트워크 구간에 대한 보안 기능 적용
- 인터페이스 송수신 간 중간자에 의한 데이터 탈취 위변조를 막기 위해 네트워크 트래픽에 대한 암호화를 적용하고 전송 구간 암호화를 구현
- 애플리케이션 보안 기능 적용
- 애플리케이션 구현 코드 보안 취약점을 보완하는 방향으로 보안 기능을 적용
- 시큐어 코딩 가이드 참조
- 데이터베이스 보안 기능 적용
- 데이터베이스의 접근 권한 강화 및 데이터베이스 동작 객체의 보안 취약점 제거를 위해 보안 기능을 적용
- 네트워크 구간에 대한 보안 기능 적용
- 데이터베이스 암호화 알고리즘
728x90
300x250