정보 및 정보 시스템을 무단 접근, 변경, 삭제 등으로부터 보호한다.
조직의 정보자산을 보호하고, 정보의 무결성, 기밀성, 가용성을 유지하기 위함
1) ISMS(정보보호 관리체계 인증) (Information Security Mangment System)
2) PIMS(개인정보보호 관리체계) (Personal Information Mangment System)
3) ISMS-P(정보보호 및 개인정보보호 관리체계 인증)
4) ITSEC(Information Technology Security Evaluation Criteria)
5) CC(Common Criteria)
SDLC에 보안 강화 프로세스를 포함한 것
1) CLASP(Comprehensive, Lightweight Application Security Process)
오픈소스 웹 애플리케이션 보안 프로젝트
해킹 등 사이버 공격의 원인인 보안 취약점을 제거해 안전한 소프트웨어를 개발하는 SW 개발 기법
1) 입력 데이터 검증 및 표현
2) 보안 기능
3) 시간 및 상태
4) 에러 처리
1) 평문(Paintext) : 해독 가능한 형태의 메시지
2) 암호문(Cipertext): 해독 불가능한 형태의 메세지
3) 암호화(Encryption): 평문을 암호문으로 변환하는 과정
4) 복호화(Decryption) : 암호문을 평문으로 변환하는 과정
5) 전자서명: 인터넷상에서 본인임을 증명하기 위해 서명을 하는 수단
6) 양방향 암호화 : 평문 <-> 암호화
7) 단방향 암호화 : 평문 <-> 암호화
암호화와 복호화에 동일한 키를 사용하는 암호화 빙식
| 알고리즘 | 블록 크기 | 키 길이 | 특징 |
|---|---|---|---|
| DES | 64비트 | 56비트 | 오래된 알고리즘, 안전성 문제로 사용 감소 |
| 3-DES | 64비트 | 112/168비트 | 2개의 키,DES의 개선판, 세 번 암호화 (암호 -> 복호 -> 암호) |
| AES | 128비트 | 128/192/256비트 | DES 한계 극복 미국, 현재 가장 많이 사용되는 알고리즘 |
| SKIPJACK | 64비트 | 80비트 | 미국 정부의 비밀 암호 알고리즘 |
| IDEA | 64비트 | 128비트 | 스위스, 강력한 보안성, 오래된 알고리즘 |
| SEED | 128비트 | 128비트 | 한국에서 개발된 블록 암호 |
| ARIA | 128비트 | 128/192/256비트 | 한국의 표준 암호 알고리즘 |
| LEA | 128비트 | 128/192/256비트 | 경량 블록 암호, IoT에 적합 |
| 알고리즘 | 특징 |
|---|---|
| LFSR | 선형 피드백 시프트 레지스터를 사용, 빠르고 간단한 구현 |
| RC4 | 고속 스트림 암호, 키 스트림 생성 방식, 다양한 프로토콜에서 사용 |
| A5 | GSM 통신에서 사용되는 스트림 암호, 64비트 키 사용 |
암호화와 복호화에 서로 다른 키를 사용하는 방식
| 구분 | 알고리즘 이름 | 특징 |
|---|---|---|
| 소인수 분해 | RSA | 가장 대표적인 공개키 암호 알고리즘 (두 개의 큰 소수의 곱 기반) |
| Rabin | 소인수 분해 문제에 기반하며, 암호화와 서명에 사용 가능, RSA보다 빠르다. | |
| 이산 대수 | DSA | 미국 전자서명 표준, 디지털 서명 생성에 최적화된 알고리즘 |
| Diffie-Hellman | 키 관리 센터 없이 공개키를 전달하는 데 사용 | |
| ElGamal | 같은 평문으로부터 다른 암호문 생성이 가능한 암호 알고리즘 | |
| 타원 곡선 | ECC | 타원 곡선상의 이산대수 문제를 이용한 암호화 방식 |
인증서 형태로 발급되는 자신만의 디지털 인감 도장이며 안전한 디지털 서명
해시를 이용한 암호화 과정
| 특성 | 설명 |
|---|---|
| 역상 저항성 | 주어진 해시 값을 가지고 원래 입력 값을 찾기 어려움 |
| 제2 역상 저항성 | 주어진 해시 값에 대해 동일한 해시 값을 생성하는 다른 입력 값을 찾기 어려움 |
| 충돌 저항성 | 두 개의 서로 다른 입력 값이 동일한 해시 값을 생성하는 것을 찾기 어려움 |
| 해시 함수 종류 | 출력 길이 | 특징 |
|---|---|---|
| MD5 | 128비트 | 빠른 속도를 가진 해시 함수, 충돌 취약성 문제로 보안에 적합하지 않음 [20년 1회] |
| SHA | 160비트 | 안전한 해시 알고리즘, 다양한 변형(SHA-1, SHA-2 등) 존재 미국 (NTS)에의해 개발됨 |
| HAS-160 | 160비트 | SHA-1을 기반으로 한 해시 함수, 보안 강도가 중간 정도, 한국에서 개발함 |
| 결점 | 설명 |
|---|---|
| 무차별 대입 공격 (Brute Force Attack) | 모든 가능한 입력 값을 시도하여 해시 값을 찾는 공격 방식 |
| 레인보우 테이블 공격 (Rainbow Table Attack) | 미리 계산된 해시 값과 입력 값의 쌍을 사용하여 해시 값을 역추적하는 공격 방식 |
| 보완 방법 | 설명 |
|---|---|
| 키 스트레칭 | 입력 키를 여러 번 해시하여 키의 강도를 높이고, 공격자가 키를 추측하기 어렵게 만듦 |
| 솔팅 | 입력 값에 랜덤한 데이터를 추가하여 해시 값을 생성, Rainbow Table 공격 저항력을 강화 |
| 프로토콜/기술 | 설명 |
|---|---|
| PGP | 이메일과 파일의 암호화 및 디지털 서명을 위한 프로그램 (Phill Wimmermann 개발) |
| PEM | 메시지 내용 보호 |
| S/MIME | MIME에 전자서명과 암호화 추가 |
| DKIM | 메일 발신자 인증, 발신 정보 위장 방지 |
| 코드 오류 유형 | 설명 |
|---|---|
| 순차 코드 | 데이터를 순차적으로 표현하는 코드 |
| 블록 코드 | 코드화 할 대상이 갖는 공통 특징을 줌심으로 항목들을 분류 |
| 10진 코드 | 10진수를 표현하는 코드 |
| 그룹 분류 코드 | 데이터를 그룹으로 나누어 표현하는 코드 |
| 연상 코드 | 코드 대상의 명칭과 관계있는 문자, 숫자, 약어를 사용 |
| 표의 숫자 코드 | 코드화 대상 항목을 중량, 면적, 용량 등을 사용 |
| 합성 코드 | 여러 코드(두개 이상)를 조합하여 표현하는 방식 |
| 코드 오류 발생 형태 | 설명 |
|---|---|
| 생략 오류 (Omission Error) | 필요한 코드가 누락된 경우, 한자리 빼놓고 기록 |
| 필사 오류 (Transcription Error) | 잘못된 문자를( 한자리 잘못 기록) 그대로 복사한 경우 |
| 전위 오류 (Permutation Error) | 코드의 순서가 잘못된 경우 |
| 이중 오류 (Duplication Error) | 동일한 코드가 두 번 표현된 경우 |
| 추가 오류 (Addition Error) | 불필요한 코드가 추가된 경우 |
| 임의 오류 (Random Error) | 예기치 않은 코드가 삽입된 경우 |
로그인을 요청한 사용자의 정보를 확인하고 접근 권한을 검증하는 보안 절차
| 인증 유형 | 설명 |
|---|---|
| 지식 기반 인증 | 사용자가 알고 있는 정보를 기반으로 인증 (예: 비밀번호) |
| 소유 기반 인증 | 사용자가 소유하고 있는 물리적 장치를 기반으로 인증 (예: 스마트 카드, OTP 생성기) |
| 생체 기반 인증 | 사용자의 생체 정보를 기반으로 인증 (예: 지문, 얼굴 인식) |
| 위치 기반 인증 | 사용자의 위치 정보를 기반으로 인증 (예: 특정 지역에서만 접근 허용) |
| 행동(행위) 기반 인증 | 사용자의 행동 패턴을 기반으로 인증 (예: 타이핑 속도, 마우스 이동) |
인증된 사용자에게 권한을 부여하는 과정
| 인증 방식 | 설명 |
|---|---|
| 계정 정보 요청 헤더 | 인증 정보를 요청 헤더에 포함하여 전송하는 방식 |
| Cookie 방식 | 서버가 클라이언트에 쿠키를 저장하고 이를 통해 인증 상태를 유지하는 방식 |
| Session 방식 | 서버에서 세션 ID를 생성하고 클라이언트에 전달하여 인증 상태를 관리하는 방식 |
| 토큰 기반 인증 | 인증 후 발급된 토큰을 사용하여 접근을 제어하는 방식 (예: JWT, JSON Web Token) |
| OAuth | 제3자 인증을 통해 자원에 대한 접근을 제어하는 방식 (이용자의 웹서비스에 대한 제한된 접근 권한 부여) |
| SSO (Single Sign-On) | 한 번의 로그인으로 여러 서비스에 접근할 수 있도록 하는 방식 |
| 커버로스 | Kerberos 프로토콜을 이용한 인증 방식으로, 티켓을 사용하여 인증을 수행 |
| 아이핀 (i-PIN) | 개인 식별 번호를 통해 온라인 서비스에서 인증을 수행하는 방식 |
정당한 사용자에게 권한을 부여하고, 그 외의 사용자는 접근을 거부하는 것
1) 식별(Identification) : ID를 확인하는 과정
2) 인증(Authentication) : 패스워드가 정확한지 확인
3) 인가(Authorization) : 권한을 부여
| 정책 | MAC | DAC | RBAC |
|---|---|---|---|
| 권한 부여 | 시스템 | 데이터 소유자 | 중앙관리자 |
| 접근 결정 | 보안등급(Label) | 신분(Identity) | 역할(Role) |
| 정책 변경 | 고정적(변경 어려움) | 변경 용이 | 변경 용이 |
| 장점 | 안정적, 중앙 집중적 | 구현 용이, 유연함 | 관리 용이 |
| 접근 통제 모델 | 설명 |
|---|---|
| 벨-라파둘라 모델(Bell-LaPadula Model) | 기밀성 유지에 중점을 두고, 높은 기밀성 레벨의 정보로부터 낮은 레벨의 사용자가 접근하는 것을 방지. |
| 비바 모델(Biba Model) | 무결성 유지에 중점을 두고, 낮은 무결성 레벨의 정보로부터 높은 레벨의 사용자가 접근하는 것을 방지. |
| 클락-월슨 모델(Clark-Wilson Model) | 무결성을 보장하기 위해 인증된 트랜잭션을 사용하며, 비즈니스 규칙을 기반으로 접근을 제어. |
| 만리장성 모델(Chinese Wall Model) | 데이터의 무결성을 보호하기 위해 사용자가 특정 데이터에 접근할 수 있는지를 결정하는 방식. |
정보시스템에 불법적인 사용자의 접근을 허용할 수 있는 위협
1) 관리적 관점
2) 기술적 관점
3) 물리적 관점
24시간 정보자산을 지키기 위해 전달되는 패킷을 관측한다. 실제 침해사고 시 CERT팀이 대응한다.
컴퓨터 운영체제의 커널에 보안 기능을 추가한 것
네트워크와 인터넷 간의 정보 전송을 제어하여 침입을 차단하는 시스템
비정상적인 사용, 오용, 남용 등을 실시간으로 탐지하는 시스템
침입 방지 방식에 따른 분류
| 구축 유형 | 설명 |
|---|---|
| 스크리닝 라우터 | 패킷 필터링을 통해 트래픽을 제어하는 라우터 (IP, TCP, UDP 헤더 분석) |
| 베스천 호스트 | 외부와 내부 네트워크 사이의 중재자 역할 (접근 제어, 프록시 기능 , 인증 , 로깅 등 수행) |
| 듀얼 홈드 호스트 | 2개의 네트워크 인터페이스를 갖춘 호스트 |
| 스크린드 호스트 | 패킷 필터 라우터와 베스천 호스트 조합 |
| 스크린드 서브넷 | 두 개의 스크리닝 라우터와 한 개의 베스천 호스트 |
원격 호스테에 접속하기 위한 보안 프로토콜, 22번 포트
웹 브라우저의 웹 서버 간 안전한 데이터 전송을 위한 프로토콜 , 443 포트 사용한다.
전송 계층 보안을 위해 개발된 프로토콜
IP계층(네트워크 계층)을 안전하게 보호하기 위한 기법
서버, 네트워크, 프로그램 등의 정보 시스템이 오랜 기간 동안 지속적으로 정상 운영될 수 있는 능력
대상 시스템이 정상적인 서비스를 수행하지 못하도록 만드는 공격
| 공격 유형 | 설명 |
|---|---|
| Smurf Attack | ICMP 패킷을 이용해 네트워크 장비를 반사하여 공격 |
| Ping of Death | 큰 크기의 ICMP 패킷을 보내 시스템을 충돌시키는 공격 |
| Land Attack [20년 1회] | 동일한 IP 주소와 포트를 이용해 패킷을 전송하여 시스템을 마비 |
| Teardrop Attack | 잘못된 패킷 조각을 보내 시스템의 메모리를 소모시키는 공격 |
| SYN Flooding | TCP 연결 설정 과정에서 SYN 패킷을 과도하게 보내 서비스 중단 |
| UDP Flooding | UDP 패킷을 대량으로 보내 대역폭을 소모시키는 공격 |
| Ping Flooding | ICMP Echo Request를 대량으로 보내 서비스 중단 |
분산된 다수의 좀비 PC를 이용하여 공격 대상 시스템의 서비스를 마비시키는 형태
| 해킹 기법 | 설명 |
|---|---|
| 바이러스 | 스스로를 복제하여 다른 파일에 감염시키는 악성 코드 |
| 웜 | 네트워크를 통해 스스로 복제하여 전파되는 악성 코드 |
| 트로이 목마 | 유용한 프로그램으로 가장하지만 악성 코드를 포함 |
| 루트킷 | 시스템에 몰래 설치되어 권한을 상승시키고 숨기는 소프트웨어 |
| XSS (교차 사이트 스크립팅) | 웹 페이지에 악성 스크립트를 삽입하여 사용자 정보를 탈취 |
| SQL injection | 데이터베이스 쿼리에 악성 코드를 삽입하여 정보 탈취 |
| 피싱 | 신뢰할 수 있는 기관으로 가장하여 개인 정보를 탈취 |
| 랜섬웨어 | 파일을 암호화하여 금전을 요구하는 악성 소프트웨어 |
| 스니핑 | 네트워크 트래픽을 몰래 감청하여 정보를 수집하는 기법 |
| 패스워드 크래킹 | 암호를 해독하여 시스템에 접근하는 기법 |
| 포트 스캐닝 | 열린 포트를 탐색하여 취약점을 찾는 기법 |
| 세션 하이재킹 | 사용자의 세션을 가로채어 불법적으로 접근하는 기법 |
| 버퍼 오버플로우 | 메모리 버퍼의 경계를 초과하여 데이터를 덮어쓰는 공격 |
| ARP 스푸핑 | ARP 프로토콜을 이용해 네트워크에서 패킷을 가로채는 기법 |
| 드로퍼 | 다른 악성 코드를 설치하기 위해 사용되는 프로그램 |
| MITM (중간자 공격) | 통신 중간에서 데이터를 가로채거나 변조하는 공격 |
| 코드 인젝션 | 악성 코드를 삽입하여 시스템을 조작하는 기법 |
| DDoS 공격 | 여러 시스템에서 동시에 공격하여 서비스 중단 |
| Qshing | QR 코드로 악성 링크 유도 또는 악성 코드 설치 |
| Nucking | 특정 IP 주소에 대량 패킷 전송 |
| 스파이웨어 | 사용자 동의 없이 정보 수집 |
| 사회공학 | 인간 심리 이용 공격 |
| Evil Twin Attack | 가짜 WiFI API 공격 |
| CSRF | 사용자 의도와 무관한 행위 강요 |
| Backdoor | 정상 인증 없이 시스템 접근 |
| 블루투스 공격 | Bulebug(연결 취약) / BlueSnarf(장비 접근) / BluePrinting(장비 탐색), Blueacking(익명 메세지) |
| Honeypot | 공격자 유인 시스템 |
| 인포데믹스 | 잘못된 정보 확산 |
| 다크데이터 | 분석되지 않은 대량 데이터 |
| 킬 스위치 | 정보기기 데이터 원격 삭제 |
| 트러스트존 | 중요 정보 보호 위한 독립 보안 구역 |