정처기 실기 정리

라멘커비·2023년 7월 3일

CS

목록 보기
2/4

정처기 실기 공부하며 암기가 잘 안 되는 부분들 정리.🌱

서비스 지향 아키텍처(SOA; Service Oriented Architecture)

  • 서비스 지향 아키텍처는 프로세스 수행을 지원하는 정보 시스템의 구현을 위해 가장 선진화된 소프트웨어 아키텍처
  • 서비스라고 정의되는 분할된 애플리케이션 조각들을 Loosely-coupled 하게 연결해 하나의 완성된 Application을 구현하기 위한 아키텍처이다.

피코넷(PICONET)

  • 여러 개의 독립된 통신 장치가 블루투스 기술이나 UWB 통신 기술을 사용하여 통신망을 형성하는 무선 네트워크 기술
  • 네트워크 구성하는 장비 간에 사전에 네트워크의 정의와 계획이 없이 상황에 따라 조정 프로토콜에 의해 마스터와 슬레이브 역할을 하면서 네트워크 형성
  • 주로 수십 미터 이내의 좁은 공간에서 네트워크를 형성하는 점과 정지 또는 이동하고 있는 장치를 모두 포함하는 특징을 가짐

지그비(Zigbee)

  • 저속 전송 속도를 갖는 홈오토메이션 및 데이터 네트워크를 위한 표준 기술
  • 버튼 하나로 하나의 동작을 잡아 집안 어느 곳에서나 전등 제어 및 홈 보안 시스템 VCR on/off 등을 할 수 있고, 인터넷을 통한 전화 접속으로 홈오토메이션을 더욱 편리하게 이용하려는 것에서부터 출발한 기술
  • IEEE 802.15 표준 기반, 메시 네트워크 방식 사용

TCP 세션 하이재킹 (세션 하이재킹)

  • TCP의 세션 관리 취약점을 이용한 공격 기법
  • TCP Sequence number의 보안상 문제점 때문에 발생

과정

  • Victim과 Server 사이 패킷 스니핑, 공격자는 데이터 전송 중인 상태를 강제로 비동기화 상태로 만듦
  • 스니핑하여 획득한 Client Sequence Number를 이용해 공격
  • 공격자는 Server에게 RST 패킷 날리고, 공격자의 새로운 Sequence Number로 Server와 세션을 맺어 인증 우회, Victim 권한으로 Server 접근
  • 비동기화 상태로 패킷이 유실되어 재전송 패킷 증가
  • 아 과정에서 ACK Storm 증가, NW 부하 증가

대응 방법

  • 대응 : 비동기화 상태 탐지, ACK 패킷 비율 모니터링, 특정 세션에서 패킷 유실 및 재전송이 증가되는 것을 탐지

병행 제어 기법

로 낙타다

로킹(Locking)

  • DB 일관성과 무결성 유지 위해 트랜잭션의 순차적 진행을 보장하는 직렬화 기법
  • 로킹단위 작아지면 데이터베이스 공유도 증가, 로킹 오버헤드 증가

낙관적 검증(Optimistic Validation)

  • 트랜잭션에 아무런 검증 없이 수행 후 트랜잭션 종료 시 검증을 수행하여 데이터베이스에 반영하는 기법

타임 스탬프 순서(Time Stamp Ordering)

  • 트랜잭션과 트랜잭션이 읽거나 갱신한 데이터에 대해 트랜잭션이 실행을 시작하기 전에 타음 스탬프를 부여하여 부여된 시간에 따라 트랜잭션 작업을 수행하는 기법

다중버전 동시성 제어(MVCC;Multi Version Concurrency Control)

  • 트랜잭션의 타임 스탬프와 접근하려는 데이터의 타임 스탬프를 비교하여 직렬가능성이 보장되는 적절한 버전을 선택하여 접근하도록 하는 방법

병행 제어 미보장 시 문제점

  • 갱신 손실(Lost Update) : 먼저 실행된 트랜잭션 결과를 나중에 실행된 트랜잭션이 덮어쓸 때 발생하는 오류
  • 현황 파악오류(Dirty Read) : 트랜잭션의 중간 수행 결과를 다른 트랜잭션이 참조하여 발생하는 오류
  • 모순성(Inconsistency) : 두 트랜잭션 동시 실행되어 데이터베이스의 관성이 결여되는 오류
  • 연쇄복귀(Cadcading Rollback) : 복수의 트랜잭션이 데이터 공유 시 특정 트랜잭션이 처리를 취소할 경우 트랜잭션이 처리한 곳의 부분을 취소하지 못하는 오류

스크럼(SCRUM)

매일 정해진 시간, 장소에서 짧은 시간의 개발을 하는 팀을 위한 프로젝트 관리 중심 방법론

  • 주요 요소 : 백로그, 스프린트, 스크럼 미팅, 스크럼 마스터, 스프린트 회고, 번 다운 차트
    • 백로그 : 개발해야 할 기능 또는 제품에서 요구하는 기능과 우선순위 즉, 완성하기 위해 해야 할 일
    • 번 다운 차트 : 백로그 대비 시간을 그래픽적으로 표현한 차트

객체지향 설계 원칙(SOLID)

  • 단일 책임 원칙 Single Responsibility Principle
    : 하나의 클래스는 하나의 목적
  • 개방 폐쇄 원칙 Open Closed Principle
    : SW 구성요소는 확장에는 열려 있고, 변경에는 닫혀 있어야 한다는 원칙,
    기존 코드 변경하지 않고 기능을 추가할 수 있어야.
  • 리스코프 치환의 원칙 Liskov Substitution Principle
    : 서브 타입은 어디서나 상위 타입으로 교체할 수 있어야 한다는 원칙,
    일반화 관게에서 자식 클래스는 부모 클래스 기능은 수행할 수 있어야.
  • 인터페이스 분리의 원칙 Interface Segregation Principle
    : 한 클래스는 자신이 사용하지 않는 인터페이스는 구현하지 말아야 한다는 원칙
  • 의존성 역전의 원칙 Dependency Inversion Principle
    : 실제 사용 관계는 바꾸지 않고 추상을 매개로 메시지 주고받음으로써 관계 느슨하게 만드는 원칙, 의존 관계 맺을 때 변화 거의 없는 것에 의존하라는 원칙

라우팅 알고리즘 유형

거리 벡터 알고리즘(Distance Vector Algorithm)

  • 인접 라우터와 정보를 공유하여 목적지까지의 거리와 방향을 결정하는 라우팅 프로토콜 알고리즘
  • 벨판-포드(Bellman-Ford) 알고리즘 사용
  • 각 라우터가 업데이트될 경우마다 전체 라우팅 테이블을 보내라고 요청하지만 수신된 경로 비용 정보는 이웃 라우터에게만 보내짐
  • 링크 상태 정보를 모든 라우터에 전달하여 최단 경로 트리를 구성하는 라오팅 프로토콜 알고리즘
  • 다익스트라(Dijkstra) 알고리즘 사용
  • 네트워크를 일관성 있게 파악할 수 있으나 거리 벡터 알고리즘에 비하여 계산이 더 복잡하고 트래픽을 광범위한 범위까지 전달

라우팅 프로토콜

대표적인 라우팅 프로토콜 : RIP, OSPF, BGP

RIP(Routing Information Protocol)

  • AS(자율 시스템)내에서 사용하는 거리 벡터 알고리즘에 기초하여 개발된 내부 라우팅 프로토콜
  • 거리 벡터 라우팅 기반 메트린(Metric) 정보를 인접 라우터와 주기적으로 교환하여 라우팅 테이블을 갱신
  • 라우팅 테이블을 구성/계산하는 데 Bellman-Ford 알고리즘 사용하는 내부 라우팅 프로토콜
  • 최대 홉 수를 15개로 제한
  • 사용 포트로는 UDP 사용 (UDP 포트 번호 520)
  • 30초마다 전체 라우팅 정보를 브로드캐스팅

OSPF(Open Shortest Path First)

  • 규모 크고 복잡한 TCP/IP 네트워크에서 RIP의 단점 개선위해 자신을 기준으로 링크 상태 알고리즘을 적용해 최단 경로를 찾는 라우팅 프로토콜
  • 링크 상태 라우팅 기반 메트릭(Metric) 정보를 한 지역내(Area) 모든 라우터에 변경이 발생했을 때만 보냄(Flooding)
  • 라우팅 테이블 구성/계산하는 데 다익스트라(Dijkstra) 알고리즘 사용하는 내부 라우팅 프로토콜
  • 최소 지연, 최대 처리량 등 관리자가 라우팅 메트릭 지정
  • AS를 지역(Area)으로 나누어 라우팅을 효과적으로 관리 가능
  • 홉 카운트에 제한 없음

BGP(Border Gateway Protocol)

  • 자치 시스템(AS) 상호 간(Inter-AS 또는 Inter-Domain)에 경로 정보를 교환하기 위한 라우팅 프로토콜
  • 변경 발생 시 대상까지의 가장 짧은 경로를 경로 벡터(Path Vector) 알고리즘을 통해 선정
  • TCP 연결(port 179)을 통해 자치 시스템(AS)으로 라우팅 정보를 신뢰성 있게 전달
  • ISP 사업자들 상호 간에 주로 사용되는 라우팅 프로토콜
  • 순환을 피할 수 있도록 목적지까지 가는 경로 정보를 제공
  • 라우팅 비용(CPU 부하)이 크고, 라우팅 테이블의 크기가 커서 메모리 사용량 많음

해킹에 사용되는 공격용 도구, 보안 공격 관련 용어

루트킷 Rootkit

  • 시스템 침입 후 침입 사실 숨긴 채 차우의 침입을 위한 백도어, 트로이 목마 설치, 원격 접근, 내부사용 흔적 삭제, 관리자 권한 획득 등 주로 불법적인 해킹에 사용되는 기능을 제공하는 프로그램 모음
  • 해커가 시스템의 민감한 정보를 수집하거나, 네트워크상의 다른 시스템을 공격 또는 추적 회피를 위한 중간 지점으로 이용하더라도 로그를 지워버릴 수 있어 탐지하기 어려운 도구

크라임웨어 Crimeware

  • 온라인상에서 범죄와 같은 불법적인 행위를 수행하기 위해 제작된 컴퓨터 프로그램, 공격용 툴 킷으로 불림
  • 악성 코드로 구성된 프로그램이 사용자를 속여 PC에 설치되면 불법적으로 정보를 수집하거나 PC의 자원을 사용하여 원하는 대상을 공격하는 용도로 사용
  • 키로거, 스파이웨어, 브라우저 하이잭커 등이 속함

포맷 스트링 공격

  • 포맷 스트링을 인자로 하는 함수의 취약점 이용 공격
  • 외부에서 입력된 값을 검증하지 않고 입출력 함수의 포맷 스트링을 그대로 사용하는 경우 발생하는 취약점 공격 기법

레이스 컨디션 공격

  • 실행되는 프로세스가 임시파일을 만드는 경우
  • 악의적인 프로그램을 통해 프로세스 실행 중에 끼어들어 임시파일을 심볼릭 링크하여 악의적 행위 수행하게 하는 공격 기법

키로거 공격

  • 컴퓨터 사용자의 키보드 움직임 탐지해서 저장
  • ID나 패스워드, 계좌 번호, 카드 번호 등의 개인 정보를 몰래 빼가는 해킹 공격

그레이웨어

  • 합법적 프로그램이지만 사용자를 괴롭히거나 위험한 상황에 빠뜨릴 수 있는 프로그램
  • 스파이웨어, 애드웨어, 장난 프로그래마, 원격 액세스 도구 등을 총칭

공급망 공격

  • SW 개발사의 네트워크에 침투해 소스 코드의 수정 등으로 악의적인 코드를 삽입하거나
  • 배포 서버에 접근해 악의적인 파일로 변경하는 방식
  • 사용자 PC에 SW 설미 또는 업데이트 시에 자동 감염되는 공격 기법

이블 트윈(Evil Twin) 공격

  • 무선 Wifi 피싱 기법
  • 핫스팟에 연결한 무선 사용자들의 정보 탈취하는 무선 네트워크 공격 기법

난독화

  • 역공학에 대비하기 위해 코드의 가독성을 일부러 낮추는 기법

랜섬웨어

  • 감염된 시스템의 파일들을 암호화하여 현금이나 코인을 받고 복호화해주는 범죄행위

사이버 킬체인

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

  • 스스로 복제하여 네트워크 등의 연결을 통해 전파하는 악성 소프트웨어 컴퓨터 프로그램

제로데이 공격

  • 보안 취약점이 발견되어 널리 공표되기 전에 해당 취약점을 악용하는 보안 공격 기법

애플리케이션에 대한 DDoS 공격

Slowris

  • HTTP GET 메서드를 사용해 헤더의 최종 끝을 알리는 문자열의 일부만 전송해 대상 웹 서버와 연결 상태를 장시간 지속시키고 연결 자원을 모두 소진시키는 서비스 거부 공격

RUDY

  • 요청 헤어의 Content-length를 비정상적으로 크게 설정하고 메시지 바디 부분을 소량으로 보내 계속 연결 상태 유지시키는 공격 기법

Slow Read Attack

  • TCP 윈도 크기와 데이터 처리율 감소시킨 상태에서(Zero Window Packet)
  • 다수 HTTP 패킷을 지속적으로 전송하여 연결 상태 장시간 지속, 연결 자원 소진시키는 서비스 거부 공격

네트워크 공격

IP 스푸핑

  • 침입자가 인증된 시스템으로 속여 자신의 패킷 헤더를 인증된 호스트의 IP로 위조하여 전송

ARP 스푸핑

  • ARP 메시지를 이용해 상대방의 데이터 패킷을 중간에서 가로챔
  • MAC주소를 다른 컴퓨터의 MAC주소인 것처럼 속임

ICMP Redirect 공격

  • ICMP Redirect 메시지를 이용해 특정 목적지로 가는 패킷을 공격자가 스니핑하는 공격 방법

트로이 목마

  • 겉으로 정상적인 프로그램으로 보이지만 실행하면 악성코드를 실행
  • 악성 루틴이 숨어있는 프로그램

개발환경 인프라 구성 방식

온프레미스(On-Premise) 방식

  • 외부 인터넷망 차단된 상태에서 인트라넷 망만을 활용하여 개발환경 구축
  • 데이터와 정보의 외부 유출 민감할 경우 해당 장비를 자체 구매하고 특정 공간에 개발환경 구축

클라우드(Cloud) 방식

  • 아마존, 구글, 마이크로소프트 등 클라우드 공급 서비스를 하는 회사들의 서비스를 임대하여 개발환경을 구축하는 방식
  • 해당 장비를 초기에 구매하지 않기 때문에 개발환경 투자비용이 적고 구축 시간 빠름

하이브리드(Hybrid) 방식

  • 온프레미스와 클라우드 혼용 방식

분석 자동화 도구 CASE도구의 유형

상위 CASE(Upper CASE)

  • 계획 수립, 요구분석, 기본설계 단계를 다이어그램으로 표현
  • 모델들 사이의 모순 검사 및 모델의 오류 검증, 일관성 검증 지원
  • 자료 흐름도 프로토타이핑 작성 지원 및 UI 설계 지원

하위 CASE(Lower CASE)

  • 구문 중심 편집 및 정적, 동적 테스트 지원
  • 시스템 명세서 생성 및 소스 코드 생성 지원

입력 데이터 검증 및 표현에 대한 취약점

XSS(Cross Site Scripting)

  • 검증되지 않은 외부 입력 데이터가 포함된 웹 페이지가 전송되는 경우, 사용자가 해당 웹 열람시 웹 페이지에 포함된 부적절한 스크립트가 실행되는 공격

사이트 간 요청 위조(CSRF; Cross-Site Request Forgery)

  • 사용자가 자신의 의지와 무관하게 공격자가 의도한 행위를 특정 웹사이트에 요청하게 하는 공격

SQL 삽입(SQL Injection)

  • 응용 프로그램의 보안 취약점을 이요해 악의적인 SQL 구문을 삽입, 실행시켜 DB의 접근을 통해 정보를 탈취하거나 조작 등의 행위를 하는 공격 기법
  • Blind SQL Injection, Error-Based SQL Injection ...

HIPO 차트 종류

  • 가시적 도표 : 시스템 전체적 기능과 흐름 보여주는 계층(Tree) 구조도
  • 총체적 도표 : 프로그램 구성 기능을 기술한 것, 입력|처리|출력에 대한 전반적 정보 제공 도표
  • 세부적 도표 : 총체적 도표에 표시된 기능을 구성하는 기본 요소들 상세히 기술하는 도표

회복 기법 종류

회로체그 : 복기법(그기반, 크포인트, 림자페이징)

로그 기반 회복 기법

  • 지연 갱신 회복 기법 : 트랜잭션 완료 전까지 기록하지 X
  • 즉각 갱신 회복 기법 : 트랜잭션 수행 중 갱신 결과를 바로 DB에 반영

체크 포인트 회복 기법

  • 장애 발생 시 검사점 이후에 처리된 트랜잭션에 대해서만 장애 발생 이전 상태로 복원

그림자 페이징 회복 기법

  • 데이터베이스 트랜잭션 수행 시 복제본을 생성하여 장애시 이를 이용해 복구

DAO, VO, DTO

  • DAO : 특정 타입의 데이터베이스에 추상 인터페이스를 제공하는 객체, 세부내용 노출 없이 데이터를 조작하는 객체, 접근 목적
  • VO : 불변 객체, (DTO와 달리) 고정 클래스를 가지는 객체, DTO와 같은 개념이지만 readonly속성
  • DTO : 프로세스 사이에서 데이터를 전송하는 객체, 데이터 저장|회수 외에 다른 기능 없는 객체

메모리 단편화 - 외부 단편화 해결 기법 3가지

  • 버디 메모리 할당 : 요청한 프로세스 크기에 가장 알맞은 크기 할당하기 위해 메모리를 2n 크기로 분할하여 할당하는 기법
  • 통합 : 인접한 단편화 영역 찾아 하나로 통합하는 기법
  • 압축 : 메모리의 모든 단편화 영역을 하나로 압축하는 기법

IT 업무 프로세스 관련 용어

ITSM(IT Service Management)

  • 사용자가 만족할 수 있는 서비스를 제공하고 지속적 관리위해 서비스 품질을 유지 및 증진시키기 위한 일련의 활동
  • 기업 내의 기존 정보통신 관리 역할을 서비스 관점으로 바꿔서 고객중심의 IT 서비스를 관리하는 기법

SLA(Service Level Agreement)

  • 고객과 서비스 제공자 간 계약인 서비스 수준 관리
  • 서비스 수준을 측정할 수 있는 세부 서비스 요소(SLO:Service Level Object)들이 포함됨
profile
일단 시작해보자

0개의 댓글