;

728x90

# cd tomcat/logs

# cat /dev/null > catalina.out

 

로그파일 용량이 80기가가 넘는 현상이 발생하여 해결..

 

초기화 후 catalina.out 파일 용량을 키우지않게 0으로 세팅

 

/* $CATALINA_BASE/bin/catalina.sh 파일 */

if [ -z "$CATALINA_OUT" ] ; then

# CATALINA_OUT="$CATALINA_BASE"/logs/catalina.out

CATALINA_OUT="/dev/null"

fi


 

 

728x90

ifup ens장치번호(랜카드명)

ifdown ens장치번호(랜카드명)

728x90

1. 톰캣이 설치된 경로의 Lib폴더까지 이동

cd /usr/local/tomcat/lib

 

2. 명령어 입력

java -cp catalina.jar org.apache.catalina.util.ServerInfo

728x90

 

취약점

- Tomcat은 Web 환경의 관리자 콘솔을 제공함.

- 관리자 콘솔이 외부로부터 침해되는 경우 Web에 관련된 모든 권한을 누출할 수 있으므로 관리에 주의해야 함.

- 관리자 인증을 위한 페이지가 쉽게 인지 가능하거나 유추로 인해 접근 되어지는 경우에는 취약함.

 

접근 방법 : IP주소/manager OR IP주소/admin 

EX) 164.122.2.61/manager

 

ㅇ 해결방법

기존의 Tomcat Web 환경의 관리자 콘솔을 사용하지 않아 콘솔을 사용하는 페이지명 변경

톰캣 폴더 안에 있는 manager 폴더명을 바꾸면 해결된다.

 

□ 취약점

- 웹 디렉토리에 Write(쓰기) 권한을 제거

- 일반 사용자가 웹 서버 홈 디렉토리에 임의의 파일을 생성, 삭제, 변경할 수 있으면, 홈페이지의 변조, 파일의 삭제 등의 피해가 발생할 수 있음.

- 로그 파일에는 공격자에게 유용한 정보가 들어있을 수 있으므로 권한

관리가 필요함.

- 일반 사용자에 의한 정보 유출이 불가능 하도록 권한 설정 필요함.

 

ㅇ 해결방법

◦ webapps, root 폴더 권한을 750(rwxr-x---) 권한으로 변경

◦ Tomcat 로그파일 생성할 때 디폴트 권한 umask 026 처리

로그파일은 startup.sh 파일에서 umask 026을 코드에 추가해주시면 이후로 생성되는 것은 640 권한으로 변경

 

□ 취약점 

- 불필요한 examples 디렉토리(/examples) 제거

- 서버에 대한 상세 정보를 제공하고 있고, 예제 프로그램 취약점 공격 예방을

위해서는 삭제하는 것이 바람직함.

 

ㅇ 해결방법

Tiomcat Dir/webapps/examples 폴더 삭제

 

 

□ 취약점

- 공격자가 대상 시스템의 정보를 획득하기 위해 고의적으로 다양한 에러를 유발하여 돌아오는 에러 메시지를 통해 웹 프로그램의 구조 및 환경 설정을 추정할 수 있음.

 

ㅇ 해결방법

◦ web.xml에 400, 401, 403, 404, 500 에러 페이지 설정

 

 

 

 

 

 

 

 

 

728x90

리눅스 특정 port 죽이는 방법에 대해 설명해드리겠습니다.

 

1. 특정 포트 확인.

netstat -nap|grep port  (ex: netstat -nap|grep 1099)

 

 

2. 특정 포트에서 사용하는 프로그램 확인.

lsof -i TCP:port  (ex: lsof -i TCP:1099)

 

 

3. 특정 포트를 사용하는 프로그램 죽이기.

fuser -k -n tcp port  (ex:fuser -k -n tcp 1099)

 

[출처] 리눅스 포트 죽이기(lsof -i TCP:port)|작성자 와스고수

728x90

Hot site(핫 사이트)

- 재해 발생 시 업무 시스템을 시간 내에 복구할 수 있는 DRS이다.


DRS(Disaster Recovery System) : 재해복구시스템

- 천재지변 및 테러에도 데이터를 복구할 수 있는 시스템


Cold site(콜드 사이트)

- 재해 발생을 대비하여 평상시 주기적으로 주요 데이털르 백업해 보관하고 별도의 물리적인 공간과 전원 및 배전 설비, 통신 설비를 이용하는 복구방식이다. 비용이 저렴하지만 초보적인기술과 시스템 복구시간이 길다.


FDS(Fraud Detection System)

- 이상 행위 탐지 시스템으로 핀테크, 페이팔 서비스의 간편 결제 시스템에서 거짓 및 부정한 방법으로 금전적 손실과 정보 유출을 탐지한다.


MDM(Mobile Device Management)

- 스마트폰 분실 및 도난, 원격 강제 잠금, 사용자 통제, 원격백업과 복구, 블루투스 카메라, GSP 등의 디바이스 통제한다. 화이트 리스트 및 블랙리스트 기반의 앱관리, 알 수 없는 소스차단, 루팅 탐지 등을 수행하는 솔루션이다.


Race Condition(레이스 컨디션)

- 두 개 이상의 프로세스들이 공유 자원에 동시에 접근하여 읽기 및 쓰기를 못하게함

- 실행 순서가 바뀌어 공격자가 원하는 결과를 얻는다.

- 심볼 링크를 통해서 접근한다.

- 임시파일을 사용하여 공격한다.


봇넷(Botnet)

- 악성코드에 감연된 좀비 컴퓨터이면서 네트워크를 형성한다. 


봇마스터

- 좀비 PC를 조종하는 컴퓨터


C&C(Command & Control)

- 봇넷에 참여한 좀비 PC에게 명령을 전달


허니팟(Honey pot)

- 컴퓨터 시스템에 침입한 스팸, 바이러스, 크랙커를 탐지하는 가상의 컴퓨터 시스템.


Exploit 코드

- 컴퓨터의 보안 취약점을 이용한 공격으로 대상 컴퓨터의 권한 획득, DoS공격 수행

- 취약점을 이용한 공격의 종류는 BOF, CSF, XSS등이 존재


UTM(Unified Threat Management) : 통합위협관리

- 방화벽, VPN, IDS, IPS, IDS등의 보안 기능을 하나로 통합한 보안 솔루션으로 구축비용을 절감하고 유지보수의 편의성을 향상시킨다. 

- 일관된 보안 정책을 적용할 수 있다.


IDS(Intrusion Detection System) : 침입탐지 시스템

- 네트워크에서 백신과 유사한 역할을 하는 것으로 방화벽이 차단할 수 없는 해킹공격을 차단하고 탐지한다. 방화벽을 성문을 지키는 병사라면 IDS는 성 안에서 거리를 돌며 순찰하는 병사라 할 수 있다.


ㅇ 탐지방법

- 오용탐지 : 시그니처 기반, 지식기반으로 가장 많이 사용됨.

                 False Negative가 크다는 것은 공격인데 공격이 아니라고 오판하는 것

- 이상탐지 : 프로파일 기반, 행위기반, 통계기반 탐지방법은 이상탐지이다.

                 False Positive가 크다는 것은 공격이 아닌데 공격이라고 오판하는 것이다.


ㅇ 종류

- HIDS(Host-Based Intrusion Detection System) : 프로그램이 접근하는 리소스를 탐지하여 워드 프로세서 같은 프로그램이 시스템 비밀번호 데이터베이스를 수정할 수 없게 함.


NIDS(Network-Based IntrusionDetection System) : 네트워크 트래픽을 감시하여 서비스 거부 공격(DoS), 포트스캔, 컴퓨터를 크랙하려는 시도 등과 같은 악의적인 동작들을 탐지.


IPS(Instrusion Prevention Systems) : 침입 차단 시스템

- 외부네트워크로부터 내부 네트워크로 침입하는 네트워크 패킷을 찾아 제어하는 기능을 가진 소프트웨어 or 하드웨어이다. 내부 네트워크로 들어오는 모든 패킷이 지나가는 경로에 설치되고 호스트의 IP주소, TCP/UDP 포트번호, 사용자 인증에 기반을 두고 외부 침입을 차단하는 역할을 한다.


IMAP(internet messaging access protocol)

메일을 내려받을 때 사용되는 MDA(Mail Delivery Agent) 프로그램 

- Mbox에서 메일을 읽어 수신자에게 전송하고 한 번 읽은 메일은 제거된다.

- MTA 패턴사용

- POP3보다 뛰어난 성능을 가짐.


W3C 웹서비스 표준기술

WSDL(Web Servvice Description Language) 

- 서비스 제공자와 서비스 사용자 간의 웹 서비스 파라미터의 이름, 서비스가 위치한 URL 및 웹 서비스 호출에 관한 정보를 기술하는 표준


UDDI(Universal Description Discovery and Inetegration)

- 서비스 제공자가 웹 서비스를 등록하고 서비스 사용자가 웹 서비스를 검색하기 위한 레지스트리


SOAP(Simple Object Access Protocol)

- XML을 기반으로 하는 메시지 표준으로 서비스 사용자가 서비스 제공자에 의해서 노출한 웹 서비스를 호출하고 결과를 받기위한 표준 프로토콜


OCSP(Online Certificate Status Protocol)

- 전자서명 인증서 폐지 목록의 갱신 주기 문제를 해결하기 위해 폐지 및 효력정지 상태를 파악해 사용자가 실시간으로 인증서를 검증


SSH(Secure Shell)

- 원격 터미널 접속 시 암호화를 수행해서 안정성을 확보하고 보안, 인증, 전송구간 암호화를 수행


BYOD(Bring Your Own Device) 

- 개인이 소유한 노트북, 스마트폰 등의 장비를 직장에서 업무용으로 사용함.

- 컨테이너화(업무용 앱과 개인용 앱을 분리하여 접속통제 등을 수행하고 데이터보호)


블록암호 알고리즘 종류

- SPN(암복호화 과정이 다름), Feistal(암복호화 과정이 동일)


Challenge Response(질의 응답) - 비동기 방식

- 사용자의 OT 생성 매체와 은행의 OTP 인증 서버 사이에 동기화되는 기준값이 없으며 사용자가 직접 임의의 난수를 OPT 생성 매체에 입력하여 OTP를 생성하는 방식
























728x90

정보보안기사에 자주출제되네요 ㅎㅎ

SQL Injection과 XSS는 정말 자주나오네요

한 번 읽어보시는게 좋겠습니다. ㅎㅎ

3년마다 바뀐다고합니다~


링크참고 : OWASP TOP10 바로가기

728x90

ㅁ 시스템 취약점 점검도구

1) 보안 취약성 및 위협

- 위협 : 시스템 또는 조직에 피해를 초래할 수 있는 사건의 잠재적인 원인으로 자산에 피해를 줄수 있는 위험의 원천이다. 인위적 위협(고의적, 우발적), 자연적위협이 있다.

- 취약성 : 위협에 의해 이용될 수 있는 자산의 약점으로 달리 말하면 자산이 잠재적으로 갖고 있는 약점이다. 취약점 자체가 손상을 손상을 초래하지는 않는다. 단순히 위협이 자산에 영향을 줄 수 있는 조건을 제공할 뿐이다.


2) 취약점 점검도구

- SATAN/SARA : SARA는 SATAN이 업데이트가 되지 않는 상황에서 SATAN을 기반으로 개발한 취약점 분석도구로써 네트워크 기반의 컴퓨터, 서버, 라우터 IDS에 대해서 취약점을 분석한다. 유닉스 플랫폼에서 동작하고 HTML 형식의 보고서 기능이 있다.


- SAINT : 원격으로 취약점 점검, 유닉스 플랫폼에서 동작하고 HTML 형식의 보고서 기능이 있다.


- COPS : 시스템 내부에 존재하는 취약성을 점검, 유닉스 플랫폼에서 동작하고 취약ㅎ한 패스워드 체크


- Nessus :클라이언트 - 서버 구조로 클라이언트를 취약점 점검, 유닉스 플랫폼에서 동작


- nmap : 포트스캐닝 도구로써 TCP connect 방식 뿐만 아니라 stealth모드로 포트스캐닝 하는 기능 포함


ㅁ 시스템 침임 탐지 시스템

- 정의 : 허가받지 않은 접근이나 해킹시도를 감지하여 시스템 또는 망관리자에게 통보해주고 필요한 대응을 취하도록 하는 시스템, 암호화 패킷에 대해서는 탐지 불가능, 패킷의 데이터 부분까지 분석

- 역할 : 감사로그나 네트워크 패킷정보를 수집, 공격관련 규칙을 비교하여 침입탐지 수행

- 종류 : 오용기반 침임탐지(알려진 취약점), 비정상행위 탐지 

- 구현기술 : 사후 감사추적에 의한 분석기술, 실시간 패킷분석기술, 실시간 행위 감시 및 분석기능


ㅁ 네트워크 모니터링

- snort : 실시간 트래픽분석과 IP 네트워크 상에서 패킷 로깅이 가능한 가벼운 네트워크 침임탐지시스템이다. Ethereal 등

- smurt 공격(ICMP reply를 동시에 다수를 수신하는현상)을 네트워크 모니터링 도구를 이용하여 패킷을 캡처할 수 있다.


ㅁ 방화벽

- TCP-Wrapper(유닉스) : 네트워크 서비스에 관련한 트래픽을 제어하고 모니터링 할 수 있고 임의의 호스트가 서비스를 요청해오면 실제 데몬을 구동하기 전에 접속을 허용한 시스템인지 여부를 확인하여 허가된 시스템에게만 서비스를 제공한다.


- IPtable : 패킷필터링 방화벽으로 패킷 필터란 네트워크를 통하는 모든것은 패킷의 형태를 가지며 패킷의 헤더에는 패킷의 이동경로나 프로토콜을 가지고 있다. 지나가는 패킷의 헤더를 보고 DROP 하거나 ACCEPT하는 등의 작업을 하는 프로그램을 말한다.


ㅁ 침임대응 방법

- 경고메시지 및 로그분석등을 이용하여 침입을 탐지하고 세션끊기, 네트워크 분리, 프로세스 제거, 공격자 추적등의 다양한 방법으로 대응한다.


ㅁ 스캔 탐지도구

ㅇ 취약점을 찾기위한 공격용 도구

- mscan : 메인 전체를 스캔하여 그 도메인 내에 있는 wingate, test-cgi, NFS exports, statd, named, ipopd, imapd 등 최근 많이 이용되는 주요 취약점을 한번에 스캔할 수 있음.

- sscan : mscan을 업데이트하여 개발한 유닉스/윈도우 시스템에 대해서 네트워크를 통하여 취약점 점검을 수행할 수 있는 도구로써 공격용으로도 많이 활용되고 있음. nikto, x-scan, N-stealth등


ㅇ 포트스캔 탐지도구

- portsentry : 실시간으로 포트스캔을 탐지하고 대응하기 위한 프로그램으로 정상적인 스캔과 stealth 스캔을 탐지할 수 있고 스캔로그 남기기, 공격호스트를 /etc/hosts/deny 파일에 입력하여 자동 방어, 공격 호스트를 경유하여 오는 모든 트래픽을 자동 재구성하는 기능이 있다. scanlogd, scandetd 등


ㅁ 로깅 및 로그 분석도구

ㅇ 감사증적, 감사, 감사로그

- 감사증적이란 기록된 특정 내용에 대해서 원시문서까지 추적해 갈 수 있는 연결고리를 말하는데 정보시스템의 경우 중간의 처리과정을 밝힐 수 없는 경우 감사증적이 소멸해 버리는 수가 많다.

ㅇ 감사로그 분석방법

- 윈도우 시스템 로그분석 : 이벤트뷰어를 이용해서 로그분석을 수행 할 수 있으나 다량의 로그에 대해서 분석을 위해서는 이벤트 ID를 기반으로 로그 분석을 수행할 수 있다. 

- 보안감사 이벤트 범주 : 로그온이벤트, 계정 로그온 이벤트, 개체 액세스, 디렉터리 서비스 액세스, 권한사용, 프로세스 추적, 시스템 이벤트, 정책변경 


1) 로그온 이벤트 : 사용자가 컴퓨터에 로그온/로그오프를 할떄 로그온이 시도된 컴퓨터의 보안로그에 이벤트 발생

528 : 컴퓨터에 성공적으로 로그온 / 529 : 알 수 없는 사용자 이름을 사용하거나 잘못된 암호 사용


리눅스/유닉스 시스템 로그분석

- wtmp : 사용자들의 로그인 및 로그아웃한 정보 -> last 명령어

- utmp : 현재 로그인한 사용자들의 상태정보-> who, w, whodo, users, finger 명령어

- pacct : 사용자가 로그인~ 로그아웃 입력한 명령과 시간, 작동된 tty 등에 대한 정보 수집 lastcomm 명령어

- history : 사용자별로 실행한 명령을 기록하는 로그

- sulog : su 명령어를 사용한 결과를 저장하는 로그 vi 에디터 활용

- lastlog : 서버에 접속한 사용자의 ip별로 가장 최근에 로그인 한 시간 기록 last 명령어

- btmp : 5번 이상 로그인 실패했을 경우 정보기록 lastb 명령어

- syslog : syslog 데몬에서 일괄적인 방법으로 생성된 로그는 authlog, messagesm syslog, secure등 /var/log 디렉토리에 대한 로그가 있다.

- messages : syslog 계열의 로그로써 콘솔 상의 화면에 출력되는 메시지들을 저장하고 시스템의 장애에 대한 기록뿐만 아니라 보안측면에서 취약점에 의한 공격흔적을 기록으로 남김. vi 명령어로 로그분석

- secure로그 : 보안과 관련된 주요한 로그를 남기는 파일로 사용자 인증에 관련된 로그를 기록






728x90

ㅁ 운영체제 설치

ㅇ 시스템 파티션과 마운트

- 작업 용도에 따른 시스템의 파티션 분리는 루트영역과 사용자 파일 시스템이 같은 파티션에 존재하면 공격자가 SUID를 사용할 수 있는 기회가 늘어나게 되어 보안상 취약하므로 분리하여 사용하는 것이 보안에 좋다. 

ex) - /server에는 웹서버 관련 프로그램만, /DB에는 DB파일들만 저장되는 디렉토리를 만들어 관리


ㅇ 운영체제 커널과 소프트웨어 설치

- 유닉스 계열 

1) 리눅스의 커널은 기본적으로 사용자가 작동시키는 응용프로그램과 하드웨어간의 조정자 역할을 맡는다. 동시에 수행되는 여러 응용프로그램들을 위해 메모리관리를 해주며 컴퓨터 자원을 배분하는 역할을 한다. 리눅스는 오픈소스라서 사용자가 직접 컴파일 할 수 있다. 그래서 자신이 원하는 환경 및 구성으로 구축할 수 있고 이를 커널 컴파일이라 한다.

2) 불필요한 서비스 중지 및 프로그램 제거 필요


- 윈도우즈 계열

1) 운영체제는 소스코드가 공개되어 있지 않기 때문에 조작 불가능

2) 불필요한 서비스 중지 및 프로그램 제거 필요


ㅁ 시스템 최적화

ㅇ 메모리관리

- free를 이용한 swap 상태확인

- top 명령어를 이용한 프로세스별 메모리 사용량 확인


ㅇ 프로세스 및 CPU 관리

- 좀비 프로세스는 실행이 종료되었지만 아직 삭제되지 않은 프로세스를 의미한다. ps 명령어 실행 후 stat 값이 Z로 표시되는 프로세스가 좀비 프로세스이며 프로세스 중지를 위해서는 kill명령어 사용


- 프로세스 우선관리가 필요한 경우가 발생하는데 프로세스마다 두 개의 우선순위 번호를 갖는다. ps -l 이라는 명령어를 실행시키면 PRI와 NI라는 항목을 볼 수 있다. 프로세스 우선순위 PRI 항목은 운영체제에 의해 동적으로 계산되는 실제 우선순위이고 NI는 PRI로 계산하고 업데이트를하는 근거가되는 번호이다. NICE명령어를 사용하여 우선순위를 설정할 수 있다.


ㅁ 사용자 및 파일관리

- 사용자별 홈 디렉토리 설정 및 접근 제어 가능

1) 사용자별로 홈디렉토리를 설정하기 위해서는 /etc/passwd 파일에 사용자별로 설정되어 있는 홈 디렉토리를 변경하여야 하지만 변경된 디렉토리에서 파일을 쓰고 읽기 등의 권한은 다시 권한 설정을 한다.


2) 스크립트나 바이너리는 루트 계정만이 주로 사용하므로 기타 계정에는 권한을 제거하여야 하며 리눅스의 경우 웹서버를 실행하는 apache 계정은 웹서버를 실행하는 권한을 주고 원격 로그인이 필요가 없으므로 쉘 사용권한을 제거하는 등의 권한설정 필요.


3) 서버 해킹 종류

1) 직접대입공격 : 무차별 공격, 사전공격(사전파일로 만들어 대입)


2) 네트워크공격 

- 스푸핑(IP, ARP, DNS, 이메일) - 각각의 정보를 속여서 해킹시도

- 스니핑 : 네트워크 패킷이나 버스를 통해 전달되는 중요 정보를 엿보고 가로채는 공격행위


3) DOS 공격

- DOS 공격은 대량의 패킷을 이용하여 네트워크를 마비시키거나 특정 서비스의 수행을 방해하는 공격으로 시스템의 한 프로세스가 자원을 모두 독점하거나 소비하여 시스템이 다른 프로세스의 서비스를 제공하지 못하도록 하는 것

- DOS 공격은 서비스를 사용할 수 없게 만드는 것이 특징이고 추적 및 해결이 어렵다.

- 내부에서의 공격: 시스템의 /tmp와 같이 시스템이 프로세스를 생성하거나 작업을 처리하는데 사용하는 폴더의 디스크 공간을 채우는 방법이 있다. 방지하기 위해선 디스크 용량 사용제한을 두는 방법이 있다. 다른 유형으로는 프로세스를 생성하여 메모리와 CPU 클럭을 고갈시키는 방법이 있다. 프로세스를 생성하고 메모리를 할당하는 것을 무한루프를 돌려 프로세스를 무한히 복제한다.

- 외부에서의 공격 : SYN Flooding은 SYN을 대량으로 보내서 시스템의 특정 서비스를 마비시키는 것이다. TCP/IP의 3 way handshaking을 통하여 SYN 신호를 보내고 ACK을 받고 계속 적으로 ACK을 보내지 않으면 서버는 half-open상태가 되고 큐를 모두 채워버리면 해당 서비스는 마비가 된다.


4) 버퍼오버플로우공격

- 메모리에 할당된 버퍼의 양을 초과하는 데이터를 입력하여 프로그램의 복귀주소를 조작하여 해커가 원하는 코드를 실행하는 것이다.


5) 레이스컨디션 공격

- 레이스 컨디션공격은 두 프로세스 간에 자원을 사용하기 위해서 경쟁하는 것을 이용한 공격으로 시스템 프로그램과 공격 프로그램이 경쟁 상태에 이르게 하여 시스템 프로그램이 갖는 권한으로 파일에 접근을 가능하게 하는 방법이다. 


6) 사회공학적 방법

- 사람을 속여서 민감한 정보를 유출하게 하는 기술로 설득과 회유를 통해 자신부주의로 인한 외부에서의 정보습득, 피싱 및 파밍 등이 있다.

- 피싱 : 금융기관 등 신뢰할 수 있는 기관으로부터 보내지는 메일로 위장하여 개인의 인증번호 및 계정벙보를 빼내는 해킹기술

- 파밍 : 피싱의 진화된 형태이고 도메인 자체를 중간에서 탈취하여 해킹 사이트로 redirect함







728x90

ㅁ 유닉스

ㅇ 파일시스템 보호

- root로 접근 및 변경 권한을 설정해야하는 파일

1. ~/loing, ~/.profile, crontab, NFS 파티션의 파일, /etc/rc* 파일 등


2. 사용자 계정에서 실행권한이 필요없는 실행권한을 제거

1) SUID와 SGID 는 권한이 없는 프로그램을 실행할 수 있으며 SUID는 소유자 권한으로 실행하는것이며 SGID는 소유그룹 권한으로 실행하는 것이므로 불푤이한 파일에 설정된 비트를 제거

2) umask는 시스템 파일이 만들어질 때의 허가권 기본값을 정하기 위해서 사용


- 백업  tar를 이용한 백업, 기타 솔루션 및 도구


- mount 테이블을 이용한 파일 시스템 관리 : /etc/fstab 파일보기


- 무결성도구 : tripwire, md5


ㅇ 네트워크 서비스의 주요 설정 내용

- telnet : 원격시스템에 접속할 때 사용하는 서비스로써 텔넷 데몬을 실행하고 사용자 계정을 등록

- rlogin : 원격 시스템에 접속할 때 사용하는 서비스로써 사전에 서버에 /etc/host.equiv 파일에 호스트를 등록한 후에 클라이언트는 패스워드를 입력할 필요없이 로그인이 가능한 서비스

- ssh : 원격 시스템에 접속할 때 사용하는 서비스로써 전송되는 데이터를 개인 열쇠 암호기법으로 암호화

- scp : 네트워크상에서 안전하게 파일을 복사할 수 있도록 해주는 유틸리티로 데이터 전송과 사용자 인증을 위하여 ssh를 사용

- samba : 서로 다른 운영체제의 자료 및 하드웨어 공유를 위한 프로토콜로써 주로 윈도우와 리눅스간에 자료 및 프린터 공유를 위해서 사용된다. NetBIOS와 호환되는 SMB 프로토콜을 사용하여 파일 및 프린터를 공유함


ㅁ 윈도우즈 NT

ㅇ 파일시스템 보호

- 보안기능이 강화된 NTFS 파일시스템을 사용하는 것을 권장


- administrator 계정의 사용권한 관리방법

1. 최소 권한의 규칙

2. 목적에 따른 계정 그룹의 사용 (계정 그룹을 만들어 일괄적인 권한설정)

1) 기본그룹 :  (administators, power users, users, backup operators)

2) 특수그룹 : (interactive, network, terminal sever user)


- 백업 : 시스템도구 - 백업, 기타 솔루션 및 도구


- 윈도우 환경의 레지스터리에 대한 보존 및 관리기법

1. 익명 액세스로부터 레지스트리 보호

1) 윈도우 2000 레지스트리 편집 도구에서 기본적으로 원격 액세스를 지원하므로 레지스트리 원격 액세스 권한은 관리자에게만 부여해야 한다. 레지스트리에 대한 네트워크 액세스를 제한하려면 레지스트리를 수정한다.


방법 

- HKEY_LOCALMACHINE\SYSTEM\CureentControlSet\Control\SecurePipeServers\winreg를 선택하여 보안 메뉴를 선택한 후 사용권한을 클릭하여 Administrators 사용권한을 모든 권한으로 설정하고 기타 계정 설정을 제거한다.

- 레지스트리에 적절한 ACL 적용

- 레지스트리 백업보관


ㅁ 시스템 접근통제 기술

- 개념 : 주체와 객체간의 관계를 지정하고 접근을 제한하는 방법
- 종류
1) 임의적 접근통제(DAC) : 주체나 또는 그들이 소속되어 있는 그룹들의 ID에 근거하여 객체에 대한 접근을 제한하는 방법. 즉 접근통제는 객체의 소유자에 의하여 임의적으로 이루어진다. 그러므로 어떠한 접근 허가를 가지고 있는 한 주체는 임의의 다른 주체에게 자신의 허가를 넘겨줄 수 있다.

2) 강제적 접근통제(MAC) : 객체에 포함된 정보의 비밀성과 이러한 비밀정보에 대하여 주체가 갖는 정형화된 권한에 근거하여 객체에 대한 접근을 제한하는 방법을 MAC라고 한다. 시스템 내에서 주체와 객체간에 성립하는 MAC 관계에는 다음과 같은 조건이 존재한다. 
-> 한 주체는 하나의 객체를 주체의 비밀등급에서의 계층적 분류가 객체의 비밀등급에서의 계층적 분류보다 작거나 같고 주체의 비밀등급에서의 비계층적 범주들이 객체의 비밀등급에서의 비계층적 범주들에게로 포함되는 경우에 기록할 수 있다. (말 어렵다. -> 계층적으로 분류된 비밀등급이 같거나 작을때)


3) 다단계 보안정책(MLS) : 최초 1960년대 후반 미국의 국방성에서 시작되었다. 국방성에서 사용하는 문서에는 보안등급이 있고 문서를 읽기 위해서는 문서의 보안등급과 같거나 높은 보안등급이 필요하였다. 
단순 보안 : 주체는 보안등급이 같거나 낮은 객체에 일긱를 할 수 있으나 높은 보안등급엔 읽기를 할 수 없다.
제한 속성 : 주체는 보안등급이 같거나 큰 객체에 쓰기를 할 수 있으나 낮은 보안등급의 객체에는 쓰기를 할 수 없다

4) 역할기반 접근제어(RBAC) : 주요 목적은 보안관리와 감사를 용이하게 하자는 것이다. 메인프레임에 관련된 상업적으로 성공한 많은 접근 통제 시스템들은 보안 관리를 위해 역할들을 정의한다. 예로 운영자역할은 모든 자원들에 접근할 수 있지만 접근 권한을 바꾸지는 못한다는 등이 있을 수 있는데 이 역할들에 대한 관리는 NetWare나 Windows NT와 같은 현대 네트워크 운영체제에서도 볼 수 있다.

ㅇ 접근통제도구
- 프로토콜 기반의 접근통제도구
1) 패킷 필터 : ipfwadm, ipchain, iptable, tcp wrapper
2) 프록시 서비스 : TIS FWTK

ㅇ 유닉스 계열의 접근통제
- 파일 및 폴더의 허가권 설정
1) 파일과 디렉토리에 접근 권한 변경 : chmod
2) 파일과 디렉토리에 소유자 및 소유그룹을 변경 : chown











728x90

ㅁ 계정과 패스워드 보호

ㅇ 계정정책 (Account Policies)

- 사용자의 ID에 대한 운영정책을 의미함. 소프트웨어나 사회적인 통제로 강제할 수 있다.

- 사용자 계정의 특성(패스워드 길이 및 조합, 유지기간) 제어

- 사용자 권한 정책(User Rights Policies)은 개별 사용자, 그룹 사용자들의 권한을 제어, 접근하려는 권한과 파일 백업등을 제어

- 감사정책(Audit Policies) : 시스템에 로그인, 로그오프, 파일과 개체의 접근을 감사


ㅇ 시스템보안감사 정책

다음 5가지의 감사 로그를 남김

- 시스템 : 사용자가 컴퓨터를 재시작, 종료 또는 이벤트 발생시 시스템 보안이나 보안로그에 영향을 미칠 때 

- 계정관리 : 사용자나 보안그룹이 생성, 변경, 삭제, 사용자 계정의 활성화, 비활성화, 암호설정 및 변경등

- 계정 로그온 : 사용자가 로그온, 로그오프를 시도하거나 로컬 사용자 계정으로 인증 받을 때 

- 개체 액세스 : 사용자가 파일, 폴더, 프린터, 레지스트리 키등의 개체를 액세스할 때

- 사용자 권한을 시행할 때 발생하는 로그 감사


ㅇ 시스템에서 사용하는 기본적인 접근통제방법

- 사용자 계정 생성 및 활용 : root계정이 아니면 프로그램 설치가 안되거나 설정파일 변경이 제한되어 악성코드 설치를 제한할 수 있다.

- 그룹은 여러 사용자를 동일한 작업권한을 가질 수 있는 하나의 그룹으로 해당 디렉토리별로 사용자 계정 권한을 부여하여 해당 디렉토리에 대한 사용권한만 가짐

- Windows에서 사용자 계정을 추가하면 일반 사용자 그룹인 Users 그룹에 자동으로 포함되는데 User 그룹은 프로그램을 실행할 가장 보안이 강한 환경을 제공한다. NTFS로 포맷된 볼륨에서는 이 그룹의 구성원이 운영 체제 및 설치된 프로그램의 무결성을 해칠 수 없도록 새로 설치된 시스템의 기본 보안 설정이 지정되어 있다.


Users 역할

1. 시스템 크기의 레지스트리 설정, 운영체제파일 또는 프로그램 파일을 수정할 수 없다.

2. 워크스테이션을 종료할 수는 있지만 서버는 종료할 수 없다.

3. 로컬 그룹을 만들수는 있지만 자신이 생성한 로컬그룹만 관리할 수 있다.

4. 관리자가 설치하거나 인증된 프로그램을 실행할 수 있다.

5. 그룹의 구성원은 자신의 모든 데이터(%userprofile%) 및 레지스트리에서 자신의 부분(HKEY_CURRENT_USER)을 완전하게 제어할 수 있다.

6. 그룹의 구성원은 다른 User 그룹에서 실행할 수 있는 프로그램은 설치할 수 없다. 이렇게하면 트로이목마 방지가능, 시스템 관리자가 다른 Users 그룹의 개인 데이터나 데스크톱 설정에 액세스할 수 없다.


ㅇ 계정 및 패스워드 보호정책

- 유닉스 계열 

계정관리 

- 그룹생성 및 그룹사용자생성 명령어(groupadd)로 계정 생성 후 chmod 명령어를 이용하여 허가권 설정

- set user id또는 set group id의 사용을 제한하여 root 권한의 사용을 제한

패스워드 관리

- /etc/passwd는 일반 사용자들도 접근하여 파일 내용을 볼 수 있기 때문에 패스워드가 암호화되어 있더라도 안심할 수 없다. 그래서 shadow 패스워드 시스템을 사용하는데 /etc/passwd의 패스워드 필드를 /etc/shadow라는 파일에 암호화하여 저장하고 root만이 읽을 수 있는 권한설정으로 패스워드를 보호

- 유추 가능한 단어를 피하고 조합형 문자열 또는 특수문자를 포함한 문자열로 패스워드 생성( 너무 당연해서 적을까 말까 고민...)


윈도우

계정관리

- Windows NT 및 2000은 syskey 명령으로 128bit 암호화하여 DB를 사용할 수 있다

패스워드 관리

- 유추 가능한 단어를 피하고 조합형 문자열 또는 특수문자를 포함한 문자열로 패스워드 생성


ㅇ PAM(Pluggable Aunthentication Modules) 방식

- 시스템 관리자가 응용프로그램들이 사용자를 인증하는 방법을 선택할 수 있도록 해주는 공유 라이브러리 묶음으로 PAM을 사용하는 응용프로그램을 재컴파일 하지 않고 인증 방법을 변경할 수 있다. 일반 적인 계정과 패스워드만을 이용한 인증 방식에다가 다양한 형태의 이능방식을 부가적으로 사용할 수 있다. 

- /etc/pam.conf 또는 /etc/pam.d/파일 에서 각 시스템에 맞게 설정을 하여 각 시스템에서 사용가능한 인증모듈을 통해 사용자의 인증 요구를 처리한다.





728x90

ㅁ 크래킹 SW

개요

- 크래킹은 해킹과 비교하여 악의적인 목적을 가지고 시스템에 침입하는 행위이다. 쉐어웨어 프로그램을 정식버전으로 변환하는 행위도 한다.

- 해킹도구로써 크래킹 기술은 사용자의 ID/PW 를 찾는 도구로써 활용되고 있으며 대입해보면서 해킹을 시도한다.


도구

ㅇ WWWhack, Golden Eye, Webcrack

- 웹서버, 접속계정, FTP, POP의  ID/PW와 패스워드를 크랙


포트 스캐닝 SW

개요

- 공격자가 공격대상 시스템의 열려진 포트를 스캐닝한느 것으로 OS 판별, 공격경로 선택등을 위해서 수행하는 절차이다.


- Port Scanner에 의한 목적지 시스템에 대하여 열려있는 Port를 찾기위한 행위이다. 공격자들은 대상 시스템이 살아 있는지 확인한다. - 주로 Ping을 이용하며 네트웤 단위에서는 ping sweep을 함

- 열려진 Port를 탐색한 후 취약점 Scanner(Nessus, Internet Scanner 등)를 이용하여 취약점 분석을 한다. 그 후에 시스템의 취약점을 이용하여 공격을 하게된다.

- 포트스캐닝은 특정 포트에 대해서 3WAY hand-shaking가 확립되면 포트가 열려진 것을 확인할 수 있다.


종류

ㅇ NMap

특징 : 다양한 방식을 이용한 포트스캐너

방법

- TCP connect() scan : 3Way hand-shaking을 이용한 scanning이다. 완전한 TCP 연결을 하여 port의 상태를 확인하여 쉽게 탐지가능


- TCP SYN scan : Half-open scan 또는 stealth scan으로 불리기도 하며 완전한 TCP 연결을 하지 않고 대상포트로 SYN 패킷을 전송하여 SYN/ACK을 받으면 open상태, RST/ACK를 받으면 close상태이다. half-open 상태에서 확인하기 때문에 비밀스러운 연결로 로그가 남지 않고 TCP중 속도가 빨라 가장 많이 사용


ㅇ TCP FIN, Xmax Tree, Null scan :  Stealth scan이라고도 불리며 UNIX에서만 사용, 이 세가지로 스캔한 결과가 없다면 Windows 계열의 시스템이라고 판단할 수 있다. 세가지 scan 후 포트가 모두 close상태이면 RST 패킷을 되돌려 보낸다. Open 상태는 패킷을 무시한다.


- TCP FIN scan : TCP Flag의 FIN을 활성화하여 대상 포트로 패킷을 전송

- Xmax Tree scan : TCP Flag의 FIN, URF, PUSH을 활성화하여 대상 포트로 패킷을 전송

- NULL scan은 TCP Flag를 모두 비활성화하여 대상 포트로 패킷을 전송한다. 


ㅇ UDP Scan( 종류 : Superscan, Aat4xx)

특징 : UDP를 사용하는 열린 포트를 찾기위한 스캐닝이다. 대상 포트로 UDP 패킷을 전송하여 'ICMP Port Unreachable' 메시지를 받으면 close 상태이고 메시지가 오지 않으면 open 상태이다. 정확도가 떨어지기 떄문에 결과에 대해서 신뢰할 수없고 Close상태는 정확하게 알 수 있다.  


ㅁ 키로그 SW

개요

- 설치된 컴퓨터에서 키보드로 입력한 정보를 로그로 넘기는 프로그램이며 기능이 업데이트 된 키로그 프로그램은 키보드 입력 뿐만 아니라 윈도우를 이용한 프로그램사용, 인터넷 익스플로러를 이용한 인터넷 접속 정보등도 로그로 남기며 실시간으로 로그파일을 공격자에게 전송함.


탐지 방법

- 안티바이러스 프로그램에 의한 탐지

- 키로그 전용탐지도구에 의한 탐지

- 특정 문자열을 타이핑한 후 파일의 내용에서 타이핑한 문자열 검색


종류

- KeyLog25 : 자판에 입력한 정보를 파일에 로그로 남김

- SK-Keylog : 키보드 입력을 로그로 남김, 지정된 시간에 로그파일을 설정된 공격자 메일로 자동 전송

- Winhawk


누킹 SW (종류 : Vconnect, Cgsioob)

- 레지스트리, 키 파일, 파일 시스템 등을 훼손하여 시스템을 사용 불능상태로 빠뜨리는 프로그램으로 'blue bomb', 'WinNuke'로 알려짐


폭탄메일 SW(종류 : QuickFyre, Avalanche, eremove)

- 특정사람에게 한꺼번에 많은 양의 메일을 전송하는 것, 주로 상대방의 메일용량을 초과시켜 많은 피해를 준다.

- Anonymail은 익명으로 메일을 보낼수 있는 프로그램이다. 메일주소를 임의로 작성해서 보낼 수 있도록 제공한다.

 










728x90

ㅇ 메일클라이언트 보안


ㅁ Outlook 및 Outlook Express 

1. 주요공격기술

- 공격자에 의해 운영되는 뉴스그룹을 사용자가 방문했을 떄 Outlook Express 이메일 프로그램에 설치되어 사용자 컴퓨터를 컨트롤할 수 있는 공격기술

- 공격자가 악성스크립트를 메일에 첨부하여 보내면 수신자가 메일을 확인하거나 읽는 순간 악성스크립트에 의해 공격당할 수 있다.


2. 메일 필터링 기법

- 도구-메시지 규칙 기능을 이용하여 메일, 뉴스, 차단할 보낸사람 목록의 기능을 이용하여 제목, 내용, 첨부파일에 대한 메시지 규칙을 설정하여 메일주소 또는 도메인으로 메일을 차단


3. 첨부파일보안

- 메일의 첨부파일을 이용한 웜 및 악성스크립트를 이용한 공격이 가능하므로 송신자의 메일주소, 메일제목을 확인하여 불필요한 메일을 삭제


 

ㅁ PGP(Pretty Good Privacy) 

- PGP는 사용자가 작성한 이메일의 내용과 첨부되는 파일을 암호화하여 이메일 수신자만이 내용을 볼 수 있도록 기밀성을 제공한다. 그리고 전자서명 기능을 제공하여 송신자가 맞는지 인가를 확인해준다.


특징

- 인증 받은 메시지와 파일에 대한 전자 서명 생성과 확인작업

- 키 관리를 Graphic Interface로 지원

- 공개키를 4096 비트까지 생성할 수 있고 RSA와 DSS/Diffie-Hellman등 두 가지 형태의 공개키 생성가능


활용방법

- Setup 프로그램을 이용하여 설치하면 최초 사용자는 개인키/공개키 쌍을 생성하게 하고 개인키는 안전하게 자신의 컴퓨터에 패스워드로 암호화하여 저장하고 공개키는 다른 사용자들이 사용할 수 있도록 분배해 주어야 한다. PG는 사용자들이 공개키를 가지고 있어야만 암호문을 전송하고 생성한 전자서명을 확인 할 수 있다.


- 공개키를 등록하고 이후에 송신자가 암호화해서 메일을 송신하면 컴퓨터에 저장되어 있는 개인키를 선택하여 복호화하고 메일내용을 볼 수 있다.


공개키 분배방법

- 공개키 서버에 등록하는 방법, 이메일의 내용에 공개키를 포함시키는 방법, 별도의 텍스트 파일에 복사하는 방법


ㅇ 트로이목마 

개요 

- 트로이목마 프로그램은 바이러스와 달리 자기 복제 능력이 없으며 유틸리티 프로그램 내에 악의의 기능을 가지는 코드를 내장하여 배포하거나 그 자체를 유틸리티 프로그램으로 위장하여 배포한다. 설치되면 특정한 환경이나 조건 혹은 배포자의 의도에 따라 사용자의 정보 유출이나 자료파괴 같은 피해를 입는다.


기능

- 원격조정, 패스워드가로채기, 키보드입력 가로채기, 시스템 파일파괴,


활용

- 클라이언트 프로그램 : 서버 프로그램에 접속하여 공격을 수행할 때 활용

- 서버 프로그램 : 공격대상 컴퓨터에 설치


탐지방

- 안티바이러스 프로그램에 의한 탐지

- 레지스트리를 검사하여 자동실행 설정된 내용 검사

- 사용자의 컴퓨터에서 사용하지 않는 포트가 열려져 있는지 검사

- 사용자의 컴퓨터에 설치하지 않은 프로그램이나 파일이 설치되었는지 검사


트로이목마 종류

ㅇ NetBus

- File Manager, Registry Manager, Application Redirect, 화면캡처, 키보드 입력정보 스니핑

- 서버 프로그램의 접속패스워드 설정

- 서버 프로그램의 포트변경


ㅇBack Orifice

- CDC라는 해킹그룹에서 만든 해킹도구로 파일시스템의 모든 파일에 대한 접근, 프로세스 생성/삭제/, 시스템 패스워드 유출, 키보드 모니터링, 네트워크 자원의 공유지정, 파일조작, 레지스트리조작 등의 기능

- 서버프로그램의 접속패스워드 설정


ㅇ School Bus

- 패스워드 유출, 캐쉬영역의 패스워드 추출, 파일관리, 키보드 입력 모니터링 기능

- 서버 프로그램의 접속패스워드 설정


ㅇ ackcmd

- 윈도우 2000을 위한 특수한 원격 명령 프롬프트, TCP ACK 세그먼트만 사용해서 통신을 하므로 어떤 경우 방화벽을 통과하는 연결이 가능하다.

- netstat -an 명령어로 연결세션 정보를 얻기 어려움.


ㅇ 루트킷

- 자신과 다른 소프트웨어를 보이지 않게 숨기고 사용자가 공격자의 소프트웨어를 인지하고 제거할 가능성을 피하는 것이다. 파일 서버, 키로거, 봇넷, 재전송 메일을 포함하여 모든 소프트웨어를 숨길 수 있다. 따라서 대개 감지할 수 없고 제거하기도 힘들다.


기능

- 트래픽이나 키스트로크 감시

- 시스템에 트로이목마 프로그램 설치

- 로그파일 수정

- 프로세스나 파일숨김기능

- 자동실행 설정


종류

- 윈도우용 : FU-Rootkit, Hxdef100, NTRootkit

- 리눅스용 : Suckit, lrk4, lkr5, adore


탐지

- 안티바이러스 프로그램이나 전용도구를 이용하여 탐지 및 제거 ( Rootkit Revealer 이용)






728x90

ㅇ 바이러스와 백신

악성코드 : 제작자가 의도적으로 다른 사람에게 피해를 주기 위해 만든 모든 악의적인 프로그램, 매크로, 스크립트 등 컴퓨터상에서 작동하는 모든 실행 가능한 상태


ㅇ컴퓨터 바이러스 

개념 : 이론적인 정의로는 자신 또는 자신의 변형을 컴퓨터 프로그램이나 매크로, 스크립트 등 실행 가능한 부분에 복제하는 명령어들의 조합으로 정의되며, 실제적으로는 사용자 몰래 다른 곳에 자기 자신을 복제하는 프로그램, 악성 프로그램으로 통합되는 추세이다.


- 종류

부트 바이러스 : 부트 영역에 감염되는 바이러스(하드디스크) 감염 후 윈도우 환경에서는 치료가 어려움. 부팅필요하다 Brain, Michelangelo, Monkey, Anti-CMOS, WYX 바이러스등이 있다.


파일 바이러스 : 일반적으로 실행 가능한 프로그램 파일에 감염되는 바이러스이며 윈도우에서는 다양한 형태의 실행 파일이 존재하여 다양한 형태의 파일에 감염된다. 도스용 파일, 윈도우용 파일, 매크로 바이러스등이 있다.


부트/파일 바이러스 : 부트 영역 및 파일에 모두 감염되는 바이러스. 나타스, 절반, 침입자, 테킬라 바이러스 등이 있다.


매크로 바이러스 : 응용 프로그램에서 지원하는 매크로 기능을 이용해서 자신을 복제하는 능력을 가진 바이러스


트로이목마 : 유틸리티 프로그램 내에 악의의 기능을 가지는 코드를 내장하여 배포하거나 그 자체를 유틸리티 프로그램으로 위장하여 배포한다. 트로이목마가 설치되면 특정한 환경이나 조건 혹은 배포자의 의도에 따라 사용자의 정보유출이나 자료파괴 같은 피해(원격조정, 패스워드 및 키보드입력 가로채기, 시스템 파일 파괴)를 입을 수 있다.  Netbus, Back Orifice등이 있다.



ㅇ 인터넷웜 

개념 :  네트워크/전자메일을 통해 자신을 복제하는 악성 프로그램으로 인터넷웜이라고도 한다.

전파방법 : 전자메일 첨부파일, 네트워크 쓰기 권한 악용, 서비스 취약점 이용

종류 : I-Worm/ Happy99, Hybris, Naked, Navidad, ExploreZip, Wininit와 sql 슬래머 


ㅇ 메일폭탄

개념 : 상대방에게 피해를 줄 목적으로 특정한 사람이나 시스템을 대상으로 다량의 전자 우편을 일시에 보내 해당 사이트의 컴퓨터 시스템에 고장을 일으키는 기술


ㅇ Joke & Hoax/Myh

- Joke : 사용자에게 바이러스와 유사한 증상으로 놀라게 하는 프로그램, Delete_game, Format_Game, Cokegift, Puzzle등 이 있음

- Hoax/Myth : 컴퓨터 바이러스로 잘못 알려진 일종의 스팸 메일 부작용 -> 보안의식 저하, GoodTimes Virus, Join the crew, Sulfbnk.exe 등


ㅇ 악성스크립트 : 스크립트 기능을 이용해 제작한 악성프로그램, 배치파일, MIRC 스크립트, VBS JS 등이 있다.


ㅇ 스파이웨어 : 개인정보 일부를 SW 개발자가 알 수 있도록 제작한 프로그램


ㅇ 바이러스 명명법 : I-Worm.Win32.Scold.,28160 -> 형태(Type).플랫폼(OS).이름(NAME). 크기(SIZE), 변형정도



ㅇ 레지스트리 활용

개념 : 윈도 95, 98 NT 시스템에서 사용하는 시스템 구성 정보를 저장한 데이터베이스이며, 윈도우 환경과 프로그램에 관련된 사항 등이 저장된 system.day, user.dat 파일이 바로 레지스트리이다. 윈도우와 프로그램에 관련된 사항은 레지스트리 외에도 win.ini, system.ini 파일을 비롯한 각종 INI 파일에도 저장되어 있으며 16비트 프로그램을 위하 ㄴ여러 개의 INI 파일이 존재하긴 하지만 윈도우의 표준을 지키는 32비트 프로그램에 관련된 설정값은 모두 WINDOWS 디렉토리에 있는 레지스트리 파일에 저장된다. 레지스트리는 텍스트가 아닌 16진수로 되어 있어 INI 파일보다 속도가 빠르고 레지스트리편집기(regedit.exe)를 이용하여 설정한다. 모든 프로그램 설정이 하나의 레지스트리에 저장되어 관리가 용이하다. 레지스트리 백업 및 복구는 편집메뉴에서 백업 및 복원을 실행한다.


종류

HKEY_CLASSES_ROOT : 파일의 각 확장자에 대한 정보와 파일과 프로그램간의 연결에 대한 정보가 들어있다.

   HKEY_CURRENT_USER : 윈도우가 설치된 컴퓨터 환경설정에 대한 정보가 들어있다.

   HKEY_LOCAL_MACHINE : 설치된 하드웨어와 소프트웨어 설치드라이버 설정에 대한 정보가 들어있다.

   HKEY_USERS : 데스크탑설정과 네트워크환경에 대한 정보가 들어있다.

   HKEY_CURRENT_CONFIG : 디스플레이와 프린터에 관한 정보가 들어있다.


   관련파일

   윈도우에서는 레지스트리 정보는 \windows or \winnt 폴더에 USER.DAT, SYSTEM.DAT라는 파일로 저장된다 윈도우의 모든 시스템정보를 백업 및 복구하기 위해서는  USER.DAT, SYSTEM.DAT, SYSTEM.INI, WIN.INI가 있어야 한다.


   트로이목마 제거방법 

   - 트로이 목마 서버 S/W가 설치되는 컴퓨터는 공격대상이 되어 중요한 정보가 공격자에게 전달된다. 공격대상 컴퓨터에 설치시 재시작시에 트로이목마 서버 S/W가 자동으로 실행하도록 설정하는 것이 특징이다. 레지스트리에서 검색하여 탐지 및 제거할 수 있다.

   - HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServices\NetBus Server 을 찾기하여 레지스트리 탐지가 가능하다.  NTRootkit, BAGLE은 레지스트리를 자동실행 등록을 한다. 



 

  




728x90



ㅇ 윈도우 운영체제별 설치 중요사항

- 파티션나누기 

 물리적 하드디스크를 논리적으로 분할 영역을 만드는 작업


- 라이센스모드

서버에 연결하는 클라이언트들을 위해 라이센스를 구입해야 하며, Per Server, Per Seat 두 종류가 있다

Per Server :  서버에 동시에 연결하는 사용자의 숫자 만큼의 라이센스를 구입해야 한다. -> 다수가 클라이언트 접속하는 경우

Per Seat : 라이센스가 있는 클라이언트는 서버의 숫자에 상관없이 모든 서버에 접속할 수 있다.



ㅇ 공유자료 관리

- 윈도우 파일시스템(NTFS, FAT)

 파일 시스템이란 운영체제가 파일을 시스템의 디스크상에 구성하는 방식을 말한다. 시스템의 디스크 파티션 상에 파일들을 연속적이고 일정한 규칙을 가지고 저장하는데 파일 시스템은 이러한 규칙들의 방식을 제시한다. 


ㅇ NTFS 파일시스템 개념

- NTFS는 윈도우 NT에서 지원하는 것으로 파일크기 및 볼륨은 이론상으로 10의 18승 바이트까지 지원가능하지만 실질적으로는 16테라바이트까지 지원한다. 안정성, 사용자제한, 보안성등이 FAT32보다 뛰어나다.

- NTFS 보안은 NTFX 파일 시스템으로 포맷된 볼륨이나 파티션에 적용된다. 로컬 파일 시스템 보안을 제공하며 네트워크를 통해 액세스하는 사용자에게도 적용된다.

- NTFS 보안은 사용자마다 서로 다른 NTFS 보안을 적용시킬 수 있다.

- NTFS 시스템에 특정 사용자가 생성한 폴더나 파일에 대해서는 생성자에게 권한이 있다. 즉 소유권을 가진 폴더나 파일에 대해서 NTFS보안을 설정할 수 있다는 뜻. 그러나 Windows 2000 Server의 시스템 폴더에 대해서는 Administrators 그룹과 Power User그룹의 구성원만이 가능하고 일반사용자는 불가하다.


ㅇ NTFS 파일시스템 기능

- 파일과 폴더 차원의 보안, 디스크압축, 디스크할당, 파일 암호화


ㅇ 공유폴더 보안

- 윈도우 NT 이상에서는 관리목적을 위한 기본공유라는 것이 기본적으로 존재한다.  cmd창에서 net share을 실앵하면 ADMIN$, IPC$, C$ 등이 공유가 되어 있다. IPC$는 null session share(사용자 인증없이 접속가능)

HKLM\SYSTEM\CurrentControlSet\Services\lanmanserver\parameters g 디렉토리에 DWORD 값을 추가하고 값을 0으로 설정한다.


ㅇ공유폴더 사용권한 설정

- 폴더를 공유할 경우에는 공유되는 폴더의 등록정보에서 공유-사용권한에서 사용자 및 읽기, 변경, 모든 권한을 선택하여 설정할 수 있다.


- 숨김파일 및 폴더 표시안함을 선택하여 숨겨진 파일의 공유설정을 방지할 수 있다.









728x90

유닉스

개념 : 유닉스는 AT&T를 통해 상업적으로 허가해주는 SVR(System V Release) 계열과 버클리 대학에서 나온 연구 개발 운영체제인 BSD 계열로 크게 나누어 발전해 왔다. 점차 각자의 고유한 특성을 가지게 되었으며 이후 POSIX를 통하여 SVR, BSD에서 동시에 동작하는 표준을 제공하여 어러 시스템에서 동작하는 프로그램을 만들수 있게 되었다.


운영체제로써의 유닉스 특징

- 대화식 운영체제(Shell) : 사용자에게 명령어를 입력받기 위해서 유닉스는 쉘 프롬프트를 화면에 나타낸다. 프롬프트가 나타난 상태에서 사용자가 명령어를 기술하면 그 명령어는 명령어 해석기(Shell)를 통하여 시스템에 전달되고 시스템은 명령어를 처리하고 정상여부 및 고장 원인에 대한 답변도 알려주어 시스템과 대화하는 방식으로 사용된다.


- 멀티태스킹 : DOS와의 커다란 차이점인 멀티태스킹은 하나의 명령어 처리가 완료되지 않은 상태에서 다른 명령어를 처리할 수 있다.


- 멀티유저환경 : 멀티태스킹과 같은 기능이 가능함으로써 멀티유저 시스템으로 쓰여 질수 있는 것이다. 멀티 유저는 다중 사용자라는 뜻으로 여러 사용자가 시스템을 동시에 사용할 수 있도록 되어 있다.


- 계층적 파일 시스템 : UNIX 파일시스템은 트리구조로 구성되어 있는데 이 트리는 디렉토리이다.


- 이식성(Portability) : 하드웨어의 종류에 상관없이 운영되는 특성


- 유연성 : 동일 기종 간 또는 타기종 간의 통신상의 유연성을 가지고 있다.


- 호환성 : 타 기종에 자유로이 사용되므로 호환성이 높다.


- 입출력 방향 전환 및 파이프 기능 : 파일로 부터 직접 파일내용을 입출력할 수 있고 2개 이상의 명령어를 연결하여 다음 명령어의 입력값으로 지정할 수도 있다.


- 보안 빛 보호기능


- 각종 디바이스의 독립성 : 모든 주변장치는 하나의 파이로 간주된다.


쉘(Shell)의 기능

- 사용자가 입력하는 명령을 읽고 해석을 하며 사용자가 프로그램을 수행하고 프로세스들이ㅡ 파이프라인을 만들고 출력을 파일에 저장하며 동시에 하나 이상의 프로그램이 수행되도록 한다. 이처럼 명령어 해석기로서의 역할뿐만 아니라 쉘은 프로그래밍 언어이기도하여 쉘이 해석할 수 있는 스크립트(script)라는 프로그램을 작성할 수 있고 유닉스 명령뿐만 아니라 특별한 쉘 프로그래밍 언어도 포함할 수 도 있다.


- 쉘프로그램은 간단하지 않는 설정사항을 반복적으로 수행하여야 하는 경우나 정기적인 시스템 관리업무 등을 자동으로 수행하는 경우에 자주 사용하며 정기적인 쉘프로그램 수행을 위해서는 crontab에 등록한다.


쉘(Shell)의 종류

- sh, csh, ksh


리눅스 특징

- 오픈소스 운영체제, 다중 사용자 환경, 다중작업 및 가상터미널 환경, GUI 방식의 X윈도우, CPU에 구애 없는 운영체제, 강력한 네트워크 환경, 다양한 드라이버 지원


- 종류 : RedHat, Fedora, ContOS, Ubuntu


X-윈도우 시스템

개념 : 리눅스를 비롯해 대부분의 유닉스에 채용되어 있는 혁신적이면서 네트워크 투명성을 보장하는 그래픽 환경 기반의 시스템 소프트웨어이며 현재의 리눅스에 있어 표준으로 사용되는 것은 XFree86 프리웨어 프로그램이다. X 윈도우 시스템은 서버/ 클라이언트로 구성되어 있으며 X 프로토콜에 의해 상호작용이 이루어진다.


특징 

- 네트워크 기반의 그래픽환경

- 뛰어난 이식성

- 스크롤바, 아이콘, 색상 등의 그래픽 환경에 필요한 자원들이 특정한 형태로 정의되어 있지 않다.

- 서로 다른 이 기종을 함께 사용한다.

- 디스플레이 장치에 의존적이지 않다.

- 서버 클라이언트 방식 : 클라이언트는 서버로부터 키보드나 마우스 입력같은 사용자의 입력을 얻을 수 있다. X클라이언트는 X서버가 제공하는 기능들을 이용하도록 작성된 하나의 응용프로그램이다. 

- 통신을 위해 X프로토콜을 사용한다.


파일시스템 구조

- 부트 클록 : 디스크이 가장 첫 번째에 위치하는 블록, 운영체제 기동에 필요한 부팅에 필요한 정보저장

- 슈퍼 블록 : 전체 파일시스템 정보를 저장

- I-Node : 개별 파일, 디렉터리에 대한 정보 저장( 파일소유자, 파일타입, 접근권한, 사이즈)

- Data 블록 : 실제 파일에 데이터를 저장하는 영역








728x90

기억장치의 종류의 계층







기억장치의 종류

주기억 장치 

- ROM(비 휘발성, 시스템가동에 필요한 정보 저장)

- RAM(휘발성, CPU와 보조기억장치 I/O 속도차이 극복을 위한 저장장치)


보조기억 장치 

- 비휘발성 저장 장치로 비교적 대용량이며 속도가느리다, 하드디스크, 자기테이프, 자기디스크 등


가상 기억장치

- 보조 기억장치 용량의 일부를 RAM처럼 사용, RAM의 용량 한계를 극복


메모리 할당기법

개념 : 메모리 할당기법은 기억장소에 프로그램이나 데이터가 들어올 경우 기억장소의 위치를 결정

종류

- 최적 적합(Best Fit) : 입력된 프로그램을 수용할 수 있는 공간 중 가장 작은 공간을 할당

- 최초 적합(First Fit) : 입력된 프로그램을 수용할 수 있는 공간 중 가장 먼저 발견된 공간을 할당

- 최악 적합(Worst Fit) : 입력된 프로그램을 수용할 수 있는 공간 중 가장 큰 공간을 할당


메모리 단편화 문제

개념 :단편화는 기억장치 관리에서 각 작업에 필요한 기억장치 공간들은 계속적으로 할당 및 회수를 반복할 때 주 기억장치 중에서 실제로 작업에 사용되지는 않으면서 유용하게 사용될 수도 없는 공간을 의미한다. 

예) 100바이트를 요청하여 데이터를 저장하려고하는데 150바이트의 공간이 할당된다. 결국 50바이트는 사용하지 않는 것인데 이것을 메모리 단편화라하고 블록 내부에서 생기는 단편화를 내부 단편화, 대기 중인 작업이 분할영역보다 커서 분할전체가 빈 공간으로 있을 때의 상태를 외부단편화라 한다.


해결방법

압축(Compaction)

- 산재한 기억장소를 한 군데로 모아 최대의 연속된 빈 공간을 확보하는 것을 말한다. 기억장치 내에 흩어져 있는 공백들이 상당한 양의 메모리를 차지하고 있는 경우가 있는데 이를 해결하여 주고 메모리 압축은 사용되고 있는 기억장치의 공간을 주 기억장치의 한쪽 끝으로 옮겨 공간을 확보해준다.


페이징(Paging)

- 주소공간을 페이지 단위로 나누고, 실제 주소공간은 페이지 크기와 같은 페이지 프레임으로 나누어 사용하는것

- 페이징 테이블은 논리적 주소 공간으로부터 물리적 기억장치로의 주소변환을 위해서 페이지 테이블이 필요(매핑테이블)

- 페이지 하드웨어 : 페이징을 수행하기 위해 필요한 하드웨어의 지원, 명령어를 수행하기 위해 필요한 주소는 페이지번호와 페이지 옵셋으로 표현

- 페이지 공유 : 시스템에서 여러 사용자가 동일한 프로그램을 수행하는 경우에 중복된 데이터를 여러개 가지는 문제를 해결하기 위해서 공유가 필요

- 페이지 부재 : 메모리에 적재된 페이지를 읽으려고 할 때 해당 페이지가 없는경우

- 요구 페이징 : 실행할 프로그램 일부만 메모리에 적재하는 것으로 프로그램이 순차적으로 실행되는 특성과 프로그램 일부가 자주 사용될 때 다른 부분은 거의 활용하지 않는 점을 이용하여 요구페이징 기법에서 프로그램의 일부만을 메모리에 적재하여 실행할 수 있게 하여 프로그램 최대 크기에 대한 제한이 사라지게 된다.


페이징 교체 알고리즘 종류와 개념

- 선입선출(FIFO: First in First Out) : 주기억장치에서 가장 많은 시간을 보낸 페이지부터 교체하는 알고리즘이고 주기억장치 적재순서를 기록하여 선입선출 큐를 유지관리

- 최근최소사용(LRU : Least Recently Used) : 가장 오랜 기간 사용되지 않았던 페이지를 교체하는 알고리즘

- 최적교체(OPT : optimal) : 가장 오랫동안 참조되지 않을 페이지를 희생 페이지로 선택하는 방식

- 클럭(clock) : 선입선출알고리즘 + 최근최소사용알고리즘 결합한 방식이며 참조비트가 해당 페이지가 참조될때 마다 세트되어 주기적으로 소멸되는 방식


세그먼테이션 기법

개념 : 일반적으로 사용자가 작성하여 실행하는 프로그램은 서브루틴과 함수, 프로시저, 모듈의 집합으로 구성되어 있고 아울러 각종 테이블, 행렬 또는 스택 등과 같은 여러가지 형태의 자료 구조들이 있는데 이때 이러한 논리적 단위가 되는 프로그램 모듈이나 자료 구조 등을 세그먼트라 한다. 


구조및역할 : 세그먼트 번호와 세그먼트 오프셋으로 구성된 주소를 사용하는데 사용자가 사용하는 주소와 물리적 주소간의 변환을 책임직 하드웨어의 지원이 필요하게 되고 세그먼트 테이블을 이용하여 주소를 변환한다.


가상기억장치(Virtual Memory)

개념 : 가상기억장치는 시스템에 설치된 물리적 기억장치의 효율적 사용을 위해 사용자에게서 물리적 기억장치를 숨기고 논리적으로 확장된 기억장치를 제공하는 기법으로 물리적 기억장치와 논리적 기억장치 사이의 대응관계를 관리및 유지한다. 시스템 구조와 운영체제의 협력관계가 수행되어야 한다.


디스크 스케줄링

개념 : 탐구시간은 데이터의 기록 판돈을 위해 디스크 헤드를 필요한 실린더로 이동시키는데 소요되는 시간이며 디스크 스케줄링의 목적은 탐구시간을 최적화하기 위함이다. 데이터의 기록/판돈을 위한 요구가 많아 대기중인 경우 어느 실린더에 대한 요구부터 시작할 것인가를 결정한다.


디스크 스케줄링 기법

- FCFS(First Come First service) : 먼저 도착한 디스크 입출력 요청부터 우선처리

- SSTF(Shortest Seek Time First) : 최소 탐색시간을 갖는 입출력요청을 우선처리 -> 안쪽과 바깥족 실린더에 대한 입출력 요청은 기아상태 발생가능

- SCAN : 헤드가 실린더 양 끝을 왕복, 헤드 진행방향으로 가장 짧은 거리에 있는 입출력요청을 우선적으로 서비스

- C-SCAN : SCAN 기법을 개선하여 입출력 요청에 대하여 균등한 대기시간을 보장, 헤드가 항상 동일한 방향으로 이동하고 가장 짧은 탐색시간을 갖는 입출력요청을 우선처리

- C-Look : C-Scan 기법의 개선, 헤드 이동 방향의 마지막 입출력 요청을 처리 후 헤드를 처음 위치로 이동하여 다음 입출력 요청 처리

- N-STEP : SCAN 기법을 개선하여 헤드가 이동을 시작할 때 대기중인 입출력 요청만 처리하고 이동중에 도착한 입출력 요청들은 다음에 처리



 

728x90

운영체제의 주요 구성기술(프로세스 관리만)

1. 프로세스 관리 2. 기억장치 관리 3. 파일시스템 관리 4. 분산시스템 관리

 

1).프로세스 관리

개념 : 시스템 작업의 기본 단위이며 현재 수행상태에 있는 프로그램을 의미한다. 예를 들면 수행중인 응용프로그램, 운영체제의 일부인 CPU 스케줄러등이 프로세스가 될 수 있다. 하나의 프로세스는 생성되어 완료될 떄까지 상태변화를 거치게 된다.


- 생성 : 프로세스가 생성되었지만 운영체제에 의해서 실행가능한 프로세스 집합에 들어가지 못한 상태

- 실행 : 현재 CPU를 차지하여 실행중인 상태

- 준비 : 프로세스가 실행되고 있지 않지만 즉시 CPU를 사용할 수 있는 상태

- 대기 : 어떤 사건이 발생하기 전까지는 실행될 수 없는 상태

- 보류 : 프로세스가 디스크 등에 보관되어 있는 상태

- 교착 : 프로세서가 결코 일어날 수 없는 사건을 기다리는 상태

- 종료 : 운영체제에 의해서 실행가능한 프로세스 집합으로부터 해제된 상태


프로세스 제어블록 : 프로세스는 프로세스 제어블록(PCB)으로 나타내며 운영체제가 프로세스에 대한 중요한 정보를 저장해 놓은 저장소를 의미한다. 운영체제가 제어를 다른 프로세스에 넘겨줄 때 현재 실행중인 프로세스의 정보를 해당 PCB에 저장한 후 제어를 넘겨주게 된다. 제어가 다시 프로세스에게 넘겨질 경우 운영체제는 PCB에 있는 정보를 이용해서 실행을 한다.


2.병행처리와 프로세스

1) 프로세스 생성하는데 필요한 작업

- 프로세스 이름을 결정

- 프로세스 리스트에 생성된 프로세스를 추가

- 생성된 프로세스에 초기 우선순위를 부여

- 생성된 프로세스에 PCB를 생성

- 생성된 프로세스에 초기자원 할당


2) 쓰레드

- 프로세스가 논리적으로 운영체제가 해야 하는 작업을 의미한다면 스레드는 그 작업을 성취하는데 필요한 가능한 많은 하위 작업 중의 하나이고 하나의 프로세스는 하나의 쓰레드나 여러개의 쓰레드로 구성될 수 있다. 따라서 프로세스보다는 작은 단위이며 자원의 할당에는 관계하지 않고 프로세서 스케줄링의 단위로서 사용하게 된다.


3)태스트( 프로세스와 같은개념)

- 태스크는 자원 할당의 단위로 정의될 수 있으며 프로세스와 같은 개념으로 이해할 수 있다. 즉, 쓰레드는 프로세스처럼 독립된 주소공간을 가질 수 없고 프로세스처럼 독립적으로 자원 할당을 요청할 수 없다 


3. 프로세스 스케줄링

개념 : 멀티 프로세스 시스템 내에 존재하는 여러개의 프로세스 중 어떤 프로세스에게 CPU 사용권을 넘겨줄 것인가를 결정하는 일이다.  멀티 프로세스는 시스템에서는 생성된 프로세스는 일단 준비상태로 넘어가게 되고 준비 상태에서는 여러 개의 프로세스가 실행되기를 기다리고 있는 상태를 운영체제가 이들을 큐에 보관하고 관리(대기 큐)하면서 CPU가 사용 가능하면 운영체제는 대기 큐에서 기다리고 있던 프로세스에게 CPU 사용권을 넘겨준다.


종류

스케줄링 큐

- 준비큐 

주기억 장치에 적재되어 있으면서 CPU에 의해 실행되기를 준비하는 프로세스들로 구성된 리스트

첫 번째와 마지막 PCB(프로세스 제어블록)를 가리키는 큐 헤더와 각 프로세스의 정보와 다음 프로세스의 PCB를 가리키는 포인터 필드를 포함한 PCB로 구성


- 작업큐

주기억장치의 할당을 기다리며 대용량의 기억장치에 있는 프로세스들로 구성된 리스트


- 장치큐

특정한 입출력 장치를 기다리고 있는 프로세스로 구성된 리스트


4. 스케줄러

장기스케줄러(작업스케줄러) : 저장소(큐)에서 프로세스들을 선택하여 실해하기 위해 기억장치로 적재

단기스케줄러(CPU스케줄러) : 실행준비가 되어 있는 프로세스 중에서 선택하여 이들 중 하나에게 CPU를 할당

중기 스케줄러 : 기억장치에서 프로세스들을 제거하여 다중프로그래밍의 정도를 완하하는 것이 바람직할 때가 있다는 것에서 유래한 것으로 프로세스는 중기 스케줄러에 의하여 교체된다. 차후에 다시 프로세스를 메모리로 불러와서 중단되었던 지점으로부터 실행을 재개하는 기법을 스와핑이라 한다.


스케줄링 성능기준

- CPU 이용률 : 프로세스들이 CPU를 사용하는 비율로 실제로는 CPU가 쉬는시간을 측정하여 그 시간을 제외한 나머지 시간을 사용

- 시스템 처리율 : 단위시간당 완료된 프로세스의 개수 

- 반환시간 : 프로세스들이 시스템에 들어간 시간과 마친 시간의 차이를 말하며 출력장치의 속도에 제한을 받는다.

- 대기시간 : 프로세스가 준비 큐에서 대기하는 시간으로 큐의 길이에 의해 측정될 수 있다.

- 응답시간 : 프로세스의 요구한 시간으로부터 첫 번째 응답이 나올 때까지의 시간


스케줄링 방법 분류

-선점 스케줄링 : 현재 프로세스로부터 프로세서를 빼앗을 수 있는 방식으로 높은 우선순위의 프로세스로부터 긴급처리 요구에 유용하며 특히 실시간 프로세스, 대화식 시분할 시스템에서 빠른응답이 가능

종류 : RR(Round Robin), SRT(Shorest Remain Time), MFQ(Multi level Feedback Queue), MLQ(Multi level Queue)


-비선점 스케줄링 : 프로세스에게 할당된 프로세서를 빼앗을 수 없는 방식, 사용이 끝날때까지 기다림

종류 : FIFO(First In First Out), SJF(Shortest Job First), HRN (Highest Response Ration Next), 우선순위, 기한부


5. 프로세스간 협조

- 생산자와 소비자 문제 : 두 개의 프로세스는 하나의 고정된 크기의 버퍼를 공유하는 상태에서 하나의 프로세스는 그 버퍼에 정보를 써넣는 생산자이고 또 다른 프로세스는 버퍼에 있는 정보를 꺼내어 사용하는 소비자 프로세스이다. 이들이 같은속도로 진행된다면 문제는 없지만 속도가 다를 경우 즉 버퍼가 비어 있는 상태에서 소비자 프로세스가 버퍼에서 데이터를 읽어가려하거나 생산자가 정보를 넣을때 버퍼가 가득차있어 오버플로우 되는 현상이 나타날 수 있다. 


6, 임계영역 문제

두개 이상의 프로세스가 동시에 액세스 하면 안되는 공유 자원을 액세스하는 코드영역

해결하기위한 3가지 조건

1. 상호배제

2. 진행(Progress) : 임계구역에 들어가려고하는 프로세스들만이 순서결정에 참여

3. 한계대기(bounded wating) : 무한정 대기해서는 안됨


7. 프로세스간 통신

- 공유 메모리 방식 : 어떤 변수들을 공유함으로써 프로세스들간의 통신이 이루어지는 기법으로 프로세스들은 공유변수를 통해 정보를 교환하며 운영체제는 공유메모리만 제공한다. 프로그래머는 공유메모리를 통해 통신기능을 구현할 수 있다.

- 메시지 시스템 방식 : 프로세스들이 메시지를 교환하도록 허용하는 기법이다.


8. 교착상태(Deadlock)

현상 : 다중 프로그래밍 시스템에서 아무리 기다려도 결코 일어나지 않을 사건을 기다리고 있는 프로세스를 교착상태에 빠졌다고 한다. 교착상태란 다중 프로그래밍 시스템 하에서 서로 다른 프로세서가 일어날 수 없는 사건을 무한정 기다리는 상태를 의미하고 이러한 상태를 환형대기(Circular wait)라고도 한다.


발생조건 : 상호배제, 점유와대기, 비중단조건, 환형대기조건


해결방안 : 예방, 회피, 탐지, 복구








728x90

커널의 개념(유닉스에서 젤 중요한 부분)

하드웨어 특성으로부터 프로그램들을 격리시키고 하드웨어와 직접적으로 상호작동함으로써 프로그램들에게 일관된 서비스를 제공한다. 커널의 기본개념은 파일관리 이다. 그 밖에 입출력장치 및 메모리 관리, 시스템호출 인터페이스 등이 있다. 쉘이나 유틸리티 또는 응용프로그램들은 정의된 시스템호출을 통해서 커널과 통신한다. UNIX 계열의 시스템이 부팅될 때 가장 먼저 읽혀지는 운영체제의 핵심부분으로 주기억 장치에 상주하게 되며 프로세스 스케줄링, 기억장치 관리, 파일시스템관리, 운영체제의 고유 기능을 제공한다.


- 시스템 호출(System call)

이중모드에서 사용자 모드는 특권 명령어를 사용할 수 없으며 이런 경우에 사용자 프로세스는 운영체제에게 도움을 요청하게 되는데 이를 시스템 호출이라 한다.


- 이중모드(Dual mode) 

다중 프로그래밍 환경에서는 실행 중인 하나의 프로그램의 오류가 실행중인 다른 프로그램에게 영향을 줄 수 있으므로 적절한 보호가 필요하다. 이중 모드는 두 가지 동작 모드를 제공하여 문제를 일으킬 프로세스의 실행을 제어한다.


- 사용자모드

소프트웨어 특권이 부여되지 않은 상태로 동작하며 시스템 리소스에 제한적으로만 액세스 가능하다. 보호 받는 하위 시스템들은 각자가 소유하고 있는 보호받는 공간에서 실행되며 서로 간섭하지 않는다. 


- 모니터 모드

커널모드, 슈퍼바이저 모드라 하며 문제를 일으킬 소지가 있는 명령어들은 특권 명령으로 분류하고 모니터 모드에서만 수행되도록 제한한다.


- 프로세서 관리 (유닉스는 계층은 윈도우 5계층과 다르게 3계층으로 줄어 들지만 하는일은 똑같음)

하드웨어에 의존된 가장 하위 단계 수준으로 프로세스 스케줄링을 통해 실행 가능한 프로세스 추적 관리


-주기억장치 관리 (RAM, ROM)

주기억장치의 접근을 관리 및 제어하는 처리 장치의 부분으로 주소 변환, 기억보호, 버퍼기억등의 기능을 수행


-보조기억장치 관리 (하드디스크, USB)

하드디스크나 디스켓 등의 기억장치에 대한 접근관리, 제어등을 수행하는 기능


-입출력 시스템관리

1. 컴퓨터의 입출력장치(I/O)

 중앙 시스템과 외부와의 효율적인 통신방법을 제공한다, 주변장치라고도 하며 예로 키보드, 디스플레이, 프린터, 자기테이프, 자기디스크 등이 있다.


2.장치 구동기

운영체제와 으용프로그램 및 하드웨어간의 인터페이스를 담당하는 프로그램으로 하드웨어와 응용프로그램의 연결고리이다. 장치제어기 또는 드라이버라고도 얘기한다. 장치제어기라고도 하며 장치제어기는 명령어를 장치 제어기에 입력하기 위해 하나 이상의 장치 레지스터를 갖고 있는데 장치 구동기는 이들 명령어를 발생시키고 적절하게 수행되는지를 점검하는 기능을 수행한다.


3.디스크 구동기

디스크 제어기가 가지고 있는 많은 레지스터의 사용량, 용도를 관리하게 되며, 섹터, 트랙, 실린더, 헤드 , 암의 움직임, 디스크 인터리브 계수, 모터 구동기, 헤드설정시간 등 디스크가 적절하게 작업할 수 있는 모든 기계적인 정보들을 알고 있다.


4.인터럽트와 DMA

데이터 입출력 방식 : 프로그램에 의한 입출력, 인터럽트에 의한 입출력, DMA에 의한 입출력


- 프로그램 입출력

데이터의 입출력 동작이 CPU가 수행하는 프로그램의 I/O 명령에 의해 수행된다. 따라서 프로그램 제어 하에서 데이터전송을 수행하려면 입출력을 수행할 준비가 되어 있는가를 알기위해 CPU가 주변장치의 상태를 계속 감시하고 있어야 한다.


- DMA(Direct Memory Access)

 CPU를 거치지 않고 주변장치와 메모리 사이에 직접 데이터를 전달하도록 제어하는 인터페이스 방식이다.


-버퍼링과 스풀링

버퍼링(Buffering) : 입출력 장치와 보조 기억장치는 기계적 요인 때문에 CPU와 비교할 때 매우 느린속도로 작동한다. 이와 같은 입출력장치의 느린속도를 보완하는 한 가지 방법으로 버퍼링이 있다.  한 레코드가 읽혀 CPU가 그것에 대한 연산을 시작함과 동시에 다음에 필요한 레코드를 미리 읽어서 주기억장치에 저장함으로써 CPU가 필요한 레코드를 기다림이 없도록 하는 것이다. 이와 같이 미리 읽혀진 레코드들이 존재하는 곳은 주기억장치의 일부인데 이를 버퍼라하고 이와 같은 일련의 과정을 버퍼링이다 한다.


스풀링(Spooling) : 디스크를 매우 큰 버퍼처럼 사용하는 것이다. 프로세스들은 입력 또는 출력을 실제 입출력 장치를 통하지 않고 가상적 입출력장치인 디스크를 매체로 이용한 후 이들을 다시 실제의 입력장치나 출력 장치가 행하도록 한다.


파일관리

- 운영체제는 프로그램이나 데이터를 파일단위로 관리하며 저장장치에 파일단위로 저장한다. 파일에 대한 조작, 저장방식, 접근방법등에 대한 관리 수행


- 인터럽트(방해하다)의 종류

입출력 인터럽트 : 프로세스가 요청한 입출력의 완료등과 관련하여 발생

클럭 인터럽트 :  프로세스 시간 할당량 종료와 관련하여 발생

콘솔 인터럽트 : 콘솔 터미널에서 인터럽트 키를 누를때에 발생

프로세스간 통신 인터럽트 : 임의의 프로세스가 지역 호스트 또는 원격 호스트의 다른 프로세스로 부터 통신 메시지를 받을 경우

시스템 호출 인터럽트 : 시스템 호출하였을 때 발생

프로그램 오류 인터럽트 : 프로그램의 실행 중 논리적인 오류로 인하여 발생

하드웨어 검사 인터럽트 : 하드웨어 상의 오류가 있을 때 발생


- 운영체제의 구조를 프로그램별로 분류(공통)

제어 프로그램 : 감시 프로그램, 작업 프로그램, 데이터관리 프로그램

처리 프로그램 : 언어번역 프로그램, 서비스 프로그램, 문제처리 프로그램


운영체제의 기술발전 흐름

일괄처리 -> 실시간처리 -> 시분할 처리 - >분산처리 - >다중 프로그래밍 -> 다중처리










728x90

운영체제의 목적

- 컴퓨터 시스템의 자원(하드웨어 자원, 정보)을 최대한 효율적으로 관리, 운영하여 사용자들에게 편의성을 제공한다

- 하드웨어와 사용자 프로그램 사이에 존재하는 시스템 프로그램으로 사용자 인터페이스 제공, 성능 향상 등 한정된 자원을 효율적으로 사용

- 신뢰도 및 처리량의 향상, 응답시간 단축, 단순한 계산 능력을 제공하는 하드웨어를 유저가 쉽게 접근할 수 있도록 제공, 


- 제한된 시스템 소스를 효율적으로 통제하고 운영하여 높은성능 발휘


운영체제의 기능

- 운영체제의 기능은 프로그램 생성 및 실행, 입출력동작, 파일시스템 조작, 통신, 오류발견 및 응답, 자원할당, 계정관리, 보호등이 있다.


운영체제의 구조

- 운영체제의 구조는 컴퓨터 시스템 자원관리 계층에 따라 분류하면 일반적으로 5가지 기능을 수행하는 것으로 볼 수 있다.






- 프로세서 관리 계층 : 동기화 및 프로세서 스케줄링 담당

- 메모리 관리 계층 : 메모리의 할당 및 회수 기능을 담당

- 프로세스 관리 계층 : 프로세스의 생성, 제거, 메시지전달, 시작과 정지등의 작업

- 주변장치 관리 계층 : 주변장치의 상태파악과 입출력 장치의 스케줄링

- 파일정보 관리 계층 : 파일의 생성과 소멸, 파일의 열기와 닫기, 파일의 유지 및 관리 담당

728x90

홈페이지 개인정보보호

1. 오탐의 원인이 되는 코딩 방식을 배제한 시큐어코딩 적용

 - SQL 삽입, 자원 삽입, 크로스 사이트 스크립트 등

2. 보안기능

 - 부적절한 인가, 중요정보 평문 저장 등

3. 에러처리

 - 패스워드 요구조건, 오류메시지를 통한 정보노출 등

4. 불충분한 캡슐화

 - 제거되지 않고 남은 디버그 코드, 시스템 데이터 정보노출 등

5. 코드오류

 - 널포인트익셉션, 부적절한 자원 해제 등

6. API 오용

 - 보안에 취약한 API를 사용하여 발생할 수 있는 보안약점


 



스마트폰 앱 개인정보보호

1, 앱이 사용자의 스마트폰 정보에 접근할 수 있는 권한의 범위를 서비스의 필요한 범위내로 최소화

2. 앱 마켓 등록 시 앱 권한 정보와 개인정보 취급방침을 알기 쉽게 공개하도록 하여 이용자가 내려 받을지 여부를 

   판단하기 위한 정보를 제공

3. 개인정보 취급과 관련한 동의 절차를 간소화하여 편리하게 서비스 이용이 가능하도록 하고 서비스 탈퇴 절차 등       을  쉽게 개선



기업의 개인정보보호


1. 기술적 조치

외부침입방지, 개인정보유출 방지 및 통제소룰션, 백신프로그램 설치


2. 관리적 조치

관리체계구축, 개인별보안지침준수, 보안의식교육시행


3. 물리적조치

CCTV, 시건장치


개인정보 기술분야 안전수칙

1. 내부관리계획 수립

2. 개인정보처리시스템 접근권한 철저관리

3. 정보통신망을 통한 불법 접근 차단

4. 고유식별정보 등 중요정보 암호화

5. 접속기록 6개월이상 보관, 반기별 점검

6. 악성프로그램 방지를 위한 보안프로그램 설치

7. 전산실, 자료실 접긑 오제

8. 철저한 개인정보파기



728x90

NAT (Network Address Translation)


사설  IP주소를 공인 IP주소로 바꿔주는데 사용하는 통신망의 주소 변환기.

인터넷의 공인 IP 주소는 한정되어 있기 때문에 가급적 이를 공유할 수 있도록 하는 것이 필요한데 NAT를 이용하면 사설 IP주소를 사용하면서 공인 IP주소와 상호변화할 수 있도록 하여 공인 IP주소를 다수가 함께 사용할 수 있도록 함.


공개된 인터넷과 사설망 사이에 방화벽을 설치하여 외부 공격으로부터 사용자의 통신망을 보호하는 기본적인 수단으로 활용


DHCP(Dynamic Host Configuration Protocol)


IP 주소와 같은 TCP/IP 통신을 수행하기 위한 네트워크 구성 파라미터들을 동적으로 설정하기 위해 사용하는 표준 네트워크 프로토콜 


IP주소들의 풀(pool)과 클라이언트 설정 파라메터를 관리한다.


ISP(웹 호스팅을 제공하는회사)로부터 할당 받은 주어진 주소 블록 내에서 해당 기관의 호스트들에 IP 주소를 할당하고 관리해야하는데 수 많은 호스트마다 IP주소를 할당하기 힘들기 때문에 DHCP를 사용하여 IP를 동적으로 할당받을 수 있도록 한다.


NAC (Network Access Control)


과거 IP 관리 시스템에서 발전한 솔루션이다. IP 관리 시스템에 네트워크에 대한 통제를 강화한 것이다.

NAC의 주요기능을 정리하자면 접근 제어/인증, PI 및 네트워크 장치 통제, 해킹, 웜 유해 트래픽 탐지 및 차단 등이 있다.


VPN(virtual private network)

가상사설망, 인터넷망과 같은 공중망을 사설망처럼 이용해 회선비용을 크게 절감할 수 있는 기업통신 서비스를 이르는 말, 방화벽, 침입 탐지 시스템과 함께 현재 사용되는 가장 일반적인 보안 솔루션 중 하나이다. 


기능

일반 인터넷과 분리된 전용 내부 인터넷망을 구축함

보안성이 좋고 물리적인 전용망을 설치하는 것 보다 저렴

주로 멀리 떨어진 지역의 사무실을 같은 네트워크로 묶을 때 사용.


IDS(intrusion detction system)

기업의 전산시스템에 설치해 서버나 네트워크에 대한 해커의 공격을 실시간으로 탐지하고 이에 대응하는 보안 시스템이다.


ESM(Enterprise Security Management)

방화벽, 침입탐지시스템(IDS), 가상사설망(VPN) 등 다양한 종류의 보안 솔루션을 하나로 모은 통합보안관리시스템으로 최근 시스템자원관리(SMS), 네트워크자원관리(NMS)등 전사적 자원관리시스템까지 포함하는 형태로 개발되는 추세이다.


블록체인(Block Chain)

공공거래 장부라고도 부르며 가상 화폐로 거래할 때 발생할 수 있는 해킹을 막는 기술이다. 거래에 참여하는 모든 사용자에게 거래 내역을 보내 주며 거래 때마다 이를 대조해 데이터 위주롤 막는 방식이다. 여러 컴퓨터가 10분에 한 번 씩 이 기록을 검증하여 해킹을 막는다.


랜섬웨어(Random 몸값 + Malware(멀웨어) 합성어

데이터를 무단으로 암호화한 후 암호 해제를 대가로 금품을 요구하는 악성 소프트웨어이다.


APT 공격 (Advanced Persistent Threat)

특정 대상에 침투하여 금전적 이익 등 소기의 목적을 달성할 때 까지 지속적으로 이어지는 지능적이고 고도화된 공격


인슈어테크(보험 + 기술) Insurance + technology

데이터 분석, 인공지능 등의 기술을 활용해 보험 산업을 혁신하는 서비스를 뜻한다. 최근에는 보험과 기술이 접목되어 가입자마다 다른 보험률을 적용하는 등의 변화를 하고 있다.


로보어드바이저( 로봇 + 투자전문가)

고도화된 알고리즘과 빅데이터를 통한 인간 프라이빗 뱅커(PB) 대신 모바일 기기나 PC를 통해 포트폴리오 관리를 수행하는 온라인 자사노간리 서비스를 말한다. 온라인 환경에서 자산 배분 전략을 짜주어 개인 맞춤형 서비스를 제공할 수 있고 수수려가 저렴하고 낮은 투자금 하한선을 설정할 수 있는 것이 특징이다.






728x90

블랙박스 테스트 개념(외부)

1. 실행파일 형태(인터페이스)로 소프트웨어를 테스트

2. 제대로 동작하는가를 검증하는 방식

3. 자료구조, 외부 데이터 접근, 인터페이스, 성능에러 등에 관한 것들을 확인

4. 화이트박스 테스트보다 비용 많이듬

5. 내부에 어떤 보안기술들이 적용되어 있는지 알수 없음.


블랙박스 종류

동치분할검사, 경계값 분석, 원인-효과 그래프 검사, 비교검사, 오류예측검사


화이트박스 테스트 개념(내부)

1. 소스코드 형태로 추출 정보를 활용하여 논리적인 모든 경로를 테스트

2. 구조적 테스트

3. 설계에 초점을 둠

4. 구조, 논리흐름, 블랙 박스 테스트보다 비용이 적게듬


화이트박스 종류

기초경로검사, 구조검사, 루프검사, 데이터 흐름검사


차이점 예)

블랙박스 테스트는 실행파일 형태 , 화이트박스는 소스코드형태로 소프트웨어를 테스트한다.

게임을 직접 플레이하며 게임상으로 드러난 결과물을 검사하는 것이 블랙박스 테스트이고

게임 소프트웨어 내부의 프로그래밍 언어를 실행 단계에 맞게 추적하며 오류를 검사하는 것이 화이트박스 테스트이다.

728x90

DES 개념

키는 절대로 외부에 유출되지 않도록 해야함

비밀키라고 부르고 대칭키를 사용함. 

외부 사용자에게 노출되지 않아야 함

암호키로 암호화하는 알고리즘을 비공캐키 알고리즘이라한다.


알고리즘 방식

DES 알고리즘은 크기가 64비트인 데이터 블록을 32비트씩 나눈다.

나눈 블록을 암호키로 암호화하고 두 블록의 위치를 16번 바꾼다.

암호키의 크기는 56비트이다.


AES 개념

DES와 마찬가지로 암호키와 암호문을 해독할 때 사용하는 해독키가 같다. 

DES의 암호과 강도가 약해져 새롭게 개발된 알고리즘


알고리즘 방식

블록별로 암호화할 때 다양한 키길이를 갖추고 있음. 128, 192, 256비트

Key의 크기에 따라서 plain text를 변환한다.

10 cycles -> 128bit keys

12 cycles -> 192bit keys

14 cycles -> 256-bit keys


RSA 개념

공개키와 개인키를 세트로 만들어서 암, 복호화하는 인터넷 암호화 및 인증 시스템

국제표준화기구(ISO), ITU, ANSI, IEEE등 여러 국제기구의 암호표준으로 제안됨.


알고리즘 방식

두 개의 큰 소수(140 자리 이상)을 이용한다. 

이 수들의 곱과 추가연산을 통해 하나는 공개키를 구성하고 하나는 개인키를 구성


ARIA 개념

국가보안기술연구소 주도로 학계, 국가정보원 등의 암호전문가들이 힘을 모아 개발한 국가 암호화 알고리즘


알고리즘 방식

경량 환경 및 하드웨어에서의 효율성 향상을 위해 개발된 128비트 블록 암호 알고리즘으로 국가표준으로 지정 되었다. AES 알고리즘과 마찬가지로 128/192/256 암호화키를 지원한다.


SEED 개념

전자상거래, 금융, 무선통신 등에서 전송되는 개인정보와 같은 중요한 정보를 보호하기위해 한국인터넷진흥원, 국내 암호전문가들이 개발한 128비트 블록의 암호 알고리즘

SEED 128비트 - 정보통신단체표준(TTA)로 제정됨.

SEED 256비트 - ISO/IEC 국제블록암호알고리즘, IETF 표준으로 제정


알고리즘 방식

암호화, 복호화에 같은 키를 사용

데이터를 블록으로 처리하는 128 비트 블록 암호 알고리즘으로 평문 블록이 여러 라운드를 거쳐 암호화되는 페이스텔 구조로 되어 있음.