파일첨부 하였습니다

 

 



[정보보안일반] 적중예상문제.zip


블로그 이미지

Diano.

http://www.diano.kr / 이사하는중 /

,

파일첨부 하였습니다

 



[시스템보안] 적중예상문제.zip


블로그 이미지

Diano.

http://www.diano.kr / 이사하는중 /

,

파일첨부 하였습니다

 




[네트워크보안]정보보안기사 예상문제.zip



블로그 이미지

Diano.

http://www.diano.kr / 이사하는중 /

,

파일첨부 하였습니다

 

 




[어플리케이션보안]정보보안기사 예상문제.zip


블로그 이미지

Diano.

http://www.diano.kr / 이사하는중 /

,

※ 정보보안기사에 나오는 법 종류

- 정보통신망 이용촉진 및 정보보호 등에 관한법률(줄여서 정보통신망법 또는 망법 / 개인 정보보호, 기타 정보보호에 관한 조항만)

-- 개인정보 기술적/관리적 보호조치 기준(2012/08/23) : 걍 참고만

- 정보통신기반 보호법

- 정보통신산업 진흥법

- 전자서명법

- 개인정보보호법

-- 개인정보의 안전성 확보 조치 기준(2014-229호)

- 우리나라 법률 정보는 국가법령정보센터(http://www.law.go.kr/main.html)에서 쉽게 열람가능!! PDF로도 추출가능

 

 

 

2. 정보보호 관련법규(6문제/20문제)

(1) 정보통신망 이용촉진 및 정보보호 등에 관한 법률(※ 개인정보보호, 기타 정보보호 관련조항에 한정)

1) 용어의 정의

- 정보통신망

- 정보통신서비스

- 정보통신서비스 제공자

- 이용자

- 전자문서

- 개인정보 : 생존하는 개인에 관한 정보로써(성명/주민번호 등), 특정한 개인을 알아볼수 있는 부호/문자/음성 등의 정보

-- 각각 정보 하나하나로 개인을 구분못해도, 다른 정보와 결합해 구분이 가능하면 그것도 개인정보

- 침해사고 : 해킹/바이러스 등으로 정보통신망 또는 관련된 정보시스템을 공격하는 행위

- 정보보호산업

- 전자적 전송매체

 

2) 정보통신망이용촉진 및 정보보호 등 시책

- 미창부장관 또는 방통위는 정보통신망 이용촉진 및 안정적 관리 운영과 이용자의 개인정보보호 등을 통해  정보사회의 기반을 조성하기 위한 시책을 마련해야 함

-- 정보통신망에 관련된 기술의 개발/보급

-- 정보통신망 표준화

-- 정보내용물 및 11조에 따른 정보통신망 응용서비스의 개발 등 정보통신망의 이용 활성화

-- 정보통신망을 통하여 수집/처리/보관/이용되는 개인정보 보호 및 그와 관련된 기술의 개발 보급

-- 정보통신망에서의 청소년 보호

-- 정보통신망의 안전성 및 신뢰성 제고

-- 그 밖의 정보통신망 이용촉진 및 정보보호 등을 위하여 필요한 사항

- 미창부장관과 방통위가 위에 제시한 시책을 만들 때, 국가정보화기본법 제6조에 따른 정보화 기본 계획과 연계되도록해야함

 

3) 개인정보보호 / 4) 정보통신망의 안정성 확보 / 5) 정보통신망 침해행위

- 개인정보보호법과 유사하지만 차별적인 요소가 있음

- 개인정보수집/이용 및 제공(22조)

-- 정보통신 서비스 제공자가 개인정보 이용을 위해 수집할 때, 알리고 동의받아야 하는 것

--- 개인정보의 수집 이용 목적

--- 수집하려는 개인정보의 항목

--- 개인정보의 보유이용기간

--- ※ 개인정보보호법에서는, 거부할 권한이 있다는것과 이에 따른 불이익도 알리고 동의받아야해

-- 다음은 동의없이도 수집이용가능

--- 정보통신서비스 제공에 관한 계약을 이행하기 위해 필요한 개인정보로서 경제적, 기술적은 사유로 통상적인 동의받는게 뚜렷하게 곤란할 때

--- 정보통신서비스 제공에 따른 요금정산을 위하여 필요한 경우

--- 이 법(망법) 또는 다른 법률에 특별한 규정이 있는 경우

- 개인정보수집 제한 등(23조)

-- 개인정보수집금지 : 사상/신념/가족 및 친인척관계/학력/병력 등 권리 이익이나 사생활을 뚜렷하게 침해할 우려가 있는 경우

-- 수집 허용 : 이용자의 동의나 다른 법률에 허용된 경우

-- 서비스 거부 : 이용자가 최소한의 개인정보 밖에 안알려줬다고 서비스 거부 안됨

- 주민등록번호 사용제한(23조의 2)

-- 다음의 경우를 제외하고 이용자의 주민등록번호를 수집/이용 불가

--- 본인확인기관

--- 법령에서 이용자의 주민등록번호의 수집/이용을 허용하는 경우

--- 주민등록번호의 수집/이용이 불가피한 정보통신서비스 제공자로서 방통위에서 고시한 경우

-- 주민등록번호를 수집/이용 가능하여도, 대체수단(주민번호말고 따른 인증수단)을 제공해야 함

--- 아이핀 / 공인인증서 / 원타임패스워드(OTP)

- 개인정보 이용제한(24조)

-- 수집한 개인정보를, 동의받지 않은 목적(이용목적)으로 이용해서는 안됨

-- 이용목적이 변경되었을 땐 다시 동의받아야 해

- 개인정보의 제공동의(24조의 2)

-- 개인정보를 제 3자에게 제공할 때, 다음의 내용을 이용자에 알리고 동의받아야 함

--- 개인정보를 제공받는 자

--- 개인정보를 제공받는 자의 개인정보의 이용목적

--- 제공하는 개인정보의 항목

--- 개인정보를 제공받는 자의 개인정보 보유 및 이용기간

- 개인정보취급위탁(25조)

-- 위탁은 걍 하청업체에다가 정보주고 너네 이부분 알아서해시키는거

-- 취급위탁의 경우에도 다음의 내용을 이용자에게 알리고 동의를 받아야 함

--- 개인정보 취급위탁을 받는자(수탁자)

--- 개인정보 취급위탁을 하는 업무의 내용

-- ※ 망법에서는 취급 위탁시 동의를 받아야 하지만 개인정보보호법에서는 고지만 함

- 개인정보의 양도 양수(26조)

-- 정보통신서비스 제공자 등이 영업의 전부나 일부가 양도/합병으로 개인정보를 타인에게 이전하는 경우 다음의 내용을 알려야함

--- 개인정보를 이전하려는 사실

--- 개인정보를 이전받는자의 성명(법인명) / 주소 / 전화번호 및 그 밖의 연락처

--- 개인정보의 이전을 원치않은 경우, 그 동의를 철회할 수 있는 방법과 절차

-- 인터넷 홈페이지의 게시 / 전자우편 등 대통령령으로 정하는 방법에 따라 이용자에게 알림(바로 아래 시행령에 정의)

-- 양도자가 개인정보의 이전 사실을 알린경우, 양수자는 할 필요는 X

- 개인정보 동의 받는 방법(동법 시행령 12조) : 바로 위의 개인정보 양도 양수할 때 알리는 방법

-- 인터넷 사이트에 게재하고 동의 여부를 표시하도록

-- 동의 내용이 기재된 서면을 이용자에게 직접 교부/우편/모사 전송 → 이용자가 동의 내용에 대해 서명날인 후 제출하도록

-- 동의 내용이 담긴 전자우편 발송해 이용자로부터 동의의 의사표시가 적힌 전자우편 받는 방법

-- 전화를 통해 동의 내용을 알리고 동의 얻기

- 개인정보 관리책임자 지정(27조)

-- 정보통신서비스 제공자 등은 개인정보를 보호하고 개인정보와 관련한 이용자의 고충을 처리하기 위해 개인정보 관리 책임자를 지정

--- 예외 : 인터넷으로 사업시 5명 미만 / 전년도 말 기준 직전 3개월 일일평균 이용자 1천명 이하

-- 자격 : 임원 / 개인정보와 관련해 이용자의 고충처리를 담당하는 부서의 장 이 될 수 있음

-- 지정안하면 사업주나 대표자가 개인정보 관리책임자

- 개인정보 취급방침의 공개(27조의 2)

-- 개인정보 취급방침은 인터넷 홈페이지 첫 화면 제일 하단에 '개인정보취급방침'이라고 볼드체, 다른 색상으로 표현

--- 인터넷 홈페이지가 없으면 점포나 사무실에 써 붙이거나 비치

-- 개인정보 취급방침의 내용

--- 개인정보의 수집/이용 목적, 수집하는 개인정보의 항목 및 수집방법

--- 제 3자에게 제공시, 제공받는 자의 성명(법인명) / 제공받는자의 이용목적 / 제공하는 개인정보의 항목

--- 개인정보의 보유 및 이용 기간 / 개인정보의 파기절차 및 파기 방법

--- 개인정보 취급위탁을 하는 업무의 내용 및 수탁자

--- 이용자 및 법정대리인의 권리와 행사방법

--- 개인정보를 자동으로 수집하는 장치의 설치/운영 및 거부에 관한 사항

--- 개인정보 관리책임자의 성명 / 개인정보보호 업무를 하는 부서의 명칭과 연락처

- 개인정보 누출 등의 통지 신고(27조 3)

-- 개인정보 털린사실(분실/도난/누출) 알고나면, 지체없이 다음 내용 이용자에게 알리고 방통위나 KISA에 신고

--- 분실/도난/누출이 된 개인정보 항목

--- 분실/도난/누출이 발생한 시점

--- 이용자가 취할 수 있는 조치

--- 정보통신서비스 제공자 등의 대응 조치

--- 이용자가 상담 등을 접수할 수 있는 부서 및 연락처

-- 물론, 확인된 내용만 우선적으로 신고/통지하고 이후에 알게 되자마자 바로 신고/통지

-- 정당한 사유가 있는 경우, 위의 내용을 인터넷 홈페이지에 30일 이상 게시함으로써 대체 가능

-- 천재지변이나 정당한 이유로 홈페이지가 불가능하면, 전국에 보급되는 둘 이상의 일반일간신문에 1회 이상 공고

-- 신고받은 KISA는 방통위에게 즉시 알려야 함

- 개인정보의 보호조치(28조)

-- 다음의 기술적/관리적 보호 조치를 해야 함

--- 내부관리계획수립시행 / 접근통제장치설치운영 / 접속기론위변조방지 / 전송저장 암호화 / 바이러스침해방지 / 기타 안정성 확보

- 개인정보의 파기(29조)

-- 개인정보는 목적을 달성하면 지체없이 복구/재생할 수 없도록 파기

-- 특별한 사유 없을 때, 보유기간은 최소 1년에서 3년

-- 개인정보 파기 통지는 30일전에 개인정보가 파기되는 사실과 언제 파기하는지 알림

--- 우편 / 서면/ 모사전송 / 전화와 같은 유사한 방법으로 알려야 함

- 개인정보 이용내역의 통지(30조 2)

-- 다음의 기준을 만족하는 정보통신서비스 제공자 등은 주기적으로 이용자에게 개인정보 이용내역을 통지해야 함

--- 전년도 말 기준 직전 3개월간 일일평균 100만명 이상

--- 정보통신서비스부분 매출액이 100억원 이상 정보통신서비스 제공자

-- 통지 내역

--- 수집/이용 목적 및 수집한 개인정보 항목

--- 개인정보를 제공받은 자와, 그 제공 목적 및 제공한 개인정보 항목

--- 개인정보 취급위탁을 받은자와 그 취급위탁을 하는 업무 내용

-- 통지 횟수 : 연 1회 이상 (우편 / 서면 / 모사전송 / 전화와 같은 유사한 방법으로)

- 손해배상 및 법정 손해배상청구(32조, 32조의 2)

-- 고의/과실에 따른 개인정보 분실/도난/누출의 경우, 이용자가 정보통신서비스제공자를 상대로 300만원 이하의 손해배상 청구 가능

--- 정보통신서비스 제공자는 고의나 과실 책임이 없음을 입증해야 함

- 정보보호 사전점검(45조 2)

-- 정보통신서비스 제공자가 새로  정보통신망을 구축하고나 제공하고자 할때, 정보보호와 관련된 사항을 고려해야 해

- 정보보호 최고 책임자의 지정(45조 3)

-- 정보통신시스템 등 보안 및 정보의 안전한 관리르 위해 임원급의 정보보호 최고책임자를 지정가능

--- 종업원 수, 이용자 수 등이 기준에 해당하면 필수로 지정하고 미창부장관에게 신고해야 함

-- 정보보호 최고책임자의 업무

--- 정보보호관리체계의 수립 및 관리/운영

--- 정보보호 취약점 분석/평가 및 개선

--- 침해사고의 예방 및 대응

--- 사전 정보보호대책 마련 및 보안조치 설계/구현 등

--- 정보보호 사전 보안성 검토

--- 중요 정보의 암호화 및 보안서버 적합성 검토

--- 그 밖의 정보보호를 위해 필요한 조치의 이행

- 정보보호관리체계(ISMS)(47조)

-- 미창부 장관은 ISMS를 수립/운영하고 있는 자에 대해 기준에 적합한지에 관하여 인증을 가능

-- 다음의 경우 중, 하나만 만족해도 무조건 ISMS 인증 받아야 해

--- 정보통신망서비스 제공하는 자

--- 직접정보통신시설 사업자

--- 전년도 매출액이 100억원 이상 / 전년도 말 기준  직전 3개월간 일일평균 이용자 100만명 이상

-- ISMS 인증의 유효기간은 3년임

-- 미창부장관은 KISA나 미창부장관이 지정한 기관(ISMS 인증기관)에게 인증을 수행하게 할 수 있음

--- ISMS 인증 심사 수행 기관 : KISA / 한국정보통신진흥협회

- 개인정보관리체계인증(PIMS)(47조 3)

-- ISMS와는 다르게 아직 의무사항이 아님(권고사항)

-- 이건 방통위가 인증하고, 따로 수행기관을 지정가능해

- 정보보호관리등급(47조 5)

-- ISMS 인증을 부여받은 기관이나 기업은 일괄적인 인증이 아니라, KISA로부터 정보보호 등급을 부여받을 수 있음

-- 미창부장관이 관리등급 부여하는거고, KISA가 대신 수행가능

 

 

(2) 정보통신 기반 보호법

1) 용어의 정의

- 정보통신기반시설

- 전자적침해행위

- 침해사고

 

2) 주요정보통신기반시설 보호체계

3) 주요정보통신기반시설의 지정과 취약점 분석

4) 주요정보통신기반시설의 보호 및 침해 사고의 대응

- 정보통신기반보호위원회(3조)

-- 정보통신기반시설의 보호에 관한 사항을 심의하기 위해, 국무총리 소속하에 정보통신기반보호위원회를 둠

-- 위원장 1인을 포함한 25인 이내의 의원으로 구성

--- 위원장은 국무조정실장

-- 효율적 운영을 위해, 공공분야와 민간분야를 각각 담당하는 실무 위원회를 둠

- 정보통신기반보호위원회의 기능(4조)

-- 주요 정보통신기반시설 보호정책 조정이나 제도개선에 대한 사항과 주요 정책

-- 위원장이 부의하는 사항을 심의

- 주요 정보통신기반시설보호대책의 수립(5조)

-- 주요 정보통신기반시설을 관리하는 기관은 정보통신기반시설보호대책을 수립/시행해야 함

--- 수립/시행의 결과를 관계주요행정기관의 장에게 제출해야 함

-- 관리기관의 장은 정보보호책임자를 지정해야 함

- 주요 정보통신기반시설보호대책 이행여부의 확인(5조 2)

-- 미창부장관과 국정원장은 관리기관에 대해 정보통신기반시설보호대책의 이행여부 확인가능

- 주요 정보통신기반시설 계획의 수립 등(6조)

-- 관계중앙행정기관의 장은 정보통신기반보호위원회에게 전년도 추진실적과 다음연도 계획을 제출하고 심의받아야 함

--- 취약성 평가분석 / 침해사고 복구대책 / 그 밖의 대책

- 주요 정보통신기반시설의 보호지원(7조)

-- 관리기관의 장은 미창부, 국정원장 등에게 정보통신시설의 대책, 침해사고 예방복구 등에 대한 기술지원 가능

--- 국정원장은 금융/정보통신기반시설에 개인정보가 저장된 모든 정보통신기반시설 기술지원은 X

---- 국정원도 안되는게 있구나

 

 

(3) 정보통신산업 진흥법

1) 지식정보보안컨설팅 전문업체

- 지식정보보안컨설팅 전문업체(33조)

-- 주요 정보통신기반시설의 취약점 분석/평가 업무나 보호대책 수립업무를 신뢰성 있게 수행할수있다고 인정받은 업체

-- 미창부장관이 지정하게 되네

-- 업체지정은 법인으로 한정되고, 3년간의 유효기간이 있음(재지정 받을수있지 당연히)

- 지식정보보안컨설팅 전문업체 결격 사유(34조)

-- 뭐...생략

- 지식정보보안컨설팅 전문업체의 양도/합병 등(35조)

-- 양수인이 자격도 있어야 되고, 미창부장관에게 신고해서 수리 받아야 지식정보보안컨설팅 전문업체의 지위를 승계받음

- 지식정보보안컨설팅 전문업체 휴/폐업, 재개(36조)

-- 휴업/폐업, 재개하려는 날의 30일전까지 미창부장관에게 신고

- 자료의 기록 보존(39조)

-- 주요 통신기반시설의 취약점 분석/평가 업무와 관련하여 작성한 기록 및 자료를 안전하게 보존해야함

--지식정보보안컨설팅 전문업체에서 취소되거나 폐업하면, 주요 통신기반시설의 장에게 자료를 반환하거나 폐기

- 지식정보보안산업협회 설립(40조)

-- 미창부장관의 인가를 받아 지식정보보안산업협회를 설립가능

-- 지식정보보안산업협회는 법인으로 함

 

 

(4) 전자서명법

1) 용어의 정리

- 전자문서

- 전자서명

- 공인전자서명

- 전자서명생성정보

- 전자서명검증정보

- 인증

- 인증서

- 공인인증서

- 공인인증업무

- 공인인증기관

- 가입자

- 서명자

- 개인정보

 

2) 전자서명의 효력

- 전자서명의 효력(3조)

-- 공인전자서명이 있는 경우에는, 당해 전자서명이 [서명자의 서명, 서명날인 또는 기명날인이고], 당해 전자문서가 전자서명된 후 그 내용이 변경되지 아니하였다고 추정

 

3) 공인인증기관

- 공인인증기관의 지정(4조)

-- 미창부 장관이 공인인증기관을 지정할 수 있어

-- 공인인증기관으로 지정받을 수 있는 건 국가기관 / 지방자치단체 / 법인에 한해

-- 현재 : 한국정보인증(주), (주)코스콤, 금융결재원, 한국전자인증(주), 한국무역정보통신

- 공인인증업무 준칙(6조)

-- 공인인증기관은 업무 개시전에, 공인인증업무준칙을 작성해 미창부장관에게 신고해야 함

--- 인증업무종류 / 인증업무의수행방법및절차 / 공인인증역무의 이용조건 / 기타 인증업무 수행에관하여 필요사항

 

4) 공인인증서

- 공인인증서 발급(15조)

-- 공인인증서를 발급받고자하는 자의 신원을 확인해야 함

-- 공인인증기관이 발급하는 공인인증서에는 다음의 내용이 포함되어야 함

--- 가입자의 이름(법인명)

--- 가입자의 전자서명검증정보

--- 가입자와 공인인증기관이 이용하는 전자서명 방식

--- 공인인증서의 일련번호

--- 공인인증서의 유효기관

--- 공인인증기관의 명칭 등 공인인증기관을 확인할 수 있는 정보

--- 공인인증서의 이용범위 또는 용도를 제한하는 경우 이에 관한 사항

--- 가입자가 제 3ㅈ라를 위한 대리권 등을 갖는 경우 또는 직업상 자격 등의 표시를 요청한 경우 이에 관한 사항

--- 공인인증서임을 나타내는 표시

- 공인인증서 효력소멸(17조???)

-- 공인인증서 유효기관이 경과한 경우

-- 공인인증기관의 지정이 취소된 경우

-- 공인인증서의 효력이 정지된 경우

-- 공인인증서가 폐지 된 경우

- 공인인증서의 효력정지(17조)

-- 가입자 또는 대리인의 신청이 있을 경우, 공인인증서의 효력을 정지하거나 정지된 공인인증서의 효력을 회복해야 함

-- 공인인증서 효력 회복의 신청은, 공인인증서 효력이 정지된 날로부터 6개월 이내여야 함

 

(5) 개인정보보호법

0) 걍 설명

- 2011년 9월 30일 제정되어 공공과 민간을 아우르는 일반법

- 정보통신망 이용촉진 및 정보보호 등에 관한 법률이 개인정보보호법 보다 우선

-- 정보통신망법에 특별한 규정이 있지 않은 이상, 개인정보보호법에서 정하는 바에 따름(6조)

- 대부분 공공기관과 준용사업자에게 적용되는 법률로, 광범위하게적용되는 개인정보보호관련 일반법

- 전반적으로 망법이랑 내용겹치는게 있어(몇 개 더 추가되고 그런거만 있찌..)

 

1) 용어의 정리

- 개인정보

- 처리

- 정보주체

-개인정보파일

- 개인정보처리자

- 공공기관

- 영상정보처리기기

- ※ 망법이랑 비교하면서 보기

 

2) 개인정보 보호위원회

- 개인정보 보호위원회(7조)

-- 개인정보 보호에 관한 사항을 심의/의결하기 위해 대통령소속으로 개인정보보호위원회를 둠

-- 위원장 1명, 상임위원 1명을 포함한 15명 이내의 위원으로 구성

--- 위원장은 공무원이 아닌사람으로 대통령이 위촉 / 임기 3년(1번 연임가능)

--- 상임위원은 정무직 공무원으로 임명

- 개인정보 보호위원회 기능(8조)

-- 허허ㅓ..

 

3) 개인정보의 수집, 이용, 제공 등 단계별 보호기준

- 개인정보의 수집/이용(15조)

-- 개인정보처리자는 개인정보 이용을 위해 수집할 때, 알리고 동의받아야 하는 것

--- 개인정보의 수집 이용 목적

--- 수집하려는 개인정보의 항목

--- 개인정보의 보유이용기간

--- 개인정보보호법에서는, 거부할 권한이 있다는것과 이에 따른 불이익도 알리고 동의받아야해

---- 이건 망법에 없는내용

- 개인정보 수집 제한(16조)

-- 동의를 받고 개인정보를 수집하더라도 최소한으로 수집해야 함

--- 최소한이라는 걸 입증할 책임도 개인정보처리자에게 있지

- 개인정보제공(17조)

-- 개인정보를 제 3자에게 제공할 때, 다음의 내용을 이용자에 알리고 동의받아야 함

--- 개인정보를 제공받는 자

--- 개인정보를 제공받는 자의 개인정보의 이용목적

--- 제공하는 개인정보의 항목

--- 개인정보를 제공받는 자의 개인정보 보유 및 이용기간

--- 동의를 거부할 권리가 있다는 사실 및 동의거부에 따른 불이익이 있는 경우 그 불이익의 내용

---- 망법에 없는 내용

- 업무위탁에 따른 개인정보의 처리제한(26조) ; 순서는 뒤에있지만 끌어다 왔어

-- 업무위탁시에는 반드시 문서로 해야되고, 위탁계약서에는 개인정보보호에 대한 역할과 책임을 명시해야 함

-- 업무위탁시에는 개인정보처리방침을 공개해야 함

-- 손해배상책임에서는 수탁자를 위탁자의 소속직원으로 보기에 관리감독 철저히!

- 개인정보취급자에 대한 감독(28조)

-- 개인정보처리자는 개인정보취급자에 대하여 적절한 관리/감독을 이행해야함

--- 개인정보취급자는 임직원부터 파견근로자, 알바, 인턴까지 개인정보처리자의 지후 감독하에 개인정보를 처리하는 자 모두

--- 정기적인 교육을 실시

- 개인정보의 이용/제공 제한(18조)

-- 개인정보를 제공하더라도 최소한의 제공하고 이용목적의 범위를 벗어나서는 안됨

-- 제 3자 제공시에는 반드시 개인정보처리방침을 통해 공개

- 정보주체 이외에서 수집한 개인정보 수집 출저 등 고지(20조)

-- 개인정보 처리자가 정보주체 이외에서 수집한 경우

정보주체의 요구가 있으면 수집출저, 개인정보처리목적, 처리정지를 요구할 권라가 있음을 알려야함

- 개인정보의 파기(21조)

-- 개인정보의 처리목적을 달성하면 지체없이 파기

--- 다른 법령에 보존근거가 있으면 그거에 따라야지

-- 개인정보를 파기하지 않고 보존하는 경우는, 다른 개인정보와 분리하여 저장관리

 

4) 고유 식별정보 처리제한

- 민감정보처리제한(23조)

-- 사상, 신념, 노동조합, 정당의 가입탈퇴, 정치적견해, 건강, 성생활 등에 관한 정보를 처리 못하게 함

-- 망법보다 더 구체적이고 넓어졌지

- 고유식별정보처리제한(24조)

-- 개인정보처리자는 다음의 경우 제외해고 고유식별정보를 처리 불가

--- 정보주체에게 모든 사항알리고 별도로 동의를 받은경우

--- 법령에서 구체적으로 고유식별정보의 처리를 요구하거나 허용한 경우

-- 공유식별정보 : 주민등록번호 / 여권번호 / 운전자면허번호 / 외국인등록 번호 등

- 주민등록번호의 처리제한(24조의 2)

-- 다음의 경우를 제외하고 주민등록번호 처리 불가

--- 법령에서 구체적으로 주민등록번호의 처리를 요구하거나 허용한 경우

--- 정보주체나 제 3자의 급박한 생명,신체, 재산의 이익을 위해 명백히 필요하다고 인정되는 경우

--- 주민등록번호 처리가 불가피한 경우로서 행정자치부령으로 지정하는 경우

-- 개인정보처리자가 불가피하게 주민등록번호를 수집했다면, 분실/도난/유출 등을 막기 위해 암호화 조치를 통해 안전하게 보관해야됨

-- 개인정보처리자가 주민등록번호 처리 가능하더라도, 주민등록번호가 아닌 방법으로 가입할 방법 제공해야 됨

- 주민등록번호 유출시 과징금 5억(32조 2)

-- 행정자치부장관은 개인정보처리자가 처리하는 주민등록번호가 분실/도난/유출 등을 당하면 5억원 이하의 과징금을 부과/징수 가능

--- 물론 필요한 조치를 다했다면 그러지 아니하대

 

5) 영상정보처리기기의 설치 제한

- 영상정보처리기기의 설치/운영 제한(25조)

-- 법령에서 허용되는 경우를 제외하고는 공개된 장소에 영상정보처리기기를 설치해서는 안됨

-- 공공기관에서 설치/운영하려면 공청회 거쳐야하고, 이해관계자의 의견은 수렴하는 절차까지만 하면됨

-- 설치할때는 가장 잘 보이는 건물 중앙에 설치

-- 녹음은 해서는 안되

-- 다른용도로 사용하면 X

 

6) 개인정보 영향평가제도

- 개인정보처리방침의 수립 및 공개(30조)

-- 개인정보처리자는 홈페이지 첫 화면 아래에 개인정보처리방침을 공개해야함

-- 볼드체, 색상을 다르게

-- 홈페이지 없으면 사무실에 잘보이게 비치

- 개인정보 보호책임자 지정(31조)

-- 개인정보처리자는 개인정보의 처리에 관한 업무를 총괄해서 책임질 개인정보 보호책임자를 지정해야 함

-- ...하는일들 생략

- 개인정보파일 등록 및 공개(32조)

-- 공공기관의 경우, 개인정보파일에 대한 자세한사항들을 행정자치부장관에게 신고해야함

-- 행정자치부장관은 신고받은 개인정보파일에 대한 자세한 사항들을 누구나 열람가능하도록 공개해야 함

- 개인정보 영향평가(33조)

-- 공공기관은 특정한 요건을 충족할 경우 개인정보영향평가를 의무적으로 받아야 함

--- 5만명 이상의 정보주체에 대한 민감정보나 고육식별정보를 처리함

--- 다른 개인정보파일과의 연계할때, 50만명 이상의 정보주체에 관한 개인정보를 처리

--- 100만명 이상의 정보주체에 대한 개인정보파일의 처리함

-- 민간은 아직까지 권고사항

-- 공공기관은 영향평가의 결과를 행정자치부장관에게 제출해야 함

--- 행정자치부장관이 지정한 평가기관 중에서 의뢰해야 함

 

7) 개인정보 유출사실의 통지/신고제도

- 개인정보유출통지(34조)

-- 개인정보가 유출되었을 때에는 지체없이 정보주체에게 알려야 함

 

8) 정보주체의 권리보장

- 개인정보의 열람(35조)

-- 정보주체는 개인정보처리자에게 자신의 개인정보 열람을 요구할 수 있음

-- 이것도 보여줘야 되는기간이 따로 있어(대통령령)

-- 물론, 개인정보의 열람이 타인에게 해를 끼치는 등의 영향이 있을것 같으면 제한하거나 거부가능

- 손해배상 책임(39조 2항)

-- 정보주체는 개인정보처리자가 법을 윟반한 행위로 손해를 입으면 손해배상 청구가능

--- 개인정보처리자는 고의나 과실이 없음을 입증해야 해야 책임 면함

-- 물론, 개인정보처리자가 의무를 준수하고 최선을 다했다면 감경받을 수있긴해

 

9) 개인정보 분쟁조정위원회

- 개인정보 분쟁조정위원호의 설치 및 구성(40조)

-- 개인정보에 관한 분쟁의 조정을 위해 개인정보 분쟁조정위원회를 둠

-- 위원장 1명을 포함한, 20명 이내의 위원으로 구성(그 中 1명은 상임위원)

-- 개인정보와 관련한 분쟁의 조정을 원하는 자는 분쟁조정위원회에 분쟁조정을 신청가능

--- 분쟁조정위원회는 해당 내용을 상대방에 알려야 함

--- 공공기관이 경우 별다른 사유업승면 분쟁조정에 응해야 함

-- 분쟁조정을 신청받은 날로부터 60이내에 이를 심사해 조정안을 작성해야 함

--- 물론 의결로 처리기간 연장가능(연잔시 신청자에게 이유와 함께 알려야 함)

-- 조정전에 합의를 권고가능

- 집단조정분쟁조정(49조)

-- 정보주체의 피해 또는 권리침해가 다수의 정보주체에게 같은거나 비슷한 유형으로 발생하는 경우에 신청가능

 

(6) 개인정보의 안정성 확보 조치 기준(안행부고시 제2014-229호)

- 내부관리 계획수립.시행(3조)

-- 망법처럼 개인정보보호법에서도 안정성확보 조치를 위해 내부관리계획을 수립해야 함

--- 실행가능하고 / 구체적이고 / 맞춤형

-- 물론, 소상공인은 안해도되

- 접근권한 관리(4조)

-- 개인정보 수집시에는 최소화하여 수집

-- 개인정보처리시스템에 접근할 때에도 접근권한을 차등부여하고 최소한의 범위로 설정

-- 접근권한의 부여 기록은 3년간 보관

-- 개인정보 취급자의 사용 계정은 공유해서 사용해서는 안됨

- 접근통제(5조)

-- 정보통신망을 통한 불법적인 접근과 침해사고의 방지를 위해 다음과 같은 기능을 시스템에 설치/운영해야 함

--- 접속권한을 IP주소 등으로 제한하여 접근제어

--- 접속한 IP주소 등을 분석하여 불법적인 개인정보 유출시도 탐지

--- IDS / IPS / Firewall를 말하는것 같음

-- 외부망에서 개인정보처리시스템에 접근시 VPN이나 전용선등 안전한 접속수단 적용해야 함

-- 주민등록번호 이용해 본인인증 외에도 추가 인증수단을 마련해야함

-- 개인정보처리자는 연 1회이상 취약점을 점검해야 함

-- 개인정보취급자가 공개된 무선망을 통해 개인정보를 처리하는 경우, 보안프로그램이나 SSL, VPN 등을 적용해야함

-- 개인정보처리에 이용되는 모바일 기기의 분실/도난 등을 예비해 비밀번호나, 잠금 기능의 조치를 해야 함

- 개인정보의 암호화(6조)

-- 암호화 대상 : 고유식별정보, 비밀번호 및 바이오정보

--- 비밀번호및 바이오정보는 암호화하여 저장하되, 비밀번호는 일방향 암호화해서 저장(해쉬값)

-- 정보통신망을 이용해 개인정보를 송수신할 떄에도 암호화를 해야함(SSL 등 사용)

- 접속기록의 보관 및 점검(7조)

-- 개인정보처리시스템의 접근 기록은 6개월 이상 보관해야 함

-- 위/변조를 방지하기 위해 안전하게 보관

-- 반기별로 1회 이상 점검

- 악성프로그램 등 방지(8조)

-- 백신 소프트웨어 설치/운영

--- 자동 업데이트 기능 사용하거나, 일 1회 이상 엔진 업데이트 해야 됨

--- 악성 프로그램관련 경보가 떳을 때에는, 사용하는 백신의 보안 업데이트 공지가 뜨면 업데이틀 통해 최신상태 유지해야 함

- 물리적 접근 방지(9조)

-- 전산실이나 자료보관실에 개인정보를 보관시에는, 출입통제 절차를 수립/운영해야 함

-- 서류와 보조저장매체는 안전한 곳에 보관

- 개인정보의 파기(10조)

-- 완전파괴 / 전용소자장비를 이용한 삭제 / 복원안되게 포맷 또는 덮어쓰기

블로그 이미지

Diano.

http://www.diano.kr / 이사하는중 /

,


1. 정보보호 관리

(1) 정보보관리 개념

1) 정보보호의 목적 및 특성

- 정보보호의 정의 : 정보의 수집, 가공, 저장, 검색, 송신, 수신 중 발생할 수 있는 정보의 훼손, 변조, 유출 등을 방지하기 위한 관리적/기술적 수단(정보보호시스템)을 마련하는 것을 말한다.(국가정보화 기본법)

- 정보보호 ≠ 정보보안 : 정보보안이 Site(공간)이라는 개념이 더 들어간, 넓은 개념이라고 생각하자

- 정보보호의 목적 : 기밀성 / 무결성 / 가용성 / 인증 / 부인방지 / 신뢰성 등

 

2) 정보보호와 비즈니스

- 정보보호와 비즈니스 : IT 인프라에 대한 정보보호는 비즈니스의 보호뿐만이 아니라 비즈니스 가치의 증가로 이어 짐

-- 한 조직의 정보 자산뿐만이 아니라 고객의 정보(개인정보)까지 보호해야 할 법적인 의무도 있고, 고객의 신뢰로 이어지니까

-- 향후 조직의 비즈니스에 큰 도움이 될 것은 자명해

 

3) 정보보호관리의 개념

- 정보보호관리(Information Security Management)

-- 조직의 정보자산을 외부로 부터의 유(노)출과 오용, 유실으로 부터 방어하고, 정보나 정보 시설을 방어하는데 관련된 모든 일련의 활동

- 정보보호관리를 위한 6단계 활동

-- 정보보호 정책 및 조직 수립 → 정보보호 범위 설정 → 정보자산의 식별 → 위험관리 → 구현 → 사후관리

- 위의 활동들을 지속적으로 하기 위해 체계화해서 만든게 정보보호관리체계(ISMS ; Information Security Management)

-- 그냥 한 번 정보보호 솔루션을 만들고 끝내는게 아니라, 비즈니스의 연속성과 함께 계속 지속되어야 되

-- 최근에는 매출이 크거나 고객이 많은 조직은 법적으로 갖춰야해

 

 

(2) 정보보호 정책 및 조직

1) 정보보호 정책의 의미 및 유형

- 정책(Policy) : 최고 경영진의 전략적인 사고를 문서화한 것

-- 정책 中, 가장 핵심적인 걸 "정책서"라고 함

-- 하향식 유형(Top-Down) : 상위 정책으로 부터 하위수준의 정책을 도출하는 방식

-- 상향식 유형(Bottom-Up) : 기존의 정책들을 종합해 새로운 정책을 수립하는 방식

- 정책이 가지는 특징과 가져야할 특징

-- 여러 다른 지침과 하위 수준간의 정책들이 일관성과 연관성이 필요함

-- 최상위 정책은 전사적인 정책을 모두 포함해야 함

-- 간결하고 명확 / 정보보호의 목표와 회사의 비전을 포함해야 함

-- 영향을 받는 임직원들에게 정책에 대한 설명 해야 함 / 간단한 내용과 이해하기 쉬운 표현

- 정보보호 정책서의 구성

- 정보보호 선언문 : 보통 1장에 심플하게 작성 / 정보보호전반에 대한 경영자의 의지 및 실천을 다짐하는 선언문

- 정책서 목적과 구성 / 기본 방침 / 정보보호계획수립 / 보안에대한 역할과 책임 / 정보자산의 보안 / 등

 

2) 정보보호 정책수립 절차

- 정보보호 정책 수립 : 조직 전반에 걸친, 최상위 수준의 정보보호정책을 수립하고, 조직내 책임을 설정

-- 정보보호 정책서 안에 포함되는 개념인듯

- 정보보호 정책 수립 과정

-- 경영목표를 지원하는 법적/규제적인 요건을 파악

-- 위험관리에 따른 전략적 정보보호 정책 수립

- 정보보호 정책서 작성 방안(정보보호 정책 수립도 여기에 들어가)

-- 목적 : 중요한 정보자산이 무엇인지 식별하여 선언

-- 적용 범위 : 정책이 적용되는 범위(전사이냐, 특정 부서이냐)

-- 정책의 내용 : 간단하고 명료하게

-- 책임 : 정책을 수행하기 전에, 기본적으로 책임사항을 정의해야함(경영진의 책임, 일반직원의 책임 등)

-- 문서승인 : 정보보호 정책의 승인은 최고 경영자(CEO)가 이 정책을 승인하고 지원의지를 알리는 것(반드시 승인받아야 해)

-- 정보보호위원회의 구성 : 정보보호정책 수립의 이행을 위해 만든 위원회(형식적인 위원회 구성이 아닌 실직적 운영을 위한)

 

3) 조직 체계와 역할/책임

- 정보보호 조직 : 정보보호 정책을 잘 수립하여 수행해 나갈 수 있는, 체계적인 역할과 책임을 가지는 조직

-- 위에서 언급했듯이, 정보보호 정책서에 책임사항을 정의한거랑 연계해서 생각해

- 일반적인 정보보호 조직체계

-- 정보보호 심의위원회 : 정보보호 활동계획 및 예산 심의 / 정보보호 정책 및 규정의 최종승인

--- 위원장 : 대표이사 / 위원 : 정보보호책임자 / 간사 : 정보보호 관리자

-- 정보보호 책임자 : 정보보호 조직의 구성 및 운영 총괄 / 정보보호 방침 및 계획 실무지침 수립 및 승인

-- 정보보호 관리자 : 정보보호 롸동의 계획 및 관리 / 정보보호방침의 유지, 이행

-- 정보보호 담당자

--- 정보보호 운영 담당자

--- 정보보호 대응 담당자

 

 

(3) 위험관리

- 정보보호관리체계(ISMS)의 5단계에서 위험관리의 위치

-- [정보보호 정책 수립 → 관리체계 범위설정 → 위험관리 → 구현 → 사후관리] 를 계속 반복함

 

 

 

- 위험관리 : 조직이 정보자산에 대한 위험을 수용할 수 있는 수준으로 유지하기 위해

정보자산에 대한 위험을 분석하고 이에 대한 비용대비 효과적인 보호 대책을 마련하는 일련의 과정

- 위험관리과정(5단계로 구성)

-- 위험관리전략 및 계획수립 → 위험분석 → 위혐평가(처리) → 정보보호 대책수립 → 정보보호 계획수립(다이렇게표현하는데?)

-- 위험관리전략 및 계획수립 → 위험분석 → 위혐평가(처리) → 보호대책 선정 → 이행계획 수립(내가 배울때는 이렇게 배움)

-- 위 그림같이 3단계로도 표하기도 하네

- 위험(Risk) : 원하지 않는 사건이 발생해 손실 또는 부정적인 영향을 미칠 가능성

- 위험의 요소

-- 자산(Assets) : 조직이 보호해야할 대상

-- 위협(Threats) : 원치 않은 사건의 잠재적인 원인이나 행위자

-- 취약성(Vulnerability) : 자산의 잠재적인 속성으로, 위협의 이용 대상

-- 정보보호대책(Safeguard) : 위협에 대응하여, 자산을 지키기 위한 대책

 

1) 위험관리 전략 및 계획수립

- 위험분석 접근법

-- 베이스라인 접근법(Baseline Approach)

--- 위험분석을 수행하지 않는 대신, 모든 시스템에 대해 표준화된 보호대책을체크리스트형태로 제공

--- 소규모조직이나, 대규모조직의 중요치 않은 일반 자산에 대하여 사용하는 접근법(화장실 청소 체크리스트??)

-- 비정형 접근법(Informal Approach ; 전문가 판단법)

--- 구조적인 방법론에 기반하지 않고, 전문가의 지식과 경험에 따라 위험을 분석

--- 작은 조직에서는 효과적

-- 상세 위험분석(Detailed Risk Analysis)

--- 구조적인 방법론에 기반해서 위험을 분석하는 것

--- 많은 시간(돈)과 노력(돈)이 필요하고 비정형 접근법과 같이 고급인력이 필요함(돈)ㅋ

--- 자산분석 → 위협평가 → 취약성평가 → 정보보호 대책평가 → 잔여 위협평가

-- 복합 접근법(Combined Approach)

--- 상세 위험분석을 수행하고, 그 외 다른 영역은 베이스라인 접근법만을 사용하는 방식

- 위험분석 방법론의 선정

-- 정성적 분석방법(Qualitative) : 위험을 매우높은, 높은, 중간, 낮은 등으로 표현

--- 델파이법 : 전문가 집단에게 설문조사를 실시해 의견을 정리하는 분석방법

---- 짧은 시간에 도출할 수 있지만, 전문가의 추정이라 정확도는 낮지

--- 시나리오법 : 어떤 사실도 기대대로 발생되지 않는다고 치고, 특정 시나리오를 통해 발생 가능한 위협의 결과로 순위를 매겨 도출

---- 전반적인 가능성을 추론가능하지만, 발생 가능성의 이론적 추축에 불과해 정확성이 낮지

--- 순위결정법 : 비교우위 순위 결정표에, 위험 항목의 서술적 순위를 결정하는 방식

---- 이것도 정확도 낮네(다 낮어 ㅅㅂ ㅋㅋㅋ)

-- 정량적 분석방법(Quantitative) : 위험을 손실액과 같은 숫자값으로 표현 / 주로 미국에서 사용하는 방식

--- 연간예상손실액(ALE) = 단일예상손실액(SLE) X 연간발생률(ARO)

---- 단일 예상손실액(SEL) = 자산의가치(AV) X 노출계수(EF)

 

2) 위험분석

- 위험의 3요소인 자산 / 취약성 / 위협을 분석(식별과 분류)

-- 어떻게 할껀지 방법론과 접근방법은 위에서 제시 함

 

2-1) 위험평가(기출내용엔 없지만, 걍 내가 만들었어)

- 목표 위험 수준 및 우선순위 설정 : 수용가능한 위험수준를 기반으로 우선순위를 결정

-- 수용가능한 위험수준(DOA)은 사전에 정의해야 일관성이 유지됨(위험관리 전략 및 계획수립 단계)

 

3) 정보보호 대책 선정 및 계획서 작성

- 위험관리의 마지막 순서로, 위험을 분석하고 순위를 매겼으니까 그에 대한 위험처리 방법을 선택하고 계획서 짜는 단계

- 위험처리 방법

-- 위험수용(Acceptance) : 해당 위험의 잠재 손실 비용을 감수
-- 위험감소(Mitigation) : 위험을 감소시킬 수 있는 대책을 채택하여 구현하는 것

-- 위험회피(Risk Avoidance) : 위험이 존재하는 프로세스나 사업을 수행하지않고 포기

-- 위험전가(Risk Transfer) : 보험이나 외주 등으로 잠재적 비용을 제3자에게 이전하거나 할당

 

 

(4) 대책구현 및 운영

1) 정보보호 대책 구현

- 정보보호 대책 : 위험을 감소시키기 위한 정보보호조치를 의미(장치 / 절차 / 기법 / 행위 등을 포함)

 

2) 정보보호 교육 및 훈련

- 수업에서 교수님이 진짜 사실이게 핵심이랬는데 ㅋ(아무리 대책잘짜면 뭐하냐고 상놈들이 실천안하는데)

- 그냥 말단직원부터 임원, 최고경영자까지도 전사적으로 싹다 교육시켜야되

 

3) 컴퓨터/네트워크 보안운영

- PC보안 / 네트워크 보안 / 매체보안(데이터의 보관과 폐기)

 

 

(5) 업무연속성 관리(Business Continuity Management)

1) 업무지속성 관리체계

- 업무연속성 관리 : 재난이나 재해, 테러 같은 예기지 못한 위기상황에서도 적시에 복구해 업무를 계속수행할 수 있는 위기 관리 능력

- 업무연속성 관리 단계

-- 1단계 시작단계 : 업무연속성 관리에 대한 정책의 수립 및 범위설정을 하는 단계

-- 2단계 전략수립단계 : 재해가 업무에 미치는 잠재적인 연향과 위험을 평가 / 위험감소를 위한 사항들을 파악 / 효과적인 전략 수립

-- 3단계 구현단계 : 업무가 지속적으로 이루어지기 위한 프로그램을 수립하는 단계(설비 구현 / 계획을 문서화)

-- 4단계 운영관리단계 : 수립된 업무연속성 전략 및 계획, 절차를 계속적으로 테스트 및 검토, 유지 보수 / 이에 대한 교육과 훈련

 

2) 업무연속성 계획수립(BCP ; Business Continuity Plan)

- 업무연속성 계획 5단계 방법론(4단계 / 5단계 / 6단계로 종류가 있지만 5단계가 출제됬었어...)

-- 1단계 프로젝트 범위설정 및 계획

-- 2단계 사업영향평가(BIA ; Business Impact Assessment)

--- 각 사업단위가 받게될 재정적 손실의 영향도를 파악해서 문서화

--- 주요 취지 : 핵심우선순위결정(프로세스간의 구별) / 중단시간 산정(얼마만에 복구?) / 자원요구사항(어디에 얼마나 자원할당?)

-- 3단계 복구전략개발

--- 사업영향평가에서 수집된 정보를 기반으로 어떻게 복구를 할 것인지 전략을 세움

-- 4단계 복구계획수립

--- 사업을 지속하기 위한 실제 복구계획의 수립단계 / 문서화는 필수

-- 5단계 프로젝트수행 및 테스트

--- 유지보수 활동을 포함한 이후에 있을 테스트 절차 등을 수립

- 업무연속성 관리 단계에 BCP가 포함되는건가??? 자세히는 모르겠네

 

3) 업무연속성 유지관리

- 지속적으로 유지보수, 테스트

-- 체크리스트 / 구조적점검 / 시뮬레이션 / 병렬테스트 / 전체 중단테스트

 

4) 재난복구계획(DRP ; Disaster Recovery Plan)(기출내용엔없는데 책과 기출에있네??)

- BCP는 전사적인 복구계획이라면, DRP는 기업의 세부 시스템 별 복구 계획(카더라...?)

- 재난복구계획 프로세스

-- 데이터 지속처리 계획(DPCP ; Data Processing Continuity Planning) : 재해를 예측하고 그에 대처하기 위한 계획수립

--- 가장 많이 사용되는 대체 처리 사이트(Site ; 공간의개념) 방식

---- Hot Site : 모든 컴퓨터설비를 완전히 갖추고 있는 공간 / 실제로 운영되고 있는 환경과 동일한 상태로 관리)

---- Warm Site : Hot Site와 Cold Site의 절충안(전원/컴퓨터 등은 갖춰져있지만 어플리케이션이 설치되거나 구성되지 않음)

---- Cold Site : 비상시 장비를 가져올 준비만 할 뿐, 어떤 컴퓨터 하드웨어도 공간에 존재하지않음

-- 데이터 복구 계획 유지 보수(Data Recovery Plan Maintenance) : 계획이 항상 적적하게 최신버전을 반영하도록 유지하는 프로세스

 

 

(6) 관련 표준/지침

1) 국제/국가 표준

- OECD 정보보호 가이드라인

-- 인식 / 책임 / 대응 / 윤리 / 민주성 / 위험평가 / 정보보호의 설계와 이행 / 정보보호 관리 / 재평가

- TCSEC(Trusted Computer System Evaluation Criteria)

-- 미국에서 1985년 최초로 만들어짐 / 오렌지 북으라고도 함

-- 정보제품을 몇가지 요구사항을 만족하는 수준에 따라 보안등급을 매김(A1, B3, B2, B1, C2, C1)

-- 기밀성, 무결성, 가용성 中, 기밀성을 중시함(무결성, 가용성은 다소 취약)

- ITSEC

-- 1991년에 미국의 TCSEC를 참조해서 만든 유럽 공통 평가기준

-- 기밀성 뿐만아니라 무결성, 가용성에 대한 평가기준도 수용함

- 보안성평가(CC ; Common Criteria) : TCSEC, ITSEC같이 나라/지역별로 서로 다른 평가기준을 하나로 표준화한 결과

-- 현재 3.1버전까지 공개

-- CCRA(Common Criteria Recognition Arrangement) : 정보보호 제품의 안정성을 회원국가간에 상호인정하는 국제 협약

--- CAP(인증서발행국) : 국내에서 발행한 정보보호시스템 평가 인증서가 해외에서도 인정받게됨

--- CCP(인증서수용국) : 정보보호 평가 인증서를 발행은 않하고 수용만 하는 국가

-- 우리나라는 CAP에 2006년에 가입함

-- CAP에 가입한 국가는 5년마다 재심사(2012년 11월에 있었음(일본과 프랑스가 심사))

                   

 

http://www.cybersecurity.my/mycc/mutual.html

- 보안성평가에 있어서 국내기관과 역할

-- 정책기관 : 행정자치부

-- 인증기관 : 미래창조과학부

-- 평가기관 : 한국인터넷진흥원 + 기타 등등

- 보안성평가의 결과

-- 국제적인 표준은 EAL(Evaluation Assurance Level) 1부터 7까지 있음

 

                                                            

 

http://en.wikipedia.org/wiki/Evaluation_Assurance_Level

-- 우리나라는 가(EAL 4), 나(EAL 3), 다(EAL 2)로 분류

 

 

2) 인증체계

- BS7797

-- 조직의 정보를 체계적으로 관리하고 정보보안사고를 예방하기 위해 영국에서 제정된 규정

- ISMS(Information Security Management System)

-- BS7797을 기반으로 국내 환경에 적합하게 작성

-- 구성요소 : 정보보호관리과정 / 정보보호대책 / 문서화

--- 정보보호관리과정 : 정보보호 관리체계 인증심사시 요구되는 필수 항목 / 지속적으로 유지관리되는 순환 주기의 형태

---- 정보보호정책 수립 및 범위설정 → 경영진책임 및 조직구성 → 위험관리 → 정보보호대책구현 → 사후관리

--- 정보보호대책 : 총 13개분야 92개 통제항목으로 구성

---- 시스템개발보안 / 암호통제 / 접근통제 / 운영보안 / 정보보호정책 / 정보보호조직

---- 외부자보안 / 정보자산분류 / 정보보호교육 / 인적보안 / 물리적보안 / 침해사고관리 / IT재해복구

블로그 이미지

Diano.

http://www.diano.kr / 이사하는중 /

,
  • 1. 보안요소 기술(10문제+-/20문제)

  •  

    (1) 인증기술

    1) 사용자 인증기술

    - 사용자 인증 : 통신하고 있는 상대가 내가 원하는 상대인지 확인할 수 있도록 해주는 기술

    -- A와 B가 통신할 때, A가 B에게 자신이 A임을 증명할 수 있는 것

    -- 개별식별 : 사용자 인증에서 더 발전해서, A와 C가 통신할 때 B가 C에게 A인척 못하게 하는 것

    - 사용자 인증 유형별 방법

    -- What you know(지식기반 인증방식) : ID/PW, I-PIN, 사전에 등록된 질문과 답

    --- 사람의 지식에 따른 내용으로 인증 / 관리가 편하고 용이 / 습관에 따라 패스워드 설정하기에 유추쉽고 보안성 낮음

    -- What you have(소유기반 인증방식): OTP, HSM, 보안카드, 스마트카드, 공인인증서

    --- 소지한 별도 매체의 고유정보를 직접 제시 / 매체에 대한 분실 우려

    -- What you are(생체기반 인식기술) : 지문, 홍채, 음성, DNA, 서명, 망막

    --- 인증자의 신체적인 특성이나 행동학적 특성을 이용해 인증

    - Chalenge-Response방식(이걸 어따 넣어야될지 모르겠네 / OTP에서도 쓰임)

    -- 사용자가 서버에 암호화 키 자체를 직접적으로 전송하지 않으면서 해당 비밀키나 개인키를 소유하고 있는 정당한 사용자임을 증명

    -- 매번 새로운 세션의 차별성을 위해 타임스탬프 / 세션 랜던 값 / 순서번호 를 이용할 수 있음

    -- 대칭키를 이용한 방법

    --- 사전에 사용자와 서버간의 대칭키를 공유하는 방식

    --- 사용자가 서버로 접속해 서버로 부터 난수 값을 받아서 그걸 대칭키로 암호화해서 보내는 것

    -- 공개키를 이용한 방법

    --- 사용자가 서버로 접속해 서버로 부타 난수 값을 받아서 그걸 개인키르 암호화해서 보내는 것

    - 사용자 인증의 보안 요구사항 : 식별 / 인증 / 인가 / 책임추적성

     

    2) 메시지출처 인증기술

    - 메시지 또는 자료의 출처가 알려진 출처가 맞는지 확인하는 기술

    - 메시지출처를 인증하는 기술은 크게 "메시지를 암호화 하는 방법 / 메시지 인증코드 / 해시함수" 로 나뉨

    - 메시지를 암호화 하는 방법

    -- Case 1) 대칭키를 이용해 암호화 → 기밀성 + 부분적인 인증(송신부인방지)

    -- Case 2) 비대칭키를 이용한 암호화

    --- i) 수신자의 공개키로 암호화 → 기밀성

    --- ii) 송신자의 사설키로 암호화 → 인증과 서명

    --- iii) 송신자의 사설키로 암호화하고 수신자의 공개키로 암호화 → 기밀성 + 인증과 서명

    - 메시지 인증코드(MAC ; Message Authentication Code)

    -- 메시지와 대칭키를 입력으로해 인증값으로 쓰기 위해 만들어진 코드

    -- 사전에 송신자와 수신자 간의 대칭키의 공유가 필요함

    -- 수신자는 수신한 메시지와 대칭키를 가지고 직접 MAC을 만들어, 수신한 MAC과 비교해 인증을 수행

    - 해시함수

    -- 데이터를 정해진 크기의 Message Digest로 만드는 일방향함수(One-Way Function)

    -- MAC과 달리 대칭키를 사용하지 않기에 키교환이 필요 없음

    -- 해시함수의 결과값 자체는 기밀성이 없어서 암호화와 섞어서 사용함

     

    3) 디바이스 인증기술

    - 유비쿼터스 시대 네트워크에 들어서면서 디바이스와 디바이스 끼리의인증을 해야되는 일이 많아짐

    - 디바이스와 사람간의 인증체계, 이기종 디바이스 간의 인증체계, 인증체계와 콘텐츠 보호와의 연동의 필요성이 생김

    - ID/PW기반 디바이스 인증

    -- 일반적으로 사용되는 이증방식

    -- SSID방식 / WEP 인증방식 / RFID와 리더기 간의 인증방식 등

    - MAC주소기반 디바이스 인증

    -- 접속 하는 단말기의 MAC주소값을 인증서버 또는 AP에 등록해서 인증받는 방식

    -- AP에서 사용됨

    - 암호 프로토콜을 이용한 디바이스 인증

    -- AP를 통한 정보자산의 불법적인 접근 또는 키나 세션을 훔쳐 정보를 유출하는 시도를 차단

    -- 802.1x 인증 : 유무선 네트워크에서 인증된 네트워크를 접속하는 IEEE 표준

    --- 사용자 ID 인증, 동적 키 관리 및 계정 지원

    --- PAP / CHAP / RADIUS / PEAP / WEP 프로토콜

    -- 802.11i 인증 : RC4 기반의 WEP 기술에 대한 취약점 해결하기 위해 제정

    -- WPA(Wi-Fi Protected Access) : WEP에 비해 정교한 데이터 암호화와 완전한 사용자 인증기능 제공

    --- TKIP과 802.1x 인증 방식을 사용

    -- EAP(Extensible Authentication Protocol) : 인증을 위해 최적화된 전송 프로토콜

    --- EAP-MD5 / EAP-TLS / EAP-TTLS / EAP-PEAP / EAP-Fast / LEAP

    - Challenge-Response 인증

    -- OTP에서의 Challenge-Response와 유사하게, 일회성 해시값을 생성해 사용자를 인증하는 방법

    -- 인증서버가 난수를 만들어 클라이언트로 전송하면, 클라이언트는 패스워드 해쉬 알고리즘을 적용해 반환 함

     

    4) Kerberos 프로토콜

    - MIT에서 개발한, 분산 환경하에서 개체 인증서비스를 제공하는 네트워크 인증시스템 / 현재 네트워크상에서 가장 많이 사용 됨

    - 사용자가 서버의 인증을 받기 위해 티켓이라는 인증값을 사용

    - 비대칭키 암호방식을 전혀 사용하지 않고, 대칭키 암호방식만 사용하여 신뢰된 티켓 발급서버를 이용해서 인증

    - 구성요소 : 클라이언트(다수) / 인증서버(AS) / 티켓발급서버(TGS) / 서버(다수)

    -- 클라이언트가 패스워드로 인증서버에게 인증을 받음

    -- 인증서버는 티켓발급서버가 인증된 클라이언트로 티켓을 발급하는 것을 허락함

    -- 티켓발급서버가 클라이언트로 티켓을 발급함

    -- 티켓을 받은 클라이언트는, 티켓을 이용해 서버에 인증을 받고 서비스를 받음

    - Realm(영역) : 하나의 Kerberos 시스템에 속해 있는 클라이언트와 서버의 범위

    -- 영역 안의 클라이언트들은 영역 안의 각 서버에대한 권한이 다름 / 권한에 따라 접속할 수 있는 기간도 다름

    - 신임장(Credential) : 티켓발급서버가 클라이언트에게 발급하는 것으로 티켓(Ticket)과 인증자(Authenticator)로 구성

    -- 인증자 : 티켓이 유효하다는 것을 증명하기 위해 사용되는 값으로 부가정보를 포함

    -- 티켓의 포함 내용 : 클라이언트 ID와 네트워크주소 / 티켓의 유효기간 / 접속하기원하는 서버의 ID / 서비스기간동안 공유하는 세션키

     

                                                

     

    http://www.zeroshell.org/kerberos/Kerberos-operation/

    - 장점 : 통신내용을 암호화키와 암호프로세스를 이용하여 보호하기에 데이터의 기밀성과 무결성이 보장됨

    - 단점

    -- 모든 클라이언트와 암호화 키에 대한 정보가 KDC에 있기에, KDC 단일 오류 지점이 될수 있음

    -- 비밀키와 세션키가 사용자 시스템에 저장되기에 유출과 침입에 취약

    -- 패스워드 추측 공격에 취약하며, 사용자가 패스워드를 바꾸면 대칭키 또한 변경해야되는 번거로움

    -- 티켓의 유효기간 때문에, 모든 클라이언트와 서버간의 시간의 동기화가 필요함

    -- 가장 큰 문제점으로, 재전송 공격에 약함

    - Kerberos 4

    -- 암호화 시스템에 대해 의존함, DES 알고리즘 사용

    -- 인증의 발송과 영역간의 인증은 불가능

    - Kerberos 5

    -- CBC 모드 사용(암호화 하는 방법임), 알고리즘 선택이 가능

    -- 티켓의 유효시간에 시작기간과 끝 시간을 표시함

    -- 인증의 발송과과 영역간의 인증이 가능

     

     

    (2) 접근통제정책

    1) 접근통제정책 구성요소

    - 접근통제는 인증 성공 이후에, 각 시스템 자원에 대한 사용자의 요청을 허용할것인가? 말것인가?하는 문제

    - 접근통제 시스템은 기능적으로 접근통제 정책 / 접근통제 매카니즘 / 접근통제 관련 보안 모델로 나뉨

    -- 접근통제 정책

    --- 신분 기반 정책 : 주체의 신분에 근거한 접근통제 정책

    ---- 임의적 접근통제(DAC)에 적용

    --- 규칙 기반 정책 : 주체에 허용된 접근 수준과 객체에 부여된 허용등급 에 따른 접근통제 정책

    ---- 강제적 접근통제(MAC)와 동일한 개념

    ---- 라우터나 방화벽 등의 접근통제에 쓰임

    --- 역할 기반 정책 : 객체에 대한 접근이 주체의 역할에 의해 결정되는 접근통제 정책

    ---- 역할기반 접근통제(RBAC)와 동일한 개념

    -- 접근통제 메카니즘 : 접근요청을 접근통제 정책에 대응시켜 불법적인 접근을 방어함

    --- ACL(Access Control List) : 신분 기반 정책을 지원

    --- CL(Capability List) : 신분 기반 정책을 지원 / 주체에게 티켓을 부여(접근 객체와 범위가 지정됨)

    --- SL(Security Lable) : 규칙 기반 정책을 지원

    --- 더 많긴한데 모르겠다.. 필요하면 추가함

    -- 접근통제 관련 보안 모델(다양한데 잘나오는 3가지만)

    --- Bell-LaPadula(BLP)

    ---- 데이터의 기밀성유지를 주목적(미국방부에서만듬) / 정보의 불법적 유출을 방어하기 위한 최초의 수학적 모델

    ---- 단순보안속성(Simpe Security Property) : 주체는 자신의 보안등급보다 높은 등급의 객체에 접근불가 ; No Read Up

    ---- 성형속성(The ★-Property) : 주체는 자신의 보안등급보다 낮은 등급의 데이터를 수정할수 없음 ; No Wirte Down

    --- Biba

    ---- 데이터의 무결성유지를 주목적으로 함(비 군사적 조직) / Bell-LaPadula 모델의 단점인 무결성을 보장할 수 있도록 보완

    ---- 단순무결성원리(Simple Integrity Axiom) : 주체집단에게 주어진 무결성등급보다 낮은 객체는 못 읽음 ; No Read Down

    ---- 성형무결성원리(The ★-Integrity Axiom) : 주체에게 주어진 무결성등급보다 높은 등급의 객체는 수정 못함 ; No Write Up

    --- Clark-Wilson

    ---- Biba 이후에 나왔으며, Biba의 무결성 보호를 조금 다른 관점에서 접근함

    ---- 주체가 객체에 직접접근은 할 수 X / 오직 프로그램을 통해 간접적으로 접근

     

    2) 임의적 접근통제(DAC ; Discretionary Access Control)

    - 신분 기반 정책을 적용했다고 보면될려나??

    - 어떤 사용자든 임의적으로 객체에 대한 다른 사용자들의 접근을 허용할 수 있는 기법

    -- 데이터 소유자가, 사용자나 사용자 그룹에 따라 접근을 제어

    -- 예를 들자면, Windows에서 Everyone같이 그룹단위로 접근제어 하는거 생각해봐

    --- DAC는 대부분 운영체제에서 지원됨

    - 모든 주체와 객체에 대해 일정하며, 하나의 주체와 하나의 객체 단위로 접근 제어는 불가능

    - 구현을 위해 일반적으로 ACL(Access Control List)을 활용 / 중앙집중적으로 통제되는 환경에서 부적합

    - 결론적으로, 사용자가 누구고 어떤 그룹에 속해있는지에 따라 접근통제가 이루어져

     

    3) 강제적 접근통제(MAC ; Mandatory Access Control)

    - 규칙 기반 정책을 적용 했다고보자...(이게 맞는 건지는 모르겠으나 다들 그렇게 연결 짓던데?)

    - 관리자가 주체들에겐 허가등급을, 각각의 객체에는 비밀등급을 부여해서 주체의 허가등급과 객체의 비밀등급을 따져 접근을 제어함

    -- 주체들과 객체들의 등급을 따로 보안레이블에 저장해둠

    -- 운영체제(관리자) / 주체(프로세스 들) / 객체(시스템 리소스) 이렇게도 쓰여

    - 최상의 허가등급을 가진 사용자라도 모든 객체를 열람 할 수는 X

    - 통제가 용이하고 보안관리자 주도하에 중앙 집중적 관리가 가능하다는 장점

    - 기밀성이 매우 높은 조직에서 사용됨

     

    4) 역할기반 접근통제(RBAC ; Role Based Access Control)

    - 역할 기반 정책의 적용 / 임의적 접근통제와 강제적 접근통제의 단점을 보완한 기법(비 임의적 접근통제라고도함)

    - 역할들을 생성해서 역할마다 권한을 준다음, 사용자들에게 각 역할을 부여함. 즉, 사용자의 역할에 따라 접근을 제어 함

    - 규모가 큰 회사에 알맞은 시스템(인사이동 등이 잦아도 그냥 사용자의 역할만 변경하면 됨)

     

    5) 접근통제행렬과 AC

    - 접근통제행렬 : 주체를 열에, 객체를 행에 표시해서 각각에 권한을 부여하는 방법

    - AC(Access Control ; 접근통제) : 몇몇 접근통제 모델은, 해당 모델이 가지고 있는 접근통제 메카니즘을 보안모델로 발전시킴

    -- 접근통제 메카니즘과 보안모델은 1)에서 설명

     

     

    (3) 키 분배 프로토콜

    1) KDC 기반 키 분배

    - KDC(Key Distribution Center)

    -- 암호통신을 원하는 두 가입자 사이에, 공통의 암호키를 소유할 수 있고 키 분배 과정을 수행하는 신뢰된 기관

    -- 간단히 말해, 비밀키를 만들어서 대칭키 암호화 통신을 원하는 사람들에게 키를 나누어 주는 역할

    -- 키를 나누어 준 뒤, KDC에서 키를 삭제하는것도 좋지만 분실에 대비하는것도 좋음(이런 의미에서 키 복구센터라고도함)

    -- 인원이 많아지면, 관리하는 키의 수가 기하급수적으로 증가해 현실적으로 관리가 불가능

    - 키 분배 방식

    -- 키의 사전분배(Key Predistribution) 방식 : 한 가입자가 키를 만들어, 상대 가입자 혹은 양측 가입자에게 전달하는 방식

    --- Blom 방식 / 중앙집중식 키 분배(Kerberos에서 사용) / 공개키 분배(KDC가 공개키 분배)

    -- 키 공유방식(Key Agreement) 방식 : 키를 설정하는데 공동으로 참여

    --- Diffie-Hellman 키 교환 방식 등등

     

    2) Needham-Schroeder 프로토콜

    - Roger Needham과 Micheal Schroedor이 1978년 대칭키와 trent 개념을 사용해 제안

    - 인증서버 S / 통신주체 A / 통신주체 B 가있다고 가정하고 설명(K는 키값 / N은 난수값)

    -- 1) A → S : A / B / N_A

    --- (A가 S에게 B와 통신하고 싶다고 알림 ; A와 B의 ID와 A가 생성한 난수값보냄

    -- 2) S → A : N_A / K_ab / B / [ [ K_ab, A ]K_bs ]K_as

    --- (S가 A에게, B와 통신할 때 쓸 키 K_ab를 주고, B에게도 알려주라고 K_ab를 K_bs로 암호화 해서 줌

    -- 3) A → B : [ K_ab, A ]K_bs

    --- 아까 S가 B주라고 줬던걸, B한테 보내줘

    -- 4) B → A : [ N_b ]K_ab

    --- A로부터 키 값 K_ab를 받은 B는 응답신호로써 자신이 생성한 난수값 N_b를 암호화 해서 보냄

    -- 5) A → B : [ N-b - 1 ]K_ab

    --- B로부터 받은 난수값에서 1빼고 암호화 해서 보내

    - 재전송 공격의 취약점이 있음(MITM에 취약) 그래서 타임스탬프를 사용함

    -- 타임스탬프사용해서 하는건 위의 1)에서 타임스탬프를 주거니 받거니함(걍 생략)

     

    3) Diffie-Hellman 프로토콜

    - 1976년 Diffie와 Hellman이 발표한 것으로 이산대수 계산의 어려움을 이용함 / 공개키 암호의 시초

    - 네트워크상에서 A와 B가 알고리즘에 사용하는 비밀키를 서로 만나지않고 공유할 수 있는 방법

    - Alice와 Bob이 키교환하고자함!

    -- 1) Alice와 Bob은 소수 p와 p미만의 임의의 정수 g를 선택해 공유함

    -- 2) Alice와 Bob은 서로 비밀키 a와 b를 만듬

    -- 3-1) Alice는 A = g^a (mod p)를 계산해 공개키 A를 Bob에게 보냄

    -- 3-2) Bob은 B = g^b (mod p)를 계산해 공개키 B를 Alice에게 보냄

    -- 4-1) Alice는 B^a (mod p)를 계산하고, Bob은 A^b를 계산해서 A^b = B^a = g^ab (mod p)라는 결과를 만들어냄

    -- 5) g^ab (mod p)를 둘 만의 비밀키로 사용

    - 세션키 같은거 필요없고 단순하고 효율적으로 키 교환이 가능

    - 재전송 공격(MITM)에 취약함

     

    4) RSA 이용 키 분배 방법(RSA 암호 알고리즘을 말하는게 아냐)

    - RSA는 소인수 분해의 어려움을 이용하는 암호 알고리즘임

    - 일단, 여기선 RSA를 이용한 키 분배 방법이기에 키 생성가은건 집어치우고 시작

    -- 1) Alice와 Bob이 각각 공개키 쌍과 사설키 쌍을 만듬

    -- 2) Alice가 공개키 쌍과 자신의 ID값을 Bob에게 보냄(ID값은 뭐..그냥 자기라고 인증할만한 값?인듯)

    -- 3) Bob이 공유할 대칭키를 생성해서 Alice의 공개키로 암호화해서 Alice에게 보냄

    -- 4) Alice는 받은 대칭키로 데이터를 암호화해서 보냄(여기부터 통신시작)

     

    (4) 전자서명과 공개키 기반구조(PKI)

    1) 전자인증서 구조

    - 사용자 공개키와 사용자 ID정보를 결합해 인증기관이 서명한 문서 / 공개키의 인증성을 제공

    - 쉽게말해, 사용자의 공개키 + 사용자의 공개키에 대한 인증기관의 전자서명 = 사용자의 전자인증서

    - X.509 인증서 표준 : ITU에서 제안한 인증서에 대한 기본 형식을 정의한 규격

    -- 인증서를 이용한 공개키의 효율적인 분배 방법을 정의

    -- X.509 v1(1988)

    -- X.509 v2(1993)

    --- 인증서 취소목록(CRL ; Certificate Revocation List)을 도입

    --- 인증기관 고유 ID(Unique Identifier) 도입 : 한 주체가 둘 이상의 인증기관으로 부터 인증서가 발급됬을 경우 구분하기 위해

    --- 주체 고유 식별자 : 주체를 식별하는 값(동명이인일 경우 구분하기 위해)

    -- X.509 v3(1996)

    --- 인증기관 키 식별자

    --- 주체키 식별자

    --- 키 용도 : 암호용인지 서명용인지 구분

    --- v3부터는 확장자의 개념이 도입됨

    ---- 키 및 정책 확장자

    ---- 주체와 발급자에 대한 속성 정보

    ---- 인증서 경로 및 규제 정보

    ---- CRL을 위한 확장자

    - 전자인증서 구조

    -- 버전(Version) : X.509의 몇 번째 버전이냐??

    -- 일련번호(Serial Number) : 발행하는 CA 내부에서의 유일한 정수값

    -- 알고리즘 식별자(Algorithm Identifier) : 인증서를 생성하는데 어떤 알고리즘 썻는지

    -- 발행자(Issuer) : 인증서를 발행하고 표시하는 CA

    -- 유효기간(Period of Validity) : 인증서가 유효한 시작과 끝기간

    -- 주체(Subject) : 인증서가 가르키는 사람

    -- 공개키 정보(Public-key Information) : 주체의 공개키와, 이 키가 사용될 알고리즘 식별자

    -- 서명(Signature) : CA의 개인 서명키로 서명한 서명문

     

    2) 전자서명 보안 서비스

    - 전자서명(DIgital Signature) : 내가 받은 메시지를 어떤 사람이 만들었는지를 확인하는 인증

    - 전자서명의 기능 : 사용자인증(송신 부인방지) / 메시지 인증(무결성의 보장의 개념)

    - 전자서명의 특징 : 위조불가 / 서명자 인증 / 부인 불가(서명사실에 대해) / 변경불가(변조불가) / 재사용 불가

    - 전자서명 방식에 따른 분류

    -- 직접 서명(Direct Digital Signature) 방식 : 혼자서 서명알고리즘 수행하고 서명하는 방식

    --- 키가 유출되면, 송신 부인방지가 안되며 기타 다른 요구사항이 충족 안됨

    -- 중재 서명(Arbitrated Digital Signature) 방식 : 서명자가 서명해서, 중재자에게 보내면 중재자가 한 번더 서명하는 방식

    -- ※ 전자서명 알고리즘의 분류

    --- 메시지 복구가능 전자서명 알고리즘(DSS ; Digital Signature Scheme) : 서명값으로 부터 메시지 추출해서 검증가능

    --- 원메시지 필요 전자서명 알고리즘(DSS with appendix) : 검증을 위해 따로 원메시지가 필요

    - 전자서명 방법

    -- 메시지에 직접하는 방법

    -- 메시지의 해쉬값에 서명하는 방법 : 좀더 효율적

     

    3) PKI 구성방식(계층, 네트워크)

    - PKI(Public Key Infrastructure ; 공개키 기반 구조) : 공개키 인증서의 인증성(무결성)을 제공하기 위한 신뢰구조

    - PKI 구성요소(컴포넌트 ; Component)

    -- 공개키 인증서(Public Key Certificate) : 해당 키가 누구 것인지 알려줌(공개키 정보와 주인의 정보)

    --- 구성 : 공개키 인증서/ 인증서 정책 / 인증서 경로 / 인증서 철회 리스트(CRL ; Certificate Revocation List)

    -- 인증기관(CA ; Certification Authority)

    --- 인증서의 발급 / 상태관리 / 문제 발생 시 CRL의 발급

    --- 지금까지 발행한 인증서와 모든 CRL을 저장

    -- 등록기관(RA ; Registration Authority) : 인증서 신청시, CA대신 신분, 소속을 확인해주는 기관

    -- 저장소, 디렉터리(Repository) : 공개키를 저장하고 있는 기관

    --- CA로부터 인증서와 CRL을 받아 저장하고, 이를 요구하는 사용자에게 나눠줌

    -- 사용자(User)

    - PKI 구성 방식

    -- 순수 계층 방식(트리구조)

    --- 최상위 인증기관인 Root CA에 대한 신뢰를 바탕으로, 하부 CA간의 상호인증은 원칙으로 배제하는 방식

    --- Root CA간의 상호 인증으로 국제적으로 구성이 가능

    -- 네트워크 구조 방식

    --- 여러 Root CA를 두어 운영함 / 복잡함

     

    4) CRL 구조 및 기능

    - CRL(Certificate Revocation List) : 인증서 취소 목록

    - 취소 이유

    -- 인증서 발행 조직에서 탈퇴 / 비밀키의 손상 / 비밀키 유출 의심

    -- 인증서 소유자나 소유자의 대리인의 취소 요구

    - 인증서 취소 메카니즘 : X.509에서 정의된 CRL을 이용해 관리

    - CRL은 네트워크를 통해 공개되고 Repository에 저장됨

    -- 주기적으로 CRL을 생성하는 방법과 실시간으로 생성하는 방법이 있음(하이브리드 하는게 좋음)

     

    5) OCSP 동작절차

    - OCPS(Online Certificate Status Protocol) : 실시간으로 인증서가 유효한지 검증하는 프로토콜

    -- CRL과 마찬가지로 유효성을 검증할 수 있는 프로토콜(업데이트 주기나, 비요 등에서 차이가 있어)

    - OCSP 방식은 CA와 Repository와는 별도로 OCSP 서버를 하나 두고, 사용자의 검증 요구에 대한 결과를 제공하는 방식

    -- OCSP Server는 특정 CA기관과 사용계약을 맺어야하고 사용량에 따라 추가 비용 지불

    -- OCSP Server가 CA기관과 계약을 맺으면 OCSP Server에 Server 인증서와 개인키가 발급됨

    -- OCSP Server 인증서는 1년마다 교체해야됨

    - OCSP 동작 절차

    -- 1) CA 내부에 OCSP Responder가 존재

    -- 2) OCSP Server가 CA내부의 OCSP Responder로 OCSP Request 전송

    -- 3) 인증서의 폐기 여부를 검증함

    -- 4) CA에서 OCSP Server로 OCSP Response 전송

     

                      

     

    - OCSP와 CRL의 비교

    -- CRL같은경우는 실시간이 아니라 일정한 주기마다(6시간~24시간) 폐기목록을 생성

    -- CRL이 갱신되어야 폐기로 판단

    -- 따로 비용이 들지는 않음

     

    6) 전자서명 관련법규

    - 이건 나중에 법규할 때 다루자

     

     

     

    2. 암호학(12문제~13문제/20문제)

    (1) 암호 알고리즘

    1) 암호 관련용어

    - 평문(Plaintext) / 암호문(Ciphertext)

    - 암호화(Encryption) / 복호화(Decryption)

    - 전자서명(Digital Signature)

    - 기밀성 / 무결성 / 가용성 / 부인방지

     

    2) 암호 공격방식

    - 수동적 공격(소극적 공격)

    -- 도청 / 트래픽 분석

    - 능동적 공격(적극적 공격)

    -- 변조 / 삽입 / 삭제 / 재생

    - 암호 메시지에 대한 공격(해독하려는 시도)

    -- 암호문 단독 공격(Ciphertext Only Attack/COA)

    -- 알려진 평문 공격(Known Plaintext Attack/KPA)

    -- 선택 평문 공격(Chosen Plaintext Attack/CPA)

    -- 선택 암호문 공격(Chosen Ciphertext Attack/CCA)

     

     

    3) 대칭키, 공개키 암호시스템 특징 / 4) 대칭키, 공개키 암호시스템 활용

    - 대칭키 암호시스템(비밀키/관용키 암호시스템)

    -- 암호화키와 복호화키가 동일함

    -- 암호화와 복호화가 빨라서 효율적임

    -- 치환가 전치의 조합으로 간단한 구조로 개발 쉬움(Feistel 구조를 기반으로 해서 그런듯)

    -- 많은 사람과의 정보교환시 키 관리의 어려움이 있음(N명의 경우 N(N-1)/2의 비밀키가 필요

    -- 암호화에 적용되는 평문에 따라 Stream Cipher / Block Cipher

    -- Steam Cipher : RC4

    -- Block CIpher : DES(3DES) / IDEA / RC5 / RC6 / AES / SEED / Blowfish /ARIA

     

                                        

     

    http://www.slideshare.net/skccsocial/security-framework220

    - 공개키 암호시스템(비 대칭키 암호시스템)

    -- 암호화키와 복호화키가 다름

    -- 다른 유저와 키를 공유안해도 암호화 통신이 가능

    -- 수학적인 난제을 기반으로해서 암/복호화가 복잡

    --- 이산대수를 이용 : Diffie-Hellman / El Gamal / DSA / KCDSA / Schnorr

    --- 소인수분해를 이용 : RSA / Rabin

    --- 기타 : ECC(타원곡선) / Knapsack

     

    5) 스트림 암호

    - 대칭키 암호시스템 구조 중 하나로, 한번에 한 바이트씩 암호화되는 형식(가장 처음에 초기값(IV ; Initial Vector)가 필요)

    - 가장 중요한 건 키 스트림을 생성하는 것(동기적 / 비 동기적)

    -- 동기식 스트림 암호 : 키 스트림을 대칭키와 이전상태로부터 뽑아냄(예를 들어, N키스트림과 N+10 키 스트림이 동일)

    --- 대표적으로 RC4가 있음

    -- 비동기식 스트림 암호 : 키 스트림을 대칭키와 평문으로 부터 뽑아냄

    - 키 스트림의 무작위성이 암호의 강도가 됨

     

    6) 블록 암호

    - 대칭키 암호시스템 구조 중 하나로, 고정된 크기의 블록을 고정된 크기의 암호화 블록으로 암호화하는 방식

    - Feistel 구조와 SPN구조를 다루고 싶지만...

    - 블록암호 운영모드 : 평문의 길이가 블록의 크기보다 클 경우에 대한 문제점을 해결하기 위해 제시된 암호화 모드

    -- ECB(Electronic Code Book) : 평문을 블록단위로 잘라서, 각 블록마다 암호화

    --- C[i] = Ek( M[i] )

    --- 블록 크기보다 작으면 적용 불가능

    --- 이전 블록 값의 오류가, 이후에 영향을 안줘(소규모 암호화에 적합)

    ---- 오류 전파가 안된다는 특징

    ---- 동일한 평문엔 동일한암호문이 나와 → 암호문 단독공격에 약해

     

                4.png

     

     

    -- CBC(Cipher Block Chaining) : 출력되는 암호문이 다음 평문 블록에 영향을 줘

    --- C[i] = Ek( C[i-1] × M[i] )

    --- 암호화 과정에서, 평문 블록 M[i]에서 1bit가 오류 → 암호문 블록 C[i]부터 끝까지 영향

    ---- ECB가 암호문 단독공격에 취약한걸 해결

    ---- 이런 특징 때문에, 메시지 인증코드에 사용되기도 해(무결성이 유지되기에)

    --- 복호화 과정에서, 암호문 블록 C[i]에서 1bit가 오류 → 평문 블록 M[i], M[i+1]에만 영향

     

                

     

     

    -- CFB(Cipher Feed Back) : 암호문이 암호기의 입력으로 사용되

    --- C[i] = Ek( C[i-1] ) × M[i]

    --- 암호화 과정에서, 평문 블록 M[i]에서 1bit가 오류 → 암호문 블록 C[i]부터 끝까지 영향

    ---- ECB가 암호문 단독공격에 취약한걸 해결

    --- 복호화 과정에서, 암호문 블록 C[i]에서 1bit가 오류 → 평문 블록 M[i], M[i+1]에만 영향

           

                            

     

     

    -- OFB(Output Feed Back) : 암호 알고리즘의 출력이 다시 암호 알고리즘의 입력이 됨

    --- C[i] = Ek( Z[i-1] ) × M[i]

    --- ECB가 암호문 단독공격에 취약한걸 해결

    --- CBC와 CFB의 오류전파를 제거함

    --- 블록암호상에서 스트림암호를 운영할 수 있음

     

                           

     

     

    -- CTR(CounTeR) : IV값을 Counter로 1씩 계속 증가시킨걸, 암호화해 키 스트림을 만들어 내는 스트림 암호화

    --- 블록암호상에서 스트림암호를 운영할 수 있음

     

                 

     

     

    7) 블록 암호공격

    - 차분 공격(Differential Cryptanalysis) : 평문공격법 / 두 개의 평문블록과 이에 대응되는 암호문 블록들의 비트들의 차이를 이용해 키를 찾음

    - 선형공격(Linear Cryptanalysis) : 평문공격법 / 알고리즘 내부의 비선형 구조를 선형화해서 키를 찾음

    - 전수공격(Exhaustive Key Search) : 암호화할 때의 모든 경우에 대하여 조사하는 방법 / 일반적으론 불가능(경우의 수가적을 때만 가능)

    - 통계적 분석(Statistical Analysis) : 많이 사용되는 단어의 빈도의 통계적 수치를 가지고 해독

    - 수학적 분석(Mathematical Analysis) : 통계적 방법을 포함해, 수학적 이론을 이용해 해독

     

    8) 인수분해 기반 공개키 암호방식

    - 소인수 분해의 어려움을 이용(엄청나고 엄청난 수를, 엄청나게 큰 두 소수로 분해하는게 어려움)

    - RSA(Rivest Adleman Shamir)

    -- Key 생성

    --- 1. 큰 소수인 p, q를 선택

    --- 2. N = p x q를 계산 해, N을 구함

    --- 3. φ( N ) = ( p-1 ) x ( q-1 )

    --- 4. gcd( Ke, φ( N ) ) = 1이 성립하는 Ke를 구함

    --- 5. Ke x Kd ≡ 1 ( mod φ( N ) )이 성립하는 Kd를 구함

    --- 공개키 쌍은 ( Ke, N ), 개인키 쌍은( Kd, N )

    -- 암호화 과정

    --- 1. 수신자의 공개키 쌍을 가져옴( Keb, Nb )

    --- 2. C ≡ M^( Keb ) ( mod Nb )로 암호문을 만들어냄

    -- 복호화 과정

    --- 1. 수신받은 암호문 C에 자신의 개인키로 복호화 함

    --- 2. C^( Kdb ) ≡ M^( Keb x Kdb ) ≡ M^(1) ≡ M ( mod Nb )

    - Rabin

    -- RSA 암호방식보다 훨씬 빠름(암호화 과정이 더 단순)

    -- RSA와는 다르게 공개키가 N이고, 개인키가 p, q가 됨

    -- Key 생성

    --- 1. 큰 소수 p, q를 선택

    --- 2. N = p x q를 계산해, N을 구함

    --- 공개키는 N, 개인키는 p, q

    -- 암호화 과정

    --- C ≡ M^( 2 ) ( mod N )

    -- 복호화 과정

    --- M ≡ C^( 1/2 ) (mod N )

     

    9) 이산로그 기반 공개키 암호방식

    - El Gamal

    -- RSA와는 다르게, 같은 평문에서도 다른 암호문이 생성 / But, 암호문 길이가 두 배로 증가한다는 단점

    -- Y = g^ ( X ) ( mod p )에서 g와 y, p를 알아도 x는 구하는건 겁나 어렵다

    --- 여기서 Y와 g, p가 공개키고 X가 개인키

    -- 키 생성

    --- 1. (공통) 임의의 큰 소수 p와, p의 기약잉여계의 임의의 원시근 g를 선택(위수가 φ(p)인게 원시근)

    --- 2. 1부터 p-1까지의 정수 하나를 개인키 X로 정함

    --- 3. Y = g^( X ) (mod p )를 계산해, Y를 정함

    --- 공개키는 Y, p, g, 개인키는 X

    -- 암호화

    --- 1. 수신자의 공개키를 가져옴(Yb, g, p)

    --- 2. p의 완전잉여계에 속하는 임의의 정수 r을 하나 정함

    --- 3. K ≡ Y^( r ) ( mod p )를 계산해 K를 계산

    --- 4. 다음과 같은 C1과 C2를 보냄

    i) C1 ≡ g^( r ) ( mod p)

    ii) C2 ≡ K x M ( mod p)

    -- 복호화

    --- 1. 수신받은 C1과 C2를 개인키 Xb를 이용해 복호화

    --- 2. C1에서 K를 구해냄

    C1^( Xb ) ≡ ( g^( r ) )^( Xb ) ≡ ( g^( Xb ) )^( r ) ≡ Yb^( r ) ≡ K ( mod p )

    --- 3. C2에서 평문 M을 구해냄

    C2 / K ≡ M ( mod p )

    - Diffie-Hellman

    -- 직접 서로의 비밀키를 전달할 수 있는 대표적 방법 중 하나

    --  키 교환 및 인증에 사용됨

    - ECC(Elliptic Curve Cryptography ; 타원곡선 암호)

    -- 아..이건 모르겠다ㅋㅋㅋ

     

     

    (2) 해쉬함수와 응용

    1) 해쉬 함수 일반

    - 임의의 입력 비트열에 대해, 일정한 길이의 출력 비트열을 내는 것

    - 해쉬 함수의 요구 사항

    -- 압축 : 일정한 크기의 이진 문자열로 변환

    -- 계산 용이성 : x가 주어지면 H(x)의 계산이 쉬워야 함

    -- 일 방향성(One-wayness) : 해시값 y만 주어 졌을 때, y = H(x)에서 x를 찾는게 어려워야 함

    -- 약한 충돌회피성 : x가 주어졌을 때, H(x) = H(x')를 만족하는 x'를 찾는게 어려워야 함(거의 불가능이 되어야 지)

    -- 강한 충돌회피성 : H(x) = H(x')를 만족하는 x와 x'를 찾는건 어려워야 함

     

    2) 전용 해쉬함수별 특징

    - MD5 / SHA

    -- MD5와 SHA-0 / SHA-1 / SHA-2만 알면 될듯(일단 다 긁어왔어)

     

                         

     

    http://en.wikipedia.org/wiki/Secure_Hash_Algorithm

     

    3) 메시지 인증 코드(MAC)

    - MAC(Message Authentication Code)

    -- 저 위에서 메시지 인증방식으로 언급하긴함

    - MAC Algorithm으로 DES나 해쉬함수를 씀

     

                      

     

    http://en.wikipedia.org/wiki/Message_authentication_code

     

    4) 전자서명

    - 전자서명(Digital Signature) : 메시지 인증 + 사용자 인증

    -- 위에서 이미 다룸

     

    5) 은닉서명

    - 은닉서명(Blind Signature) : 사용자 A가, 서명자 B에게로 부터 자신의 메시지를 보여주지 않고 서명을 얻는 방법

    -- 그니까, 서명을 받긴 받았는데 그게 누구 서명인지 알수는 없다는 거지

    -- 어떤 특정 난수값을 메시지에 곱해서 보내기에 못 보는거지

    - 메시지의 비밀성을 지키면서, 타인의 인증을 받고자 하는 경우에 주로 사용

    -- 주로 전자투표?

    - 하는 알고리즘은 생략

     

    6) 이중서명

    - 이중서명(Dual Signature) : SET에서 도입된 기술로 이전에 언급했음

     

    아래는 고객이 상점으로 보내는 것

    상점에서는 이중서명 / OI / PIMD / 고객의 공개키만 사용

     

                            

     

     

    아래는 상점이 고개으로 부터 메시지 받고 처리하는 과정

    이중서명 / OI / PIMD / 고객의 공개키를 가지고 인증을하고

    나머지는 Payment Gateway로 보냄(어차피 못뜯어봐 ; 금융기관의 공개키로 암호화 했기에)

          

                                                 


블로그 이미지

Diano.

http://www.diano.kr / 이사하는중 /

,


1. 인터넷 응용보안(10문제/20문제)

 

(1) FTP 보안

1) FTP 개념

- FTP(File Transfer Protocol)

--TCP/IP 네트워크상에서 한 호스트에서 다른 호스트로 데이터 파일을 전송하는데 사용하는 표준 프로토콜(IETF RFC 959)

- Transfer Layer 프로토콜로로 TCP를 사용하며, 서버-클라이언트 모델을 구성하고 있음

- FTP 세션은 암호화되지 않기에, 사샐활 보호 또는 개인정보 보호기능을 제공하지 않음

-- 인증정보 또한 평문으로 전달되어 스니핑 당하면 인증정보가 유출될 수 있음

 

2) FTP 서비스 운영

- FTP는 제어를하기 위한 연결과 데이터 전송을 위한 연결을 따로 사용해서 효율적이고 신뢰성있는 데이터 전송을 제공

-- PI(Protocol Interpreter) : 제어 명령 송/수신하는 역할

-- DTP(Data Transmission Process) : 데이터를 송/수신하는 역할

- FTP는 제어를 위한 연결을 할 때엔 21번 포트를 사용 / FTP 세션 동안 계속 유지

- FTP는 데이터 전송을 위한 연결을 할 때엔 20번 포트를 사용 / 파일 전송하는 동안 유지

- Active Mode

-- 많이 쓰이는 방식으로, 클라이언트가 서버에게 자신이 어떤 포트로 데이터를 전송할지 알려주는 방식(클라이언트가 원하는 포트 사용)

-- 1) 클라이언트가 서버의 Command Port(21번)로 데이터전송을 위해 사용할 포트를 알려줘

-- 2) 서버가 Command Port(21번)에서 클라이언트로 ACK 신호를 보냄

-- 3) 서버가 Data Port(20번)에서 클라이언트가 알려준 포트로 연결을 시도

-- 4) 클라이언트가 서버의 Data Port(20번)로 ACK 신호를 보냄

-- ※ 클라이언트는 1024 이상의 임의의 포트를 사용

-- ※ 3)에서 서버가 클라이언트로 연결시도한다는 점에서 문제점이 발생(방화벽 등에 막힐 수 있음) → Passive Mode의 사용

 

                                             

 

http://learnwithrahul.blogspot.kr/

- Passive Mode

-- 방화벽과 같은 보안솔루션 때문에 방화벽을 통해 FTP를 사용해야하는 문제점을 해결

-- Active Mode와 달리, 서버가 클라이언트로 자신이 데이터를 보내고자하는 포트를 정하는 방식

-- 1) 클라이언트가 서버의 Command Port(21번)로 Passive Mode로 접속요청

-- 2) 서버가 Command Port(21번)에서 클라이언트에게 데이터전송을 위해 사용할 포트를 알려줌

-- 3) 클라이언트가 서버가 알려준 포트로 연결을 시도

-- 4) 서버가 클라이언트로 ACK신호를 보냄

-- ※ 클라이언트는 1024 이상의 임의의 포트를 사용

-- ※ 서버가 1024 이상의 포트를 열어둬야 된다는 점에서 보안적인 문제점이 있을 수 있음

                                               

 

http://learnwithrahul.blogspot.kr/

- Anonymous FTP(익명 FTP)

-- 사용자들이 할당 받은 ID 없이도 FTP 서버에 접근하고 서비스를 이용할 수 있게 해줌

-- FTP 서버에 접속 후, 사용자 아이디에는 Anonymous, 패스워드에는 아무내용 넣어도 상관없으나 자신의 이메일적는게 예의

- TFTP(Trivial File Transfer Protocol)

-- FTP보다 간단하고 최소한의 기능만 제공해주는 프로토콜

-- FTP는 TCP를 이용하는반면, TFTP는 UDP를 사용함

-- 디렉토리나 파일의 목록을 보는 명령이 없기에, 파일명을 모르는 사용자는 해당 파일 다운받지 X

--- 물론, Brute Force Attack 등으로 가능하긴 함

-- 인증절차가 없기에, 설정이 잘못되어 있으면 누구나 파일에 접근이 가능

- Unix/Linux에서 사용자 별로 FTP Server에 접근 제어를 하려면 /etc/ftpusers에 등록함(등록되면 접근이 거부됨)

- Windows에서는 FTP Server를 만드려면 IIS가 설치되어야 함

 

3) FTP 공격 유형

- FTP Bounce Attack

-- FTP 서버가 데이터를 전송할 때, 목적지를 검사하지 않는 설계상의 문제점을 이용한 공격

-- 공격자가 FTP 서버를 거쳐 간접적으로 임의의 호스트에 접근하거나 존재 여부를 파악가능

-- 포트 스캐닝에 쓰일 수 있음

-- 대응 방법

--- FTP의 설계상의 문제이므로, 원래 규약을 어느정도 제한하는 방법

--- 공격에 사용되는 FTP 서버는 주로 Anonymous FTP 서버이기에, 꼭 필요한 경우가 아니면 Anonymous FTP는 사용하지 X

--- FTP 서버에 접속가능한 IP주소를 필터링 / 익명 사용자는 파일 업로드 못하도록 제한

 

 

                                             

                                             

 

 

http://www.networkuptime.com/nmap/page3-20.shtml

- Anonymous FTP Attack

-- Anonymous 계정 허용하는게 위험해

-- Anonymous 계정을 위한 디렉토리 따로 만들고 / 소유자는 관리자 / 읽기 권한만 줌

-- 로그 파일 정기적으로 확인

- TFTP Attack

-- 위에서 언급했드시, Brute Force Attack이나 Dictionary Attack등으로 파일명 알아내 다운로드

-- TFTP 데몬을 Secure Mode로 작동하게 설정

-- TFTP 데몬을 필요없으면 제거해

 

4) FTP 보안대책

- FTP 서버 접속 시, /(Root)로 접속하는 것을 차단

- Anonymous FTP 서버의 경우, 디렉토리 소유자와 퍼미션 관리를 철저히

- 불필요한 TFTP는 제거

- FTP 자체의 취약점은 없는지 주기적으로 업데이트

 

 

(2) MAIL 보안

1) MAIL 개념

- 인터넷에 연결되어 있는 서버를 통해 메시지를 보내거나 받은 메시지 교환 방식

 

2) MAIL 서비스 운영

- MUA(Mail User Agent) : 사용자가 메일을 송수신하기 위해 사용하는 프로그램

- MTA(Mail Transfer Agent) : MUA로 부터 전달받은 메일을 다른 MTA로 전송하는 서버프로그램(목적지는 수신자의 MTA)

-- MTA는 STMP(TCP 25)를 이용해 다른 MTA로 메일을 전달함(STMP 서버라고도 함)

- MDA(Mail Delivery Agent) : 최종 MTA에 도착한 후, 수신된 메일을 사용자의 메일함에 저장하는 프로그램(POP과 IMAP방식)

-- 최종 MTA가 MDA의 역할을 한다고 생각하면될 듯

- MRA(Mail Retrieval Agent) : MDA가 저장한 메일을 MUA로 가져오는 프로그램(및에 사진엔 없네) / 아이디와 패스워드로 사용자 인증도함

-- POP3(Post Office Protocol 3 ; TCP 110)

--- 기본적으로 MRA가 가져간 메일은 서버에서 삭제됨

--- 추가적인 옵션을 통해, 삭제를 안시킬 수는 있음

--- 선택적으로 메일을 가져올 수가 X

-- IMAP(Internet Message Access Protocol ; TCP 143)

--- POP3와 유사한 역할을 하지만, 더 많은 기능을 제공

--- 기본적으로 MRA가 메일을 가져가도 서버에 계속 존재

--- 메일의 제목 / 본문의 일부 등의 내용만 볼 수 있음

--- 메일함이 폴더 형태로 구성되어 있어서, 모바일 장치에서도 사용하기 편함

 

                                                           

                                                      

 

http://en.kioskea.net/contents/116-how-email-works-mta-mda-mua

- MIME(Multipurpose Internet Mail Extensions)

-- 이메일을 위한 인터넷 표준 포맷

-- STMP가 7Bit ASCII 문자만을 지원하기에, 이 외의 형태를 가지는 데이터는 제대로 전송되지 X

-- 8Bit 이상의 코드를 가지는 문자나 파일들은, 이메일 프로그램이나 서버에서 자동으로 MIME형식으로 변환해 전달

 

3) MAIL 서비스 공격유형

- Active Contents Attack(기출 빈도 높대!)

-- 메일 열람시, CSS(Client Side Script)가 실행되 컴퓨터 정보를 유출하거나 악성프로그램을 실행시키는 공격

-- 대응 : 스크립팅 기능을 제거 / 스크립트 태그를 다른 이름으로 바꾸어 저장

- Malware Attack

-- 이메일 첨부파일을 실행하도록 유도해서 악성 프로그램이 실행되도록 하는 공격

-- 자극적이거나 업무와 관련된 파일인척 문서파일을 열람하게 만듬

-- 대응 : 걍 보지ㅁ마

- 딴거도 많은데 딱히... 특별한 공격은 아니라 생략

 

4) SPAM 대책 / 5) 악성 MAIL 및 웜 대책

- ※ SPAM의 유형

-- Incoming SPAM : 자신의 메일 서버를 이용해 전송

-- Relay SPAM : 중계 메일 서버를 이용해 전송

- 메일 서버 자체의 보안 및 보호

-- 하나의 서버에 메일 서버, 웹 서버 등을 같이 운영을 많이 하는데, 규모가 커지면 메일 서버를 따로 두는게 바람직함

-- 메일 서버를 따로두고, 리눅스나 윈도우즈의 취약점 제거에 힘쓰는게 좋음

- access DB의 활용

-- 위에 SPAM의 유형에서 Relay SPAM이라는게 있는데, 메일 서버를 Relay 서버(중계 서버)로 사용할 것이냐에 대한 정책임

-- /etc/mail/access 파일에 기술하면됨

-- 특정 호스트나 도메인에 대한 접근제어를 해서, 무조건 적인 허용은 피하는게 좋음

- SPAM Assassin

-- 메일의 헤더와 내용을 실시간으로 분석해 스팸메일여부를 판단

-- 판단 기준은 RBL(차단 리스트)를 참고해 몇 가지 룰에 매칭될 때마다 점수를 줘서, 기준 점수이상이면 스팸메일이됨

- Inflex

-- 메일 서버에, 로컬이나 외부로 나가는 이메일을 검사하여 Inbound, Outbound 정책을 세워 필터링 해주는 도구

-- 2004년 이후 업데이트가 안되고 있음

 

6) Mail 보안 기술

- 전자메일에서 필요로 하는 보안 기술

-- 기밀성 / 메시지 인증 / 사용자 인증 / 송수신 부인방지 / 메시지 재전송 방지

- PGP(Pretty Good Privacy)

-- MIME 포멧에 암호화와 전자서명을 추가

-- 전자메일에 기밀성 / 메시지 무결성 / 사용자 인증/ 송신 부인방지를제공(수신 부인방지는 X !!!!!!!!!!!!!!!!!!!!)

-- 메시지의 암호화 : IDEA / RSA / 등

--- 메시지를 IDEA(대칭키 암호화)로 암호화

--- IDEA의 키를 수신자의 공개키로 암호화

--- 암호화된 메시지와 암호화한 IDEA키를 함께 보냄

-- 메시지 인증과 사용자 인증(디지털 인증) : RSA / MD5

--- 메시지의 해시값을 송신자의 공개키로 암호화해서 

-- 압축 : 전자서명 후, 메시지를 압축함(옵션적인 요소라 필수는 X)

-- 키관리 : RSA

-- 볼품 없게 정리했지만 알짜배기 : http://math88.com.ne.kr/crypto/text/chap10/10-4.htm

 

                                               

 

http://en.wikipedia.org/wiki/Pretty_Good_Privacy

- PEM(Privacy Enhanced Mail)

-- IETF에 의해 만들어진 인터넷 표준안으로 PGP보다 보안 능력이 뛰어난 편

-- 전송하기 전 자동으로 암호화하여 전동 도중 스니핑당해도 내용은 확인 불가능한 방식(PGP도 그러한데???)

-- 중앙집중식 키 인증 방식으로 널리 사용되기에 어려움

- S/MIME(Secure/MIME)

-- Application Layer에서 보안을 제공하는 대표적인 프로토콜

-- MIME 객체에 암호화와 전자서명을 기능을 추가함

-- PKI 인증서를 사용(인증기관에서 공개키를 보증하는 인증서 발급받아야한다는 의미)

-- S/MIME v2, S/MIME v3의 비교는 생략

- PGP, PEM, PGP/MIME, S/MIME의 비교도 생략

 

 

(3) Web 보안

1) WEB 개념

- HTTP 프로토콜을 이용하는 정보 공유 시스템?

- 걍 생략

 

2) WEB 서비스 운영

- Linux Apache Web Server

-- 설치 방식

--- DSO(Dynamic Share Object) : 동적 모듈 적재 방식으로 Apache 설치 이후에 필요한 모듈 추가 설치

--- Static : Apache 설치할 때, 모든 모듈 설치

-- 주요 환경 설정 파일 경로 : /etc/httpd/conf/

--- 특히 /etc/httpd.conf에서 Web Server에 대한 설정 다 함

- Windows IIS Web Server

 

3) WEB 로그 보안

- Web Server의 로그는 대표적으로 access_log와 error_log로 나눠짐

- access_log : Web Service하면서 접속한 로그에 대한 내용

- error_log : Web Server의 요청 처리과정에서 발생하는 각종 에러에 대한 기록

-- 위험도에 따라 8가지로 분류

-- Emerg > Alert > Crit > Error > Warn > Notice > Info > Debug

-- 기본값은 Warn이며, Warn이상의 에러가 로그에 남음

 

4) WEB 서비스공격 유형

- OWASP TOP 10 2013

-- A1 Injection

-- A2 인증 및 세션 관리 취약점

-- A3 XSS

-- A4 취약한 직접 객체 참조

-- A5 보안 설정 오류

-- A6 민감한 데이터노출

-- A7 기능 수준의 접근통제 누락

-- A8 CSRF(크로스 사이트 요청 변조)

-- A9 알려진 취약점 있는 컴포넌트 사용

-- A10 검증되지 않은 리다이렉트 및 포워드

- Directory Listing

-- 웹 서버 설정만 해주면 대응이되(Apache는 httpd.conf / IIS는 걍 설정)

- SQL Inejction

-- 공격에 사용될수 있는 문자나 패턴을, 웹 방화벽이나 Secure Coding을 통해 필터링

-- 자세한 오류 메시지를 보내주지 않음으로 DB정보를 흘리지 않기

- XSS(Cross Site Scripting)

-- 공격자가 작성한 악성 CSS(Client Side Script)를 일반사용자가 읽음으로써 실행되게 하는 공격

-- 서버를 공격하는게 아니라, 서버를 경유해 클라이언트를 공격하는 것

-- 사용자로부터 입력된 데이터를 철저히 검증함( '<', '>' 이런걸 바꿔) 으로써 검증

- CSRF(Cross Site Request Forgery ; 크로스 사이트 요청 변조)

-- XSS와 공격과정은 동일하지만, 공격 타겟이 서버인게 다름

-- 웹 사이트에서 제공하는 모든 기능을 대상으로, 신뢰된 사용자의 권한으로 요청하도록 하는 공격

-- XSS 취약점을 없도록해야함 / 중요한 기능은 재인증을 요구하는게 좋음

 

5) WEB 보안 개발

- Secure Coding : 개발 단계에서 보안을 고려하는 것 / [정보시스템 구축/운영 지침]으로 법제화 되어있음

 

6) WEB 방화벽

- WebKnight : Windows IIS Web Server용 Web 방화벽

- mod_security : Apache 보안 모듈로써, 침입탐지 및 차단 기능을 가짐

 

 

(4) DNS 보안

1) DNS 개념

- DNS(Domain Name Service)

- 계층구조를 가지는 분산 데이터베이스

-- 각 영역을 구분해 주는 도메인 이름을 관리하는 DNS Server들이 모여서 하나가 됨

- FQDN(Fully Qualified Domain Name) : DNS에서 사용되는 이름 표기 법

-- FQDN : www.nvaer.com

 

2) DNS 서비스 운영

- DNS 요청

-- Recursive Query : 로컬 DNS 서버에 이름 분석 결과만 달라고 요청

-- Iterative Quer

--- Query에서 요구하는 IP주소가 있으면, 질의한 호스트에게 결과를 반환

--- 없으면, 해당 도메인을 관리하는 DNS Server에게 같은 Query를 보냄

- DNS Zone

-- Zone은 DNS Server가 관리하는 Domain에 대한 정보가 저장되어 있는 DNS Database

-- 정방향 조회 영역 : FQDN으로 IP주소 알아올 때

-- 역방향 조회 영역 : IP주소로 FQDN알아올 때

- Zone의 종류

-- 주 영역 : 해당 DNS가 직접 관리하며 모든 권한을 가지고 있는 영역

-- 보조 영역 : 다른 DNS Server의 주 영역을 읽기 전용 데이터로 복사 해온것

--- 복사해 오는 행위를 Zone Transfer라고 함

-- 스텁 영역 : 다른 DNS Server의 정보가 있는 영역(해당 영역에 대한 권한은 없음)

Resource Record Type(RR) : 각 Zone은 Resource Record Type으로 정의된 데이터를 가짐

-- SOA(Start Of Authority) : 주 DNS Server 와 Zone에 대한 정보

-- A(Host Address) : IPv4 주소

-- AAAA : IPv6 주소

-- CNAME : 별칭으로써 IP 하나에 여러 개의 별칭을 부여하기 위해 사용

-- MX(Mail eXchanger) : 메일 시스템에 대한 정보

-- PTR(Pointer) : 역방향 조회 영역에서 사용됨(A 레코드의 반대)

- DNS Server Caching

-- 다른 DNS Server로 부터 알아 온 정보는, 버리지 않고 DNS Server Cache에 임시로 저장

-- SOA Record의 TTL에서 지정한 기간 만큼

 

3) DNS 보안 취약성

- DNS Spoofing

-- 공격자가 호스트의 Query를 스니핑하고, DNS Server보다 먼저 조작된 IP주소가 담긴 응답을 보냄

-- DNS는 Query에 대한 인증을 수행하지 않기에, 피해자는 조작된 IP주소로 접속하게 됨(UDP를 사용함)

- DNS Cache Poisoning

-- DNS Server에 조작된 응답을 전송하는 것으로, 조작된 정보를 DNS Server가 Cache에 저장하게 됨

-- DNS Query시 부여되는 Transaction ID와 출발지/목적지 포트가 예상하기 쉬운 값을 사용하게 되면 공격이 가능

-- 강력한 난수 생성기 써도, 공격시간을 지연시킬 뿐

 

4) DNSSEC 기술

- DNSSEC(DNS Security Extentions) : 기존의 DNS를 대체하는게 아니라, DNS에 공개키 암호화 방식의 전자서명을 추가 부여하는 역할

- DNS 프로토콜 자체가 데이터의 위조 변조에 취약함

- DNSSEC으로 인해, DNS Data 원본을 가지고 있는 DNS Server는, 각 DNS Data에 대한 서명데이터가 추가됨

-- IPv4인 경우, A 레코드에 대한 전자서명으로 RRSIG 레코드가 생성되 함꼐 설정

- DNSSEC으로 인해, DNS Query의 응답으로 A 레코드와 함께 RRSIG 레코드도 함께 응답됨

- ※ 피싱(Phishing), 파밍(Pharming), 스미싱(Smishing)

-- 피싱(Phishing) : 실제 도메인과 비슷한 가짜 도메인 명을 사용해 공격

-- 파밍(Pharming) : DNS Server나 사용자 컴퓨터의 DNS Cache를 변조해서 공격

--- DNSSEC으로 예방가능한건 파밍

-- 스미싱(Smishing) : 문자메시지를 이용하는 공격

 

 

(5) DB 보안

※ DB보안은 크게 DB 데이터 보안과 DB 관리자 권한 보안으로 나뉨

※ 세세하게 외울게 아니라 이런게 있다고만 알고있어도 될듯(워낙 DB 보안이란게 DBMS에 따라서도 다르고 넓어서 다루기 힘들듯)

1) DB 데이터보안 / 2) DB 관리자 권한 보안

- DB 보안 유형

-- 물리적 보호 : 말 그대로 물리적인 위험으로부터 DB를 보호하는 것

-- 권한 보호 : 권한을 가진 사용자만이 특정 접근 모드로 DB에 접근할 수 있도록

-- 운영 보호 : DB 무결성에 대한 사용자 실수의 영향 최소화하거나 제거

- DB 보안 요구 사항

-- 부적절한 접근 방지 : 인가된 사용자에게만 접근이 허락 / 모든 접근 요청은 DBMS가 검사

-- 추론 방지 : 기밀이 아닌 데이터로부터 기밀 정보를 얻어내는 가능성을 막는 것

-- 데이터 무결성 : 의도치 않은 데이터 변경이나 삭제, 시스템 오류, 고장으로 부터 DB를 보호하는 것

-- 감사 기능 : DB에 대한 모든 접근에 대해 감사 기록으 생성되어야 함

-- 사용자 인증 : 별도의 엄격한 사용자 인증 방식이 필요

-- 다단계 보호 : 데이터를 등급으로 분류함을 통해 기밀성과 무결성을 보장

- DB 관리자 보안

-- DBA들은 보다 더 안전한 인증 과정을 받는게 안전

--- 운영 시스템에 의한 인증 / 네트워크 인증 서비스(커버로스 등)에 의한 인증

 

3) DBMS 운영 보안

- DBMS 보안 기능

-- 접근 제어(Access Control) : 로그인 과정을 통제하기 위해 ID/PW를 관리함

-- 보안 및 권한관리 : 특정 사용자와 그룹이 지정된 DB 영역만 접근하게 통제

- DB 보안 통제 : 접근제어, 추론통제, 흐름통제를 통해 인가된 사용자에게 암호화된 DB를 가용하게 하여 제공하는 것

-- 접근제어 : 인가된 사용자에게만 허가된 범위 내에서 접근을 허용하는 것

--- 접근 제어 정책과 규칙 집합 : 접근 제어를 어떻게 할껀지 정의

--- 접근 제어 메카니즘 : 정의된 내용으로, 접근 요청에 대해서 수락할껀지 거부할 껀지 판단

-- 추론통제 : 일반적인 데이터를 이용해 비밀정보나 민감한 정보를 획득하는 걸 제어

--- 예를 들어, 레코드 삽입 시 동일한 키를 가진 레코드가 있으면 에러가 나는걸 통해서 키의 값을 추론가능

--- 데이터의 암호화 등을 통해 해결해야 함(컬럼단위로 암호화)

-- 흐름통제 : 접근 가능한 객체들 간의 정보의 흐름을 조정

--- 예를 들어 보안등급이 높은 객체에서 낮은 객체로의 정보흐름을 제어

- DBMS마다 제공하는 보안기능이 다 다르기에 나머진 생략

 

4) DB 보안 개발

- Secure Coding이 의무화 되면서 개발 초기부터 보안을 고려한 개발을 해야 함

- DB 어플리케이의 개발(Web을 통한 SQL Injection 공격 방지에 대해서)

-- 원시 ODBC 에러를 띄우지 않음(물론 개발 과정에서는 쓰는게 편하겠지?)

-- DB 어플리케이션에 최소한의 권한만 줌

-- DB 내장 프로시저를 사용

-- 테이블 이름 / 칼럼 이름 / SQL 구조 등이 외부 HTML에 포함되어 나타나서는 X

 

 

 

2. 전자상거래 보안(5~6문제/20문제)

(1) 전자상거래 보안

1) 지불게이트웨이

- Payment Gateway(지불게이트웨이/지불중계기관)

-- 가맹점 및 다양한 금융시스템의 거래 사이에서, 중재자 역할

-- SET에서는 판매자가 요청한 고객의 카드정보로, 금융기관에 승인 및 결재를 요청하는 자로 쓰임

 

2) SET 프로토콜

- SET(Secure Electronic Transaction) Protocol

-- VISA와 Master Card에서 공동 개발한 신용카드 기반의 전자지불 프로토콜

-- 지불시스템에 대한 기술 표준

- SET Protocol의 구성 요소

-- 고객(Customer/Card Holder)

-- 상점(Merchant)

-- 지불게이트웨이(Payment Gateway)

-- 발급사(Issuer) : 고객의 계좌를 개설하고 카드를 발행하는 금융기관

-- 매입사(Acquirer) : 상점의 계좌가 개설된 금융기관

-- 인증기관(CA) : 전자적인 인증서를 발급하는 기관

- SET의 동작과정

-- 1) 상점과 지불게이트웨이, 금융기관은 인증기관으로부터 인증서를 발급받음

-- 2) 고객이 상점의 웹 사이트에서 물건을 고르고 결재를 위해 전자지갑 S/W를 다운받고 실행함

-- 3) 전자지갑에 자신의 신용카드를 등록하고 인증기관으로부터 인증서를 발급받고 결재를 함

-- 4) 전자지갑을 통해 결재정보가 상점으로 감

-- 5) 상점에서 지불게이트웨이로 결재정보를 넘겨줌(상점은 주문정보만 확인함 ; 이중서명)

-- 6) 지불게이트웨이는 결재정보를 금융기관에 전달

-- 7) 금융기관이 상점에 대금 결제를 함

-- 8) 상점은 고객에게 상품을 줌

-- 9) 금융기관이 고객에게 나중에 돈을 요구

-- ※ 아래 사진이랑 쫌 다르지만 전반적인 내용은 동일

 

                

 

 

http://wiki.cas.mcmaster.ca/index.php/File:Wikiimage1.jpeg

- SET에서의 암호화

-- 전자봉투(Digital Envelope) 

--- 전자서명에 대칭키 암호화를 넣어 기밀성 까지 얻는 방식

---- 전자서명 : 문서의 해시값을 송신자의 사설키로 암호화해서 문서, 공개키와 함께 보냄

----- 문서의 해시값을 암호화한걸 전자서명이라고도 하는듯

---- 전자서명을 대칭키로 암호화하고, 대칭키를 수신자의 공개키로 암호화해서 같이 보냄

----- 대칭키를 수신자의 공개키로 암호화한걸 전자봉투라고도 하는듯

--- 대칭키 암호화(DES) + 공개키 암호화(RSA) + 전자서명(RSA) + 해쉬 함수(SHA-1)

-- 이중 서명(Dual Signature)

--- ( (주문정보의 해쉬값) + (지불정보의 해쉬값) )의 해쉬값을 고객의 개인키로 암호화한 것

--- 어디서는 주문정보를 상점의 공개키로, 지불정보는 금융기관의 공개키로 암호화 한다고 하는데, 이중 서명에 대한 설명은 아닌듯??

 

- 특징

-- 현재 쓰이고 있진 않지만, 신용카드 지불 시스템의 기반이 됨

-- 너무 복잡하고 RSA, 알고리즘이 전체적인 속도를 저하 시킴

 

-- 고객이 전자지갑 S/W를 설치해야 함

-- 상점 또한 별도의 S/W를 설치해야 함

 

-- 고객(카드소지자)와 상인(상점)에 대한 인증

-- 지불 정보에 대한 비밀성 / 무결성 / 부인방지 기능

 

3) SSL 프로토콜

- SSL(Secure Socket Layer ; TCP 443)

-- 인터넷을 통한 메시지 전송을 안전하게 하기 위해, Netscape에서 개발한 암호화 통신 프로토콜

-- SSL 3.0에 대한 수정 보완을 거쳐 TLS(Transparent Layer Security)라는 이름으로 표준화

-- 암호화 통신을 위한 세션키 생성을 위해 인증서 기반의 공개키 알고리즘을 이용

-- OSI 7 Layer 기준으로, TCP 위에 위치(4 ~ 7 Layer)(실제로 지원 가능한 프로토콜은 별로 없음 ; HTTP, IMAP, NNTP 등)

--- 주로 HTTP와 같이 쓰이며, 이 경우에 SSL-enabled HTTP를 표시하기 위해 HTTPS라고 표기함

- SSL의 기능 : 사이트 인증(Site Authentication) / 데이터 기밀성 / 메시지 무결성 (※ 부인방지는 없어)

- SSL Handshake Protocol : 서버와 클라이언트 사이의 인증 / 암호화 알고리즘, 암호키, 무결성 알고리즘 등의 보안 협상

-- SSL Protocol에서 가장 복잡한 부분

 

 

http://blogs.msdn.com/b/kaushal/archive/2013/08/03/ssl-handshake-and-https-bindings-on-iis.aspx

- SSL 버전별 비교

-- SSL 2.0

--- MITM 공격에 매우 취약 / 취약한 MAC / 수출용은 40bit Key

--- 연결 초기에만 Handshake 가능

-- SSL 3.0

--- 해시값으로 메시지를 유지하며 MITM 방어 가능 / 수정한 MAC 사용 / 수출용은 128bit Key

--- 연결 이후에도 Handshake 가능

-- TLS 1.0은 SSL 3.1과 같음

 

4) OTP(One Time Password)

- 무작위로 생성되는 난수의 일회용 패스워드를 이용하는 사용자 인증방식

- 원격 사용자 인증시 패스워드의 재사용 공격을 사전에 방어하기 위한 방법

- 일반 적으로 H/W 장치로 많이 사용

- OTP 생성 원리

-- 1) 연계 정보 생성 : 시간, 이벤트 정보 등의 난수를 이용해 연계 정보를 생성

--- 정보를 수집할 때마다, 다른 정보를 수집할 수 있어야 함

--- 특정한 조건에서 생성되는 연계 정보는 동일해야 함(인증서버와 동일한 값 얻기 위해서)

-- 2) 생성 알고리즘 : 연계 정보를 생성알고리즘을 통해 암호문을 생성함

--- 동일한 연계 정보로 부터 동일한 암호문 생성해야 함

-- 3) 추출 알고리즘 : 암호문에서 일회용 패스워드를 추출함

--- 동일한 암호문으로부터 동일한 일회용 패스워드 추출해야 함

--- 정적 추출 알고리즘 / 동적 추출 알고리즘

- OTP 구현 방식에 따른 분류

-- 동기화 방식

--- OTP 토큰과 인증 서버 간의 미리 공유된 비밀정보와 동기화 정보에 의해 OTP 생성

--- 반드시 OTP 토큰과 인증 서버 간의 동기화가 이루어져 있어야 됨

--- 비동기화 방식에 비해 호환성이 전반적으로 높음(호환성이란 기존의 ID/PW 어플리케이션과의 호환이 잘되느냐에 대한 것)

--- 시간 동기화 방식

---- 시간을 이용해 OTP를 생성 / 특정 시간 간격으로 OTP를 생성함

--- 사건 동기화 방식(계수기 방식)

--- 시간 정보 대신 카운터를 이용해 OTP를 생성 / OTP 토큰과 인증 서버간의 카운터 값이 동기화 되어야 함

--- OTP 값을 생성한 후, 다음번 OTP 생성 요청까지 재생성이 없기에 사용자에게는 편리함

---- 실수로, 여러번 OTP값을 생성시키고나면 다시 동기화를 시켜야한다는 단점

--- 조합 방식

---- 시간 동기화 방식과 사건 동기화 방식을 조합하여 구성항 방식

---- 시간 동기화 중심의 조합 방식

----- 특정 시간간격으로 OTP가 생성되며, 같은 시간 간격내에 재시도시에 카운트 값을 증가시켜 OTP를 변경되도록 하는 방식

----- 시간 동기화 방식과는 다르게 특정 시간 간격 이내에도 계속 다른 OTP를 생성 가능

---- 사건 동기화 중심의 조합 방식

----- 특정 시간에 발생한 카운터 값을 기준으로 OTP가 생성

----- 사용자가 생성 요청을 할 때마다 매번 OTP가 변경

-- 비동기화 방식

--- 질의 응답 방식을 사용 / 인증 서버가 제시한 질의 값에 대한 응답값을 전달하는 방식

--- 구조가  비교적 간단하고, OTP 토큰과 인증 서버 간의 동기화가 필요 없음

--- 사용자가 질의에 대한 응답값을 직접 입력해야 하므로 번거로움

--- 매번 다른 질의값을 생성하는건 인증 서버에게 부담이 될 수 있음

 

 

(2) 전자상거래 프로토콜

1) 전자지불 방식별 특징

- 전자 지불 시스템

-- 전자지갑, 신용카드, 전자화폐, 인터넷 뱅킹 등을 이용해 전자상거래에서 발생하는구매 대금을 안전하고 효과적으로 지불, 결재하는 시스템

- 전자화폐(Electronic Cash) 시스템

-- 독립적인 신용구조를 가지고 현금과 유사한 개념의 전자적 지불 수단(실제 화폐를 대치할 수 있음)

-- IC카드형-Mondex, E-Cash, Milicent, Net Cash, Proton 등

-- 사용자의 프라이버시를 보호 / 기밀정보의 노출 위험성의 제거

-- 몇 가지 이론적인 문제좀도 남아있고, 전자화폐 시스템을 지원할 수 있는 H/W기술이 부족

- 지불브로커(Payment Broker) 시스템

-- 독립적인 신용구조 없이 신용카드나 은행계좌를 이용한 전자적 지불 수단

-- 미리 신용카드나 은행계좌 정보등을 지불브로커에 등록하고, 거래가 성립될 때 지불브로커를 통해 대신 지불을 처리

-- SET, Cyber Cash, First Virtual 등

-- 현실적인 전자지불 시스템이지만, 사용자의 거래 추적 가능성으로 프라버시 침해의 우려와 기밀정보의 노출 위험성이 있음

 

2) 전자지불/화폐 프로토콜

- 전자 화폐 : 은행의 전자서명을 수행한 화폐가치를 가지는 디지털 데이터

-- 독립적인 신용 구조를 가지며,거래 시 제3기관으로 부터 거래 승인이 없음

- 전자 화폐의 분류

-- 지불 시점

--- 후불형 : 거래가 이루어지고 난 후, 그 시점에 은행 계좌로 부터 인출되는 방식

--- 선불형 : 거래가 이루어지기 전에, 미리 은행 계좌에서 인출해 거래가 일어나면 지불

-- 거래 방식

--- IC카드형 : IC카드에 화폐가치를 저장함 / Mondex, Visa Cash, PC pay

---- 기술개발과 이용이 활발한 유럽에서 활성화

--- 네트워크형 : S/W전자지갑을 다운로드 받아서 사용하는 방법(네트워크를 이용해 화폐를 주고 받음) / ECash, NetCash, PayWord

---- 컴퓨터의 높은 보급률과 통신망이 잘 발달한 미국에서 활성화

-- 유통 형태

--- 폐쇄형 : 이용자가 상점에서 이용 후, 즉시 발행기관으로 돌아가는 형태 / 대부분의 전자화폐

--- 개방형 : 화폐가치가 이용자로 부터 다른 이용자로 유통되는 형태 / 대표적으로 Mondex

- 전자 화폐의 종류

-- Mondex : IC카드형 전자화폐 / Off-Line 시스템 / 현금 지불의 장점과 카드 지불의 편리함을 결합

--- 5개국 화폐를 동시에 저장하며 거래 내역의 기록이 가능

--- 은행을 거치지 않고 카드와 개인 간의 화폐 교환이 가능

-- Visa Cash : Visa에서 개발한 선불카드 개념의 화폐

-- PC pay : 스마트 카트와 카드리더기로 구성된 전자 화폐

-- Millicent : 브로커, 상점, 고객으로 구성

--- 브로커는 상점과 고객의 계정의 관리하며 실제로 돈을 취급함

--- 상점은 고객으로부터 스크립을 받고 정보나 서비스를 제공하고, 거스름 스크립을 발행

--- 고객은 스크립을 구매해서, 스크립으로 상점에서 거래를 함

--- ※ 스크립이 화폐 가치를 말하는 것 같음

-- Bitcoin : 통화를 발행하고 관리하는 중앙 기관이 없는 대신, P2P 기반 분산 데이터베이스에 의해 거래가 이루어짐

--- 공개키 암호 방식을 사용함

--- 익명성과 공개성을 지니며, 화폐가 컴퓨터에 파일 형태로 보관된다는 취약점을 가짐

 

3) 전자입찰 프로토콜

- 전자입찰 : 말 그대로 입찰을 네트워크를 통해 하겠다라는 개념

-- 전자입찰 시스템 / 입찰공고자 / 입찰자로 구성

- 전자입찰의 문제점 : 네트워크를 이용하기에 정보의 유출과 누락 변조 등으로 인해 생김

-- 네트워크상에 메시지 유출 : 입찰자와 입찰공고자의 정보가 유출될 수 있음 / 암호화하거나 도청에 대응

-- 입찰자와 서버 사이의 공모

-- 입찰자와 입찰공고자간의 공모

-- 입찰자간의 공모

-- 서버의 독단 : 서버가 특정 입찰자를 위해 나머지 입찰자의 정보를 누락하거나 변조할 가능성 / 서버의 모든 정보가 투명해야됨

- 전자입찰 시스템을 구축하는데 있어서 해결해야할 것(위의 문제점을 해결하는 데 초첨 / 하나라도 해결못하면 안전성 보장X)

-- 독립성 : 입찰자와 입찰공고자로 부터 독립해야 함(공모 등을 막기 위해 ; 삼권 분립??ㅋ)

-- 비밀성 : 네트워크 상의 각 구성 요소들의 정보는 누출되면 X

-- 무결성 : 누락 및 변조여부를 막음

-- 공평성 : 입찰이 수행될 때, 모든 정보가 공개되어야 함

-- 안정성 : 각 구성 요소들의 공모와 서버의 독단 등이 일어나서는 X

- 전자입찰 프로토콜 방식(일단 생략 정보가 검색도 안되고ㅋ)

-- LKR 방식 : 안전한 전송로를 구축함으로써 도청과 변조를 방지하고, 입찰자의 전자서명으로 무결성과 부인방지

-- PL 방식 : ??

 

4) 전자투표 프로토콜

- 선거인이 투표소에 직접안가고 온라인 시스템으로 투표하는 방식

- 요구사항

-- 정확성(Accuracy)

-- 비밀성(Privacy) : 비밀투표

-- 위조 불가능성(Unforgeability)

-- 단일성(Singularity) : 단지 한 번의 투표권만 행사

-- 합법성(Eligibility) : 합법적인 절차를 통해 투표권을 얻은 사람만 투표에 참여 가능

-- 공정성(Fairness) : 투표 진행과정에서, 다른 사람의 투표권 행사에 영향 끼치면 X / 중간 투표결과 같은거 비공개
-- 확인성(Verifiability) : 투표자가 올바르게 투표했는지 확인가능해야함

-- 투표권 매매방지(Untradability) : 투표권을 타인에게 매매할 수 없음

-- 완전성(Completeness) : 투표자들이나 집계자의 부정으로, 투표 시스템의 모든 투표 진행이 정지되거나 불완전한 결과 초래하면 X

- 전자투표 방식의 분류

-- PSEV(Poll SIte E-Voting)

--- 지정된 투표소에서 전자 투표를 하는 방식 / 기기를 선거인단이 관리하기에 안정성이 높고 국민투표 활용 가능성이 큼

-- 키오스크(Kiosk) 방식

--- 군중이 밀집한 지역에 키오스크 투표기기가 설치해서 유권자가 투표를 할 수 있는 무인 투표시스템

--- 편리성과 효율성만 만족시키지, 공공망을 통해 집계되기에 악의적인 공격의 가능성이 큼

-- REV(Remote E-Voting)

--- 인터넷 투표를 하는 방식으로 다양한 기술 수단을 통해 원겨으로 자유롭게 투표하는 방식

--- 가장 이상적이지만, 비밀투표를 충족하기 어렵고, 투표권의 매매 위험이 존재함

- 전자투표의 암호화 기법

-- 공개키/개인키를 이용한 암호화

-- 전자서명

-- 은닉서명 : 투표자와 투표결과 쌍을 이을 수 없도록 함

 

(3) 무선 플랫폼에서의 전자상거래 보안

1) 무선플랫폼에서의 전자상거래 보안

- WPKI(Wireless Public Key Infrastructure)

-- WAP(Wireless Application Protocol)에서 서버와 클라이언트 간의 인증을 위해 사용되는 무선 환경에서의 공개키 기반 구조

-- 인증기관 / 등록기관 / Client 시스템 / PKI 디렉토리

- 신용카드기반 전자지불 시스템

-- 보안프로토콜 : End-To-End  간의 발생하는 트랜젝션의 안정성

-- S-HTTP/ SSL / TSL

-- 지불프로토콜 : 전자상거래의 모든 구성원들 간의 트랜젝션 정의를 위한 별도의 프로토콜

-- SET / InstaBuy(cyber Cash)

- 전자화폐기반 전자지불 시스템

-- 네트워크형 프로토콜 : 인터넷 같은 네트워크 환경에서 사용자의 PC나 서버의 계좌 등에 전자화폐를 저장하고 사용

--- Milicent(DEC) / NetBill(CMU) / Payword(MIT) 등

-- 가치저장형 프로토콜 : 스카트카드 내에 전자화폐를 저장해서 사용(실생활의 화폐 대용이 목적)

--- Mondex(master Card) / Visa Cash(Visa International) / Proton(Banksys) / K-cash(국내)

- 전자수표 기반 전자지불 시스템

-- 실제 수표와 유사한 형태로, 전자서명 같은 암호화를 통해 배서(어음이나 증권의 양도) 등의 효과를 제공

-- Echeck(FSTC) / NetCheque(USC) / Paynow(CyberCash)

 

(4) 전자상거래 응용보안

1) e-biz를 위한 ebXML 보안

- ebXML(e-business using XML) : 비즈니스 데이터를 안전하게 교환하는데 XML을 사용한 개방형 표준

- 구성요소

-- 비즈니스 프로세스

--- 다양한 비즈니스 거래절차에 대한 내용을 표준화된 방법으로 모델링해서, 시스템이 자동으로 처리할 수있도록 표현하는 방법을 정의

-- 핵심 컴포넌트

--- 비즈니스에서 교환되는 전자문서를 이루는 항목을 미리 잘 정의해 재사용가능하도록 표준화 작업

-- 등록저장소

--- 거래 상대자들에 의해 제출된 정보를 저장하는 안전한 저장소(제일 중요)

-- 거래 당사자

--- 각종 정보 및 협업을 위한 프로파일을 통일된 규칙을 통해

--- CPP(협업 규약프로파일;거래당사자정보), CPA(협업규악약정서; 거래 당사자간의 협약)를 표현

-- 전송, 교환 및 패키징

--- ebXML 메시지 서비스를 제공하여, 메시지를 상호 운영성과 보안을 유지하면서 어떻게 전송할 것인가에 대한 표준

- ebXML의 개요

                                      

 

http://www.ibm.com/developerworks/library/x-ebxml/

- ebXML 보안 : XML에서 사용되는 보안의 대부분이 ebXML에서 사용됨

-- XML 전자서명 / XML 암호화 / XKMS / SAML / XACML 등

 

 

 

3. 기타 어플리케이션 보안(잘안나올껄?)

(1) 응용프로그램 보안개발방법

1) 취약점 및 버그방지 개발 방법

- 소프트웨어 개발생명주기(SDLC ; Software Development Life Cycle)

-- 소프트웨어를 개발하기 위한 계획부터 구현 및 폐기 까지 전과정을 단계적으로 분류하여 정의한 것

-- 한정된 예산과 자원으로 최선의 개발 환경과 방법을 찾아 높은 품질의 소프트웨어를 만들기 위한 개발 프로세스

- SDLC 모형의 종류

-- 폭포수 모델 : 각 단계 별로 개발 완료 한 후, 다음 단계를 실행 / 개발의 유연성이 떨어짐(개발과정 중의 새로운 요구 반영힘듬)

-- 원형 모델 : 사용자의 요구분석을 위해, 소프트웨어 모델을 사전에 만듬

-- 나선형 모델 : 폭포수 모델의 장점 + 원형 모델의 장점 + 위험 분석

-- 점증적 모델 : 개발되어 운영 중인 시스템과 개발이 진행 중인 시스템이 공존

- 보안이 강화된 SDLC(Secure SDLC)

-- 반복적인 위험 평가 / 영향분석 및 보안 모델링 / 구성요소의 보안 평가 / Secure Coding

- 취약점 및 버그 방지 개발

-- SUID/EUID 보안 프로그래밍

-- 새로운 프로세스 생성 보안

-- BufferOverflow 방지

 

(2) 보안기술

1) SSO(Single Sign On)

- 통합인증(SSO) : 사용자가 한 번의 로그인 인증으로, 다양한 서비스에 재 인증 절차없이 접근할 수 있도록 하는 통합 솔루션

-- 로그인 서버가 사용자 정보 저장소와 연동해 로그인 검증을 하고, 유효한 경우 토큰을 발급함

-- 사용자는 토큰을 기반으로한 인증 요청으로 다른 서비스를 사용가능함

--- 토큰을 받은 다른 서버들은 정책서버로 토큰 검증이라는 과정을 거치긴함

- SSO 보안 위협 : 사칭 위협 / 인증정보노출 / 인증정보 재사용 / 키관리 위협 / 세션관리 위협

- 장점 : 운영비용감소(한곳에 사용자정보 관리) / 보안성 강화 / 사용자 편의성 강화 / 중앙집중관리로 인해 효율적 관리

- 단점 : SSO 서버가 단일 실패지점 / SSO 서버가 침입당하면 모든 서버에 보안문제

- 커버로스(Kerberos) : SSO 인증방식

-- 대칭키 암호화 기법에 바탕을둔 티켓기반 인증 프로토콜

-- 유닉스와 윈도우 서버에서 기본으로 사용하는 인증기법

-- 인증과정

--- 1) 클라이언트는 KDC(Key Distribution Center)에 접속해 함

--- 2) KDC의 AS(Authentication Server)로 부터 인증을 받고 TGT(Ticket Granting Ticket)을 받음

--- 3) 클라이언트는 TGT를 이용해 KDC의 TGS(Ticket Granting Server)로 부터 세션키와, 세션키로 암호화된 서비스 티켓 받음

--- 4) 클라이언트는 접속을 원하는 서버에, 서비스 티켓을 이용해 인증 받음

--- 5) 티켓의 타임스탬프는 이용시간을 제한하는 용도로 사용하며 이는 제3자가 티켓을 복사해 사용하는 것을 방지함

                               

 

http://www.zeroshell.org/kerberos/Kerberos-operation/

-- 장점 : 데이터의 기밀성(대칭키)과 무결성 / 재사용예방 / 이기종 간의 자유로운 서비스 인증

-- 단점 : 세션키가 단말에 임시로 저장되, 공격자에 의해 탈취 당할 수 있음 / 타임스탬프가 시간동기화가 필요 / KDC가 단일 실패지점

 

2) HSM(Hardware Security Module)

- 보안토큰으로써 암호화와 관련된 일련의 과정들을 빠르게 수행하고 생성 및 안전안 보관이 가능한 하드웨어 장치

-- 내부적으로 암호화, 복호화, 전자서명을 위한 프로세스 및 연산장치가 내장

- HSM의 분류

-- 인터페이스에 따른 분류 : 접촉식 / 비접촉식(유선, 안테나가 필요)

-- 매체에 따른 분류 : 스마트카트(따로 리더기가 필요) / USB방식(스마트카드칩을 내장)

- 특징

-- 인증서 보관을 PC가 아닌 HSM에 저장하기에 유출의 위험이 낮음

-- 전자서명을 PC가 아닌 HSM 내부에서 생성

-- HSM 비밀번호 설정과과 초기화, 비밀번호 오류 입력 횟수를 제한

-- HSM 구동 프로그램의 무결성 및 구현 적합성을 스스로 확인

 

3) DRM(Digital Right Management)

- 전자매체의 불법적이거나 비인가된 사용을 제한할 수 있는 정보보호기술

- DRM 구성요소

-- 콘텐츠(Content) : 암호화된 상태로 유통되는 데이터

-- 사용자(User) : 권한과 조건에 따라 컨텐츠를 사용하는 주체

-- 권한(Permission) : 콘텐츠별로 부여된 이용권리 범위를 명시하여, 사용자가 콘텐츠를 이용하는데 따르는사용 범위를 제한

-- 조건(Condition) : 권한이 수행되기 위한 요구 조건 및 제한 요소

- 자세한 DRM 세부 기술 내용은 다루지 않을래(구성요소정도만 알아도 될듯

블로그 이미지

Diano.

http://www.diano.kr / 이사하는중 /

,


1. 네트워크 일반(5문제/20문제)

 

(1) OSI 7 Layer

1) 각 레이어의 기능 및 역할

- OSI(Oepn System Interconnection)는 통신절차를 기능별로 구별해 놓은 국제 표준

- SDU(Service Data Unit) : 쉽게 말해, 해당 레이어에서 프로토콜을 이용하는 사용자의 데이터

- PDU(Protocol Data Unit) : SDU의 앞뒤에 Header나 Footer를 덧 붙이는 데이터 캡슐화(Encapsulation)과정의 결과물

-- PDU = Header + SDU + (Footer)

- 1 Layer(Physical Layer)

-- PDU : Bit Stream(0과 1의 연속 / 전기적신호)

-- Protocol : None.

-- Equipment : Repeater / Hub

- 2 Layer(Datalink Layer)

-- PDU : Frame

-- Protocol : Ethernet / HDLC / PPP / ...

-- Equipment : Bridge / L2 Switch

- 3 Layer(Network Layer)

-- PDU : Packet

-- Protocol : IP / ARP / ICMP

-- Equipment : Router / L3 Switch

- 4 Layer(Transport Layer)

-- PDU : Segment

-- Protocol : TCP / UDP

-- Equipment : L4 Switch

- 5 Layer(Session Layer)

- 6 Layer(Presentation Layer)

- 7 Layer(Application Layer)

-- PDU : Data or Message

-- Protocol : Telnet / HTTP / FTP / ...

-- Equipment : PC / Server / ...

 

2) 레이어별 네트워크 장비

- Physical Layer

-- Reapeater : 걍 전기신호 증폭

-- Hub : Reapeater 기능 + Hub에 붙은 모든 장비로 신호 전달(이 때문에 Hub에 붙은 모든 장비는 하나의 Collision Domain)

- Data Link Layer

-- Bridge : Frame의 MAC주소과 MAC Table을 참조해, 어떤 포트로 Frame을 재조립해 내보낼지 결정할 수 있는 장비

--- Frame을 S/W로 처리되는 방식이기에 Switch보단 느림

--- 모든 포트가 동일한 속도

--- Store-And-Forward 방식만 사용

-- Switch : 일단 Bridge를 기반으로 하고 있다고 생각하면될듯.

--- Frame 처리 절차를 칩에 구워서 H/W적으로 구현(ASIC ; Application Specific Integrated Circuit) 비교적 Bridge보다 빠름

--- 포트 별로 속도를 다르게 처리 가능(각각의 포트가 하나의 Collision Domain이라 그런가?)

--- Store-And-Forward / Cut-Through 방식 사용

※ 계속 기술이 발전함에 따라, 경계가 모호해지고 있기 때문에 딱히 뭐는 뭐다하기는 힘든것 같음

-- 참조 : http://tmdgus.tistory.com/87

- Network Layer

-- Router : Packet의 목적지 IP를 보고 목적지와 연결된 인터페이스로 전송해줌(경로결정) / 네트워크보안 / QoS

-- L3 Swtich

- Transport Layer

-- L4 Switch : 부하분산(트래픽 분산)

 

 

(2) TCP/IP 일반

※ TCP/IP Layer

- 1 Layer(Network Interface Layer)

- 2 Layer(Internet Layer)

- 3 Layer(Transport Layer)

- 4 Layer(Application Layer)

 

http://blog.naver.com/ssamba/125695893

1) IPv4, IPv6 Addressing

- IPv4

-- 네트워크 주소와 호스트 주소로 이루어진 32bit 주소 체계

--- 네트워크를 A, B, C, D Class로 나눠서 구분

-- IP주소의 고갈로 기형적인 기술인 NAT와 DHCP, Subnet같은 기술이 생김

--- NAT(Network Address Translation) : 사설IP와 외부IP(공인IP) 간의 변환

--- Subnet : 네트워크를 Class로 나누는 체계가 아닌, 임의대로 Classless하게 네트워크를 나누는 기술

--- DHCP : 동적으로 IP를 할당하고, 필요 없는 IP는 회수하는 기술

-- 사설 IP(다음과 같이 권고되고 있음 / 네트워크 장비도 이렇게 세팅되있더라)

--- Class A : 10.0.0.0 to 10.255.255.255

--- Class B : 172.16.0.0 to 172.31.255.255

--- Class C : 192.168.0.0 to 192.168.255.255

-- Classful : Subnet 개념이 없는 것. 대표적인 라우팅 프로토콜로 RIPv1, IGRP

-- Classless : Subnet 개념이 있는 것. 대표적인 라우팅 프로토콜로 RIPv2, EIGRP, OSPF, BGP 등

-- 데이터 전달 방법 : Unicast / Broadcast / Multicast

- IPv6

-- IPv4의 주소 고갈의 대응책으로써 128bit의 주소 체계

-- Header의 간소화로 라우팅이 빨라짐(IPv4와 IPv6의 Header가 다름)

-- 데이터 전달 방법 : Unicast / Anycast / Multicast

                                         

                                          

 

http://www.caribnog.org/articles/2013/3/9/addressing-ipv6-in-the-caribbean

 

2) 서브네팅 설계 및 활용

- Subnet Mask : IP주소에서 네트워크 주소와 호스트 주소를 구분하는 구별자 역할

-- 비트열이 1이면 네트워크 주소 부분, 0이면 호스트 주소 부분

-- CIDR(Classless Inter-network Domain Routing) : Subnet Mask 값을 십진수로 변환해 '/24' 같이 IP주소뒤에 붙여서 표현

-- VLSM(Variable Length Subnet Mask) : 어떤 네트워크에서 다양한 길이의 Subnet Mask를 사용하는 것

- Supernetting : 여러개의 네트워크를 하나의 네트워크의 주소로 묶는 것

- Subnetting : 하나의 네트워크 주소를 여러 개의 하위 네트워크 영역으로 분할하는 것 / 하위 네트워크를  Subnet이라 함

 

3) CIDR, LSM

- CIDR(Classless Inter-network Domain Routing) : Subnet Mask 값을 십진수로 변환해 '/24' 같이 IP주소뒤에 붙여서 표현

- LSM이 VLSM에서 V를 뺸건가??

-- VLSM(Variable Length Subnet Mask) : 어떤 네트워크에서 다양한 길이의 Subnet Mask를 사용하는 것

 

4) 데이터의 캡슐화

- 캡슐화(Encapsulation) :SDU에 Header나 Footer를 붙이는 행위

 

5) 포트주소 의미와 할당 원칙

- 포트 주소는 16bit의 정수 형태(0~65535)

-- Well-known Port(0~1023) : 잘 알려진 서비스에 할당된 포트 주소

--- FTP(TCP 20 / TCP 21)

--- SSH(TCP 22)

--- Telnet(TCP 23)

--- SMTP(TCP 25)

--- DNS(TCP 53 / UDP 53)

--- HTTP(TCP 80)

--- POP3(TCP 110)

--- NetBIOS(TCP 137 / TCP 138 / TCP 139)

--- HTTPS(TCP 443)

-- Registered Port(1024~49151) : 특정 프로그램에서 등록한 포트 주소

-- Dynamic Port(49152~65535) : 임의로 사용하는 포트 주소

 

6) IP, ARP, IGMP, ICMP, UDP, TCP 등 각 프로토콜의 원리 및 이해

- IP(Internet Protocol)

-- TCP/IP 네트워크에서 출발지, 목적지 IP 주소를 지정되는 프로토콜

-- Packet의 목적지 주소를 보고 최적의 경로를 찾아 패킷을 전송해주는게 주된 역할

-- 신뢰성이 없고 비연결 지향적임(신뢰성보다는 효율성에 중점을 줌)

 

http://en.wikipedia.org/wiki/IPv4#Flags

-- IHL(HLEN) : (Header의 길이/4)로써 Option이 없으면 20Byte이므로 5라는 값을 가짐

-- Flags(3 Bits) :

--- Reserved(Must be zero)

--- DF(Don't Flagement) : Datagram의 분할을 방지

--- MF(More Flagment) : Datagram이 분할될 때 마지막조각이면 0, 아니면 1

- ARP(Address Resolution Protocol)

-- IP주소를 MAC 주소로 변환하는 표준 프로토콜

--- 해당 IP주소가 동일 네트워크에 있음 : 해당 목적지의 MAC주소

--- 해당 IP주소가 외부 네트워크에 있음 : Router의 MAC주소

-- ARP Request는 Broadcast, ARP Reply는 Unicast

-- ARP는 한 번 찾은 MAC주소를 ARP-Cache에 일정 기간동안 IP주소-MAC주소 형태로 보관함

--- ARP-Cache확인 : arp -a

--- ARP-Cahce생성 : arp -s <IP주소> <MAC주소>

--- ARP-Cache삭제 : arp -d <IP주소>

-- 취약점 : 무조건 응답 수용함(요청하지 않은 응답도 수용해버림)

--- 이런 취약점을 노린 공격을 ARP Cache Posisoning이라 함

- RARP(Reverse ARP)

-- MAC주소를 IP주소로 변환하는 표준 프로토콜

- ICMP(Internet Control Message Protocol)

-- IP의 특징인 비신뢰성과 비연결성의 한계를 보완하기 위해, 노드 간의 에러사항이나 통신 제어를 위한 메시지를 보고 할 목적으로 만들어진 프로토콜

-- 에러를 Report할 뿐, 해결하는 기능은 없음 / 대표적인 프로그램으로 PING이 있음

-- ICMP는 TCP/UDP Header가 필요 없고 IP Header와 IP Data 부분에 ICMP 메시지를 포함해서 보냄

-- ICMP 메시지의 종류(일부만)

--- Type 8 : Echo Request

--- Type 0 : Echo Reply

--- Type 3 : Destination Unreachable(CODE영역에 원인 설명되)

--- Type 4 : Source Quench(Flow Control 할 때, 전송속도 줄이라는 의미)

--- Type 5 : Redirect ; Route를 변경하라는 메시지

--- Type 11 : Time Exceeded

- IGMP(Internet Group Management Protocol)

-- 멀티캐스트 그룹을 관리하기 위한 프로토콜(멀티 캐스트 멤버 가입, 수정, 탈퇴)

-- 멀티캐스트 호스트와 라우터 사이에서 동작하게 됨(같은 네트워크에서만 동작함 / TTL 1)

-TCP(Transmission Control Protocol)

-- Transport Layer의 프로토콜로써, 신뢰성과 연결지향적 특징을 가짐

-- 혼잡 제어와 흐름 제어 기능을 제공(Sliding Window) / 에러 제어도 가능(Checksum)

-- 클라이언트와 서버의 데이터 교환을 위해 TCP 3-Way Handshake를 통해 TCP Session을 확립해야 함

         

             

 

http://en.wikipedia.org/wiki/Transmission_Control_Protocol

 

-- TCP Header Flag는 잘 나와 시험에

--- URG : Urgent Pointer가 유효함

--- ACK : Ack Number가 유효함

--- PSH : 수신자보고 이거 빨리 응용프로그램으로 전달할 것을 지시

--- RST : 연결을 Reset하도록 지시

--- SYN : 연결 시작

--- FIN : 연결 종료

-UDP

-- Transport Layer의 프로토콜로써, TCP와 달리 비신뢰성과 비연결지향적인 특징을 가짐

-- Sequence Number와 Ack Number가 없어서 순서 제어와 흐름 제어가 불가능

-- 따로 연결하는 과정이 없어서 빠른처리와 실시간성을 요구하는 서비스에 적합

 

7) Broadcast 및 Multicast 이해

- Broadcast

-- Broadcast Domain(=Subnet) 범위 이내에 모든 시스템에 Frame을 보냄

--- 외부로 나가면 Router 단에서 Drop되

-- Broadcast를 받은 시스템은 CPU가 Packet을 처리하게 끔 함(Broadcast가 많아지면 네트워크트래픽도증가하고, CPU 성능도 낮아짐)

- Multicast

-- 네트워크에 연결되어 있는 시스템 중, 일부분에게만 정보를 전송할 수 있는 것

-- Router가 Multicast를 지원해야만 사용가능함

-- Multicast Group에 가입, 탈퇴시에 IGMP를 사용함

- Unicast

-- 정보 전송을 위해 Frame에 자신의 MAC와 목적지의 MAC를 첨부해 전송하는 방식

-- 가장 많이 사용되는 방식으로, Broadcast와 달리 CPU 성능에 문제를 주지 않음

- Anycast

-- IPv4의 Broadcast가 사라지고 IPv6에선 Anycast로 대체됨

 

 

(3) Unix/Windows 네트워크 서비스

1) DNS, DHCP, SNMP, Telnet, FTP, SMTP 등 각종 서비스의 원리 및 이해

- DNS(Domain Name Service)

-- Domain Name과 IP Address를 Mapping시켜주는 거대한 분산시스템

-- Server-Client기반으로 작동함

--- Server : Primary Name Server / Secondary Name Server

--- Client : Resolver

-- DNS Query 종류

--- Recursive Query : 요청받은 DNS Server에서만 Query 처리

--- Iterative Query : 요청받은 DNS Server에 정보가 없으면, 다른 DNS Server에 반복적으로 Query해서 처리

---- 이건 DNS Server들 끼리하는 Query라고 생각

-- DNS 동작 순서

--- Client : DNS Cache 확인 → Hosts 파일 확인 → Server로 Query

--- Server : DNS Cache 확인 → Zone File 확인 → Iteractive Query / 해석 실패

-- 취약점을 이용한 공격

--- DNS Cache Poisoning

--- DNS Spoofing

- DHCP(Dynamic Host Configuration Protocol)

-- 네트워크 상의 IP 주소를 중앙에서 관리하고 할당해도록 해주는 프로토콜

-- DHCP 동작과정(필요하면 나중에 더 정리함)

--- 1) Discover : Client가 DHCP Server을 찾음(Broadcast)

--- 2) Offer : DHCP Server가 Client에게 제공할 수 있는 정보를 줌(Broadcast, 물론 시스템에 따라 Unicast인 경우도 있음)

--- 3) Request : Offer받은 Client가 제공받은 정보를 사용하겠다고 DHCP Server로 알림

--- 4) Ack : DHCP Server가 확인 신호보냄

-- 공격 유형

--- DHCP Starvation : 공격자가 DHCP Server의 모든 IP를 할당 받아서 공격

--- DHCP Spoofing : 공격자가 가짜 DHCP Server를 만들어 잘못된 네트워크 정보를 할당하는 공격

---- DHCP Server를 인증할 수 없기 때문에 가능한 공격

---- 공격에 성공하면, Gateway주소를 속여 Sniffing하거나 Pharming 공격을 할 수 있음

- SNMP(Simple Network Management Protocol)

-- OSI 7 Layer에 속하며, TCP/IP 기반의 네트워크에서 네트워크상의 각 Host에게서 정기적으로 여러 정보를 수집해 네트워크를 관리하기 위한 프로토콜

-- Master와 Agent로 구성됨

--- Master : 관리영역의 네트워크상의 정보가 집중되는 장비(정보의 요청이 시작됨)

--- Agent : 관리영역의 네트워크상에서 관리되는 장비

-- MIB(Management Information Base) : 각 Agent들이 가지고 있으며, Agent의 정보의 집합

-- SMI(Structure of Management Information) : MIB 내의 변수들이 어떤것인지 정의한 것

-- 메시지 전달 방식

--- Poliing(UDP 161) : Manager to Agent

--- Trap(UDP 162) : Agent to Manager

-- 종류

--- SNMPv1

--- SNMPv2 : 현재 많이 사용(SNMPv1에다가 보안기능을 추가(DES/MD5)

--- SNMPv3 : 구현의 복잡성 때문에 잘 사용되지는 X

-- SNMP 통신이 가능하려면 다음과 같은 조건이 만족되어야 함

--- SNMP의 Version이 일치해야 함

--- 서로간의 Community 값이 일치해야 함(기본값 public ; 이걸 바꿔줘야 안전함(외부로 네트워크 정보 새어나갈위험이있음))

--- PDU type이 동일해야 함(값의 범위는 0~4)

- Telnet

-- 원격 접속 프로토콜로써, 데이터가 평문으로 전달되기에 보안성이 떨어짐(TCP 23 Port)

-- 보안성을 위해 SSH(Secure Shell ; TCP 22 Port)을 이용

- FTP(File Transfer Protocol)

-- 원격 파일 전송 프로토콜(TCP 20/21 Port)

-- 연결 방식(나중에 자세히 다루는 Part있는듯)

--- Active 방식 / Passive 방식

- SMTP(Simple Mail Transfer Protocl)

-- 메일 전송 프로토콜(TCP 25 Port)

-- 다른 형식의 데이터를 전달하기 위해 MIME을 이용함(HTTP와 구성이 비슷)

 

2) Workgroup과 Domain

- Microsoft에서 제공하는 효율적인 디렉토리 관리를 위한 네트워크 모델

- Workgroup

-- 개별적인 관리모델로써, Workgroup 내의 시스템에 접근하려면 해당 시스템에 생성되어 있는 계정으로 인증받아야함(Client-to-Client이라고 보면될듯)

-- 전체적인 관리가 어려우며 비효율적임

- Domain

-- 통합적인 관리모델로써, Workgroup의 크기 가 커지면 각 시스템마다 계정을 생성해야하는 문제점을 고침

-- Domain 내의 한 Server(DC; Domain Controller)로 Domain 내의 모든 시스템의 사용권한 및 보안의 제어가 가능

--- DC에서 계정을 관리하기에, 각 시스템마다 동일한 계정으로 접근이 가능해짐

-- Domain의 각 시스템들은 다른 로컬 네트워크에 있을 수 있음

 

3) 터미널서비스 등 각종 원격관리 서비스

- SSH(Secure SHell)

-- 안전하지 않은 네트워크를 통해 원격 로그인하거나, 기타 안전한 네트워크를 이용하는데 안전한 쉘 프로토콜

- Windows Terminal Service

-- mstsc(기본값으로 TCP 3389 Port)

--- 보안을 위해 Port를 변경하는게 좋음

--- GUI로 작업이 가능하다는게 특징(화면 동기화는 지원되지는 X)

--- 동시접근가능한 계정의 수가 존재(많이 붙으면 버벅거리긴하던데)

 

4) 인터넷공유 및 NAT 원리, 활용

- 인터넷 공유(ICS ; Internet Connection Service)

-- 한 시스템에 네트워크 인터페이스가 2개 이상 존재할 때, 인터넷에 연결된 하나의 네트워크 인터페이스를 통해 인터넷에 접속하는 방법

-- ICS를 제공하는 시스템에서, DHCP를 통해 나머지 시스템에게 IP를 할당하고 NAT로 외부와 연결가능하게 끔함

--- 즉, Windows 시스템을 하나의 Router로 이용하는 기술

- NAT(Network Address Translation)

-- 사설 IP를 공인 IP와 Mapping하여 변환하는 프로토콜

--- IP주소의 고갈 / 설계의 효율성 / 보안의 강화 등의 이유로 사용함

-- 종류

--- Static NAT : 사설 IP와 공인 IP를 1:1로 걍 할당

--- Dynamic NAT : 공인 IP의 범위가 정해져있는 Pool에서 자동으로 공인 IP를 선택해서 사설 IP에 Mapping

--- NAT-PAT(NAT-Port Address Translation) : NAT에 Port주소를 Mapping해서 변환시키는 방법(Port Forwarding)

 

 

 

2. 네트워크 활용(6문제/20문제)

(1) IP Routing

1) IP Routing 종류 및 프로토콜

- IP Routing : 주어진 IP Packet을 목적지 주소 까지 전달하는 것으로 전달 경로의 설정이 핵심

- Routing Table : 목적지 네트워크로 데이터를 전달하기 위한 경로 정보 Database

-- Routing Table을 채우는 방법

--- Connected : 직접 Interface에 연결된 장비의 정보를 학습

--- Static Route : 관리자가 수동으로 목적지 네트워크에 대한 경로 정보를 입력해서 학습

--- Dynamic Route : Routing Protocol을 이용해, 장비 간 경로 정보를 주고 받아서 정보를 학습

--- Redistributed : 다른 Router와의 정보 교환(Routing Protocol 간의 정보 교환)

- Static Routing

-- Router(config) # ip route <Destination Network IP> <Subnet Mask> <다음 Router IP>

- Default Routing : Routing Table에 없는 목적지의 경우 보내는 경로

-- Router(config) # ip route 0.0.0.0 0.0.0.0 <Default Router IP>

- Dynamic Routing

-- Routing 경로가 Router와 Routing Protocol에 의해 설정이 되는 형태

-- Unicast Routing Protocol

--- IGP(Interior Gateway Protocol) ; AS 내부

---- Distance Vector 방식(목적지 네트워크까지 갈 수 있는 경로 중, 최적의 경로 선택)

----- RIP

---- Link-State 방식(LSA를 통해 전체 토폴로지 구성 후에, 리크마다 값매겨서 최적의 경로선택)

----- OSPF

--- EGP(Exterior Gateway Protocol) ; AS 간의

---- Advanced Distance Vector 방식

----- BGP

------ iBGP : 외부 AS의 경로를 내부에서 Routing

------ eBGP : AS와 AS사이에서 경로를 Routing

-- Multicast Routing Protocol

--- DVMRP
--- MOSPF

--- PIM

--- Dense&Spares

- Routing Protocol의 우선순위

-- Connected > ICMP redirect > Static > OSPF > RIP

 

 

(2)  네트워크 장비 이해

1) 랜카드, 허브, 스위치 및 브리지 기능

- LAN Card(NIC ; Network Interface Card)

-- Point-to-Point 토폴로지 형태

-- 신호 전달 방식 : Full Duplex / Half Duplex

- Hub

-- 1계층 장비

-- 신호 전달 방식 : Half Duplex

--- CD(Collision Domain)의 확장시키지만, CSMA/CD기법을 사용해서 예방과 해결가능

- Switch

-- 2계층 장비(Frame 뜯어보기 가능)

-- 신호 전달 방식 : Half Duplex / Full Duplex(CD가 분리됨)

--- Port마다 다르게 설정가능

-- Bridge와는 달리 H/W방식으로 Switching을 함(ASIC ; 저 위에서 언급함)

-- Switching하는 방식

--- Stored and Forwarding : 전체 Frame 모두 받고 오류 검출 후 전달

--- Cut-Through : Frame에서 목적지 주소만 보고 바로 전달

--- Fragment-Free : Frame의 64Byte까지만 받고 검사 후, 바로 전달

-- Flooding : 목적지 MAC주소가 자신의 MAC Table에 없거나, MAC Table이 가득 차면 Hub처럼 동작

--- Switch jamming : MAC Table 가득 차게만들어서, Hub처럼 동작하게 만들어 Sniffing하는 방법

-- MAC Table

--- Learning : 출발지 MAC 주소 확인 후, MAC Table에 없으면 저장

--- Aging : MAC 주소 기억하는 시간

- Bridge

-- 2계층 장비

-- Switch와는 달리 S/W적으로 구현됨

-- Switching하는 방식

--- Store and Forward(이거만 지원)

 

2) VLAN 구성 및 관리 

- VLAN(Virtual Local Area Network) : 물리적인 네트워크와 상관없이 논리적으로 네트워크를 분리하는 기술

- 기본적으로, VLAN 소속이 다르면 서로 통신이 불가능함(가능하게하려면 Router나 Routing Module이 필요)

-- Swtich 내부적으로 Frame에 VLAN정보가 있는 Tag를 붙여서 내보내는데, VLAN소속이 다르면 걍 버림

- Swtich의 모든 Port는 기본적으로 VLAN 1로 할당되어 있음

- VLAN이 설정된 Swtich의 각 Port의 구분

-- 그냥 Port(Access라고도 하는데??) : 지정된 VLAN Tag 정보만 허용되는 Port(Host로의 연결에 사용)

-- Trunk Port : VLAN Tag정보를 확인안하는 Port(다른 Switch와의 연결에 사용)

- Trunking Protocol(Tag를 어떻게 달것인가??)

-- 802.1Q : 표준 Protocol(Native VLAN 지원 O)

-- ISL : Cisco Only Protocol(Native VLAN 지원 X)

- Native VLAN

-- Trunk Port로 Frame이 나갈 때 특정 VLAN에 대한 정보를 Tagging하지 않고 전달

--- 예를들어 Native VLAN이 2라면, VLAN 2인 Frame은 걍 Tagging없이 걍 전달

- VTP(VLAN Trunking Protocol)

-- 이것도 Cisco Only Protocol

-- Trunk로 연결된 Switch들 간의 VLAN 설정 정보를 통합적으로 관리하기 위한 것

-- VLAN 정보가 공유되는 네트워크를 도메인이라고 지칭

-- VTP Mode

--- Server Mode : VLAN정보를 생성,변경,제거가 가능하며, 도메인 내에 퍼트리는 존재

--- Client Mode : VLAN정보를 받는 존재

--- Transparent Mode : 도메인 내에 있지만, 자신만의 VLAN정보를 생성하고 제거하는(말그대로 Server가 뿌리든말든 무시하고 내꺼만)

 

3) 라우터 설정

- User Mode (Router > )

↓ enable(en)

- Privileged Mode (Router # )

↓ configure terminal(conf t)

- Global Configuration Mode (Router(config)# )

-- 여기서 전체적인 설정 가능해

-- 걍 생략 할래 딱보면 알겠지뭐

 

4) 네트워크 장비를 이용한 네트워크 구성

- 네트워크의 구성은 안전성에 기반을 두어야 함

-- Hierarchical Model을 이용(안전성이 검증된 네트워크 모델이라네??)

--- Access : 말단에 직접 연결되는 계층으로 보통 L2 Swtich

--- Distribution : 네트워크 간의 연결(Router, L3 Switch 등)

--- Core(Backbone)  : 한 네트워크 내부의 모든 트래픽을 연결하고 관리하는 성능 좋은 Router, Switch

- 전용선 연결

-- VPN(Virtual Private Network)

-- Leased Line : 물리적 Cable을 이용하는...

-- 등등

 

 

(3) 무선통신

1) 이동/무선통신 보안

- 무선랜 유형

-- WPAN(Wireless Personal Area Network)

--- 단거리 Ad-Hoc방식 / Peer to Peer방식 (노트북과 마우스 등)

-- WLAN(Wireless Local Area Network)

--- 일반적으로 우리가 말하는 Wi-Fi

--- Half Duplex방식으로 신호가 전달되므로 CSMA/CA로 충돌을 회피함(※ Hub의 CSMA/CD와는 다름)

-- WMAN(Wireless Metropolitan Area Network)

--- 도시규모의 지역에서 무선 광대역 접속기능(WiMAX)

- 무선랜 접속 방식

-- Infrastructure Network

--- 유선 네트워크와 무선 네트워크를 연결하는 AP(Access Point) 장비에 의해 외부통신이 지원되는 WLAN

-- Ad-Hoc Network

--- WLAN 장비 사이에서 직접 통신이 일어날 뿐, 외부와의 연결은 X(노트북과 마우스의 연결)

- WLAN 보안 설정

-- WEP(Wireless Equivalent Privacy)

--- RC4 암호화 알고리즘을 사용(RC4자체가 알고리즘 자체에 취약점이 존재)

--- 정적인 암호화 키를 사용하기에 도청 몇 만개 당하면 걍 끝

--- 요새 안써

-- WPA(Wi-fi Protected Access), WPA2

--- WEP의 문제점을 보완

--- WPA : 인증(802.1X/PSK), 암호화(TKIP)

--- WPA2 : 인증(802.1X/PSK), 암호화(CCMP) ; CCMP가 AES를 사용하는거

--- WPA2도 TKIP을 사용가능한데, 그렇게되면 WPA와 다르게 없어짐

 

 

(4) 네트워크기반 프로그램 활용

1) Ping, Traceroute 등 네트워크기반 프로그램의 활용

- Ping(Packet Internet Grouper)

- Traceroute(Windows는 tracert)

-- IP의 TTL값 1씩 늘려가며 Time Exceeded 에러 메시지를 통해 목적지 까지의 경로를 추적

-- Unix/Linux : traceroute(UDP 생성)

-- Windows : tracert(ICMP Echo Request 생성)

-- Firewalking : Linux의 traceroute를 이용해 방화벽에 도착하는 port 번호 조작하여 방화벽을 우회하는 기법

 

2) Netstat, Tcpdump 등 활용

- Netstat

-- 시스템에서 제공되고 있는 서비스 정보(현재 open되어 있는 port정보) 확인

-- netstat -an

- Tcpdump

-- NIC로 입출력되는 트래픽을 사용자에게 출력해주는 분석 도구

-- tcpdump -i eth0 -w tcpdump.txt

-- tcpdump -i eth0 -c 5 ; 패킷 5개 받기

-- tcpdump -i eth0 icmp

-- tcpdump -i any dst host 192.168.100.1

-- tcpdump -i any src host 192.168.100.1

-- tcpdump -i any host 192.168.100.1

 

3) 네트워크 패킷분석 및 이해

- Tcpdump / Wireshark 등

- Interface가 Promiscuous로 동작해야 함

-- Swtich 환경인 경우에는 Flooding 하게끔 Switch Jamming 등.. 조치가 필요

 

4) 네트워크 문제의 원인분석과 장애처리

 

 

 

3. 네트워크 기반 공격 이해(5문제/20문제)

(1) 서비스 거부(DoS) 공격

1) 각종 DoS 공격원리와 대처 방법

- DoS(Denial of Service ; 서비스 방해(거부) 공격

-- 시스템이 정상적으로 서비스를 하지 못하게 해서, 일반적으로 서버를 다운시키는 공격

-- TCP/IP Protocol의 구조적 취약점을 이용한 공격이 많음

-- 시스템에 과부하를 주는 공격 / 네트워크 서비스 방해하는 공격

 

2) SYN Flooding, Smurfing 등 각종 flooding 공격의 원리, 대처

- SYN Flooding

-- 공격자가 임의로 자신의 IP를 속인뒤, 서버로 다량의 SYN 패킷을 보내서 서버를 대기 상태(SYN+ACK Sent)로 만드는 공격

-- 서버는 계속 ACK 패킷을 기다리는데 모든 자원을 쏟아붇게 되고 정상적인 서비스가 불가능해짐

-- 탐지 방법

--- SYN 패킷을 받으면 카운트를 늘리고 ACK를 보내면 카운트를 줄여서, 특정 기간 내에 카운트가 높으면 SYN Flooding

-- 조치 방법

--- Connect Queue Size를 증가 시킴(일시적인 대처법) ; Backlog Queue라고도 표현하네

--- SYN Cookie Size를 늘림

---- L4에서 SYN패킷을 보내면, 세션 테이블 생성없이 SYN/ACK(syn=cookie)를 보내고

---- 이에 대한 ACK(ack=cookie+1) 패킷을 받으면 서버와 세션을 연결해주는 방법

---- 물론, L4가 아닌 서버단에서도 가능

--- Router단에서 서브넷 외의 주소를 가지는 소스IP를 가지는 패킷을 차단

- UDP Flooding

-- 공격자가 UDP로 서버에 가상의 데이터를 연속적으로 보내서, 서버의 부하 및 네트워크 오버로드를 발생시키는 공격

-- 조치 방법 : 불필요한 UDP 서비스를 차단

- Smurfing(=smurf)

-- Broadcast 주소로 ICMP_REQUEST로 보내서 이에대한 ICMP_ECHO_REPLY를 공격지로 보내는 방법

-- 조치 방법

--- Router에서 Direct Broadcast 패킷은 차단(외부 네트워크에 Broadcast를 Direct Broadcast라고 하는 듯)

--- Host에서 Broadcast로 전달된 ICMP에 대하서는 응답안하게 설정

- Teardrop 공격

-- Header가 조작된 일련의 IP 패킷조각들을 전송해서 공격이 이루어짐

-- Offset값을 일부로 이전 값보다 작게 음수로 만들어서 보내므로, 재조립과정에서 에러가 발생→블루스크린

- Ping of Death

-- IP 패킷 최대 사이즈보다 큰 ICMP Request를 보내는 공격

-- 패킷 재조립 과정에서 Buffer Overflow 및 시스템 충돌이 일어남

-- IP 패킷 사이즈를 검증하는 설정을 추가

- Land Attack

-- 목적지, 출발지 IP와 Port가 모두 동일하게 보내는 공격

-- 시스템 자원을 고갈시켜 서비스 장애를 유발 시킴

-- 방화벽 단에서 필터링하도록 설정(요샌 다 되어 있지)

 

(2) 분산 서비스 거부 공격

1) DDoS 공격 원리 및 대처 방법

- DDoS(Distributed DoS) : 공격 시스템을 분산배치해서 동시에 대량 트래픽을 발생시키는 공격(Zombie PC)

-- 툴 : TRINOO / TFN(TFN2K) / Stacheldraht(슈탁셀드라트)

- DRDoS(Distributed Reflection DoS)

 

(3) 네트워크 스캐닝

1) Remote Finger Printing

- 외부에서 물리적인 장치면, 운영체제 유형등을 알아내는 기법

 

2) IP 스캔, Port 스캔

- IP 스캔

-- Host Discovery를 말하는 것 같음. 운영되고 있는 시스템을 찾아내는 기술

-- ICMP ping과 TCP Ping(SYN 등을 보내서 반응보기) 등으로 알아냄

- Port 스캔

-- 스캐닝 기법

--- Opening Scanning : TCP Connect Scanning

---- 걍 세션 성립시키는 방법(로그 남아서 위험)

---- Open Port : SYN/ACK(이거받고 ACK 보내서 세션 성립시켜)

---- Close Port : RST/ACK

--- Half-Open Scanning : SYN Scanning

---- Open Port: SYN/ACK(이거받고 걍 RST보내서 세션 성립막아)

---- Close Port : RST/ACK

--- Stealth Scanning : FIN / X-MAS / NULL Scanning

---- Open Port : 응답 X

---- Close Port : RST/ACK 응답

--- More Advanced Scanning : Spoofed Scanning(??)

-- 포트 스캐닝의 구분

--- TCP 포트 스캐닝 : 특정 Flag값을 설정한 뒤, 패킷을 보내고 그에 대항 응답으로 확인

--- UDP 포트 스캐닝

---- 포트가 열린 상태 : 아무런 응답 X

---- 포트가 닫힌 상태 : ICMP Unreachable(UDP 패킷이 목적지에 도달하지 못했다는 메시지)

---- ※ 패킷이 유실되도 아무런 응답이 없기에 신뢰성이 떨어짐

 

 

(4) IP Spoofing, Session Hijacking

1) IP Spoofing과 Session Hijacking의 원리 및 실제

- IP Spoofing

-- Trust Relation을 악용한 것(IP만 일치하는지 확인만 하고 세션 성립시켜버리는)

-- Step 1) 공격자가 세션을 뺏고자하는 호스트에게 DoS공격

-- Step 2) 공격자가 호스트의 IP로 자신을 속여 서버로 SYN 패킷을 보냄

-- Step 3) 서버가 보낸 SYN/ACK패킷을 호스트는 받지못하고, 공격자가 Brute Forcing으로 Sequence Number 맞춰서 ACK패킷보냄

-- Step 4) Session성립

-- 현재는 Sequence Number가 랜덤하게 변경되기에 공격이 불가

-- 대응책

--- 일단 Trust를 사용하지 않는게 좋아(Trust는 TCP Wrapper가 처리한다네??)

--- 불가피하게 구성할 경우에는 MAC주소를 Static으로 고정해(물론 MAC주소도 수정가능하지만 뭐...)

- ARP Spoofing(ARP cache Poisoning와 미묘한 차이)

-- 자신이 게이트웨이인거처럼 속여 네트워크 내의 모든 패킷이 자신을 거쳐 가도록 하는 공격

-- Step 1) 스니핑이 선행되어야 하며 랜카드는 Promiscuous 모드로 동작해야 함

-- Step 2) ARP Request Broadcast로 네트워크 상의 모든 IP와 MAC주소를 알아냄

-- Step 3) 공격자가 자신의 MAC주소를 게이트웨이(HUB/Switch)의 MAC주소로 속여서, 네트워크 상의 호스트들의 ARP Cahce를 업데이트시킴

-- Step 4) 모든 패킷이 자신에게 옴

-- 대응책

--- ARP Table을 정적으로 고정(arp -s <IP> <MAC>)

--- Ingress Filtering : 외부에서 오는 패킷이, 내부인척 하는 걸 필터링

--- Egress Filtering : 내부에서 나가는 패킷이, 내부의 주소가 아니면 필터링

--- ARP Storm 확인 : 다량의 ARP Reply가 지속적으로 발생하는걸 확인해서

- Session Hijacking

-- 서버와 클라이언트 사이의 Session을 가로채는 기술

-- 대응책

--- 데이터 전송시 암호화하여 내용 못보게 함

--- 지속적인 인증 시스템 구축

--- Ack Storm의 탐지

 

 

(5) 스니핑 및 암호화 프로토콜

1) 스니핑 공격 원리와 대처 방법

- 스니핑(Sniffing) 원리

-- NIC 모드를 Promiscuous로 바꾸고 네트워크 상의 모든 트래픽을 다 받아들임으로 스니핑 가능

-- Passive Sniffing

--- Hub로 연결된 네트워크에서는 Hub가 Flooding하게 데이터를 뿌리므로 걍 NIC만 Promiscuous로 바꾸면 스니핑 가능

-- Active Sniffing

--- Switch의 경우에는 따로 공격을 통해 Flooding하게끔 공격해야 가능

--- 꼭 Flooding하게만 만드는게 아니라, MITM(Man In The Middle) 형태로 만들어야 함

---- Switch Jamming

---- ARP Spoofing(ARP Cache Poisoning)

---- ICMP Redirect : Router에게 올바른 경로를 알려주는 용도인데 악용해서 자신에게 오게끔 경로를 수정

- 스니핑의 대응

-- 일단 Switching 환경으로 네트워크 설계

-- ARP Cache Table을 정적으로 운영

-- 데이터의 암호화 : SSL / PGP, S/MIME / SSH / VPN / IPsec

 

 

(6) 원격접속 및 공격

1) 각종 공격의 인지 및 이해

- 원격 공격

-- 원격 네트워크의 공격자가 피해 시스템에 접근하여 명령을 전달할 수단을 획득하는 공격

-- Backdoor, Null Session Hacking 등의 기법으로 대상 시스템을 제어할 수 있는 권한 등을 획득

 

2) Trojan, Exploit 등 식별, 대처

- Trojan

-- 트로이목마 악성 프로그램 또는 악성코드를 의미

- Backdoor

-- 시스템에 접근할 수 있는 뒷문

-- Back Orifice를 시작으로 제작되었고 현재 다양한 종류가 있음

 

 

 

4. 네트워크 장비 활용 보안기술(2~3문제/20문제)

(1) 침입 탐지시스템(IDS)의 이해

1) 원리, 종류, 작동방식, 특징, 단점

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

-- 시스템에 대한 인가 되지 않은 행위와 비정상적인 행동을 탐지해서 관리자에게 알림

-- 일반적으로 침입 차단시스템(Firewall)과 결합해서 많이 쓰임

- IDS의 유형 : 데이터 소스 기준 IDS 시스템 분류

-- 호스트 기반 IDS(HIDS)

--- 각 호스트 내에서의 운영체제 감사자료와 시스템 로그 등을 통해 침입탐지를 하는 시스템

--- 감시 대상이 되는 서버에 각각 설치해야 함

--- NIDS에서 탐지 불가능한 침입을 탐지 가능 / 추가적인 하드웨어의 구매가 필요없기에 상대적으로 저렴

--- 호스트의 자원을 점유 / 운영체제 자체가 취약하면 보장하기 힘듬

-- 네트워크 기반 IDS(NIDS)

--- Promiscuous로 동작하는 NIC를 통해 네트워크 패킷을 캡쳐 후, 분석을 통한 침입탐지를 하는 시스템

--- 보통 Switch에서 업링크된 포트에 미러링을 구성하는 방식 사용

- IDS의 유형 : 침입탐지 판정 원리에 따른 분류

-- 오용탐지(Misuse Detection) : 정해진 공격 모델과 일치하는 경우를 침입으로 간주 ; 지식기반 침입 탐지라고도 함

-- 비정상행위(Anomaly Based) : 정해진 모델을 벗어나는 경우를 침입으로 간주 ; 행위기반 침입 탐지라고도 함

 

2) False Positive / Negative 이해

- False Positive(오탐) : 정상을 악의적인 것으로 판단

- False Negative(미탐) : 악의적인 트래픽을 정상으로 판단

 

 

(2) 침입 차단시스템(Firewall)의 이해

1) 원리, 종류, 작동방식, 특징, 단점

- 외부의 불법적인 침입으로부터 내부를 보호하고 외부로 부터 유해정보의 유입을 차단하기 위한 정책과 이를 지원하는 하드웨어/소프트웨어

- 주요 기능 : 접근 통제(패킷 필터링) / 감사 및 로깅 / 프로시 기능 / 보안정책 구현 / 사용자인증

- 침입 차단시스템의 종류

-- 패킷 필터링(Packet Filtering) 방식

--- Network Layer와 Transport Layer에서 동작하는 방식

--- 일반적으로 스크린 라우터를 이용한 방화벽 방식

-- 어플리케이션 게이트웨이(Application Gateway) 방식

--- Application Layer에서 동작하는 방식

--- 침입 차단시스템의 Proxy를 이용해 사용 가능

--- 외부 네트워크와 내부 네트워크가 오직 Proxy를 통해서만 연결

--- Application Layer에서 동작하므로 네트워크에 많은 부하를 줄 수 있고 하드웨어에 의존적임

             

                                               

 

http://iorora.web-bi.net/tech/ETCnetwork/firewall/type.htm

-- 서킷 게이트웨이(Circuit Gateway) 방식

--- 하나의 일반 게이트웨이로 모든 서비스가 처리 가능한 방식

--- Session Layer, Presentation Layer, Application Layer에서 동작

--- 게이트웨이 사용을 위해 수정된 클라이언트 모듈이 필요함 / 지원불가능한 프로토콜이 있을 수 있음

 

                                                

 

http://iorora.web-bi.net/tech/ETCnetwork/firewall/type.htm

-- 상태 검사(Stateful Inspection) 방식

--- 기본적으로 패킷 필터링 방식을 사용

--- 서버-클라이언트 모델을 유지시키면서 모든 Layer의 전후 상황에 대한 문맥을 제공

--- 패킷 필터링 방식, 응용 게이트웨이 방식, 서킷 게이트웨이 방식의 단점을 보완

--- 현재 방화벽 업계 표준이 되어간다네??

- 침입 차단시스템의 구축 형태

-- 베스천호스트(Bastion Host)

--- 보호된 네트워크에서 유일하게 외부로 노출되면서 내외부 네트워크의 연결점으로 사용되는 호스트

--- 방화벽 S/W가 설치되어 있으며, 보안의 취약점이 완벽히 제거 되어 있는 시스템

--- 일반 사용자 계정이 없어야 되며, 방화벽 S/W 외의 모든 유틸리티는 삭제 되어야 함

--- 베스천호스트가 손상되면 내부 네트워크로 무조건적인 패킷 전송이 가능(즉, 내부 네트워크 보호 불가능)

--- 2계층 공격 등을 통한 방화벽 우회공격에 취약

 

                                                           

 

http://dlrudwo.tistory.com/entry/Firewall

-- 스크린 라우터(Screen Router)

--- 일반적인 Router 기능 + 패킷 헤더를 보고 패킷 통과 여부를 제어할 수 있는 필터링(스크린) 기능

--- Network Layer와 Transport Layer의 IP주소, Port주소에 대해서만 접근 제어

--- 로깅과  감시가 힘듬 / 패킷 필터링 규칙에 대한 검증이 어려움

 

                                                               

 

http://dlrudwo.tistory.com/entry/Firewall

-- 듀얼 홈 게이트웨이(Dual Home Gateway)

--- 두 개의 랜카드를 가진 베스천호스트구조(하나는 내부 네트워크, 나머지 하나는 외부 네트워크와 연결)

--- 베스천호스트가 손상되면 내부 네트워크는 외부 네트워크와 완전히 차단됨

 

                                                           

 

http://dlrudwo.tistory.com/entry/Firewall

-- 스크린 호스트 게이트웨이(Screen Host Gateway)

--- 스크린 라우터 + 베스천호스트의 구조를 가짐

--- 1차적으로 스크린 라우터가 Network Layer와 Transport Layer에 대해 필터링하고, 2차적으로 베스천호스트가 Application Layer에 대해 점검

---- 외부에서 들어오는 패킷은 스크린라우터가 필터링 한 후 베스천호스트로 몰아줌(이 경로가 잘못되면 끝임)

--- 따라서 매우 안전하며, 가장 많이 사용되는 시스템

--- 구축 비용이 많이들며, 위에 설명했드시 스크린 라우터의 라우팅 테이블이 변경되면 끝임

 

                                                     

 

http://dlrudwo.tistory.com/entry/Firewall

-- 스크린 서브넷 게이트웨이(Screen Subnet Gateway)

--- 스크린 호스트 게이트웨이 + 듀얼 홈 게이트웨이의 구조를 가짐

--- 두 개의 스크린 라우터와, 하나의 베스천 호스트로 구성되며 스키린 서브넷이 DMZ에 놓이게 되는 방식

--- 내부쪽의 라우터가 듀얼 홈 게이트웨이 구조라고보면될듯

--- 가장 강력한 보안이며 융통성이 띄어나지만 구축이 어렵고 비용이 많이들며 서비스 속도가 느림

 

                                                    

 

http://dlrudwo.tistory.com/entry/Firewall

 

 

(3) 가상사설망(VPN)의 이해

1) 원리, 작동방식, 특징, 구성, 단점

- VPN(Virtual Private Network ; 가상사설망)

-- 공용망을 마치 전용선처럼 이용하기 위해 사용하는 기술

-- 전송되는 데이터에 암호화와 인증 등 보안기능을 제공

- VPN에 필요한 기술

-- 터널링 기술 : Ent-to-End 전용회선 연결과 같은 효과가 있고, 두 종단간 사이에 가상적 터널을 형성하는 기술로써 프로토콜로 구현

-- 키(Key) 관리기술 : VPN의 보안적 요소들에 사용되는 기술들. 대표적으로 ISAKMP, OAKLEY 등

-- VPN 관리기술 : 효과적이고 안정적으로 VPN 서비스를 지원하는 기술이며 QoS를 보장하는 기술

- 장/단점

-- 폐쇄망이기에 외부에 노출 X / 신규 노드 확장이 빠름 / 전송회선 비용 절감 / 네트워크 확장 용이

-- 공중망을 이용하기에 대역폭 보장X / 모든 장비가 호환되지 X

- 터널링 프로토콜

-- 용어 정리

--- 터널링 : 송수신자 사이의 전송로에 외부로부터의 침입을 막기위해 일종의 파이프를 구성하는 기술

---- 파이프는 터널링을 지원하는 프로토콜을 사용해 구현되며 보안기능을 지원

--- 페이로드(Payload) : 터널링 되는 데이터

-- PPTP(Point-to-Point Tunneling Protocol)

-- L2TP(Layer 2 Tunneling Protocol)

-- Sock v5

-- IPsec

--- Network Layer에서 동작하는 보안 매커니즘(프로토콜)(업계 표준)

--- 인증 / 접근제어/ 무결성/ 기밀성 / 재전송방지 등을 지원

--- 사용하는 프로토콜

---- AH(Authentication Header) : 데이터 무결성 보장과 IP 패킷의 인증에 사용되는 프로토콜

----- Transport Mode : 원래의 IP Header를 그대로 사용해서 전송

----- Tunnel Mode : 데이터 그램 전체를 AH로 캡슐화하고, 다시 새로운 IP Header를 캡슐화해서 전송

------ 새롭게 IP Header를 만드므로 송수신자를 새로 지정이 가능(주로 보안 게이트웨이끼리 지정)

 

                                                            

 

http://www.amaranten.com/support/user%20guide/VPN/IPSec_Basics/Overview.htm

---- ESP(Encapsulating Security Payload) : AH와 동일한 인증 뿐만아니라 데이터의 기밀성 보장이 가능한 프로토콜

----- ESP단독으로 사용하거나 ESP + AH 조합된 형식으로 사용함

----- Transport Mode

----- Tunnel Mode

 

                                                             

 

http://www.amaranten.com/support/user%20guide/VPN/IPSec_Basics/Overview.htm

---- IKE(Internet Key Exchange) : 키 관리 프로토콜로써, ISAKMP과 OAKLEY를 결합한 것(ISAKMP/OAKLEY라고 표현하기도함)

---- AH와 ESP의 비교

---- AH : 패킷 인증 기능 / 단독사용가능

---- ESP : 패킷 암호화 기능 + 패킷 인증 기능 / AH와 병행사용

--- SSL VPN : 근래들어 많이 쓰는 방법으로 저 저렴하고 보안을 강력하게 할 수 있다네??

- 너무 어렵다 나중에 따로 정리해야겠다(게다가 PPTP, L2TP 같은건 생략했어, 시험이라 비중높은 IPsec만 다뤄야겠다 여기서는)

 

 

(4) 라우터보안 설정

1) 라우터 자세 보안설정

- User Mode에서 enable로 Privilieged Mode 변경시 패스워드

-- Router(config)# enable {secret | password} 패스워드

-- Telnet 접속 시, 반드시 해야하는 작업

- Console로 접속시 패스워드

-- i) 패스워드로 인증

--- Router(config)#line console 0

--- Router(config-if)#login

--- Router(config-if)#password 패스워드

-- ii) Local User로 인증(ID/PW로 인증)

--- Router(config)#username 사용자ID {password | secret} 비밀번호 (계정생성)

--- Router(config)#line console 0

--- Router(config-if)#login local

- VTY(Telnet) 접근 인증

-- 위에서 한 enable 패스워드 걸어줘야함

-- i) 패스워드로 인증

--- Router(config)#line vty 0 4

--- Router(config-line)#loign

--- Router(config-line)#password 패스워드

-- ii) Local User로 인증(ID/PW로 인증)

--- Router(config)#username 사용자ID {password | secret} 비밀번호 (계정생성)

--- Router(config)#line vty 0 4

--- Router(config-line)#loign local

 

 

(5) 각 장비의 로그 및 패킷분석을 통한 공격방식의 이해 및 대처

1) 호스트, IDS, 방화벽, 라우터 등 각종 네트워크 장비 로그 및 패킷 분석

- 뭐 어찌해야될지 모르겠네 로그랑 패킷 분석은 여기저기서 다룰꺼라 걍 여기선 제껴

 

 

 

5. 네트워크 보안 동향(1~2문제/20문제)

(1) 최근 네트워크 침해사고 이해

1) 분산반사 서비스 거부 공격(DRDoS)

- DRDoS(Distributed Reflection DoS)

- DDoS와의 차이점

-- 출발지 주소를 속임(IP Spoof)

-- 공격의 근원지 추적하기가 힘듬

-- Bot을 이용할 필요가없음

-- 정상적인 서비스 응답 패킷으로 공격함

- 대응

-- ISP에서 출발지가 변조된 공격 패킷을 차단(Egress Filtering)

-- 짧은 시간 동안에 일어나는 연결 실패를 필터링해서, 해당 출발지 IP를 블랙리스트 처리(어차피 변조된 IP주소일텐데...?)

 

2) 봇넷을 이용한 공격

- Bot : RoBot의 약자로, 사용자나 다른 프로그램을 흉내내는 프로그램

- Zombie PC : Bot에 감염되어 공격자로 부터 제어되는 시스템

- Botnet : Zombie PC가 이루는 네트워크

-- 중앙집중형 구조 : Bot 관리자가 중앙에 위치해서, Bot에게 명령 제어하는 구성

-- 분산형 구조 : P2P방식으로 C&C 서버 없이 Zombie PC 끼리 상호 연결되어 동작하는 네트워크 구성

-- 서버 클라이언트 구조 : 서버측에 Bot 관리자가 있고, 클라이언트가 Zomebie PC인 구성

- 공격방식

-- 공격을 위해 Bot을 개발하고 다양한 경로로 Zombie PC를 만들어냄

-- 공격을 위한 C&C 서버를 통해 IRC 채널을 활성화해 Zombie PC의 접속을 기다림

-- Zombie PC가 IRC 채널에 접속하면, Zombie PC는 명령을 전달 받기 위해 대기함

 

(2) 최근 네트워크 보안 솔루션

1) 역추적시스템(Traceback)

- 공격을 시도하는 공격자의 네트워크 상의 실제 위치를 실시간으로 추적하는 기술

- 사람에 의한 역추적

-- 시스템에 남아 있는 Log를 분석해 역추적 / Log를 찾아내고 분석하는데 많은 시간과 인력이 필요

- TCP 연결 역추적

-- 호스트 기반 연결 역추적

--- 호스트에 역추적을 위한 모듈을 설치해, 호스트에서 발생하는 Log등 다양한 정보를 통해 역추적

--- 네트워크 상의 모든 호스트에 역추적 모듈이 설치되어야 함

--- 종류 : CIS(Caller Identification System), AIAA(Autonomous Intrusion Analysis Agent)

-- 네트워크 기반 연결 역추적

--- 네트워크상에서 전달되는 패킷에서 정보를 추출하여 역추적

--- 네트워크에서 발생하는 모든 연결정보를 지속적으로 보유해야 함

--- 종류 : Thumbprints Based Algorithm, Timing Based Algorithm, SWT(Sleepy Watermark Tracing)

- IP 패킷 역추적

 

2) 침입방지시스템(IPS)

- IPS(Intrusion Prevention System) : 침입 탐지와 차단을 함께 수행하는 실시간 보안 장비

- Firewall은 Network Layer와 Transport Layer를 검사하지만, IDS/IPS은 Network Layer부터 Application Layer까지 검사

- ※ 침입탐지시스템(IDS) / 침입차단시스템(Firewall ; 방화벽) / 침입방지시스템(IPS)

 

3) ESM(Enterprise Security Management)

- 전사적 보안관리 솔루션으로, IDS/IPS, Switch, Router등 각종 이기종 보안솔루션을 중앙에서 하나의 콘솔로 관리하는 보안솔루션

- 동일 제품의 경우에는 운영 관리 기능이 좋겠지만, 이기종 제품이나 타사 제품에 대해서는 원격관리나 로그분석 기능 정도 제공하는 수준

 

4) NAC(Network Access Control)

- 네트워크 접근제어

- 네트워크에 접근하는 모든 기기의 보안상태를 점검하여, 안전이 확인된 기기만 접근시키는 보안 솔루션

- 안전이 취약한 기기를 발생했다고 해서 능동적으로 제거를 하는 솔루션은 아님

- 백신의 설치 유무 / 업데이트 유무 등 강제적인 의무사항을 이행했는지만 확인함(강제성만 띔)

블로그 이미지

Diano.

http://www.diano.kr / 이사하는중 /

,


1. 운영체제(6문제/20문제)

 

(1) 운영체제 개요

1) 운영체제의 주요 기능

- 운영체제

-- 시스템 자원을 효율적으로 사용하게 하는, 사용자와 컴퓨터 간의 인터페이스 역할

 

2) 운영체제의 구조(일반적으로 기능별로 5단계로 구분)

- 1단계 : 프로세서 관리(프로세서랑 프로세스는 다름)

- 2단계 : 메모리 관리

- 3단계 : 프로세스 관리

- 4단계 : 주변장치 관리

- 5단계 : 파일 관리

 

3) 운영체제의 기술발전 흐름

- 1세대

-- 일괄처리시스템(Batch Processing System)

- 2세대

-- 다중프로그램 시스템(Multi-Programming System)

--- I/O 장치와 CPU 사이의 속도 차이를 이용하여, 하나의 CPU와 주기억장치로 여러 프로그램을 동시에 처리하는 방식

--- I/O 장치의 조작으로 CPU 유휴시간이 발생하면, 다른 작업을 처리함

-- 시분할 시스템(Time Sharing System)

--- 라운드 로빈(Round Robin ; RR) 방식이라고도 함

-- 다중처리 시스템(Multi-Processing System)

--- 여러 개의 CPU와 하나의 주기억 장치를 이용해, 여러 프로그램을 동시에 처리 하는 방식

-- 실시간 시스템(Real Time Processing System)

- 3세대

-- 다중모드처리(Multi-Mode Processing)

--- 일괄처리 시스템, 시분할 시스템, 다중처리 시스템, 실시간 처리 시스템을 모두 제공하는 시스템

- 4세대

-- 분산처리 시스템(Distributed Processing System)

--- 여러 개의 컴퓨터(프로세서)를 통신회선으로 연결해서 하나의 작업을 처리하는 방식

--- 각 단말장치나 컴퓨터들은 고유의 운영체제와 CPU, 메모리를 가지고 있음

 

 

(2) 운영체제의 주요 구성 기술

1) 프로세스 관리

- 프로세스와 스레드의 개념(쉬우니까 생략)

- 프로세스 제어 블럭(PCB ; Process Control Block)

-- 운영체제가 프로세스에 대한 정보를 저장해 놓은 저장소

-- 다른 프로세스로 제어를 넘겨줄 때, 현재 실행중인 프로세스의 정보를 PCB에 저장하고 제어를 넘김

-- 각 프로세스가 생성될 때마다 PCB가 생성되고, 종료되면 제거됨

-- 부모 프로세스와 자식 프로세스는 PCB를 공유하지는 않음

- 프로세스 구성 요소

-- Code 영역 / Data 영역 / Stack 영역 / Heap 영역

 

                

 

- 프로세스 상태와 전이(그림설명 따윈 없다)

-- 프로세스 상태 : 생성 / 준비 / 실행 / 대기 / 종료

-- 프로세스 상태의 전이 : Dispatch(준비→실행) / Timer Runout(실행→준비) / Block(실행→대기) / Wake UP(대기→준비)

- 프로세스 스케쥴링 : 어떤 프로세스한테 CPU 사용권을 주는게 현명한가??

-- 선점형 스케쥴링 정책(Preemptive Scheduling Policy) : 처리 도중 뺏기 가능

--- SJF(Shortest Job First ; 최단작업 우선 처리)

--- SRT(Shortest Remaining Time First ; 최단 잔여 시간)

--- RR(Round Robin ; 순환할당 스케쥴링) : 시분할 시스템에 쓰이는거

--- MLQ(Multi Level Queue ; 다단계 큐)

--- MFQ(Multi level Feedback Queue ; 다단계 피드백 큐)

-- 비선점형 스케쥴링 정책(Non-Preemptive Scheduling Policy) : 일단 사용권 받으면 끝까지 쓰고 넘김

--- SJF(Shortest Job First ; 최단작업 우선 처리) ; 선점형, 비선점형 둘다 사용가능해

--- FIFO(First In First Out ; 선입선출)

--- FCFS(First Come First Service ; 선입 선출)

--- HRN(Highest Response Ratio Next) : CPU할당을 받을 시간과 기다린 시간으로 계산되는 우선순위로 결정

---- Priority = (Estimated_Run_Time + Waiting_Time) / (Estimated_Run_Time)

---- Priority가 큰 수를 먼저 실행

- 프로세스 교착 상태(Deadlock)

-- 발생 조건

--- 상호 배제(Mutual Exclusion) : 한 프로세스가 자원을 다른 프로세스가 사용못 하게 배제할 때

--- 점유와 대기(Wait) : 프로세스가 자신에게 할당된 자원을 해제 안하고, 다른 자원을 기다릴 때

--- 비중단 조건(비선점 조건 ; Non-Preemption) : 프로세스에 할당된 자원을 끝날 때까지 해제 할수 없을 때

--- 환형대기 조건(Circular Wait) : 상호 배제 조건이 환형을 이루고 있다고 생각하자

-- 해결방안

--- 예방 : 교착 상태의 필요조건을 부정함으로써, 교착 상태가 발생하지 않도록 하는 방법

--- 회피 : 교착 상태 가능성을 인정하고, 적절하게 피하는 방법(은행원 알고리즘)

--- 발견(탐지) : 교착 상태가 발생하면, 교착 상태의 프로세스와 자원을 발견하는 방법

--- 회복(복구) : 교착상태를 일으킨 프로세스를 종료하고 할당된 자원을 회수하는 방법

 

2) 기억장치 관리

- 주기억장치

-- 반입기법(Fetch) : 언제 보조기억장치의 데이터를 주기억장치로 옮기느냐??

--- 요구 반입 정책

--- 예상 반입 정책

-- 배치기법(Placement) : 보조기억장치의 데이터를 주기억장치의 어디로 위치시키느냐??

--- 최초 적합

--- 최적 적합

--- 최악 적합

-- 교체기법(Replacement) : 공간확보를 위해 어떤 데이터를 제거 하고 새로운 데이터를 위치할 것이냐??

--- FIFO(First In First Out)
--- LRU(Least Recently Used) : 가장 오랫동안 사용안한걸 바꿈

--- LFU(Least Frequently Used) : 가장 사용 횟수가 작은걸 바꿈

--- NUR(Not Used Recently) : 최근에 전혀 사용되지 않은걸 바꿈

- 가상기억장치

-- 구현 방식

--- 페이징(Paging) 기법 : 프로그램을 동일한 크기의 Page로 나누어 구현

---- 내부단편화의 원인

---- 스레싱(Thrashing) : 자주 페이지의 교체가 일어나는 현상(프로세스 처리 시간 < 페이지 교체 시간)

---- 워킹 셋(Working Set) : 자주 사용되는 페이지들을 묶어서 주기억장치에 계속 상주시키는방법, 스레싱의 대책

---- 페이지 교체 알고리즘

----- FIFO(First In First Out)

----- LRU(Least Recently Used) : 가장 오랜기간 사용하지 않은 페이지 교체

----- OPT(Optimal ; 최적교체) : 가장 사용되지 않을(?) 페이지를 교체 ;; 실현가능성 희박

----- SCR(Second Chance Replacement) : 참조 비트를 주고, 1이면 0으로 깍고, 0이면 교체

--- 세그먼테이션(Segmentation) 기법 : 프로그램을 가변적 크기의 Segment로 나누어 구현

---- 외부단편화의 원인

※ 단편화(Fragmentation)

- 내부 단편화(Internal Fragmentation) : 할당 받은 페이지를 다 사용 못했을 때 생기는 자투리 공간들(영향이 적긴적지)

-- 압축(Compaction)으로 해결 : 분산되어있는 단편화된 빈 공간들을 결합(Garbage Collection)

- 외부 단편화(External Fragmentation) : 할당과 제거를 반복하면서, 적재하기 얘매해진 공간들

-- 통합(Coalescing)으로 해결 : 인접해 있는 단편화된 공간을 하나의 공간으로 통합

- 보조기억장치

-- 디스크 스케쥴링

--- FIFO(=FCFS)

--- SSTF(Short Seek Time FIrst) : 탐색거리가 가장 짧은 요청을 먼저 처리
--- SCAN : 헤드가 한 방향으로 쭉가면서 처리하는 방법, 실린더 끝까지 가서 방향을 전환한다.

--- C-SCAN : 헤드가 실린더 끝에서 안쪽으로이동하며 처리

--- N-Step SCAN : 헤드의 방향이 전환될 때, 이미 대기 중이던 요청만 처리(도중에 생긴 요청은 무시)

 

3) 파일 시스템 관리

- 디렉터리의 구조(산업기사에 나온기억이..)

-- 1단계 디렉토리 구조 : 모든 파일이 같은 디렉토리에 존재하며, 파일 이름은 유일한 구조

-- 2단계 디렉토리 구조 : 중앙에 마스터 디렉토리(MDF)가 있고, 각 사용자의디렉토리(UFD)가 하위에 있는 구조

-- 트리 디렉토리 구조 : 하나의 루트 디렉토리와 다수의 하위 디렉토리로 구성되며, 포인터로 탐색(일반적으로 OS에서 사용)

-- 비주기 디렉토리 구조(Acyclic Graph Directory) : 파일과 디렉토리의 공유가 허용될 수 있는 사이클이 없는 구조

-- 일반 그래프 구조 : 사이클이 허용되고, 기본 트리 디렉토리 구조에 링크를 첨가한 구조

-- http://wingsofgod.tistory.com/entry/%EB%94%94%EB%A0%89%ED%84%B0%EB%A6%AC-%EA%B5%AC%EC%A1%B0

- Windows File System

-- FAT(File Allocation Table)

--- DOS 때 부터 사용되고 있는 대표적인 File System. FAT16과 FAT32 등이 있다

--- 하드디스크에 FAT라는 영역을 만들어 파일의 실제 위치 등의 정보를 기록하고 이를 이용함

--- 저용량에 적합 / 보안에 취약 / 호환성이 우수

-- NTFS(NT File System)

--- MFT(Master File Table)를 사용하여 관리하며, Mirror와 파일로그가 유지되어 파일 복구가 가능함

--- FAT에다가 대용량 / 보안성 / 압축기능 / 원격저장소 등의 기 능을 추가해서 만든 윈도우 전용 File System

--- 대용량 지원 / 강력한 보안 / 자동 압축 및 안정성 / 호환성이 구림 / 저용량에선 FAT보다 느림

- Unix & Linux File System

-- EXT2 : FSCK(File System Check)으로 시스템 손상 복구 가능

-- EXT3 : 저널링(Journaling) 기술로 더욱  빠르고 안정적인 복구가 가능

-- EXT4 : 빨라진 FSCK / 하위 호환성 / 지연된 할당(Allocate-On-Flush ; 데이터가 디스크에 쓰이기전까지 블록 할당 지연)

- Partition

-- 주 파티션 : 기본 파티션을 의미 / 주 파티션의 수 + 확장 파티션의 수 <= 4

-- 확장 파티션 : 저장 공간을 없으며, 논리 파티션을 만들게 해주는 그릇의 역할 / 디스크에 하나만 생성 가능

-- 논리 파티션 : 최대 12개(NTFS에서는 제한이 없다네??)

 

4) 분산 시스템

- 개념 : 분산되어 있는 컴퓨터에서, 작업이 나누어 처리되고 그 결과가 서로 호환되도록 연결되어 있는 시스템

- 투명성(Transparency)를 보장해야 함

-- 위치 투명성 : 컴퓨터의 실제 위치를 몰라도 접근 가능

-- 이주 투명성 : 자원 이동에 제한이 X

-- 병행 투명성 : 사용자의 위치를 몰라도 다른 사용자와 자원의 공유 가능

-- 복제 투명성 : 사용자에게 통지할 필요 없이 자유롭게 복제 가능

 

 

(3) 운영체제 사례별 특징과 주요 기능

1) 유닉스

- 구성

-- 커널(Kernel)

--- OS의 핵심으로 주기억장치에 상주하여 자원을 관리함

--- 크게 입출력 / 메모리 / 프로세스 / 파일관리의 부분으로 나눔

--- 쉘에서 지시한 작업을 수행함

-- 쉘(Shell)

--- 커널과 사용자간의 인터페이스를 제공

--- 사용자가 입력하는 명령의 입/출력을 수행하며 프로그램을 실행시킴

--- 명령어 해석기/번역기라고 함

-- 파일 시스템(File System)

--- 계층적 트리 구조를 가지고 있고 다음과 같이 구성되어 있음

---- 부트 블럭(Boot Blocks) : 파티션의 첫 부분에 예약되어 있는 블럭들 / 부팅시 필요한 코드 저장(커널 적재 코드 등)
---- 슈퍼 블럭(Super Block) : 파일 시스템당 한 개씩 생성 / 전체 파일 시스템에 대한 정보 저장

---- 아이노드(I-Nodes) : 파일 이름을 제외한 모든 파일과 디렉토리에 대한 정보를 저장

---- 데이터 블럭(Data Blocks) : 실제 데이터가 저장

 

2) 윈도우

 

3) 리눅스

 

4) 보안운영체제 특징

- 접근 권한 통제(Authorization) ; Authorization = Authentication + Access Control

-- 사용자 인증(Authentication)

-- 접근 통제(Access Control)

- 침입 탐지 및 방어(Intrusion Detection & Prevention)

 

 

 

2. 클라이언트 보안(7문제/20문제)

(1) 윈도우 보안

1) 설치 및 관리

- 음... 정품 구입해서 쓰고, 사양에 맞춰서 설치하라는 내용

- 라이센스 모드

-- Per Server : 서버에 동접하는 클라이언트 숫자에 따라 라이센스를 구매하는 방식

-- Per Seat : 클라이언트 숫자에 따라 라이센스를 구매하는 방식

- 사용자 계정 관리

-- 암호 설정해주는게 좋지

-- 사용자 계정 컨트롤(UAC) : 관리자 수준의 권한이 필요한 변경 사항이 있을 때, 사용자에게 이를 알려주는 것

 

2) 공유자료 관리

- 공유 폴더

-- NTFS은 사용자계정이나 그룹에 대해서, 파일과 폴더에 퍼미션(Permission)을 줄 수 있음

-- Everyone 그룹에 대해서는 기본적으로 <읽기> 권한만 주어짐

--- 로컬에서 그냥 폴더 만들면 Everyone 그룹에 대해서 <모든 권한>이 주어짐

- 숨은 공유??(공유 폴더 이름 마지막에 $를 붙이는 폴더)

-- 네트워크 공유 목록에서 공유 폴더를 안보이게 함

-- 접근하기 위해서는 공유 폴더 이름을 통해 직접 접근해야 함

- 관리를 목적으로하는 기본적인 공유 폴더(ADMIN$, IPC$, C$, 등)

-- 이름에서 볼 수 있듯, 모두다 숨은 공유로 만들어져 있음

-- CMD에서 net share 명령어로 확인이 가능함

-- 네트워크 접근 사용만을 제한할 수 있고, 로컬 접속은 제한을 할 수 없음

-- 보안상 사용하지 않을 땐 비활성화 하는 게 좋음

--- 관리적 공유 폴더 제거 하기(C$, D$, 등)

---- 위치 : HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters

---- AutoShareWks의 값을 REG_DWORD 타입의 0으로 바꿈

---- 걍 HKEY_LOCAL_MACHINE 및에다가 AutoShareWks만들어서 0넣어도 되는듯

--- 널 세션 제거하기(IPC$)

---- IPC$는 제거가 안되기에 널 세션을 제거하는 방법을 이용

---- 위치 : HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\LSA

---- restrictanonymous의 값을 REG_DWORD 타입의 1로 바꿈(기본값은 0)

 

3) 바이러스와 백신

- 바이러스(Virus)

-- 다른 프로그램에 기생해서 실행(독자적으로 실행X)

-- 파일 전송 기능이 없어서, 네트워크 대역폭에는 영향을 끼치지 않음

-- 대표적으로 1994년 4월 26일 CIH 바이러스

- 웜(Wrom)

-- 독자적으로 실행(기억장소에 코드나 실행파일로 존재)

-- 네트워크를 사용해서 자신을 복사하기에, 네트워크 대역폭을 잠식함

-- 대표적으로 2001년 9월에 발생한 님다(Nimda)

- 트로이목마

-- 자기 자신을 복제하지는 않지만, 악의적 기능을 포함하는 프로그램

-- 유틸리티 프로그램에 내장되거나, 그것으로 위장해 배포됨

-- 대표적으로 백오리피스같은 프로그램

- 스파이웨어(Spyware)

-- 사용자몰래 PC에 설치되어 정보를 수집하는 프로그램

 

4) 레지스트리 활용

- 시스템을 구성하기 필요한 정보를 저장한 중앙계층형 데이터베이스

- HKEY_CURRENT_USER(HKCU) : 현재 로그온 되어 있는 사용자에 관련된 정보 등

- HKEY_USERS(HKU) : 컴퓨터의 모든 사용자 프로필 정보 등

- HKEY_LOCAL_MACHINE(HKLM) : 하드웨어와 프로그램 설정 정보

- HKEY_CLASSES_ROOT(HKCR) : OLE데이터와 확장에 대한 정보 등

- HKEY_CURRENT_CONFIG(HKCC) : 시스템 시작시 컴퓨터에서 사용하는 하드웨어 프로필 등

- 악성코드 구동을 위해 주로 HKEY_CURRENT_USER와 HKEY_LOCAL_MACHINE이 이용됨

 

 

(2) 인터넷 활용 보안

1) 웹브라우저 보안

- 검색 기록 / 쿠키 삭제 / 임시파일 삭제

- 익스플로러에서는 보안 수준을 설정하기

-- 보통 이상으로 사용하고, 세부 설정 가능

- 브라우저에서 개인정보를 수집하는 기술

-- 쿠키(Cookie) & 슈퍼쿠키(Super Cookie)

-- 비콘(Beacon ; Web Bug)

-- History Stealing

-- Fingerprint

- HTTP(Hyper-Text Transfer Protocol) 프로토콜(이걸 여기서 다뤄야되는건가??)

--웹 상에서 파일(텍스트, 이미지, 등)을 주고 받기 위한 프로토콜로 TCP/IP와 관련된 프로토콜(80번 포트)

-- 한 번 접속해서, 정보 주고받고 접속을 끊어버리는 특이한 특징(그 때문에 세션과 쿠키라는 걸 이용하게 되지)

-- HTTP 요청 방식

--- GET 방식 : 클라이언트가 서버로 전송하는 정보를 URL에 담는 방법

--- POST 방식 : 요청사항을 HTTP 헤더 안에 넣어서 서버로 전송하는 방법

-- HTTP 1.0

--- 한 번에 한 종류의 데이터만 받을 수 있음(이미지와 텍스트라면 총 두 번의 접속이 필요)

--- 요청 방식

---- GET : GET 방식으로 서버에 리소스(정보)를 달라고 요청

---- HEAD : GET방식과 유사하지만, 요청한 리소스가 아닌 Header만 채워서 응답(해당 정보를 잘 처리하는지 테스트)

---- POST : POST 방식으로 서버에 리소스를 달라고 요청

-- HTTP 1.1

--- 한 번에 이미지와 텍스트까지 받을 수 있음

--- 요청 방식

---- GET

---- HEAD

---- POST

---- OPTION : 서버가 요청한 리소스에서 어떤 요청방식들을 처리해주는지 알려줌

---- PUT : 서버에 요청한 리소스를 저장함

---- TRACE : 루프백 메시지를 위한 요청을 함(이것도이해안가ㅠ)

---- CONNECT : ??이해안감

---- DELETE : 명시된 리소스를 서버가 삭제할 것을 요청

-- HTTP 상태코드(안보여주는게 이득 ; 시험 맨날 나와)

--- 2xx : 성공

---- 200 : OK

---- 201 : 서버가 성공적으로 요청된 새 리소스를 생성(PUT 메소드인듯)

--- 3xx : 재전송

--- 4xx : 클라이언트 측 에러

---- 401 : 유효한 요청에 대해 서버가 응답을 거부(권한이없는 401과는 다름)

---- 403 : Forbidden

---- 404 : Not Found

--- 5xx : 서버 측 에러

---- 500 : 내부 서버 오류

---- 501 : 해당 메소드 인식 못하거나 기능이 없음

 

2) 메일 클라이언트 보안

- PGP(Pretty Good Privacy)

-- 데이터 암호화와 복호화하는 프로그램인데, 전자 메일의 보안성을 높이기 위해 자주 사용되

-- IETF에서 표준으로 채택한 PEM과 비교되(나중에 또 나와)

-- 수신 부인방지와 메시지 부인 방지 기능이 없어

-- 메시지의 비밀성을 위해 공개키 암호기술을 사용(RSA, IDEA 등)

-- 메시지의 무결성을 위해 메시지 인증을 사용

-- 메시지의 생성, 처리, 전송, 저장, 수신 등을 위해 전자서명을 사용

 

 

(3) 공개 해킹도구에 대한 이해와 대응

1) 트로이목마 S/W

- 대표적인 툴 : AOL4FREE.COM / Shark2 / NetBus / Back Orific

 

2) 크래킹 S/W

- 루트킷(RootKit) : 서버 내에 침투해서 백도어를 만들고 로그를 삭제하는 등의 패키지들

-- 대표적으로 lrk5

-- 루트킷을 찾아내는 프로그램은 안티루트킷(Anti-RootKit) : 대표적으로 Icesword

- 패스워드 크랙(Password Crack)

-- Brute Force Attack / Dictionary Attack / Password Guessing / Rainbow Table 등의 공격 방법으로 크랙

-- 대표적인 툴 : John the Ripper / pwdump / LOphtCrack / ipccrack / chntpw(to reset pw) / ERD Commander

- 포트 스캐닝(Port Scanning) (SAINT와 Nmap 정도만 알고 있어도 될듯)

-- 다중 취약점 스캔 : SAINT / sscan2k / vetescan / mscan 등

-- 특정 취약점 스캔 : cgiscan / winscan / rpcsan

-- 은닉 스캔 : Nmap / stealthscan

-- 네트워크 구조 스캔 : firewalk / Nmap

-- 스캐닝 기법

--- Openning Scanning : TCP Connect Scanning

--- Half-Open Scanning : SYN Scanning

--- Stealth Scanning : FIN / X-MAS / NULL Scanning

--- More Advanced Scanning : Spoofed Scanning(??)

-- 포트 스캐닝의 구분

--- TCP 포트 스캐닝 : 특정 Flag값을 설정한 뒤, 패킷을 보내고 그에 대항 응답으로 확인

--- UDP 포트 스캐닝

---- 포트가 열린 상태 : 아무런 응답 X

---- 포트가 닫힌 상태 : UDP 패킷이 목적지에 도달하지 못했다는 메시지

---- ※ 패킷이 유실되도 아무런 응답이 없기에 신뢰성이 떨어짐

- Nmap 사용법(잘 나와)

-- 스캔 타입(이름잘보면 딱 보여)

--- -sS : TCP Syn Scan

--- -sF / -sX / -sN : FIN / X-Mas / NULL Scan

--- -sU : UDP Scan

--- -sP : Ping Sweep

--- -b : FTP Bounce Attack

--- 등등

-- 스캔 옵션

--- -P0 : Don't ping before scanning ; ping으로 사전 조사 하는 과정을 뺌(네트워크에 살아있음을 알고있을 때 씀)

--- -PT <PORT_NUMBER>: ICMP Request Packet 보내고, 응답기다리는 대신에 TCP ACK를 보내 응답 기다림. 살아있으면 RST받음

--- -PS

--- -PB

--- -O : 운영체제 확인

--- -p <PORT_NUBMER>

--- -S <IP_ADDRESS> : Spoofing

--- 등등

-- 예

--- #./Nmap -p 1-30,110,65535 203.x.x.x

---- 203.x.x.x의 1~30번, 110번, 65535를 스캔한다.

3) 키로그 S/W

- 대표적인 툴 : Winhawk, Key~~로 시작되는 툴들

 

 

(4) 도구활용 보안관리

1) 클라리언트 보안도구 활용

- BlackICE

-- 일종의 방화벽이라고 보면될 듯

-- 외부에서 자신의컴퓨터에 접근하는 것을 탐지 / 제어하는 프로그램

-- 침입 차단 / 어플리케이션 보호 / IDS 기능 제공

- Snort

-- 공개 네트워크 IDS

-- 다양한 OS 지원 / Rule 설정가능

 

2) 클라이언트 방화벽 운영

- Windows 방화벽(ipsec)

- Linux/Unix 방화벽(iptables)

-- iptables는 뭐 생략 쉬우니까

 

 

 

3. 서버보안(8-10문제/20문제)

(1) 인증과 접근통제

1) 계정과 패스워드 보호

- Linux Server

-- 계정 생성, 수정, 삭제 : useradd / usermod / userdel

-- 계정과 패스워드에 관련된 파일

--- /etc/passwd : 사용자 계정 정보

--- /etc/shadow : 사용자 패스워드

--- /etc/group : 그룹 ID / 목록

--- /etc/gshadow : 그룹 정보

--- /etc/login.defs : 사용자 전체에 자동 할당되는 UID, GID 범위, 패스워드 유효 기간, useradd 설정사항

--- /etc/default/useradd : useradd 명령어로 계정 생성 시, 어떤 환경과 파일을 참조할 것인가에 대한 정보

--- /etc/skel : 계정 생성시 필요한 파일, 디렉토리를 저장하고 있는 디렉토리, 새 계정 생성시 그 대로 해당 계정의 홈디렉토리로 복사

-- /etc/passwd 구성

--- 사용자계정이름 : x(패스워드가 암호화되어 저장됨을 의미) : UID : GID : 계정정보 : 홈디렉토리 : 쉘

--- root : x : 0 : 0 : root : /root : /bin/bash

--- ※ Linux에서 사용자 계정 잠구는 법

---- /etc/passwd에서 쉘 정보에다가 /bin/false 또는 /bin/nologin을 기술함

---- passwd -l <계정명>

-- /etc/shadow 구성

--- root : $1$F9FBAJKWEBKF4A30AJWNFKE : 15551 : 0 : 99999 : 7 :  :  :  :

--- 사용자계정 : 암호화된 패스워드 : 패스워드 바꿔진 日수: 패스워드 변경할수있는 최소 日수 : 패스워드 만료 日수 : 패스워드 만료 경고日수 : 사용자 제한 이후 계정 정지까지 日수 : 계정만기일 : (사용안함)

- Windows Server

-- 컴퓨터 관리나 net user 명령어로 계정 생성, 수정, 삭제

-- 계정 생성 시 옵션

--- 다음 로그온시 반드시 암호 변경

--- 암호 변경 불가

--- 암호 사용기간 제한 없음

--- 계정 사용 안 함(사용할 때까지 로그인 X)

-- 기본 제공 계정인 Administrator는 계정 사용 안함으로 설정하거나 이름을 변경하는게 보안상 이득

-- Guest 계정은 불필요하면 계정 사용 안함으로 설정(기본 값은 사용안함)

-- 암호 정책

--- 암호의 복잡성

--- 최근 암호 기억 : 비슷하게 못 만들게 하기 위해서

--- 최대 암호 사용기간

--- 최소 암호 사용 기간

--- 최소 암호 길이

--- 해독 가능한 암호화를 사용해 암호 저장 : 왜있을까??

-- 계정 잠금 정책

--- 계정 잠금 기간 : 0으로 하면 명시적으로 잠금 해제 할때 까지 유지(0부터 99999까지 ; 분 단위)

--- 계정 잠금 임계값 : 실패한 로그인 시도 최대 횟수를 설정(0부터 999까지 적용가능 ; 0이면 잠금 적용 X)

--- 다음 시간 후, 계정 잠금 임계값을 0으로 설정(1에서 99999까지 ; 분 단위)

 

2) 파일 시스템 보호

- Windows

-- FAT12 / FAT16 / VFAT / FAT32

-- NTFS

-- 관리 공유 폴더 제거 / 마지막에 로그인한 계정 숨김 / 예약작업 수시로 체크 / 이동식 디스크의 자동실행방지 / 원격 레지스트리 서비스 중지

- Linux

-- minix / ext2 / ext3 /ext4

- 클라우드 파일시스템

-- Ceph

-- GlusterFS(글러스터)

-- Google 파일시스템(GFS)

-- Hadoop 분산파일시스템(하둡)

-- Lustre 파일시스템

-- Panasa 파일시스템

-- PVFS2

-- OASIS : 한국전자통신연구원 저장 시스템 연구팀에서 개발한 객체 기반 클러스터 파일 시스템

 

3) 시스템 파일 설정과 관리

- 리눅스 디렉토리 구조(트리 구조)
    -- /bin : 필수 바이너리 파일, 시스템 기본 명령어

-- /sbin : 관리자가 사용하는 시스템 운영에 필요한 명령어

-- /boot : 부팅에 필요한 커널과 핵심 파일

-- /dev : 장치 파일

-- /mnt : CD-ROM과 플로피의 마운트 포인트를 제공하는 디렉토리

-- /lib : 시스템 운영 및 프로그램 구동시 필요한 공유 라이브러리

-- /var : 내용이 자주 변경되는 가변 자료를 저장하는 디렉토리

-- /usr : 각종 서드 파티 응용 프로그램이 설치되는 프로그램

-- /proc : 시스템 상태를 제공하기위한 디렉토리와 파일들이 존재

- Mount 하기

-- 디바이스와 디렉토리의 연결

-- # mount <디스크나 파티션> <마운트될 디렉토리>

-- 재부팅시 마운트가 풀리기에, /etc/fstab에 기술해서 자동 마운트

- Shell 설정 변경

-- /etc/profile에 설정된 값대로 shell에 적용

-- /root/.bashrc : 시스템 전체에 적용되는 함수와 alias

--- 파일 안에 alias rm='rm -i' 처럼 기술하면, rm이란 명령어는 rm-i와 동일하게 처리하라는 의미

-- /root/.bash_profile : 사용자 환경 설정과 시작프로그램

-- /root/.bash_history : 사용자 최초 로그인 후 생성, 사용자가 쉘에 입력한 명령어를 기록함

- 쿼타(Quota)

-- 디스크에 사용량을 체크 감시하고, 한 파티션에 너무 많은 디스크를 사용하게 되면 관리자에게 알리도록 제한함

- 파일 시스템 점검(File System Check & Recovery) : FSCK를 사용함

-- 저널링 파일시스템으로 자동 복구가 되지만, 복구가 불가능한 경우 수동으로 복구해주어야 할때 씀

-- 많은 시간을 필요로하는 경우가 많음

-- 반드시 검사하고자 하는 파일시스템은 unmount하고 검사해야 함

- 퍼미션(Permission)

-- umask : 파일은 666에서 빼고, 디렉토리는 777에서 뺌

-- setuid(s, 4000) / setgid(s, 2000) / sticky bits(t, 1000)

-- setuid, setgid는 해당 파일이 실행될 때에만, 실행한 사용자에게 소유자(그룹)의 권한을 부여함

--- sticky bits는 주로 공유 디렉토리에 지정하는데, 파일을 root와 소유자만이 삭제, 수정이 가능하게 함

-- ※ setuid 파일 찾기 : find / -user root -perm -4000 -print -xdev

 

4) 시스템 접근통제 기술

- Linux의 iptables

-- 생략 쉬우니까

- Windows의 ipsec

-- 생략 걍 GUI로 세팅하는거

- 통제 방식(뒤에도 나오는것 같은데)

-- 강제적 접근통제(MAC)

--- 주체의 권한을 기준으로 객체에 대한 접근을 제어

-- 임의적 접근통제(DAC)

--- 주체가 속한 그룹의 권한을 기준으로 객체에 대한 접근을 제어

-- 역할기반 접근통제(RBAC) : 역할을 미리 설정하고, 주체를 역할에 할당한 후, 역할에 접근 권한 부여

--- 최근에 많이 사용되는 통제방식으로 관리자에게 편리함

 

 

(2) 보안관리

1) 운영체제 설치

 

2) 시스템 최적화

- CPU

-- top : CPU와 Memory, swap에 대한 전체적인 모니터링 가능

-- ps aux : CPU와 Memory 사용량이 큰 PID를 확인 가능

-- pstree : 시스템에서 프로세스간의 연결구조를 트리 구조로

- Memory

-- free : 사용되는 메모리와 여유가 있는 메모리가 얼마인지 알려주는 간단한 명령어

-- vmstat : 가상 메모리 상태를 확인(Swap-Out과 Swap-In을 봐)

- Disk I/O

-- df : 파일 시스템의 상태를 기초로 용량을 출력(df -k(KB단위) / df -h(다양한 단위))

-- du : 실제 디렉토리와 파일의 크기를 확인해서 용량을 출력

-- iostat : 디스크에 I/O가 얼마나 나타나는 모니터링

- Network

-- netstat : 포트 정보

-- ping

-- traceroute

-- tcpdump

 

3) 시스템 로그 설정과 관리

- 시스템 로그는 시스템의 정확한 시간이 필수

-- #rdate -s time.bora.net

- Linux의 /var/log 디렉토리

-- messages

--- 로그인 기록에서 디바이스에 관련된 정보와 네트워크 등등 다양한 정보

--- 콘솔에 출력되는 메시지들이 저장된다. 시스템 장애가 생기면 이 파일을 점검해서 취약점 점검

-- pacct

--- 로그인부터 로그아웃까지 입력한 명령과 시간, 작동된 tty 등에 대한 정보 수집 ; binary

--- 명령어 : lastcomm

-- history

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

-- lastlo

--- 사용자별로 최근 로그인 시간 ; binary

--- 명령어 : lastlog

-- wtmp

--- 전체 로그인기록 (최근에 사용자 로그인 및 로그아웃한 정보) / utmp의 기록이라고 보면될듯; binary

--- 명령어 : last

-- utmp

--- 현재 로그인 되어 있는 사용자에 대한 정보(/var/run/utmp에 있다) ; binary

--- 명령어 : w / who / users / finger

-- btmp

--- 로그인이 실패한 경우에 ; binary

--- 명령어 lastb

-- sulog

--- Su 명령와와 관련된 로그

-- dmesg

--- 부팅부터 HW적인 에러

-- secure

--- 보안과 관련된 중요한 로그(사용자 인증관련된 로그; FTP나 SSH 같은 것)

-- httpd access_log, error_log

--- 웹서버에 대한 로그

-- xferlog

--- FTP로 어떤 자료가 오갔는지 보여주는 로그

 

4) 서버 해킹 원리의 이해

- 1) 정보수집단계

-- 포트스캐닝 등

- 2) 시스템 침입단계(root권한 획득이 목적)

-- exploit(root계정 따내는 여러 프로그램)

-- 서버 설정 오류 / 원격 버퍼 오버플로우 취약점 / 계정 도용 / 패스워드 파일 획득 / 기타 취약점을 이용해 침입함

-- 가장 단순하지만 강력한 대책은 업데이트(패치)

- 3) 공격 경유지나 혹은 거점 마련

-- 백도어 등을 설치하거나, 또다른 공격의 공유지로 삼음

 

5) 서버관리자의 업무

- 시스템의 시작과 종료 및 재시작

- 사용자 계정관리

- 프로세스 및 디스크, 메모리

- 네트워크 연결 및 상태관리

 

 

 

(3) 서버보안용 S/W 설치 및 운영

1) 시스템 취약점 점검도구

- NESSUS : 서버-클라이언트 구조로 작동하는 취약점 점검 도구

- SARA(SATAN기반) : 서버, IDS, 라우터 등의 보안 분석도구

- nikto2 : 웹 서버 스캔해서 취약점 점검(오픈 소스)

 

2) 시스템 침입 탐지 시스템

 

3) 무결성 점검도구

- trpwire : 가장 대표적인 무결성 점검도구로써, 시스템의 모든 파일에 대해 DB를 만들어서 추후 변동사항을 점검

- Fcheck : tripwire보다 조금 더 간편한 설치와 설정

 

4) 접근통제 및 로깅도구

- TCP Wrapper

-- 슈퍼데몬(Xinetd)의 영향을 받는 데몬들은 TCP Wrapper로 접근 제어와 로깅이 가능

-- 도식화 : 클라이언트의요청 → Xinetd → TCP Wrapper → 데몬 실행

-- /etc/host.deny파일과 /etc/host.allow파일을 통해 접근 통제를 할 수 있음

--- Deny 정책 적용 시, host.deny에 ALL:ALL을 적어 놓고, host.allow에 데몬종류:클라이언트 주소를 적음

-- 접근 통제기록은 secure나 messgae 파일 등에 기록됨

 

5) 스캔 탐지도구

- 방어적인 관점에서, 스캔 탐지가 일어나면 이에 따란 방어 대책을 세워야 할 듯

- portsentry

-- 포트스캔을 실시간으로 탐지하고 TCP_Wrapper와 결합해, host.deny파일에 자동으로 등록해 방어함

- 실시간 네트워크 불법 Scan 자동탐지 도구(RTSD ; Real Time Scan Detector)

-- KISA에서 과거에 개발한건데 오래되서 업데이트 안되고 있지

 

6) 로깅 및 로그분석도구

- syslog

-- 백그라운드 프로세스로 돌면서, 로그 메시지를 하나 이상의 개별 파일에 기록하는 데몬

-- /etc/syslog.conf에 각종 로그 환경 설정을 추가, 변경, 삭제할 수 있음

--- 형식 : Facility.Priority    Logfile-Location

---- Priority : Emerg > Alert > Crit > Err > Warn > Notice > Info > Debug > None

- webalizer

-- 아파치 웹로그를 분석해주는 멀티 웹로그 분석도구

블로그 이미지

Diano.

http://www.diano.kr / 이사하는중 /

,