악성 소프트웨어
- 개발자가 의도적으로 사용자가 원하지 않는 기능을 컴퓨터 프로그램에 포함시키거나 프로그램 자체의 오류로 인해 사용자가 원치 않는 시스템 충돌, 프로그램 중단, 개인정보 수집, 네트워크 포트 개방 등의 결과가 이뤄지는 것
- 유해 프로그램 : 컴퓨터 프로그램의 기밀성, 가용성, 무결성 등의 보안속성을 의도적 / 비의도적으로 침해
※ 악성 프로그램 : 의도적으로 보안속성을 침해하는 프로그램
- 악성프로그램 특성비교
구분 |
컴퓨터 바이러스 |
트로이 목마 |
웜 |
자기복제 |
가능 |
불가 |
매우 가능 |
형태 |
기생형, 바이러스성 |
기생형, 비 바이러스성 |
숙주형, 바이러스성 |
전파경로 |
사용자가 감염된 파일 |
사용자가 내려받은 파일 |
네트워크 |
주요증상 |
해당 컴퓨터 시스템 및 파일 손상 |
PC성능 저하, 좀비 PC |
네트워크 성능 저하 |
※ 기생형 vs 숙주형
1. 기생형 : 다른 프로그램이나 유틸리티 시스템 프로그램 없이는 존재할 수 없다,
ex) 바이러스, 논리폭탄, 백도어
2. 숙주형 : 독립적으로 구동이 가능한 프로그램
ex) 웜, 좀비 프로그램
※ 바이러스성 vs 비 바이러스성
1. 바이러스성 : 자기 복제가 가능
ex) 바이러스, 웜
2. 비-바이러스성 : 자기복제가 불가능
ex) 트로이목마, 백도어
- 악성코드를 운반하는 payload의 네가지 분류
1. 시스템 파괴(오염) : 논리폭탄, Stuxnet, 랜섬웨어
2. 공격 에이전트 : 좀비, 봇
3. 정보유출 : 키로거, 피싱, 스파이웨어
4. 잡입(스텔스) : 백도어, 루트킷
바이러스
- 다른 프로그램을 변형시켜 감염시키는 프로그램
- 자신을 완벽하게 복제할 수 있는 명령코드를 가진다.
- 바이러스의 분류
1. 원시형 바이러스
- 구조가 단순, 분석이 쉽다.
- 고정된 크기
- 주로 memory에 상주 →부트영역이나 파일 감염
2. 암호화 바이러스
- 백신이 진단할 수 없도록 바이러스 일부 또는 전체에 암호화를 함
- 실행 시작점 부분에 위치하는 암호해독 데이터는 항상 일정
3. 은폐형 바이러스
- 백신 프로그램이 감염된 부분을 읽으려고 하면 감염되기 전의 내용을 보여줘 바이러스가 없는 것처럼 백심프로그램이나 사용자를 속인다.
4. 갑옷형 바이러스
- 여러단계의 암호화, 다양한 기법을 사용하여 백신프로그램이 바이러스 분석을 어렵게 하거나 백신프로그램 지연을 지연시킨다.
5. 메크로 바이러스
- 메크로 기능이 있는 MS사 오피스 제품, 오토캐드,VBS, 자바스크립트를 지원하는 프로그램에서 활동
- 현재 등장하는 바이러스 중 비중이 가장 높음
6. 다형성 바이러스
- 바이러스 스캐너가 검사하기 어렵게 자신의 모습을 스스로 바꾸는 바이러스
- 다형성 바이러스는 다른모습으로 변신을 하게되면 스캐너는 새로운 바이러스라고 인식 → Miss use 방식으로 바이러스 탐지
※ 바이러스 탐지기법
- Miss use : 비정상을 비정상으로 인식하는 방법
- Anonaly : 정상적인 것들의 통계
메크로 바이러스
1. 플랫폼과 무관하게 발생
2. 문서를 감염시키지만 코드부분은 감염시키지 않는다. → OS는 감염되지 않음
3. 쉽게 전파 가능 → 전자메일로 전파 많이 함
4. 메크로 파일은 숙주파일이 열릴 때 실행
5. 실행파일 다룰 때 주의를 덜하기 때문에 피해가 크다
스크립트형 바이러스와 컴파일형 바이러스
1. 스크립트형 바이러스
- 목적 시스템에서 인터프리터 됨
※ 인터프리터 : 프로그램 해석하는 방식, 사람이 이해할 수 있는 고급언어로 작성된 코드를 한 단계씩 실행
- 브라우저에서 구동될 때 브라우저에 포함된 인터프리터에 의해 한줄 씩 해석하면서 실행
2. 컴파일형 바이러스
- 목적 시스템에서 첫 구동시 실행파일이 만들어지므로 여러 차례 실행시 속도가 빨라짐
- 리버싱을 통해 실행하지 않더라도 내용 짐작이 가능
- 실행속도가 빠르다.
바이러스의 증상
1. 파일 사이즈 증가
2. 갱신 타임스탬프 증가
3. 저장장치의 잔여공간이 단 시간내 급격히 변경
4. 디스크 접근횟수 급격히 증가
바이러스 방지법
1. 바이러스 위협에 대한 방지책은 예방이다.
2. 예방은 바이러스의 공격을 성공률을 줄일 수 있지만, 예방하는 것은 매우 어렵다
3. 그래서 예방을 못하더라도 다음 3가지 기능은 갖추어야 한다.
1.탐지 2. 식별 3. 제거
4. 안티 바이러스 필터링 방법
1. Virus signature
- 특정 바이러스만이 가진 유일한 형태의 signature을 찾는 방식
- 현재 대부분의 안티바이러스 프로그램이 채택하고 있는 방식
2. Behavial virus scanning
- 바이러스가 수행 중 어떤 행동을 보이는지 추적하는 방법
- signature scanning에서 불가능 했던 새로운 바이러스와 웜에 대한 대처능력을 가질 수 있다.
5. 바이러스 예방 방법
1. 신뢰성 있는 업체에서 구입한 상업용 소프트웨어 이용
2. 안전하다고 생각될 때에만 첨부파일을 열어야 한다.
3. 바이러스 스캐너를 이용하여 정기적 검사, 바이러스 스캐너의 주기적 업데이트
4. Windows Script Host, ActiveX, VBS Script, Java Script는 비활성화 해야한다.
5. 주기적인 교육과 보안 정책 수립
웜
1. 자신을 복제하여 네트워크 연결을 통해 컴퓨터에서 컴퓨터로 복제본을 전송
2. 웜은 다른 시스템에 직접적인 영향을 미치지 않는다는 점에서 트로이목마와 구분
다른 프로그램에 기생하지 않는다는 점에서 컴퓨터 바이러스와 구분됨
3 . 웜 확산 모델
처음에 지수적으로 증가하다 시간이 경과하면 감염된 호스트는 이미 감염된 호스트를 공격하는 데 시간을 허비하기 때문에 감염속도가 줄어든다.
4. 웜은 전파된 시스템에서 시스템 접근권한 확보, 자신을 실행시키기 위해 버퍼 오버플로우 공격, SQL 삽입(SQL Injection), 포맷스트링 등 시스템의 취약점 이용
5. 웜의 분류
1. MASS Mailer형
- 다량 메일 발송을 통해 확산되는 웜
- 시스템 내부에서 메일주소를 수집해 계속해서 메일을 보낸다.
- 주요증상
1. SMTP(25번)의 네트워크 트래픽 증가
2. CSRSS.EXE를 만든다.
3. 확인되지 않은 메일을 열어볼 때 확산
2. 시스템 공격형
- 운영체제 고유의 취약점을 이용해 내부 정보 파괴, 컴퓨터를 사용할 수 없는 상태로 만들거나, 외부의 공격자가 시스템 내부에 접속할 수 있도록 백도어 설치
- SVCHOST.EXE 파일 설치
- 시스템 파일 삭제, 정보유출 가능
3. 네트워크 공격형 웜
- SYN Flooding, Smurf와 같은 서비스 거부 공격(DOS)을 수행
- 네트워크가 마비되거나 급속도로 느려진다.
- 네트워크 장비가 비정상적으로 작동한다.
6. 웜 대응책
1. 안티바이러스 제품으로 웜을 충분히 감지할 수 있다.
2. 웜 확산이 이뤄지면 네트워크 활동이 활발해지기 때문에 모니터링으로 기본적인 방어체계 구축이 가능하다.
3. 네트워크-기반 웜 방어를 이용한다.
※ 네트워크-기반 웜 방어
1. 웜 모니터링 소프트웨어로써 2가지 유형의 모니터링 소프트웨어가 필요하다.
- 진입모니터(인바운드) : 기업의 네트워크와 인터넷 사이 경계에 위치, 경계라우터나 외부 침입차단 시스템이나 독립된 수동 모니터의 진입 필터링의 일부
- 진출모니터(아웃바운드) : 나가는 트래픽에서 스캐닝의 흔적이나 기타 의심스런 행동을 모니터링 해 웹 공격의 출처를 잡아내도록 함
트로이 목마
1. 자신의 실체를 드러내지 않으면서 마치 다른 프로그램의 한 유형인 것처럼 가장하여 활동하는 프로그램
2. 자기복제는 하지않으며 다른 파일을 감염시키거나 변경시키지 않음
3. 트로이목마로 데이터 파괴, 원격조정, 패스워드 가로채기, 키보드 입력 가로채기가 가능
스파이웨어
1. 민감한 정보를 수집하여 주기적으로 원격지의 특정한 서버에 보내는 프로그램으로 대상 컴퓨터에 은밀하게 설치되는 악성 소프트웨어 유형이다.
2. 원격에서 조정은 안되며, 일반적인 바이러스 치료와 치료방법이 다르다.
※ 정보유출, 원격조정 둘 다 가능 : RATS
기타악성 소프트웨어
1. 백도어 : 기능에 허가받지 않은 접근(루트권한 접근)을 허용하게 하는 프로그램의 변형
2. Exploit : 하나 또는 여러개의 취약점을 노리는 코드
3. Kit : 바이러스를 자동으로 생성하는 도구모음
4. 스패머 프로그램 : 원치 않은 대량의 전자우편물을 보내는데 사용
5. 프리더 : 네트워크 컴퓨터 시스템에 대량의 자료를 보내어 서비스 거부 공격(DOS)를 감행하는데 사용하는 코드
6. Keylogger : 시스템의 키보드 입력을 가로챈다.
7. 좀비 : 감염된 컴퓨터에서 다른 컴퓨터에 대한 공격을 시작하는데 사용
8. 애드웨어 : 소프트웨어에서 내장된 광고, 감염시 팝업광고 뜨거나, 광고사이트로 연결
9. 브라우저 하이재커 : 브라우저를 하이재킹하여 홈페이지와 검색 페이지, 툴바를 통제하고 조작하는 프로그램(잘못된 주소 입력시 해커가 만들어 놓은 사이트로 이동)
10. 조크, Hoax : 실제 바이러스는 아니지만 사용자에게 심리적인 위협, 불안을 주는 프로그램(Hoax는 메일 형태이다.)
웹브라우저 보안
1. 온라인에서 위험을 방지하기 위해서 가장 먼저 해야할 일은 익스플로러가 저장중인 정보를 관리하는 것이다.
2. 사용자가 웹서핑시 익스플로러가 보존하는 6가지
1. 임시 인터넷 파일
2. 쿠키
3. 기록
4. 양식데이터
5. 암호
6. InPrivate 필터링 데이터
3. HTTP의 stateless를 보안하지는 않는다.
4. IE9(internet explore 9) 이전의 방문기록은 index.dat에 저장됨
※ 방문기록에 저장되는 파일
1. 쿠키
2. 접속한 URL
3. 마지막 방문 시간
4. 캐시정보
브라우징 보안
1. 영역 추가하기와 제한하기
- 인터넷 익스플로러에 대한 보안 구현시 사이트에 따라 서로 다른 보안 요구사항 필요할 때가 있다.
- 인터넷 사용가능 영역
1. 인터넷 2. 로켈 인트라넷 3. 신뢰할 수 있는 사이트, 4. 제한된 사이트
쿠키
1. 1994년 넷스케이프에서 처음 사용
2. 사용자들이 웹사이트를 편리하게 사용하기 위한 목적으로 만들어짐
→ 최근에는 쿠키를 이용해 사용자의 정보 수집을 함
3 . 사용자가 인터넷 웹사이트를 방문할 때 생기는 4kb 이하의 파일이다.
4. 사용자와 웹사이트를 연결해 주는 정보가 담겨있기 때문에 쿠키 내용으로 클라이언트의 신분을 알 수 있게 한다.
5. HTTP의 stateless를 보안 가능하다.
6. 쿠키의 일반적인 용도
- 사이트 개인화
- 장바구니 시스템
- 웹 사이트 이용방식 추적
- 타깃 마케팅
7. 쿠키의 구조
- 쿠키는 4개의 속성과 하나의 데이터를 가지는 구조체이다.
- 서버는 응답에 Set-Cookie헤더를 포함시키는 방식으로 쿠키 설정
- 쿠키의 기본구조
Set-Cookie: name=value; expires = [Date]; domain=[Domain]; path=[Path];[Secure] |
1. 유효기간(expires)
- 쿠키가 생성되면 기본적으로 브라우저가 종료될 때까지는 쿠키의 데이터를 사용가능(임시쿠키)
- 만약 유효기간을 지정하면 브라우저가 종료되어도 지정 기간동안은 쿠키 데이터를 읽고 쓸 수 있다.
- 유효기간을 지정하면 쿠키는 컴퓨터(하드웨어)에 남아 있을수 있다.
2. 경로(Path)
- 쿠키는 쿠키 데이터를 생성한 웹 페이지만 그 데이터를 읽을 수 있다.
- 하지만 쿠키의 Path 항목을 지정해주면 해당 Path 이하에서는 그 쿠키 데이터 공유 가능
- 하나의 사이트에서 쿠키 데이터를 읽고 쓰는 권한 설정
3. 도메인(Domain)
- 도메인 속성은 패스 속성을 확장한 것이다.
- 도메인 단위에서 쿠키 데이터를 읽고 쓰는 권한을 설정하게 된다.
8. HTTP 쿠키 관련 보안 속성
1. httpOnly 속성
- Set-Cookie 응답헤더에 설정하는 속성으로 클라이언트에서 스크립트를 통한 쿠키 접근을 차단해주는 속성
- XSS(Cross Site Script)공격에 대응하기 위해 사용
2. secure 속성
- Set-Cookie 응답헤더에 설정하는 속성으로 HTTPS(SSL/TLS) 통신일 경우에만 해당 쿠키를 전송하고 HTTP 통신일 경우 전송하지 않는 속성이다.
- 쿠키에 대한 기밀성 보장을 위한 목적으로 사용
9. 쿠키에 대한 오해
1. 바이러스 전파
→ 쿠키는 텍스트 파일이기 때문에 실행되지 않으므로 바이러스 전파할 수 없다.
2, 사용자 컴퓨터 피해 입히기
→ 쿠키에는 웹사이트에서 특정 데이터만 있을 뿐 어떤 정보도 담겨있지 않을뿐더러 실행파일이 아니므로 스스로 디렉터리를 읽거나 파일을 지우는 기능은 절대 수행할 수 없다.
3. 다른 웹사이트에서 읽기
→ 쿠키안에 저장된 도메인 이름을 갖고 있는 사이트에서만 유효
10. 쿠키 보안 취약점
1.XSS 공격
- 게시판 같은 서버와 통신하는 동적 페이지 생성 위해서는 PHP, JSP, ASP등 스크립트를 이용을 해야한다.
- XSS는 이런 스크립트를 이용하는 사용자를 공격한다.
- 자바스크립트에서 "document.cookie"라는 명령어가 쿠키값을 활용하여 다양한 서비스를 제공하지만 공격자들은 쿠키값 유출하기 위한 목적으로 사용
2. 스니핑 공격(도청)
- 쿠키값을 암호화 하지 않고 네트워크에 전송을 하게 되면 네트워크 스니핑 공격을 통해 쿠키 값 탈취가 가능하다.
3. 공용 PC에서 쿠키값 유출
- 쿠키 파일은 사용자의 하드디스크에 저장하게되며 간단한 방법으로 접근이 가능하다.
- 공용 PC서 인터넷을 하면 공격자들은 하드디스크에 저장되어 있는 쿠키 정보를 쉽게 얻을 수 있다,
세션
1. 개별 클라이언트 상태정보를 서버에 저장하는 기술
2. 서버는 클라이언트 세션 식별을 위해 클라이언트에 세션ID를 부여하고 세션 ID는 세션 쿠키를 이용하여 클라이언트와 서버가 주고 받는다.
3. 클라이언트 상태정보를 저장하기 떄문에 쿠키방식보다 안전하다
4. 세션 하이재킹 : 공격자가 사용자의 세션ID를 탈취하여 정상 사용자로 위장접근 하는 것
'보안기사 > 필기' 카테고리의 다른 글
기사 자격증(알기사, 유닉스, 리눅스 서버 보안) (0) | 2019.01.25 |
---|---|
기사 자격증(알기사, 윈도우 서버 보안) (0) | 2019.01.25 |
기사 자격증(알기사, 보안 운영체제) (0) | 2019.01.23 |
기사 자격증(알기사, 운영체제 주요기술) (0) | 2019.01.21 |
기사 자격증(알기사, 운영체제 개요) (0) | 2019.01.20 |