ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 인터페이스 구현 - 인터페이스 기능 구현
    정보처리기사(자격증)/인터페이스 구현 2020. 10. 8. 13:27

    인터페이스 기능 구현 

      

     - 개발하고자 하는 응용 소프트웨어와 연계 대상 모듈 간의 세부 설계서를 확인하여 일관되고 정형화된 인터페이스 기능을 구현

     

    1. 모듈 간 세부 설계서 확인

     

     - 각 모듈의 컴포넌트 명세서와 인터페이스 명세서 등 세부 설계서를 확인하여 인터페이스에 필요한 기능을 확인

     

    (1) 컴포넌트 명세서

     

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

     

      * 컴포넌트(Component) : 특정한 기능을 수행하기 위해 독립적으로 개발되어 보급되는, 잘 정의된 인터페이스를 가지며, 다른 부품과

     

                                              조립되어 응용 시스템을 구축하기 위해 사용되는 소프트웨어 프로그램

     

     (2) 인터페이스 명세서

     

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

     

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

     

     

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

     

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

     

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

     

     - 정의된 인터페이스 기능을 표준화하고, 사람들이 보기 쉽게 정형화 한다.

     

     - 특정 하드웨어나 소프트웨어에 의존적이지 않게 작성하고, 가독성을 높이기 위해 프로세스 형태나 유스케이스 다이어그램의 

     

       형태로 작성

     


    인터페이스 기능 구현

     

    1. 사전에 정의된 기능에 대한 구체적인 분석

     

     상세하게 정의된 기능 구현 정의 내용을 토대로 어떻게 구현할 것인지 분석

     

    2. 인터페이스 기능 구현

     

     - 인터페이스 기능 구현 방법에는 데이터 통신을 사용하는 방법과 인터페이스 객체를 사용하여 인터페이스를 구현하는 방법이 있다.

     

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

    방법 설명
    인터페이스 객체 생성 구현 - 인터페이스 객체를 생성하기 위해서 데이터베이스에 있는 정보를 SQL을 통하여 선택 후 이를 제이슨(JSON)으로 변경
    인터페이스 객체 전송 후 전송
    결과를 수신 측에서 반환 받도록 구현
    - 송신 측에서 제이슨으로 작성된 인터페이스 객체를 AJAX 기술을 이용하여 수신측에 송신
    - 수신 측에서는 제이슨 인터페이스 객체를 수신받고 이를 파싱 후 처리
    - 수신 측의 처리 결과값은 송신 측에 True/False 값을 전달하여 인터페이스 성공 여부를 전달

     

     

    (2) 인터페이스 객체를 사용하는 인터페이스 구현

    방법 설명
    송신 시스템
    인터페이스 테이블
    - 송신 관련 정보를 관리하기 위한 항목과 송신 시스템에서 필요한 항목 구현

    - 인터페이스 이벤트 발생 시 인터페이스 테이블에 인터페이스 내용이 기록되도록 구현

    - 데이터 전송을 위해서 DB 커넥션이 수신 측 인터페이스 테이블과 연계되도록 구현

    - 프로시저, 트리거, 배치 작업 등의 방법을 통해서 수신 테이블로 데이터를 전송하도록 구현
    수신 시스템
    인터페이스 테이블
    - 수신 관련 정보를 관리하기 위한 항목과 수신 시스테멩서 필요한 항목 구현

    - 수신 측 시스템에서는 인터페이스 데이터를 읽은 후 사전에 정의된 데이터 트랜잭션을 진행할 수 있도록 구현

    - 데이터를 읽을 때나 해당 트랜잭션이 진행될 때 오류가 발생하면 오류 코드 칼럼에 정의된 오류 코드와 오류 내용을

       입력하도록 구현

    인터페이스 예외 처리 방안

     

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

     

    2. 인터페이스 객체를 사용하는 인터페이스에서 예외 처리 방법

     


    인터페이스 보안 기능 적용

     

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

     

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

     

     - 인터페이스를 위한 송, 수신 시스템 간의 데이터 통신 시 스니핑을 통해 데이터 전송 내역을 감청하여 데이터를 탈취하는 위협이 존재

     

     * 스니핑(Sniffing) : 공격 대상에게 직접 공격을 하지 않고 데이터만 몰래 들여다보는 수동적 공격기법

     

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

     

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

     

     

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

     

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

     

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

    * 입보시 에코캡아

     

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

     

     - 데이터베이스의 기밀성을 유지하기 위해서 인터페이스 시 활용되는 중요 데이터에 대하서는 필요한 보안 요구사항을 적용

     

     - 현재 시점에서 안전성이 검증된 암호화 알고리즘을 활용하여 중요한 민감 데이터는 반드시 암호화하고, 데이터베이스 보안 요구사항은

     

       해당 인터페이스 조건에 부합되도록 적용한다.

     

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

     

            - 데이터베이스 암호화 알고리즘은 양방향 암호 알고리즘인 대칭키 암호화 알고리즘, 비대칭 키 암호화 알고리즘, 일방향 암호화

     

              알고리즘인 해시 암호화 알고리즘이 있다.

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

     

          2) 데이터 베이스 암호화 기법

     

     - 데이터 베이스의 암호화 기법으로는 API방식, Plug-In 방식, Hybrid 방식

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

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

     

     - 민감한 정보를 통신 채널을 통하여 전송 시에는 반드시 암,복호화 과정을 거쳐야 하고, IPSec, SSL/TLS 등 보안 채널을 활용하여 전송

     

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

     

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

     

     - 인터페이스 보안 취약점을 분석하기 위해 송수신 영역의 구현 기술 및 특징을 구체적으로 분석

     

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

     

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

     

     - 각 단계 영역별로 일어날 수 있는 시나리오를 가정하여 자세하게 분석

     

     

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

     

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

     

     - 인터페이스 송수신간 중간자에 의한 데이터 탈취 위변조를 막기 위해서 네트워크 트래픽에 대한 암호화를 적용하고

     

        전송 구간 암호화를 구현

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

     

       (2) 애플리케이션 보안 기능 적용

     

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

     

     - 시큐어 코딩 가이드를 참조하여 보안 기능 적용

     

        (3) 데이터베이스 보안 기능 적용

     

      - 데이터베이스의 접근 권한 강화 및 데이터베이스 동작 객체(SQL, 프로시저, 트리거 등) 의 보안 취약점 제거를 위해 보안 기능을 적용

     

      - 민감 데이터의 경우에는 데이터 자체의 보안 방안(암호화, 익명화 등)도 고려한다.

     

     * 민감 데이터의 익명화 처리 방법

     

       - 가명처리, 총꼐처리, 평균값대체, 범주화, 데이터 값 삭제, 데이터 마스킹

     

     

    댓글

Designed by Tistory.