💠기타/정보처리기사

[정처기 필기] 「2」 | 인터페이스 구현 - (5.2) 인터페이스 구현, 보안, 구현 검증

2024. 2. 1. 22:23
728x90

[정처기 필기] 2」 | 인터페이스 구현 - (5.2) 인터페이스 구현, 보안, 구현 검증

「1」 소프트웨어 설계

> 「2」 소프트웨어 개발

- 데이터 입 / 출력 구현, 통합 구현, 제품 소프트웨어 패키징, 애플리케이션 테스트 관리, > 인터페이스 구현

「3」 데이터베이스 구축

「4」  프로그래밍 언어 활용

「5」  정보시스템 구축 관리

 

1 모듈 간 공통 기능 및 데이터 인터페이스 확인

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

3 모듈 간 인터페이스 데이터 표준 확인

> 4 인터페이스 구현

> 5 인터페이스 보안

> 6 인터페이스 구현 검증

3. 인터페이스 구현

인터페이스 구현

 

송 / 수신 시스템 간데이터 교환 / 처리를 실현해 주는 작업

 

- 정의된 인터페이스 기능 구현 > 구현 방법 / 범위 고려하여 인터페이스 구현 방법분석 > 인터페이스 구현

- 데이터 통신을 이용한 방법, 인터페이스 엔티티 이용한 방법

 

데이터 통신을 이용한 인터페이스 구현

 

애플리케이션 영역에서 인터페이스 형식에 맞춘 데이터 포맷인터페이스 대상으로 전송하고 이를 수신 측에서 파싱하여 해석

 

- JSON, XML 형식의 데이터 포맷을 사용하여 인터페이스 구현

- JSON을 이용한 인터페이스 구현 순서

1 인터페이스 객체를 생성할 데이터 선택

2 JSON 이용하여 인터페이스 객체 생성

3 송신 측에서 AJAX 기술 등 이용하여 수신 측으로 전송

4 수신 측에서 파싱 후 처리하고 송신 측에 처리 결과 보냄

 

>JSON / XML / AJAX<

 

JSON(JavaScript Object Notation)

: 속성-값(Attribute-Value) 쌍으로 이뤄진 데이터 객체 전달을 위해 읽을 수 있는 텍스트 사용, 개방형 표준 포맷

: , 컴퓨터 프로그램 사이 용량이 적은 데이터를 교환, 비동기 처리에 사용되는 AJAX에서 XML로 대체

 

XML(eXtensible Markup Language)

: 특수한 목적을 갖는 마크업 언어를 만드는 데 사용, 다목적 마크업 언어

: HTML 문법상호 호환적이지 못하는 문제와 SGML복잡함 해결하기 위해 개발

 

AJAX(Asynchronous JavaScript and XML)

: 자바스크립트 등을 이용하여 클라이언트서버 XML 데이터교환 / 제어하여 사용자웹 페이지와 자유롭게 상호작용 가능, 비동기 통신 기술

 

인터페이스 엔티티를 이용한 인터페이스 구현

 

인터페이스가 필요한 시스템 사이에 별도의 인터페이스 엔티티를 두어 상호 연계하는 방식

 

- 인터페이스 테이블을 엔티티로 활용

- 인터페이스 테이블은 한 개 또는 송 / 수신 인터페이스 테이블을 각각 두어 활용

- 송 / 수신 인터페이스 테이블의 구조는 같지만, 상황에 따라 서로 다르게 설계할 수 도 있음

- 인터페이스 테이블을 이용한 인터페이스 구현 순서

1 인터페이스 이벤트 발생인터페이스 테이블인터페이스 데이터 기록

2 송신 측 인터페이스 테이블에서 정해진 주기에 따라 인터페이스 데이터전송

3 수신 측 인터페이스 테이블에 인터페이스 데이터가 입력되면 정해진 주기에 따라 인터페이스 데이터 읽음

4 사전에 정의된 데이터 트랜잭션 수행

4. 인터페이스 보안

인터페이스 보안의 개요

 

- 인터페이스는 시스템 모듈 간 통신 / 정보 교환의 통로로 보안 취약점이 될 수도 있음

- 보안성 향상을 위해 인터페이스 보안 취약점분석보안 기능을 적용

 

인터페이스 보안 취약점 분석

 

- 인터페이스 기능이 수행되는 송 / 수신 영역구현 기술 / 특징구현 현황 확인, 보안 취약점 있는지 분석

- 확인된 인터페이스 기능을 기반으로 송신 데이터 선택, 송신 객체 생성, 인터페이스 송 / 수신, 데이터 처리 결과 전송 등 보안 취약점시나리오 형태로 작성

 

인터페이스 보안 기능 적용

 

분석한 인터페이스 기능, 보안 취약점을 기반으로 인터페이스 보안 기능을 적용

 

네트워크 영역

: 인터페이스 송 / 수신 간 스니핑(Sniffing) 등 이용한 데이터 탈취 / 변조 위협 방지하기 위해 네트워크 트래픽에 암호화 설정

: 암호화는 인터페이스 아키텍처에 따라 IPSec, SSL, S-HTTP

: IPSec(IP Security) - 암호화, 복호화 가능한 양방향 암호방식, 네트워크 계층에서 변조 방지 / 은닉 기능 제공

: SSL(Secure Sockets Layer) - TCP/IP 계층, 애플리케이션 계층 간 인증 / 암호화 / 무결성 보장

: S-HTTP(Secure Hypertext Transfer Protocol) - 클라이언트, 서버 간 전송되는 모든 메시지를 암호화

애플리케이션 영역

: 소프트웨어 개발 보안 가이드를 참조하여 코드 상 보안 취약점을 보완하는 방향

 데이터베이스 영역

: 데이터베이스, 스키마, 엔티티의 접근 권한, 프로시저(Procedure), 트리거(Trigger)데이터베이스 동작 객체의 보안 취약점에 보안 기능 적용

: 개인 정보, 민감한 데이터의 경우 암호화, 익명화데이터 자체의 보안 방안

 

>스니핑(Sniffing) / 소프트웨어 개발 보안<

 

스니핑

: 네트워크 중간에서 남의 패킷 정보를 도청, 수동적 공격에 해당, 네트워크 내 패킷은 대부분 암호화되어있지 않아 스니핑에 당함

 

소프트웨어 개발 보안

: 소스 코드에 존재할 수 있는 보안 취약점 발견, 제어, 보안고려한 기능 설계 / 구현 등  개발 과정에서 지켜야 할 보안 활동, == 시큐어 코딩(Secure Coding)

 

데이터 무결성 검사 도구

 

- 시스템 파일의 변경 유무 확인하고, 변경되면 관리자에게 알림

- 크래커, 허가받지 않은 내부 사용자들이 시스템에 침입할 때 백도어 만들거나 파일 변경하여 흔적을 감추는 데, 이를 감지

- 해시 함수를 이용하여 현재 파일 / 디렉터리 상태DB에 저장감시, 현재 상태와 DB 상태가 달라지면 관리자에게 알림

- Tripwire, AIDE, Samhain, Claymore, Slipwire, Fcheck

5. 인터페이스 구현 검증

인터페이스 구현 검증의 개요

 

인터페이스가 정상적으로 문제없이 작동하는지 확인

 

- 인터페이스의 입 / 출력값예상과 일치하는지 확인하는 검증 도구, 인터페이스가 외부 시스템과 연결 모듈 사이 정상적으로 동작하는지 확인하는 감시 도구 이용하여 인터페이스 동작 상태 확인

 

인터페이스 구현 검증 도구

 

- 인터페이스 단위 기능, 시나리오 등 기반으로 하는 통합 테스트가 필요

- 통합 테스트는 다음의 테스트 자동화 도구를 이용하여 수행

 

xUnit

: 같은 테스트 코드를 여러 번 작성하지 않게 도와주고, 예상 결과를 기억할 필요가 없게 하는 단위 테스트 프레임워크

: Smlltalk에 처음 적용되어 SUnit이었고, Java용 JUnit, C++용 CppUnit, .NET용 NUnit, Http용 HttpUnit 등 xUnit으로 통칭

STAF

: 서비스 호출 / 컴포넌트 재사용다양한 환경 지원하는 테스트 프레임워크

: 크로스 플랫폼, 분산 소프트웨어 테스트 환경을 조성하도록 지원

: 분산 소프트웨어 경우, 각 분산 환경에 설치된 데몬(Daemon, 사용자 개입 없이 특정 상태에 자동 동작)이 테스트에 대한 응답을 대신하고, 테스트 완료되면 통합, 자동화하여 프로그램 완성

FitNesse

: 웹 기반 테스트케이스 설계, 실행, 결과 확인 등 지원하는 테스트 프레임워크

NTAF

: FitNesse의 장점인 협업 기능, STAF 장점인 재사용 / 확장성을 통합한 NHN(Naver)의 테스트 자동화 프레임워크

Selenium

: 다양한 브라우저 / 개발 언어를 지원, 웹 애플리케이션 테스트 프레임워크

watir

: Ruby를 사용, 애플리케이션 테스트 프레임워크

 

인터페이스 구현 감시 도구

 

- 인터페이스 동작 상태APM 사용하여 감시

- 애플리케이션 성능 관리 도구데이터베이스와 웹 애플리케이션의 트랜잭션, 변수값, 호출 함수, 로그 / 시스템 부하종합적인 정보조회하고 분석

- 스카우터(Scouter), 제니퍼(Jennifer)

 

>APM(Application Performance Management / Monitoring)<

 

애플리케이션의 성능 관리를 위해 접속자, 자원 현황, 트랜잭션 수행 내역, 장애 진단모니터링 기능 제공

 

리소스 방식 : Nagios, Zabbix, Cacti

엔드 투 앤드 방식 : VisualVM, 제니퍼, 스카우터

 

인터페이스 구현 검증 도구 / 감시 도구 선택

 

- 구현된 인터페이스 명세서의 세부 기능참조하여 정상적 동작 여부확인하기 위한 검증 도구, 감시 도구 요건 분석

- 시장 / 설루션 조사를 통해 필요한 검증 도구, 감시 도구 선택

 

인터페이스 구현 검증 확인

 

- 검증 도구로 외부 시스템과 연계 모듈동작 상태 확인

- 최초 입력값, 입력값에 의해 선택되는 데이터, 생성되는 객체의 데이터예상되는 결과값실제 검증값동일한지 비교

- 각 단계별 오류처리도 적절히 구현됐는지 확인

 

인터페이스 구현 감시 확인

 

- 감시 도구로 외부 시스템과 연계 모듈정상적으로 동작하는지 확인

- 인터페이스 동작 여부, 에러 발생 여부 등 제공해 주는 리포트를 활용

 

 

 

 

 

출처 | <시나공> 정보처리기사 필기 2024 기본서 (길벗알앤디)

728x90