IT/IT 지식

알아두면 좋은 IT 지식 8 - EAI, 소스 품질 분석 도구, 암호

new1life 2022. 7. 12. 22:36

EAI 구축 유형

기업 내 각종 애플리케이션 및 플랫폼 간의 정보 전달, 연계, 통합 등 서로 연결이 가능하게 만들어 주는 설루션입니다.
Point - to - Point는 가장 기본적인 애플리케이션 통합 방식으로 1:1로 연결합니다.
Hub &Spoke는 하나의 접점인 허브 시스템을 통해서 데이터를 전송하는 중앙 집중형 방식입니다.
Message Bus는 애플리케이션 사이에 미들웨어를 두어 처리하는 방식입니다.
Hybrid는 Hub &Spoke와 Message Bus 혼합 방식입니다.

 

반 정규화 유형 중 중복 테이블 추가 방법
진행 테이블 추가, 집계 테이블 추가, 특정 부분만을 포함하는 테이블 추가가 있습니다.

 

ISO/IEC 9126의 기능성의 하위 특성에는 적합성, 정확성, 상호 운용성, 보안성, 준수성 등이 있습니다. 학습성은 없습니다.

 

알고리즘 시간 복잡도
항상 일정한 O(1)
로그에 비례 O(log2^n)
정비례(선형) O(n)
로그 변수에 비례(선형 로그) O(nlog2^n)
제곱에 비례 O(n^2)
세제곱 비례 O(n^3)
지수 비례 O(2^n)
팩토리얼 비례 O(n!)

 

소스 품질분석도구

정적 분석 도구
pmd : 소스 코드에 대해 사용하지 않은 변수, 최적화가 안된 코드 등 결함을 유발할 수 있는 코드 검사
cppcheck : C/C++ 코드에 대해 메모리 누수, 오버플로우 등 분석
SonarQube : 중복 코드, 복잡도, 코딩 설계 등을 분석하는 소스 분석 통합 플랫폼
checkstyle : 자바 코드에 대해 소스코드 표준을 따르고 있는지 검사
ccm : 다양한 언어의 코드 복잡도를 분석한다.
cobertura : 자바 언어의 소스코드 복잡도 분석 및 테스트 커버리지 측정
동적 분석 도구
Avalanche : Valgrind 프레임워크 및 STP기반으로 프로그램 결함 및 취약점 분석
valgrind : 프로그램 내에 존재하는 메모리 및 스레드 결함 분석

 

패키징 고려사항
사용자의 운영체제, 메모리, CPU 등에 필요한 최소 환경 정의합니다.
UI는 직관성, 편의성을 고려해야 하고 매뉴얼과 같게 패키징 합니다.
소프트웨어와 하드웨어가 같이 관리될 수 있도록 Managed Service 형태로 제공
암호화, 모듈화 하여 배포(다양한 기종에서 사용이 가능해야 함)

 

DDL(데이터 정의어)의 기능 중 논리적 데이터 구조와 물리적 데이터 구조의 사상을 정의하기가 있다.

 

IPv6의 패킷 크기는 임의로 큰 크기의 패킷을 주고받을 수 있다.(패킷 제한 없음)
IPv4의 패킷 크기가 64 Kbyte로 제한되어있다.

 

프로세스 상태 종류
제출(Submit) -> 접수(Hold) -> 준비(Ready) -> 실행(Run) -> 대기(Wait) -> 보류 -> 블록(Block) -> 종료(Terminated)

 

커널 스레드 : 운영체제 커널에 의해 스레드 운영해서 구현이 쉽지만 속도가 느리다.
사용자 스레드 : 사용자가 만든 라이브러리를 사용해 스레드 운용하기에 속도는 빠르지만, 구현이 어렵다.

 

<스크립트 언어>

javascript, ASP, JSP, PHP, Python, basic

 

JAVA 언어 접근 제한자
public : 모든 접근 허용
protected : 같은 패키지에 있는 객체와 상속관계 객체들만 허용
default : 같은 패키지에 있는 객체들만 허용
private : 현재 객체 내에서만 허용

 

Stack Protection : Stack Overflow를 탐지하고 보안을 강화시키는 기법입니다.


Stack Guard : Stack 상에 일정한 주소 번지에 프로그램이 선언한 canary를 심어 두어, 스택의 변조된 경우에, canary를 체크하여 프로그램이 비정상적으로 종료시키는 기법입니다.


Stack Shield : 함수의 리턴 주소를 복사하여 실제 리턴 주소를 참조하지 않고 함수를 리턴해주는 기법입니다.


Syslog : 시스템에서 로그 메시지를 처리하기 위해서 제공합니다.


Recovery Control : 부적절한 사건, 상황으로 인해 발생한 피해를 극복, 장애, 혼란을 정돈하고 정상상태로 회복합니다.

 

백도어 탐지 방법

무결성 검사 / 로그 분석 / SetUID 파일 검사 / 열린 포트 검사(닫힘 아님 주의) / 바이러스 및 백도어 탐지 툴 이용

  

CMM모델의 레벨

초기단계 / 관리단계 / 정의 단계 / 정량적 관리단계 / 최적(화) 단계

 

JSON : 용량이 적은 데이터를 교환하기 위해 데이터의 객체를 속성, 값의 쌍 형태로 표현하는 형식이다. 데이터 객체를 전달하기 위해 사람이 읽을 수 있는 텍스트를 사용하는 것이다. (자바스크립트)


XML : 특수한 목적을 갖는 마크업 언어를 만드는 데 사용되는 다목적 마크업 언어입니다.

 

Tripwire : 크래커가 침입하여 백도어를 만들어 놓거나 설정 파일을 변경했을 때 분석하는 도구이다. MD5, CRC-32, SHA 등의 알고리즘을 사용합니다.


Aide : Tripwire를 대신할 수 있는 도구로 파일의 무결성을 검사하는 데 사용합니다.


sXid : MD5 체크섬을 사용하여 suid, sgid파일을 탐색하여, 루트 키트가 설치되어 있는지 확인한다. Cron 작업형태로 수행하며, 자동으로 파일을 추적하고 경고합니다.


Claymore : 침입탐지 및 무결성 모니터링 도구로 크론 테이블을 이용하여, 정기적으로 파일 시스템의 변조 유무를 확인하고 변조되었을 때 관리자에게 메일로 통보해 주는 기능입니다.


Samhain : 시스템의 무결성을 점검하는 도구로 여러 시스템을 관리할 수 있는 툴을 제공한다. 모니터링 에이전트와 중앙 로그서버로 구성되어 있습니다.


Slipwire : 파일 시스템의 무결성을 검사하는 도구로, 파일의 SHA-1 hashes값을 비교하여 변경되었을 때 사용자에게 경고하는 기능을 가지고 있습니다.


Fcheck : 유닉스 파일 시스템의 변조 유무를 점검하기 위한 PERL script 도구로 syslog.console 등으로 관리자에게 파일 시스템 변화를 경보해 준다. Tripwire와 비슷한 도구지만 설치와 운영이 더 쉽습니다.

 

와이선 : 스마트 그리드와 같은 장거리 무선 통신을 사용하는 사물 인터넷 서비스를 위한 저전력 장거리 통신 기술.


NDN : 콘텐츠 그 자체의 정보와 라우터 기능만 가지고 데이터 전송을 하는 기술.


NGN : 유선망을 기반으로 하는 차세대 통신망으로, 유선망뿐만 아니라 이동 사용자도 목표로 하고 있습니다.


SDN : 네트워크를 컴퓨터처럼 모델링하여, 다양한 사용자가 각자의 소프트웨어들로 네트워킹을 가상화해서 통제하고 관리하는 네트워크입니다.

 

UWB : 짧은 거리에서 다량의 디지털 데이터를 낮은 전력으로 전송하기 위한 무선 기술입니다.


PICONET : 여러 개의 독립된 통신장치가 블루투스 기술이나 UWB 통신 기술을 사용하여 통신망 형성하는 것입니다.


WBAN : 웨어러블 형태의 센서나 기기를 무선으로 연결하는 개인 영역 네트워킹 기술입니다.


USN : 각종 센서로 수집한 정보를 무선으로 수집할 수 있도록 구성한 네트워크입니다.


SON : 주변 상황에 맞게 혼자서 망을 만들어 내는 네트워크를 말합니다.


ad-hoc network : 재난 지역과 같이 별도의 고정된 유선망을 세울 수 없는 곳에 모바일 호스트만을 사용하여 구성한 네트워크입니다.


네트워크 슬라이딩 : 3GPP를 포함한 여러 글로벌 이동통신 표준화 단체가 선정한 5G의 핵심기술입니다.

 

[블록 암호] - 대칭키
DES : 미국 표준으로 56비트 키를 사용합니다.
AES : DES의 보안 취약점을 대체하기 위해 고안된 미국 표준 방식으로 현재 표준 대칭키 암호화 기법입니다.
ARIA : SEED 이후로 나온 대한민국의 국가 암호 표준입니다.(AES와 동일)

[공개키 암호] - 비대칭키
RSA : 공개키 암호화 기법의 사실상 표준입니다. 매우 큰 수의 소인수분해는 매우 어렵다는 이론에 기반하였습니다.
ECC : RSA의 키 길이가 너무 길다는 것을 보완하기 위해 타원곡선 함수를 이용한 암호화 기법입니다.
DSS(DSA) : 디지털 서명 표준 인증서 서비스입니다.

 

테일러링 (Tailoring)
프로젝트 상황에 알맞게 정의된 소프트웨어 개발 방법론 절차, 사용기법 등을 수정하거나 보완하는 작업을 의미합니다.
내부적 요건 : 목표 환경 / 요구사항 / 프로젝트 규모 / 보유기술

외부적 요건 : 법적 제약사항 / 표준 품질 기준