본문 바로가기

ETC/자격증

[정보처리기사실기]용어 정리 3

반응형

- RCS(Revision Control System)
CVS와 달리 소스 파일의 수정을 한 사람만으로 제한하여 다수의 사람이 파일의 수정을 동시에 할 수 없도록 파일 잠금 방식으로 형상을 관리하는 도구

 

- Bitkeeper

SVN과 비슷한 중앙 통제 방식으로 대규모 프로젝트에서 빠른 속도를 내도록 개발된 형상 관리 도구

 

- Clear Case 복수 서버, 복수 클라이언트 구조이며 서버가 부족할 때 필요한 서버를 하나씩 추가하여 확장성을 기할 수 있음

 

- 모듈

그 자체로 하나의 완전한 기능을 수행할 수 있는 독립된 실체

 

- 응집도 유형
우연적 응집도 -> 논리적 응집도 -> 시간적 응집도 -> 절차적 응집도 -> 통신적 응집도 -> 순차적 응집도 -> 기능적 응집도 (왼쪽으로 오른쪽으로 갈수록 응집도가 높음)

 

- 결합도 유형
내용 결합도 -> 공통 결합도 -> 외부 결합도 -> 제어 결합도 -> 스탬프 결합도 -> 자료 결합도 (왼쪽으로 오른쪽으로 갈수록 결합도가 낮음)

 

- 응집도(Cohesion)
모듈의 독립성을 나타내는 정도

 

결합도(Coupling)
모듈 내부가 아닌 외부의 모듈과의 연관도 또는 모듈 간의 상호의존성

 

- Fan-In 어떤 모듈을 제어(호출)하는 모듈의 수


- Fan-Out 어떤 모듈에 의해 제어되는 모듈의 수

 

- 화이트박스 테스트

응용 프로그램의 내부 구조와 동작을 검사하는 소프트웨어 테스트 방식, 소스 코드를 보면서 테스트 케이스를 다양하게 만들어 테스트를 수행

 

- 메서드 기반 테스트

공통 모듈의 외부에 공개된 메서드 기반의 테스트, 메서드에 서로 다른 파라미터 값을 호출하면서 다양한 테스트를 수행

 

- 화면 기반 테스트

사용자용 화면이 있는 경우, 각각의 화면 단위로 단위 모듈을 개발 후에 화면에 직접 데이터를 입력하여 테스트를 수행

 

- 트리거

데이터베이스 시스템에서 삽입, 갱신, 삭제 등의 이벤트가 발생할 때마다 관련 작업이 자동으로 수행되는 절차형 SQL
옵티마이저 SQL을 가장 빠르고 효율적으로 수행할 최적의 처리경로를 생성해 주는 DBMS 내부의 핵심엔진

 

- APM(Application Performance Management)
안정적인 시스템 운영을 위해 부하량, 접속자 파악 및 장애진단 등을 목적으로 하는 성능 모니터링 도구

 

- 규칙기반 옵티마이저(RBO, Rule Based Optimizer)
통계 정보가 없는 상태에서 사전 등록된 규칙에 따라 질의 실행 계획을 선택하는 옵티마이저

 

- 비용기반 옵티마이저(Cost Based Optimizer)
통계 정보로부터 모든 접근 경로를 고려한 질의실행 계획을 선택하는 옵티마이저

 

- 루틴(Routine)
소프트웨어에서 특정 동작을 수행하는 일련의 코드로 기능을 가진 명령들의 모임

 

- 메인 루틴(Main Routine)
프로그램의 주요한 부분이며, 전체의 개략적인 동작 절차를 표시하도록 만들어진 루틴

 

- 서브 루틴(Subroutine)
메인 루틴에 의해 필요할 때마다 호출되는 루틴

 

- 백엔드(Back-End)
사용자와 만나지 않고 프론트엔드와 연동하여 핵심 로직을 처리하는 영역

 

- 프론트엔드(Front-End)
사용자의 화면에 나타나는 웹 화면 영역으로 웹 페이지를 그리는 기술

 

- 배치 프로그램(Batch Program)
사용자와의 상호작용 없이 일련의 작업들을 작업 단위로 묶어 정기적으로 반복 수행하거나 정해진 규칙에 따라 일괄 처리하는 방법

 

- 배치 스케줄러(Batch Scheduler)
일괄 처리를 위해 주기적으로 발생하거나 반복적으로 발생하는 작업을 지원하는 도구

 

- 배치 프로그램의 유형
    - 이벤트 배치 : 사전에 정의해 둔 조건 충족 시 자동으로 실행
    - 온디맨드 배치 : 사용자의 명시적 요구가 있을 때마다 실행
    - 정기 배치 : 정해진 시점(주로 야간)에 정기적으로 실행

 

- 스프링 배치(Spring Batch)
스프링 프레임워크의 DI, AOP, 서비스 추상화 등 스프링 프레임워크의 3대 요소를 모두 사용할 수 있는 대용량 처리를 제공하는 스케줄러 배치 애플리케이션

 

- 쿼츠 스케줄러(Quartz Scheduler)
스프링 프레임워크에 플러그인되어 수행하는 작업(Job)과 실행 스케줄을 정의하는 트리거를 분리하여 유연성을 제공하는 오픈 소스 기반 스케줄러

 

- SW 개발 보안
소스 코드 등에 존재하는 보안 취약점을 제거하고, 보안을 고려하여 기능을 설계 및 구현하는 등 소프트웨어 개발 과정에서 지켜야 할 일련의 보안 활동

 

- 기밀성(Confidentiality)(SW 개발 보안의 3대 요소)
인가되지 않은 개인 혹은 시스템 접근에 따른 정보 공개 및 노출을 차단하는 특성

 

- 무결성(Integrity)(SW 개발 보안의 3대 요소)
정당한 방법을 따르지 않고서는 데이터가 변경딜 수 없으며, 데이터의 정확성 및 완전성과 고의/악의로 변경되거나 훼손 또는 파괴되지 않음을 보장하는 특성

 

- 가용성(Availability)(SW 개발 보안의 3대 요소)
권한을 가진 사용자나 애플리케이션이 원하는 서비스를 지속해서 사용할 수 있도록 보장하는 특성

 

- 자산(Assets)(SW 개발 보안 용어)
조직의 데이터 또는 조직의 소유자가 가치를 부여한 대상 ex) 서버의 하드웨어. 기업의 중요 데이터

 

- 위협(Threat)(SW 개발 보안 용어)
조직이나 기업의 자산에 악영향을 끼칠 수 있는 사건이나 행위 ex) 해킹, 삭제, 자산의 불법적인 유출, 위/변조, 파손

 

- 취약점(Vulnerability)(SW 개발 보안 용어)
위협이 발생하기 위한 사전 조건으로 시스템의 정보 보증을 낮추는 데 사용되는 약점 ex) 평문 전송, 입력값 미검증, 비밀번호를 공유

 

- 위험(Risk)(SW 개발 보안 용어)
위협이 취약점을 이용하여 조직의 자산 손실 피해를 가져올 가능성

 

- DoS(Denial of Service)
시스템을 악의적으로 공격해서 해당 시스템의 자원을 부족하게 하여 원래 의도된 용도로 사용하지 못하게 하는 공격

 

- SYN 플러딩(SYN Flooding)
서버의 동시 가용 사용자 수를 SYN 패킷만 보내 점유하여 다른 사용자가 서버를 사용 불가능하게 하는 공격

 

- UDP 플러딩(UDP Flooding)
대량의 UDP 패킷을 만들어 임의의 포트 번호로 전송하여 응답 메시지를 생성하게 하여 지속해서 자원을 고갈시키는 공격

 

- 죽음의 핑(PoD; Ping of Death)
ICMP 패킷을 정상적인 크기보다 아주 크게 만들어 전송하면 다수의 IP 단편화가 발생하고, 수신 측에서는 단편화된 패킷을 처리하는 과정에서 많은 부하가 발생하거나, 재조합 버퍼의 오버플로우가 발생하여 정상적인 서비스를 하지 못하도록 하는 공격기법

 

- 랜드 어택(Land Attack)
출발지 IP와 목적지 IP를 같은 패킷 주소로 만들어 보냄으로써 수신자가 자기 자신에게 응답을 보내게 하여 시스템의 가용성을 침해하는 공격기법

 

- 티어 드롭(Tear Drop)
IP 패킷의 재조합 과정에서 잘못된 Fragment Offset 정보로 인해 수신시스템이 문제를 발생하도록 만드는 DoS 공격
봉크(Bonk) / 보잉크(Boink프) 로토콜의 오류 제어를 이용한 공격기법으로서 시스템의 패킷 재전송과 재조립이 과부하를 유발

 

- DDoS(Distributed DoS)
DoS의 또 다른 형태로 여러 대의 공격자를 분산 배치하여 동시에 동작하게 함으로써 특정 사이트를 공격하는 기법

 

- HTTP GET 플러딩

과도한 Get 메시지를 이용하여 웹 서버의 과부하를 유발시키는 공격

 

- RUDY

요청 헤더의 Content-Length를 비정상적으로 크게 설정하여 메시지 바디 부분을 매우 소량으로 보내 계속 연결상태를 유지시키는 공격

 

- Slow HTTP Read DoS
TCP 윈도 크기와 데이터 처리율을 감소시킨 상태에서 다수 HTTP 패킷을 지속적으로 전송하여 대상 웹 서버의 연겨상태가 장시간 지속, 연결자원을 소진시키는 서비스 거부 공격

 

- Hulk DoS

공격자가 공격대상 웹 사이트 웹 페이지 주소를 지속적으로 변경하면서 다량으로 GET 요청을 발생시키는 서비스 거부 공격

 

- 네트워크 스캐너(Scanner), 스니퍼(Sniffer)
네트워크 하드웨어 및 소프트웨어 구성의 취약점 파악을 위해 공격자가 취약점을 탐색하는 공격 도구

 

- 사전 크래킹
시스템 또는 서비스의 ID와 패스워드를 크랙하기 위해서 ID와 패스워드가 될 가능성이 있는 단어를 파일로 만들어 놓고 이 파일의 단어를 대입하여 크랙하는 공격기법

 

- 무차별 크래킹(Brute Force)
패스워드로 사용될 수 있는 영문자(대소문자), 숫자, 특수문자 등을 무작위로 패스워드 자리에 대입하여 패스워드를 알아내는 공격기법

 

- 패스워드 하이브리드 공격(Password Hybrid Attack)
사전 공격과 무차별 대입공격을 결합하여 공격하는 기법

 

- 레인보우 테이블 공격(Rainbow Table Attack)
패스워드별로 해시 값을 미리 생성해서 테이블에 모아 놓고, 크래킹하고자 하는 해시 값을 테이블에서 검색해서 역으로 패스워드를 찾는 공격기법

 

- IP 스푸핑(IP Spoofing)
침입자가 인증된 컴퓨팅 시스템인 것처럼 속여서 타깃 시스템의 정보를 빼내기 위해서 본인의 패킷 헤더를 인증된 호스트의 IP 어드레스로 위조하여 타깃에 전송하는 공격기법

 

- ARP 스푸핑(ARP Spoofing)
공격자가 특정 호스트의 MAC 주소를 자신의 MAC 주소로 위조한 ARP Reply를 만들어 희생자에게 지속적으로 전송하여 희생자의 ARP Cache Table에 특정 호스트의 MAC 정보를 공격자의 MAC 정보로 변경, 희생자로부터 특정 호스트로 나가는 패킷을 공격자가 스니핑하는 공격기법

 

- ICMP Redirect 공격 3계층에서 스니핑 시스템을 네트워크에 존재하는 또 다른 라우터라고 알림으로써 패킷의 흐름을 바꾸는 공격기법

 

- 트로이 목마(Trojan Horses)
악성 루틴이 숨어 있는 프로그램으로 겉보기에는 정상적인 프로그램아로 보이지만 실행하면 악성 코드를 실행하는 프로그램

 

- 버퍼 오버플로우(Buffer Overflow)
메모리에 할당된 버퍼 크기를 초과하는 양의 데이터를 입력하여 이로 인해 프로세스의 흐름을 변경시켜서 악성 코드를 실행시키는 공격기법

 

- 스택가드(Stackguard)
카나리(Canary)라고 불리는 무결성 체크용 값을 복귀 주소와 변수 사이에 삽입해 두고, 버퍼 오버플로우 발생 시 카나리 값을 체크, 변할 경우 복귀 주소를 호출하지 않는 방식으로 대응

 

- 스택쉴드(Stack Shield)
함수 시작 시 복귀 주소를 Global RET라는 특수 스택에 저장해 두고, 함수 종료 시 저장된 값과 스택의 RET 값을 비교해서 다를 경우 오버플로우로 간주하고 프로그램 실행을 중단

 

- ASLR(Address Space Layout Randomization)
메모리 공격을 방어하기 위해 주소 공간 배치를 난수화하고, 실행 시마다 메모리 주소를 변경시켜 버퍼 오버플로우를 통한 특정 주소 호출을 차단


- 백도어(Backdoor)
어떤 제품이나 컴퓨터 시스템, 암호시스템 혹은 알고리즘에서 정상적인 인증 절차를 우회하는 기법

 

- 포맷 스트링 공격(Format String Attack)
포맷 스트링을 인자로 하는 함수의 취약점을 이용한 공격으로 외부로부터 입력된 값을 검증하지 않고 입출력 함수의 포맷 스트링을 그대로 사용하는 경우 발생하는 취약점 공격기법

 

- 레이스 컨디션 공격(Race Condition Attack)
실행되는 프로세스가 임시파일을 만드는 경우 악의적인 프로그램을 통해 그 프로세스의 실행 중에 끼얻ㄹ어 임시파일을 심볼릭 링크하여 악의적인 행위를 수행하게 하는 공격기법

 

- 키로거 공격(Key Logger Attack)
컴퓨터 사용자의 키보드 움직임을 탐지해서 저장하고, ID나 패스워드, 계좌 번호, 카드 번호 등과 같은 개인의 중요한 정보를 몰래 빼가는 해킹 공격

 

- 루트킷(Rootkit)
시스템 침입 후 침입 사실을 숨긴 채 차후의 침입을 위한 백도어, 트로이 목마 설치, 원격 접근, 내부 사용 흔적 삭제, 관리자 권한 획득 등 주로 불법적인 해킹에 사용되는 기능을 제공하는 프로그램의 모음

 

- 스피어 피싱(Spear Phishing)
사회 공학의 한 기법으로, 특정 대상을 선정한 후 그 대상에게 일반적인 이메일로 위장한 메일을 지속적으로 발송하여, 발송 메일의 본문 링크나 첨부된 파일을 클릭하도록 유도하여 사용자의 개인정보를 탈취하는 공격기법

 

- 스미싱(Smishing)
문자메시지를 이용하여 신뢰할 수 있는 사람 또는 기업이 보낸 것처럼 가장하여 개인 비밀정보를 요구하거나 휴대폰 소액 결제를 유도하는 피싱 공격 (SMS와 피싱의 합성어)

 

- 큐싱(Qshing)
스마트폰을 이용하여 금융 업무를 처리하는 사용자에게 인증 등이 필요한 것처럼 속여 QR 코드를 통해 악성 앱을 내려받도록 유도, 금융 정보를 빼내는 피싱 공격

 

- 봇넷(Botnet)
악성 프로그램에 감염되어 악의적인 의도로 사용될 수 있는 다수의 컴퓨터들이 네트워크로 연결된 형태

 

- APT 공격(Advanced Persistent Threat)
특정 타깃을 목표로 하여 다양한 수단을 통한 지속적이고 지능적인 맞춤형 공격기법

 

- 공급망 공격(Supply Chain Attack)
소프트웨어 개발사의 네트워크에 침투하여 소스 코드의 수정 등을 통해 악의적인 코드를 삽입하거나 배포 서버에 접근하여 악의적인 파일로 변경하는 방식을 통해 사용자 PC에 소프트웨어를 설치 또는 업데이트 시에 자동적으로 감염되도록 하는 공격기법

 

- 제로데이 공격(Zero Day Attack)
보안 취약점이 발견되어 널리 공표되기 전에 해당 취약점을 악용하여 이루어지는 보안 공격기법

 

- 웜(Worm)
스스로를 복제하여 네트워크 등의 연결을 통하여 전파하는 악성 소프트웨어 컴퓨터 프로그램

 

- 악성 봇(Malicious Bot)
스스로 실행되지 못하고, 해커의 명령에 의해 원격에서 제어 또는 실행이 가능한 프로그램 혹은 코드

 

- 사이버 킬체인(Cyber Kill Chain)
록히드 마틴의 사이버 킬체인은 공격형 방위시스템으로 지능적, 지속적 사이버 공격에 대해 7단계 프로세스별 공격분석 및 대응을 체계화한 APT 공격 방어 분석 모델

 

- 랜섬웨어(Ransomware)
악성 코드의 한 종류로 감염된 시스템의 파일들(문서, 사진, 동영상 등)을 암호화하여 복호화할 수 없도록 하고, 피해자로 하여금 암호돠된 파일을 인질처럼 잡고 몸값을 요구하는 악성 소프트웨어

 

- 이블 트윈 공격(Evil Twin)
무선 아이파이 피싱 기법으로 공격자는 합법적인 와이파이 제공자처럼 행세하며 노트북이나 휴대 전화로 핫스팟에 연결한 무선 사용자들의 정보를 탈취하는 무선 네트워크 공격기법

 

- 난독화(Obfuscation)
코드의 가독성을 낮춰 역공학에 대한 대비를 하기 위해서 프로그램 코드의 일부 또는 전체를 변경하는 기법

 

- Tripwire

크래커가 침입하여 시스템에 백도어를 만들어 놓거나 설정 파일을 변경해 놓았을 때 이러한 사실을 알 수 있게 분석하는 도구

 

- Ping

인터넷으로 접속하려는 원격 호스트가 정상적으로 운영되고 있는지를 확인하는 진단 목적으로 사용하는 명령어

 

- Tcpdump 네트워크 인터페이스를 거치는 패킷의 내용을 출력해 주는 프로그램

 

- DES(Data Encryption Standard)
1975년 미국의 연방 표준국(NIST)에서 발표한 대칭 키 기반의 블록 암호화 알고리즘

 

- SEED 1999년 국내 한국인터넷진흥원(KISA)이 개발한 블록 암호화 알고리즘

 

- AES(Advanced Encryption Standard)
2001년 미국 표준 기술 연구소(NIST)에서 발표한 블록 암호화 알고리즘

 

- ARIA(Academny, Research Institute, Agency)

2004년 국가정보원과 산학연구협회가 개발한 블록 암호화 알고리즘

 

- IDEA(International Data Encryption Algorithm)
DES를 대체하기 위해 스위스 연방기술 기관에서 개발한 블록 암호화 알고리즘

 

- LFSR(Linear Feedback Shift Register)
시프트 레지스터의 일종으로, 레지스터에 입력되는 값이 이전 상태 값들의 선형 함수로 계산되는 구조로 되어 있는 스트림 암호화 알고리즘


- 디피-헬만(Diffie-Hellman)
최초의 공개키 알고리즘으로 W.Diffie와 M.Hellman이 1976년에 고안한 알고리즘으로서 유한 필드 내에서 이산대수의 계산이 어려운 문제를 기본 원리로 하고 있음

 

- RSA(Rivest-Shamir-Adleman)
1977년 3명의 MIT 수학 교수(Rivest, Shamir, Adleman)가 고안한 큰 인수의 곱을 소인수 분해하는 수학적 알고리즘을 이용하는 공개키 암호화 알고리즘

 

- ECC(Elliptic Curve Cryptography)
1985년 코블리치와 밀러가 RSA 암호 방식에 대한 대안으로 처음 제안

 

- ElGamal

T. ElGamal이 1984년에 제안한 공개키 알고리즘

 

- MD5(Message-Digest algorithm 5)
1991년 R.rivest가 MD4를 개선한 암호화 알고리즘으로 프로그램이나 파일의 무결성 검사에 사용

 

- SHA-1(Secure Hash Algorithm)
1993년 NSA에서 미 정부 표준으로 지정되었고, DSA(Digital Signature Algorithm)에서 사용

 

- SHA-256/384/512(Secure Hash Algorithm)
SHA(Secure Hash Algorithm) 알고리즘의 한 종류로서 256비트의 해시값을 생성하는 해시함수

 

- HAS-160

국내 표준 서명 알고리즘 KCDSA(Korean Certificate-based Digital Signature Algorithm)를 위하여 개발된 해시함수

 

- BSIMM(Building Security In Maturity Model)
미국 국토안보국의 지원을 받아 수행된 소프트웨어 보증 프로젝트의 결과물 중 하나

 

- Open SAMM(Software Assurance Maturity Model)
OWASP에서 개발한 개방형 보완 프레임워크

 

- Seven TouchPoints
실무적으로 검증된 개발 보안 방법론 중 하나로써 SW 보안의 모범 사례를 SDLC(Software Development Life Cycle)에 통합한 소프트웨어 개발 보안 생명주기 방법론

 

- MS SDL(Security Development Lifecycle)
마이크로소프트사가 2004년 이후 자사의 소프트웨어 개발에 의무적으로 적용하도록 고안한 보안강화 프레임워크

 

- OWASP CLASP
개념 관점, 역할 기반 관점, 활동평가 관점, 활동구현 관점, 취약성 관점 등의 활동중심, 역할 기반의 프로세스로 구성된 보안 프레임워크로 이미 운영중인 시스템에 적용하기 쉬운 보안 개발방법론

 

- 시큐어 코딩
설계 및 구현단계에서 해킹 등의 공격을 유발할 가능성이 있는 잠재적인 보안 취약점을 사전에 제거하고, 외부 공격으로부터 안전한 소프트웨어를 개발하는 기법


- XSS(Cross Site Script)
검증되지 않은 외부 입력 데이터가 포함된 웹페이지가 전송되는 경우, 사용자가 해당 웹페이지를 열람함으로써 웹페이지에 포함된 부적절한 스크립트가 실행되는 공격

 

- 사이트 간 요청 위조(CSRF; Cross-Site Request Forgery)
사용자가 자신의 의지와는 무관하게 공격자가 의도한 행위를 특정 웹사이트에 요청하게 하는 공격

 

- SQL 삽입(SQL Injection)
응용 프로그램의 보안 취약점을 이용해서 악의적인 SQL 구문을 삽입, 실행시켜서 데이터베이스의 접근을 통해 정보를 탈취하거나 조작 등의 행위를 하는 공격기법

반응형