★★★
접근통제 공격 유형
1. 사전공격 : 사전 파일을 이용하여 알아내는 방법
2. 무차별 공격 : 성공할 때까지 가능한 모든 조합의 경우의 수를 시도하는 방법
3. 레인보우 테이블을 이용한 공격 : 하나의 패스워드에서 시작해 특정 변이 함수로 변이된 형태의 여러 패스워드를 생성하여 시도
4. 사회공학 : 신뢰할 수 있는 프로그램, 이메일, 웹사이트 등으로 위장해 희생자의 개인정보를 탈취해가기 위해 악성코드를 설치하는 방법 (+ 어깨너머 훔쳐보기shoulder surfing, 휴지통 뒤지기Dumpster Diving)
5. 피싱 : 개인정보+낚시 합성어로 개인정보를 낚는다는 의미
6. 스미싱 : SMS와 피싱의 결합어로 휴대폰 문자메시지로 피싱하는 방법
7. 은닉채널 : 높은 등급의 인가를 가진 주체가 낮은 등급의 인가를 가진 주체에게 정보를 보내서, 비밀정보를 은밀하게 전달하는 방법
8. 방사 : 정보를 훔치기 위해 컴퓨터와 장치로부터 방출되는 전기적 신호를 가로채는 방법 (대책: 템페스트, 백색잡음, 컨트롤 존)
1~3번 : 패스워드 크래킹 공격 유형
+ 파밍(Pharming) : 정상적인 URL을 입력하여도 위조사이트로 이동시키는 공격방법
+ 스피어 피싱 : 조직내 특정 개인 또는 그룹을 대상으로 하는 피싱 공격
+ 큐싱 : QR코드 + 피싱(Phishing)의 줄임말. QR을 촬영한 스마트폰에서 개인정보, 비밀번호 등을 탈취해 가는 공격
사용자 인증
Type 1 : 지식 -패스워드 (고정식: Salt 사용, 일회용: Lamport) 일방향 해시함수. ←단말사용시 Type2로 분류
-i-PIN (주민번호 대체, 공공+민간) →망법
Type 2 : 소유 - 챌린지 응답 방식 : 비동기화
- 이벤트 동기화 방식 : 카운트 값을 입력값으로 사용
- 시간 동기화 방식 : 시각을 입력값으로 OTP 생성, 시간동기화
- S/Key 방식 : 해시체인 ( 해시함수의 역연산 )
Type 3 : 존재 생체적 특징 1) 홍채 (상당히 정확)
2) 망막 (혈관)
3) 얼굴 (표정과 조명에 영향)
4) 지문 (훼손된 지문은 인식 곤란)
행동적 특징 1) 서명
2) 키스트로크
접근통제 보안 모델
MAC - 중앙집중형 보안관리, 군사용, 보안 레이블, 성능저하 우려
- BLP 벨라파듈라 : 기밀성 강조 (No read up, No write down)
- Biba 비바 : 무결성 강조 (No read down, No write up)
DAC - 소유자가 결정, 신원/신분/ID 근거 통제
- ACL 이용
RMAC - 역할/직책/보직/책무에 근거한 접근 통제. 역할, 격자기반
접근통제 보안위협 및 대응책
패스워드 공격
1) 사전공격
2) 무차별 공격
3) 레인보우 테이블 ( 패스워드별 해시값 미리 생성 )
사회공학
1) 어깨너머 훔쳐보기, 휴지통 뒤지기, 협박메일
2) 뒤따라 들어가기
=> 보안인식 교육 주기적으로 실시
피싱 : 개인정보 + 낚시
파밍 : DNS 탈취
스미싱 : SNS + 피싱
스피어 피싱 : APT 이용, 특정인/조직을 표적으로 하며 신뢰할만한 발신인으로 위장
큐싱 : QR + 피싱
은닉채널 : 비밀정보를 다른사람이 알지 못하게 전달 (=기생채널)
방사 : 방출되는 전기적 신호를 가로챔 (대응: 템페스트, 컨트롤존, 백색잡음)
접근통제 파트 끝
------------------
★★★
보안 운영체제 개념도
보안 운영체제 : 기존 OS + 보안커널(보안기능 융합)
IPS : 침입방지시스템 (IDS + Firewall + Secure OS)
사용자 레벨 : 가장 낮은 권한을 가진 사용자 모드, 3레벨. 운영체제 자원에 직접 접근할 수 없다.
Kernel 레벨 : 가장 높은 권한을 가진 커널 모드, 0레벨. 운영체제의 핵심 기능을 수행하고 하드웨어와 직접 상호작용할 수 있는 권한이 있다.
시스템 콜 : 운영체제의 커널이 제공하는 서비스에 대해, 응용 프로그램 요청에 따라 커널에 접근하기 위한 인터페이스. 사용자레벨의 프로그램은 사용자레벨 함수들만으로 많은 기능을 구현하기 힘들기 때문에 커널Kernel의 도움을 받아야 한다. 커널모드로 전환하기 위해 시스템 콜이 필요하다.
이중 연산 모드 : 다중 프로그래밍 환경에서 운영체제를 보호하는 보안 기법. 유저모드와 커널모드로 분리된다.
그외
MAC module중에 SELinux가 있음
대다수 상용 OS는 DAC module을 따름
Security Nernel DB 존재
보안 운영체제 보호방법
1) 물리적 분리 : 사용자 별로 별도의 장비만 사용하도록 제한
2) 시간적 분리 : 프로세스가 동일 시간에 하나씩만 실행
3) 논리적 분리 : 프로세스가 논리적 구역을 갖도록 함
4) 암호적 분리 : 내부에서 사용되는 정보를 외부에서 알 수 없도록 암호화
1->4로 갈수록 구현 난이도나 복잡도가 증가
파일 보호 기법
1) 파일의 이름 명명 : 다른 사용자의 파일 이름을 추측하기 힘들다는 가정
2) 패스워드 : 서로 다른 패스워드
3) 암호화 : 파일 내용 자체 암호화
보안 운영체제의 보안 기능(요구사항)
1) 사용자 식별 및 인증 : 각각의 사용자를 고유하게 식별
2) 임의적/강제적 접근 통제 : DAC신분기반(그룹), MAC규칙기반
3) 객체 재사용 보호 : 재할당되는 모든 기억장치공간을 깨끗하게 삭제
4) 완전한 조정 : 모든 접근을 통제하는 완전한 조정 수행
5) 신뢰 경로 : 안전한 통신(=경로) 제공
6) 감사 및 감사 기록 축소 : 보안사건은 감사기록부에 반드시 기록되고 감사 기록부는 명백하게 보호되어야 함
★★★
참조모니터, 보안커널, TCB
1) 참조모니터 : 주체의 객체에 대한 모든 접근통제를 담당하는 추상머신
2) 보안커널 : TCB 내 하드웨어, 소프트웨어, 펌웨어로 구성. 참조 모니터 개념을 구현하고 집행
3) TCB : 하나의 컴퓨터 시스템 내의 모든 보호 메커니즘의 총체. 시스템과의 조화를 통해 보안 정책을 적용할 책임을 가짐.
★★★
참조모니터 및 보안커널의 3가지 특징
1) 격리성 : 분리되고, 부정조직 방지
2) 검증가능성 : 크기가 작아야함
3) 완전성 : 우회 불가능
★★★
신뢰 플랫폼 모듈TPM
정의 : 신뢰 컴퓨팅을 위한 하드웨어 모듈 (마더보드에 장착)
기본 서비스
- 인증된 부트 서비스 : 단계적으로 부팅. 운영체제의 각 부분이 사용을 위해 승인된 버전임을 보장
- 인증 서비스 : TPM에 의해 설정이 완성되고 로그인되면 TPM은 다른 부분 설정을 인증할 수 있음
- 암호화 서비스 : 특정 기계가 특정 설정으로 되어 있을때 그 기계에서 복호화를 수행하는 방식으로 데이터 암호화 지원
(+ MTM : 모바일 신뢰 보안 모듈)
★★★
악성 프로그램(=악성코드, 악의적인 목적을 가진 프로그래램) 특성 비교
컴퓨터 바이러스 | 트로이목마 | 웜 | |
자기복제 | 있음 | 없음 | 많음 |
형태 | 파일 등 감염대상 필요 | 유틸리티로 위장 또는 유틸리티 내부에 코드로 삽입 |
독자적 존재 |
전파, 경로 | 감염된 파일을 옮김 | 다운로드 | 네트워크를 통해 스스로 전파 |
증상 | 시스템 및 파일 손상 무결성 손상 |
PC 성능 저하, 좀비 PC(원격조정) 시스템 파일 파괴 형태도 존재 기밀성 손상(패스워드, 키보드 입력 가로채기) |
네트워크 성능 저하 가용성 손상 |
★★★★★
악성 소프트웨어의 분류
1) 독립형 : 자체적으로 구동될 수 있는 프로그램 ex 웜, 좀비
2) 기생형 : 프로그램 단편. 실제 프로그램/유틸리티 없이 독립적으로 존재할 수 없음 ex 바이러스, 논리폭탄, 백도어
3) 바이러스성 : 자기복제함 ex 웜, 바이러스
4) 비-바이러스성 : 자기복제 안 함 ex 트로이목마, 백도어
바이러스의 분류
1) 부트 바이러스 (부트섹터)
2) 파일 바이러스 (모든 파일)
3) 부트/파일 바이러스 (부트 섹터와 실행되는 모든 파일)
4) 매크로 바이러스 (오피스 문서)
★★★
바이러스의 세대별 분류
1) 제1세대 : 원시형 바이러스. 프로그램 구조가 단순하고 분석이 상대적으로 쉬움 (고정길이)
2) 제2세대 : 암호화 바이러스. 일부 또는 대부분을 암호화시켜 저장
3) 제3세대 : 은폐형 바이러스. 바이러스가 없는 것처럼 속임
4) 제4세대 : 갑옷형 바이러스. 분석을 어렵게 하고 백신 프로그램 개발을 지연시킨다
5) 제5세대 : 매크로 바이러스. 명령어를 실행시키는 ms워드나 엑셀등에 붙어 파일이 열릴때 실행됨
★★★★★
악성 소프트웨어 정리
- 기생 바이러스 : 기생하여 복제를 확산시킴
- 웜 : 복제 확산
- 논리폭탄 : 조건이 충족되면 트리거 작동
- 트로이목마 : 생각지 못한 추가적인 기능을 포함한 프로그램 (정보 유출, 시스템 파괴)
- 백도어(트랩도어) : 허가받지 않은 접근을 허용하는 프로그램의 변경
- 모바일 코드 : 이동성 명령어같은 소프트웨어. 옮겨서 실행될 수 있음 (자바 애플릿(실행중보장), 액티브X(실행전 보장))
- Exploit : 취약점을 노리는 코드
- Downloaders : 타겟 컴퓨터에 다른 아이템을 설치하는 프로그램
- Auto-roder : 악성 해커 도구. 원격 침입시 사용하는 툴
- Kit : 바이러스를 자동 생성하는 도구모음
- 스패머 프로그램 : 대량의 전자우편물을 보내는 데 사용 (메일폭탄)
- 플러더 : 네트워크 컴퓨터 시스템에 대량의 자료를 보내 서비스 거부 공격시 사용하는 코드
- 키로거 : 키 입력 갈취
- Rootkit : 시스템에 침입 후 루트 수준의 접근허락을 얻기 위해 사용하는 도구 모음
- 공격 킷 : 다양한 번식방법과 페이로드 기술을 사용하는 새로운 악성코드를 자동으로 만들어주는 툴의 모음
- 좀비 : 감염된 컴퓨터에서 활성화되는 프로그램. 다른 컴퓨터에 대한 공격시 사용됨
- 스파이웨어 : 정보를 수집해서 다른 시스템으로 전송하는 소프트웨어
- 애드웨어 : 소프트웨어에 내장된 광고. 클릭시 광고 사이트로 연결된다
- 크라임웨어 : 온라인을 통해 불법 행동을 하기 위해 만들어진 프로그램
- 브라우저 하이재커 : 브라우저를 하이재킹하며 툴바 등을 통제하고 조작하는 프로그램
- 다이얼러 : 모뎀이 특정 번호로 연결되도록 하여 전화를 걸 때마다 공격자가 수익을 얻게 만드는 프로그램
- 조크 : 바이러스는 아니지만 심리적 위협이나 불안을 조장하는 프로그램
- Hoax : 남을 속이거나 장난을 목적으로 퍼트리는 가짜 바이러스
+ DDoS 공격 구조
공격자 -> 마스터/핸들러 -> 좀비/슬레이브/에이전트 -> 희생자
최근의 DDoS : 봇마스터 -> C&C서버 -> 봇넷(봇들의 모음) -> 희생자
여러 단계를 거치므로 추적이 어렵다.
요청 메시지 형식
리퀘스트 라인
- Method URL Version
헤더 라인
- Header Name : value
.. 이하 같은 양식으로 나열
블랭크 라인
- 헤더의 끝을 의미하는 CRLF (개행) 0x0d0a
바디
* 느린Slow DoS 공격
1) Slow HTTP Header Dos (= Slowloris)
- 하나의 세션을 잡고 서비스 연결 자원을 소모시키는 공격
- Blank Line (개행) 문자를 넣지 않아, 헤더의 끝을 감지하지 못해 처리를 지연시킨다
2) Slow HTTP POST Dos (= RUDY 공격)
- Content-Length를 아주 크게 설정한 후, 분할전송하여 처리를 지연시킨다
3) Slow HTTP Read Dos
- Window-size 한 번에 처리 가능한 양을 아주 작게 설정하여 처리를 지연시킨다
HTTP 메시지에 사용하는 지시자
GET : URL에 해당하는 자료를 요청 (인자가 쿼리 스트링으로 보임, 보안 취약)
HEAD : 응답 메시지 바디를 제외하고 헤더부만 응답해주는 메소드. 헤더값만 전송. 검색엔진에서 URL/링크 유효성 검증시 사용
POST : 웹서버로 데이터를 전송할 때 사용하는 방법. (인자가 보이지 않음)
PUT : 컨텐츠를 저장하기 위한 목적으로 사용됨.
DELETE : 제거시 사용
TRACE : 디버깅시 사용
OPTIONS : 시스템에서 지원되는 메소드의 종류를 확인할 수 있다
CONNECT : 프록시 기능을 요청할 때 사용
+ CSRF 대응책으로 GET을 POST로 변경할 수 있음
응답 메시지 형식
상태 라인
- Version Status_Code Phrase
헤더 라인
- Header Name : value
.. 이하 같은 양식으로 나열
공백 라인
- 헤더의 끝을 의미하는 CRLF (개행) 0x0d0a
바디
상태 코드
정보 | 100 | Continue | 첫 부분이 서버에 도착했고 계속 요청 가능 |
101 | Switching | upgrade 헤터에 정의된 프로토콜을 변환하기 위해 클라이언트 요청 수락 | |
성공 | 200 | OK | 요청 성공 |
201 | Created | 새로운 url 생성 | |
202 | Accepted | 요청 수락. 바로 실행되지는 않음. | |
204 | No Content | 헤더의 바디 부분에 데이터가 없음 | |
재지정 | 300 | Multiple choices | 요청한 URL이 여러 개 데이터를 명시 |
301 | Moved permanertly | 요청된 URL 사용되지 않음 | |
302 | Moved temporarily | 요청된 URL이 일시적으로 이동 | |
304 | Not modified | 문서가 수정되지 않음 | |
클라이언트 오류 BUFNM |
400 | Bad request | 문법 오류 |
401 | Unauthorized | 적합한 인증 부족 | |
403 | Forbidden | 서비스 거부 | |
404 | Not Found | 문서를 찾지 못함 | |
405 | Method not allowed | 메소드 지원 안 함 | |
서버 오류 | 500 | Internal server error | 메시지 손상 같은 오류 발생 |
501 | Not implemented | 요청된 메소드 수행 불가 | |
503 | Service unavailable | 잠시동안 서비스 사용 불가 |
브라우저 사용 가능한 영역
1) 인터넷 : 다른 세가지 영역에 포함되지 않은 웹사이트를 위한 영역
2) 로컬 인트라넷 : 사용자의 컴퓨터와 인트라넷에 있는 웹사이트를 위한 영역
3) 신뢰할 수 있는 사이트 : 안전한 콘텐츠를 갖고 있다고 신뢰하는 페이지를 설정하는 영역
4) 제한된 사이트 : 신뢰할 수 없거나 보안페이지로 설정할 수 없는 웹사이트 영역
쿠키 유형
- 임시 쿠키(= 세션 쿠키) : 실행되고 있는 시간동안만 유효
- 영구 쿠키(= 저장된 쿠키) : 하드디스크에 남아 있음. 보존기간은 설정에 따라 달라짐
(장바구니 시스템에서 쿠키를 사용하는 경우가 많다)
쿠키
웹서버에서 쿠키 생성 후 전달
-> 사용자 pc에 쿠키 저장
-> 웹서버에 쿠키 함께 전송
* XSS 공격 (크로스 사이트 스크립트)
세션
웹서버에서 세션정보를 할당 (보통 세션 테이블 존재)
-> 웹브라우저는 세션정보를 공유하며 통신
* 세션 ID Hijacking (HTTP 세션 하이재킹)
윈도우 시스템의 구성요소
1) 하드웨어
2) HAL (개발자가 따라야 할 표준)
3) 마이크로 커널
4) 각종 관리자 (그래픽 장치 관리자, 객체 관리자, 프로세스 관리자 등)
5) 응용프로그램 (사용자 모드에 속함)
( 이중연산모드 : 사용자모드, 커널모드 존재
1~4까지 커널모드, 5번은 사용자모드 )
(유닉스 리눅스의 경우 하드웨어, 커널, 쉘, 응용프로그램 4개로 구분 가능
명령어 해석기인 쉘을 이용하여 커널에 접근하여 사용)
윈도우 특징
- OLE (Object Linking Emberding) : 개체 연결 포함 기능으로 프로그램간에 개체를 교환할 수 있다
- 네트워크 기능 향상
- 윈도우 파일 시스템
1) FAT16
2) FAT32 (호환성 우수)
3) NTFS (파일과 폴더 단위로 사용권한 설정 가능, 암호화 지원, 감시기능, 결함관리)
윈도우 기본 사용자 ( Built-in 계정 )
- Adminstrator : 관리자 권한 계정. 사용자가 로그인할 수 있는 계정 중 가장 강력한 권한
(보안상 이름을 변경 후 사용할 것을 권고함)
- SYSTEM : 시스템에서 최고 권한을 가진 계정. 관리자보다 상위 권한. 원격 접속 불가능. 사용자가 로그인 불가
- Guest : 매우 제한적인 권한을 가진 계정. 기본적으로 사용불가.
윈도우 기본 그룹
Adminstrators : 도메인 지원이나 로컬 컴퓨터에 대한 모든 권한
Account Operators : 사용자 및 그룹 계정 관리 그룹
Guests : 도메인 사용 권한이 제한된 그룹
*Users : 도메인과 로컬 컴퓨터를 일반적으로 사용하는 그룹. 개개인에게 할당된 환경을 만들 수 있지만 한계가 있다. 시스템 서비스의 시작 및 종료 권한이 없고 디렉터리 공유 설정 불가능
★★★★★
윈도우 인증의 구성요소
LSA
- 모든 계정의 로그인에 대한 검증
- 시스템 자원 및 파일 등에 대한 접근 권한 검사
- SRM의 감사로그 기록
- NT 보안의 중심 요소. 보안 서브시스템
SAM
- 사용자/그룹 계정 정보에 대한 데이터베이스 관리
- 로그인 입력 정보와 SAM DB 정보를 비교해 인증여부 결정
SRM
- SID 부여
- SID에 기반하여 파일/디렉터리 접근 허용 여부를 결정하고 감사 메시지 생성
순서 : LSA (사용자모드) -> SAM -> SRM (커널모드)
★★★
디렉터리 및 파일에 대한 접근 권한 설정
NTFS 접근 권한은 누적 : 개별 사용자가 여러그룹에 속한 경우, 파일/디렉터리에 대한 접근 권한은 누적됨
파일에 대한 접근 권한 > 디렉터리 접근 권한 : 파일에 대한 권한 설정이 우선함
허용보다 거부가 우선 : 중첩권한 중 허용보다 거부가 우선하여 적용됨
★★★★★
윈도우 공유 폴더 (자동 생성)
C$, D$, ...
- 드라이브 관리목적 공유 폴더
- 연결된 하드 드라이브 문자수만큼 공유되어 있음.
(C$, D$, E$, F$ ... )
ADMIN$
- 윈도우 설치 폴더에 접근하는 관리목적 공유 폴더
IPC$
- 프로세스간 통신을 위해 사용하는 통로
- 널 세션(아이디, 패스워드 없이 세션 연결)의 취약점 존재
(사용자 공유 : 사용자가 지정)
C$, D$, ADMIN$ 공유폴더 제거 방법
1) 명령어를 사용 : net share 공유이름/delete
( 단, 시스템 재부팅시 다시 복구됨 )
2) 레지스트리 수정 ( 완전 제거 ) HKLM ~ DWORD를 새로 생성하고 0으로 설정
IPC$ 공유폴더 제거 방법
- 레지스트리 수정 : 익명사용자 접근 불가능하도록 설정 restrictanonymous
★★★★★
레지스트리 루트 키
1) HKEY_CLASSES_ROOT (HKCR) : 파일 확장명과 응용프로그램 연결정보, 자동화 정보
2) HKEY_CURRENT_USER (HKCU) : 로그인 된 사용자에 따라 적용되는 제어판, 네트워크 연결, 설정 등
3) HKEY_CURRENT_CONFIG (HKCC) : 시스템 부팅시 사용되는 하드웨어 프로필 설정 등
4) HKEY_LOCAL_MACHINE (HKLM) : 개별 사용자 단위가 아닌 시스템 전체에 적용되는 하드웨어, 응용 프로그램 설정 데이터 (장치관리자, 소프트웨어 목록, SAM, 부팅시 필요한 환경정보)
5) HKEY_USERS : 사용자 프로필 생성시 적용한 기본 설정과 사용자별로 정의한 그룹 정책 등 (user.dat)
1~3까지 유도된 키 Derived Key, 4~5가 마스터 키 Master Key
'(필기) 정보보안기사&산업기사' 카테고리의 다른 글
네트워크 보안 1, 2 (0) | 2024.05.01 |
---|---|
시스템보안2 ~ 4, 네트워크 보안 (0) | 2024.04.29 |
암호학5, 접근통제1~2 (0) | 2024.04.25 |
암호학3~4 (0) | 2024.04.24 |
암호학2 (0) | 2024.04.23 |