본문 바로가기
정보처리기사/필기

[정보처리기사] Part02-05-02. 인터페이스 기능 구현

by 채연2 2023. 1. 20.

 

Contents

     

    인터페이스 기능 구현

    인터페이스 보안

    인터페이스 보안의 중요성

    • 인터페이스는 시스템 모듈 간 통신 및 정보 교환의 중요한 접점이므로 취약할 경우 시스템에 심각한 피해 입힐 가능성 있음
    • 인터페이스 모돌 자체 보안 취약점으로 인해 데이터 변조 및 탈취 등의 보안 사고가 발생 가능

     

    인터페이스 보안 취약점

    01 데이터 통신 시 데이터 탈취 위협
    • 인터페이스를 위한 송/수신 시스템 간 데이터 통신 시 스니핑 통해 데이터 전송 내역 감청하여 데이터를 탈취하는 위협 존재
    • 스니핑 (Sniffing) : 공격 대상에게 직접적으로 공격하지 않고 데이터만 몰래 들여다보는 수동적 공격 기법

     

    02 데이터 통신 시 데이터 위/변조 위협
    • 인터페이스를 위한 송/수신 시스템 간 데이터 통신 시 전송 데이터에 대한 삽입, 삭제, 변조 공격을 통한 시스템 위협 존재

     

    인터페이스 보안 구현

    01 인터페이스 보안 기능
    • 암호화 알고리즘은 짧은 블록 길이 (128bit) 보다는 긴 블록 길이 (256bit) 알고리즘을 사용해야 하고, 양방향 알고리즘 적용 시 DES 보다는 AES 알고리즘 사용해야 함
    보안 기능 설명
    민감정보 가상화   인터페이스 데이터 중 민감정보는 비식별화 조치
    인증 보안 수행   인터페이스 수행에 필요한 인증 수행 (보안 토큰 소유 확인)
    이상 거래 감지   외부 불법 접근 시도, 무작위 공격 행위 탐지 기능
    필드 암/복호화   정의된 필드(=데이터)를 인터페이스하기 전 암/복호화
    필드 필터링   필드 필터링을 통해 필수 정보만을 제공
    암호화 키 전송   UI에 Field 암호화, Hash를 위한 암호화 Key를 반환하는 기능
    파일 암/복호화   파일 서버에 저장된 파일 암/복호화하는 기능
    체크섬   송/수신 시스템 간 체크섬 검증하여 메시지 위변조 확인

     

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

     

    03 암호화 알고리즘
    종류 설명
    대칭 키 암호화 알고리즘   암/복호화에 같은 암호 키를 사용하는 알고리즘
    비대칭 키 암호화 알고리즘   공개 키는 누구나 알 수 있지만 그에 대응하는 비밀 키는 키의 소유자만이 알 수 있도록 공개 키와 비밀 키를 사용하는 알고리즘
    해시 암호화 알고리즘   해시 값으로 원래 입력 값을 찾아낼 수 없는 일방향성 특성을 가진 알고리즘

     

    04 데이터베이스 암호화 기법
    기법 설명
    API 방식   애플리케이션 레벨에서 암호 모듈(API) 적용하는 애플리케이션 수정 방식
      애플리케이션 서버에 암/복호화, 정책 관리, 키 관리 등의 부하 발생
    Plug-in 방식   DB 레벨 확장성 프로시저 기능 이용하고 DBMS에 Plug-in 모듈로 동작하는 방식
      DB 서버에 암/복호화, 정책 관리, 키 관리 등의 부하 발생
    Hybrid 방식   API 방식과 Plug-in 방식을 결합하는 방식
      DB 서버와 애플리케이션 서버로 부하 분산

     

    인터페이스 모듈 구현

    • 구성된 연계 매커니즘에 따라 내외부 연계 모듈 구현
    • 내외부 연계 모듈은 EAI (Enterprise Application Integration) / ESB (Enterprise Service Bus) 방식과 웹 서비스 (Web Service) 방식이 가장 많이 사용됨

     

    EAI/ESB 방식

         개념
    • 자바와 같은 프로그램 언어를 사용한 응용 애플리케이션
    • 트리거(Trigger) 기능 구현하거나 연계(Interface) 테이블 혹은 연계 파일(File) 이용하여 송신 시스템에서 수신 시스템으로 전송하는 방식
    • 송신 시스템 운영 DB에서 트리거 이용하여 전송할 데이터를 연계 DB로 전달하면 EAI/ESB Adapter에서 네트워크를 통해 수신 시스템의 수신 Adapter까지 전송
    • 수신 시스템 연계 DB에서는 수신 Adapter로 전송된 데이터를 운영 DB로 전달

     

         연계 데이터베이스 또는 계정 생성
    • 송신 시스템과 수신 시스템에 연계 DB와 계정을 생성
    • 운영 DB 사용자와 연계 위한 사용자는 생성되는 스키마(Schema) 목적이 다르므로 물리적, 논리적으로 분리하여 관리

     

         연계 테이블 생성
    • 생성한 연계 DB 사용자 계정으로 연계 위한 인터페이스 테이블, 송/수신 이력 및 오류 확인 위한 로그 테이블 생성
    • 코드 매핑 및 변환 위한 매핑 테이블, 오류 처리 위한 오류 코드 테이블 등을 생성

     

         연계 응용 프로그램 구현
    • 송신 시스템에서는 운영 DB에서 트리거(Trigger) 구현하여 연계 DB 전송에 필요한 데이터 복사
    • 트리거 사용하지 않고 Java 혹은 C#과 같은 응용 애플리케이션 코드 이용하여 운영 DB에서 연계 DB로 전송 데이터 복사하기도 함
    • 특히, 연계 데이터 보안 적용 위해 Java 혹은 C#과 같은 응용 애플리케이션 코드 이용하여 암호화 알고리즘 적용

     

    웹서비스(Web Service) 방식

    웹서비스 기본 구조

     

         개념
    • 웹서비스는 데이터 소비자(Subscriber)와 공급자(Provider)간 SOAP(Simple Object Access Protocol), WSDL(Web Service Description Language),WSDL(Web Service Description Language), UDDI(Universal Description, Discovery and Integration) 기술을 이용하여 데이터 주고 받는 기술
    • 웹서비스를 위해 시스템 간 통신이 필요하고, 그런 통신을 하는 기술이 웹 서비스(Web Service) 기술

     

         웹서비스 방식의 연계 모듈 구현 환경 구축 절차
    • 송신 : Web Service Consumer
    • 수신 : Web Service Provider
    • 송신 시스템에서 운영 DB로부터 연계 데이터 추출하여 송신 파일을 XML 형식으로 생성 하는 Java 프로그램 구현
    • EAI/ESB 방식과는 달리 실제 전송이나 전송 이력에 대한 기록(Logging) 및 모니터링 기능 별도로 구현해야 함
    • 구현된 서비스는 주기적으로 실행하기 위해서 운영체제(OS, Operating Systme)의 크론 (Cron) 또는 데이터베이스 관리 시스템(DBMS, Database Management System)의 잡 스케쥴러(Job Scheduler)에 등록

     

         연계 파일 전송 및 수신 시스템의 DB 반영 서비스 호출 처리
    • SOAP 프로토콜을 이용하여 송신에서 수신 시스템으로 연계 파일 전송
    • 전송 시스템과 수신 시스템 간 동일한 WSDL 작성하여 공유
    • WSDL에는 수신 시스템에 연계 파일 전송 후 연계 파일 내용을 수신 시스템 운영 DB에 반영하는 서비스의 위치, 서비스명 등이 기술되어 있음

     

         수신 시스템의 연계 응용 프로그램 구현
    • 수신 시스템에서는 웹서비스로 전달 받은 파일을 운영 DB에 반영해야 하며 이를 위해 >Java 혹은 C#같은 언어 활용하여 프로그램 구현하여 반영

     

    소프트웨어 연계 테스트

    개념

    송신 시스템과 수신 시스템 연계했을 경우 데이터 정합성과 데이터 전송 여부에 대한 테스트.

    사전에 테스트 케이스(Test Case) 작성하고, 작성된 테스트 케이스 활용하여 소프트웨어 연계 테스트 수행한 후 수행 결과 검증하는 방식으로 진행

     

    소프트웨어 연계 테스트 구간

    • 송신 시스템에서 연계 서버 또는 중계 서버를 거치고 수신 시 스템까지 데이터가 전달되는가를 테스트
    구분 테스트 시 확인해야 할 사항
    (데이터 흐름 및 처리 절차)
    위치 단위
    테스트
    통합
    테스트
    송신
    시스템
      데이터 발생 및 운영 DB 저장 운영 응용
    애플리케이션
     
      연계 데이터 추출 및 생성 연계 응용
    프로그램
    연계 서버
    또는 중계 서버
      연계(인터페이스) 테이블(파일) 간 송/수신 모니터링 연계 서버(엔진)
    또는 중계 서버
    수신
    시스템
      연계(인터페이스) 테이블(파일)에서 연계 데이터 로드 연계 응용
    프로그램
      운영 DB에 반영 연계 응용
    프로그램
      반영된 데이터 검색 및 활용 운영 응용
    애플리케이션
     

     

    01 소프트웨어 연계 단위 테스트
    • 송신 시스템에서 연계 데이터 추출 및 생성하고 이를 연계 테이블(파일)로 생성
    • 연계 서버 또는 중계 서버에서는 수신된 연계 테이블(파일) 생성
    • 수신 시스템에서는 연계 데이터가 수신 시스템 운영 DB에 반영이 제대로 되는지 테스트

     

    02 소프트웨어 연계 통합 테스트
    • 비즈니스 프로세스 흐름에 맞춰 연계 데이터 생성, 전송, 저장까지 테스트
    • 인위적인 조작 없이 비즈니스 프로세스 흐름에 맞춰 연계 기능 점검
    • 최종적으로 수신 시스템의 운영 DB에 반영된 데이터 검색 및 활용

     

    소프트웨어 연계(인터페이스) 테스트 케이스 작성 방법

    • 송신 시스템과 수신 시스템에서 확인해야 할 사항을 각각 도출하도록 작성
    • 송/수신 시스템 각각 단순 개별 데이터 유효값 체크(Check)하는 경우의 수와 데이터 간 연관 관계 체크(Check)하는 경우의 수로 식별하여 작성

     

    01송신용 연계 응용 프로그램의 단위 테스트 케이스 작성
    • 송신 시스템에서 연계 데이터 추출이 제대로 되었는지, 연계 데이터가 수신 시스템에 맞게 코드 변환이 제대로 되었는지 등 테스트>
    ID TC-IF-SS-001 단위 시험명 송신용 사용자 쿠폰 정보 연동
    테스트 일시 2018.12.21 11:00 시험자명 ㅇㅇㅇ
    확인자명 ㅇㅇㅇ
    설명 운영 DB에서 사용자 쿠폰 정보 연계 데이터 추출, 코드 변환 및 연계(인터페이스) 파일 생성 등 확인
    관련 프로그램 ID(명) 사용자 쿠폰 정보 등록, 수정, 삭제
    Step 시험항목 및 처리절차 입력데이터 예상결과 검증방법 결과
    001 사용자 쿠폰 테이블에서 테스트 일자, 시간에 추가, 수정, 삭제된 정보 검색 2018.12.21 11시 100건 조회 Select cound(*)
    from 사용자쿠폰
    where 변경일시 like '2018122111%'
     
    002 쿠폰 코드를 수신 시스템 쿠폰 코드로 변환 101. 마일리지 쿠폰 5. 서비스
    마일리지 쿠폰
    Select 코드, 코드명
    from 코드매핑
    where 변환 전 코드 = '쿠폰코드'
     
    ,,, ... ... ... ... ...
    N 처리 일시의 연계(인터페이스) 파일 생성 처리 일시
    (테스트 시점 시간)
    테스트 시점 일자 폴더에 send_테스트일자시간.data 파일 생성 송신용 연계 파일 생성 위치에 사용자 쿠폰 연계 파일 생성 여부와 크기 확인  

     

    02연계 통합 테스트 케이스 작성
    • 송신용 연계 응용 프로그램과 수신용 연계 응용 프로그램의 기능 위주 결함을 확인하는 통합 테스트 케이스로 작성
    ID TC-IF-SS-002 단위 시험명 송신용 사용자 쿠폰 정보 연동
    테스트 일시 2018.12.21 11:00 시험자명 ㅇㅇㅇ
    확인자명 ㅇㅇㅇ
    설명 송신 시스템 운영 DB에서 사용자 쿠폰 정보 연계 데이터 추출, 코드 변환 및 연계(인터페이스) 파일 생성 및 전송 후, 수신 시스템 운영 DB 사용자 쿠폰 정보에 반영되는지를 확인
    관련 프로그램 ID(명) 사용자 쿠폰 정보 등록, 수정, 삭제
    Step 시험항목 및 처리절차 입력데이터 예상결과 검증방법 결과
    001 시험일자 11시로 송신용 사용자 쿠폰 정보 전송 응용 프로그램 실행하여 결과 확인 2018.12.21 11시 송신용 사용자 쿠폰 연계 파일 생성
    -파일명 : ㅇㅇㅇ
    -파일크기 : --KB
    파일 크기 확인 및 파일을 열어서 생성된 데이터 건수 확인  
    002 5분 후 사용자 쿠폰 연계 파일 송/수신   송신 완료
    송신용 사용자 쿠폰 연계 파일 행 데이터별 송신 완료 flag
    연계 서버 모니터링 화면에서 송신 결과 확인  
    ,,, ... ... ... ... ...
    N 수신용 사용자 쿠폰 정보 조회 프로그램 실행하여 완료 후 결과 확인   사용자 쿠폰 정보 테이블에 쿠폰 정보 연계 파일 정상적 데이터 반영 Select count(*)
    from 사용자 쿠폰
    Where 변경일시 like '2018122111%'
     

     

    320x100

    댓글