Secure SDLC
- SDLC에 보안 강화를 위한 프로세스를 포함한 것
- SECURE SDLC의 방법론
- CLASP : SDLC의 초기 단계에서 보안을 강화하기 위해 개발된 방법론
- SDL : 마이크로소프트 사에서 안전한 소프트웨어 개발을 위해 기존의 SDLC를 개선한 방법론
- SEVEN TOUCHPOINTS : 소프트웨어 보안의 모범사례를 SDLC에 통합한 방법론
소프트웨어 개발 보안 요소
- 기밀성, 무결성, 가용성을 보안의 3대요소라 한다.
- 기밀성 : 시스템 내의 정보와 자원은 인가된 사용자에게만 접근이 허용
- 무결성 : 시스템 내의 정보는 오직 인가된 사용자만 수정 가능
- 가용성 : 인가받은 사용자는 시스템 내의 정보와 자원을 언제라도 사용 가능
- 인증 : 시스템 내의 정보와 자원을 사용하려는 사용자가 합법적인 사용자인지 확인하는 모든 행위
- 패스워드, 인증용 카드, 지문검사
- 부인방지 : 데이터를 송수신한 자가 송수신 사실을 부인할 수 없도록 송수신 증거를 제공한다
시큐어 코딩
보안 요소들을 고려하며 코딩하는 것
세션 통제 관련 용어
- 세션 : 서버와 클라이언트의 연결
- 세션 통제 : 세션의 연결과 연결로 인해 발생하는 정보 관리
- 세션ID(SESSION ID) : 서버가 클라이언트를 구분하기 위해 부여하는 키(KEY)
- 스레드(THREAD) : 프로세스 내 작업 단위, 시스템 자원 할당 받아 실행하는 프로그램 단위
- 다중 스레드 : 두개 이상 스레드가 생성되어 동시 처리되는 다중 작업
- URL REWRITE : 쿠키를 사용할 수 없는 환경에서 세션ID 전달을 위해 URL에 세션ID를 포함시키는 것
입력 데이터 검증 및 표현 관련 용어
- 입력 데이터로 인해 발생하는 문제들을 예방하기 위해 구현 단계에서 점검해야하는 보안 점검 항목
- 경로 순회 : 경로를 탐색할 때 사용하는 '/', '' , '..' 등의 기호를 악용해서 허가되지 않은 파일에 접근하는 방식
- 스크립트 : 소프트웨어 수행에 필요한 처리 절차가 기록된 텍스트, 대표적인 스크립트 파일의 확장자에는 asp, jsp, php
SQL 삽입(SQL INJECTION)
- 웹 응용 프로그램에 SQL 삽입, DB의 데이터를 유출 및 변조, 관리자 인증을 우회하는 보안 약점
- 동적 쿼리에 사용되는 입력 데이터에 예약어 및 특수문자가 입력되지 않도록 필터링하여 방지
크로스사이트 스크립팅(XSS)
- 웹페이지에 악의적인 스크립트 삽입, 방문자들의 정보 탈취, 비정상적인 기능 수행 유발하는 보안 약점
메모리 버퍼 오버플로
- 할당된 메모리의 범위를 넘어선 위치에서 자료를 읽거나 쓰려고 할 때 발생하는 보안 약점
HTTPS(HYPERTEXT TRANSFER PROTOCOL SECURE)
- 웹브라우저와 서버 간의 안전한 통신을 위해 HTTP와 암호 통신 규약을 결합한 것
SSL(SECURE SOCKETS LAYER)
- 데이터를 송수신하는 두 컴퓨터 사이, 종단 간, 즉 TCP/IP 계층과 애플리케이션 계층(HTTP, TELNET, FTP 등) 사이에 위치하여 인증, 암호화, 무결성을 보장하는 업계 표준 프로토콜
하드코딩
- 데이터를 코드 내부에 직접 입력하여 프로그래밍 하는 방식
하드코드된 암호화키
- 암호화된 키도 하드코드된 경우 유출 시 역계산 또는 무차별 대입 공격에 탈취당할 수 있음
- 상수 형태의 암호키 사용 X, 암호화 키 생성 모듈 또는 보장된 외부 공간 이용해서 방지
TOCTOU 경쟁 조건
- 검사 시점(TIME OF CHECK)과 사용 시점(TIME OF USE)을 고려하지 않고 코딩하는 경우 발생하는 보안 약점
널포인터 역참조
널 포인터가 가리키는 메모리의 위치 값을 저장할 때 발생하는 보안 약점
스택 가드
- 주소가 저장되는 스택에서 발생하는 보안약점을 막는 기술
- 메모리상에서 프로그램 복귀 주소와 변수 사이에 특정 값을 저장한 후 그 값이 변경되었을 경우, 오버플로우 상태로 판단하고 프로그램 실행을 중단, 복귀주소의 호출을 막는다.
접근제어자
- 외부로부터 접근을 제한하기 위해 사용되는 예약어
- PUBLIC(전부 접근 가능), PROTECTED(패키지 외부 접근 불가), DEFAULT(패키지외부, 하위클래스 접근 불가), PRIVATE(패키지외부, 하위클래스, 상위클래스) 접근 불가
개인키 암호화 기법(PRIVATE KEY ENCRYPTION)(대칭 암호화 기법)
- 동일한 키로 데이터를 암호화하고 복호화하는 암호화 기법
- 암호화 복화화 속도가 빠르다.
- 스트림 암호화 방식
- 평문과 동일한 길이의 스트림을 생성하여 비트 단위로 암호화하는 방식 : LSFR, RC4
- 블록 암호화 방식
- 한번에 하나의 데이터 블록을 암호화하는 방식 : DES, SEED, AES, ARIA
공개키 암호화 기법(PUBLIC KEY ENCRPYTION)(비대칭 암호화 기법)
- 암호화 할 때 사용하는 공개키(PUBLIC KEY)는 사용자에게 공개하고, 복호화 할 때의 비밀키(SECRET KEY)는 관리자가 비밀리에 관리하는 암호화 기법
- 대표적으로 RSA가 있다.
개인키 암호화 기법 - SEED
- 한국 인터넷 진흥원이 개발한 블록 암호화 알고리즘
- 블록크기는 128비트, 키 길이에 따라 128, 256으로 분류
개인키 암호화 기법 - ARIA
- 국가 정보원, 산학연협회가 개발한 블록 암호화 알고리즘
- 학계(ACADEMY), 연구소(RESEARCH INSTITUTE), 정부 기관(AGENCY) 머리글자 따서 만듬
- AES 암호화ㅏ 알고리즘의 규격을 따른다.
개인키 암호화 기법 - DES
- 블록 크기는 64비트, 키 길이는 56비트, 16회의 라운드 수행
- DES를 3번 적용하여 보안을 더욱 강화한 3DES가 있다
개인키 암호화 기법 - AES
- 미국 표준 기술 연구소에 발표한 개인키 암호화 알고리즘
- 블록크기는 128비트, AES-128, AES-192, AES-256
공개키 암호화 기법 - RSA
- 베스트, 샤미르, 애들먼에 의해 제안된 공개키 암호화 알고리즘
- 큰 수를 소인수 분해하기 어렵다는 것에 착안해서 제작
해시
- 입력 데이터나 메시지를 고정된 길이의 값이나 키로 변환하는 것
- 해시 알고리즘 = 해시 함수, 해시함수로 변환된 값이나 키를 해시값 또는 해시키
해시 - SHA 시리즈
- 미국 국가안보국(NSA)이 설계 미국 국립표준기술 연구소에 의해 발표
해시 - MD5
암호화 해시함수, 1991년 MD4를 개선한 알고리즘
해시 - N-NASH
- 일본의 전신주식회사(NTT)가 발표한 암호화 해시함수
- 블록크기, 키 길이가 모두 128비트
SNEFRU
- R.C.MERKEL가 발표한 해시함수
- 32비트 프로세서에서 구현을 용이하게 할 목적으로 개발
TKIP
- WEP의 취약성을 보완한 데이터 보안 프로토콜
인증
- 로그인을 요청한 사용자의 정보를 확인하고 접근 권한을 검증하는 보안 절차
- 지식기반 인증(SOMETHING YOU KNOW) : 고정된 패스워드, 패스 프레이즈, 아이핀
- 소유 기반 인증(SOMETHING YOU HAVE) : 신분증, 메모리카드, 스마트 카드, OTP
- 생체 기반 인증(SOMETHING YOU AR) : 지문, 홍채/망막, 얼굴, 음성, 정맥 등
- 위치 기반 인증(SOMEWHERE YOU ARE) : GPS, IP, 콜백 등
- 행위 기반 인증(SOMETHING YOU DO) : 서명, 동작 등
보안 아키텍처
- 보안 요소 및 보안 체계를 식별하고 이들 간의 관계를 정의한 구조
보안 프레임워크
- 안전한 시스템 환경을 유지하고 보안 수준을 향상시키기 위한 체계
- ISO 27001 : 정보보안 관리 국제 표준, 일종의 보안 인증이자 가장 대표적인 보안 프레임워크
방화벽
- 내부의 네트워크와 인터넷 간에 전송되는 정보를 선별하여 수용,거부, 수정하는 기능을 가진 침입 차단 시스템이다.
침입 탐지 시스템
- 컴퓨터 시스템의 비정상적인 사용, 오용, 남용 등을 실시간으로 탐지하는 기술이다.
- 오용 탐지 : 미리 입력해 둔 공격패턴이 감지되면 이를 알려줌
- 이상 탐지 : 평균적인 시스템의 상태를 기준으로 비정상적인 행위나 자원의 사용이 감지되면 이를 알려줌
침입방지 시스템(IPS - INTRUSION PREVENTION SYSTEM)
- 비정상적인 트래픽을 능동적으로 차단하고 격리하는 등의 방어 조치를 취하는 보안 솔루션
데이터 유출 방지(DLP; DATA LEAKAGE/LOSS PREVENTION)
- 내부 정보의 외부 유출을 방지하는 보안 솔루션
웹 방화벽(WEB FIREWALL)
- 일반 방화벽이 탐지하지 못하는 SQL 삽입 공격, CROSS-SITE SCRIPTING 등의 웹 기반 공격을 방어할 목적으로 만들어진 웹 서버에 특화된 방화벽
VPN(VIRTUAL PRIVATE NETWORK)
공중 네트워크와 암호화 기술을 이용하여 사용자가 마치 자신의 전용 회선을 이용하는 것처럼 해주는 보안 솔루션
NAC(NETWORK ACCESS CONTROL)
- 네트워크에 접속하는 내부 PC의 일관된 보안 관리 기능을 제공하는 보안 솔루션
- 망에 접속한 PC들의 소프트웨어 사용현황을 관리하여 불법적인 소프트웨어 설치 방지
ESM(ENTERPRISE SECURITY MANAGEMENT)
- 다양한 장비에서 발생하는 로그 및 보안 이벤트를 통합하여 관리하는 보안 솔루션
AAA(=3A)
- 인증 : 접근하는 사용자의 신원을 검증하는 기능
- 인가 : 신원이 검증된 사용자에게 특정된 권한과 서비스를 허용하는 기능
- 과금 : 사용자가 어떤 종류의 서비스를 이용했고, 얼마만큼의 자원을 사용했는지 기록 및 보관하는 기능
정보보호 관리체계(ISMS : INFORMATION SECURITY MANAGEMENT SYSTEM)
- 정보 자산을 안전하게 보호하기 위한 보호 절차와 대책 수립
서비스 거부 공격(DOS : DENIAL OF SERVICE)
- 대량의 데이터를 한 곳의 서버에 집중적으로 전송하여 서버의 정상적인 기능을 방해하는 것
서비스 거부 공격 - PING OF DEATH(죽음의 핑)
- 패킷의 크기를 인터넷 프로토콜 허용 범위 이상으로 전송, 네트워크를 마비시키는 서비스 거부 공격 방법
서비스 거부 공격 - SMURFING
- IP나 ICMP의 특성을 악용하여 엄청난 양의 데이터를 한 사이트에 집중적으로 보냄으로써 네트워크를 불능 상태로 만드는 공격 방법
서비스 거부 공격 - SYN FLOODING
3-WAY-HANDSHAKE 과정을 의도적으로 중단시킴으로써 서버가 정상적인 서비스를 수행하지 못하게 하는 공격방법
서비스 거부 공격 - TEAR DROP
OFFSET 값을 변경시켜 수신 측에서 과부하를 발생시킴으로써 시스템이 다운 되도록 하는 공격 방법
서비스 거부 공격 - LAND ATTACK
패킷을 전송할 때 송신 IP 주소와 수신 IP 주소를 모두 공격 대상의 IP 주소로 하여 자신에 대해 무한히 응답하게 하는 공격방법
서비스 거부 공격 - DDOS 공격
여러곳에 분산된 공격 지점에서 한 곳의 서버에 대해 거부 공격을 수행하는 것
세션 하이재킹
상호 인증과정을 거친 후 접속해 있는 서버와 클라이언트 사이의 세션 정보를 가로채는 공격 기법
ARP 스푸핑
자신의 물리적 주소(MAC)를 공격대상의 것으로 변조하여 데이터 패킷을 가로채거나 방해하는 방법
- ARP(ADDRESS RESOLUTION PROTOCOL) : 호스의 IP 주소를 호스트와 연결된 네트워크의 접속 장치의 물리적 주소(MAC ADDRESS)로 변환해주는 프로토콜)
스니핑
네트워크 중간에서 남의 패킷 정보를 도청하는 해킹 유형, 수동적 공격 중 하나
워터링 홀
웹 사이트를 사전에 감염시켜, 사이트에 방문했을 때 악성코드에 감염 되게 하는 웹 기반 공격
키로거 공격
컴퓨터 사용자의 키보드 움직임을 탐지해 정보를 몰래 빼가는 해킹 공격
랜섬웨어(RANSOMWARE)
내부 문서나 파일 등을 암호화해 사용자가 열지 못하게 하는 프로그램
백도어(BACK DOOR)
- 시스템 설계자가 액세스 편의를 위해 시스템 보안을 제거하여 만들어놓은 비밀 통로, 컴퓨터 범죄에 악용되기도 한다.
- 백도어 탐지 방법
- 무결성 검사
- 열린 포트 확인
- 로그 분석
- SetUID 파일 검사
'정보처리기사' 카테고리의 다른 글
[정보처리기사] 실기 대비 요약 정리 - 응용 SW 기초 기술 활용2 (0) | 2023.04.05 |
---|---|
[정보처리기사] 실기 대비 요약 정리 - 응용 SW 기초 기술 활용1 (0) | 2023.04.04 |
[정보처리기사] 실기 대비 요약 정리 - SQL 응용 (0) | 2023.04.03 |
[정보처리기사] 실기 대비 요약 정리 - 애플리케이션 테스트 관리 (0) | 2023.04.03 |
[정보처리기사] 실기 대비 요약 정리 - 화면 설계 (0) | 2023.04.02 |