2013/12/08

정보보안기사 준비 - 예상문제 #2 (Security)

아래 문제는 정보보안기사 실기시험을 준비하면서 제가 임의로 만든 예상문제 입니다.


1. icmp를 이용한 공격 방법 및 이에 대한 대응방안에 대해 아는대로 기술하시오.


2. 3DES의 암호화 및 복호화 방식에 대해 설명하시오.


3. ARP 스푸핑 공격이라는 것이 무엇이며, 어떻게 공격을 하는지 아래의 사항을 가정하여 설명하고,  ARP 스푸핑을 막기 위한 방안을 서술하시오.
   Alice (192.168.1.1, MAC주소 : A)
   Bob (192.168.1.2, MAC 주소 : B)
   Cracker (192.168.1.3, MAC주소 :C)


4. 바이러스, 웜, 트로이 목마, 스파이웨어, 랜섬웨어, 누킹 소프트웨어, 다운로더, 드라퍼에 대해 설명하시오.


5. 다음 포렌직 절차 빈칸에 적절한 단어를 넣으시오.


 준비 --> (   A    ) --> (   B   ) --> (   C   ) --> 조사/보고서


6 IDS(시스템 침입탐지 시스템)의 탐지 방법에 따른 2가지 분류를 적고, 각각에 대해 설명하시오.


7. 버퍼 오버플로우 공격이 무엇인지 간략히 서술하고, 이를 막기 위한 방법에 대해 아는대로 서술하시오.


8. Format String 해킹 공격에 대해 설명하시오.


9. 유닉스 내에서 실행되는 프로세스 중 임시 파일을 생성하는 프로그램에서 자주 사용하는 것으로, 임시 파일을 만들어 쓰고 끝났으면 지우는 과정에서 쓰기 바로 직전의 경쟁조건을 이용하여 원하는 파일에 원하는 내용을 집어 넣는 방식의 해킹 기법을 무엇이라고 하는가? 이 공격을 막기 위핸 대응방안을 서술하시오.


10. DoS 공격에 대한 대응으로 리눅스 서버에 PAM을 이용한 리소스 제한을 하는 방법


11. IPSec의 보안 기능(기밀성, 무결성, 인증, 재전송 차단)에 대해 프로토콜 구조와 함께 설명하시오.


12. 스니핑이 가능한 방법을 열거하고 설명하시오.


13. 생일역설이론에 의하면 (     ) 비트 이상인 해쉬함수가 안전하다.


14. PKI의 구성요소 4가지를 적으시오.


15. 일반적인 접근통제모델 중 참조모니터(Reference Monitor)에서 사용되는 3가지 모델은 다음과 같다.
(   A    )는 주체의 레이블과 주체가 접근하고자 하는 개체의 보안 레이블을 비교하여 보안 정책에 합당한 접근통제 규칙에 의해 접근을 통제하는 방법으로, 모든 주체 및 객체에 대하여 일정하며 어느 하나의 주체/객체 단위로 접근제한을 설정할 수 없다.
    (     B    )는 주체나 그들이 소속되어 있는 그룹들의 ID(신분)에 근거하여 객체에 대한 접근을 제한하는 접근통제 방식이다. 모든 주체 및 객체에 대해 일정하지 않고 어느 하나의 주체/객체 단위로 접근제어 설정을 할 수 있다. 트로이목마 공격에 취약하다.
    (     C    )는 직무를 기반으로 하는 접근통제방식으로, 권한을 사용자에게 직접 부여하지 않고 그룹에 부여하고, 사용자를 그룹별로 구분하여 그 그룹이 수행하여야 하는 역할에 따른 접근제어 설정을 하는 방식이다.


16. Syn Flooding 공격에 대한 방어 대책에 대해 간략히 서술하시오.


17. 7.7 DDoS의 공격 방식에 대해 간략히 서술하시오.


18. HTTP Get Flooding 공격에 대한 대응방안을 서술하시오.


19. R.U.D.Y 공격과 Slowloris 공격 및 방어 방법에 대해 설명하시오.


20. TCP-Wrapper의 원리와 사용 방법에 대해 설명하시오.


21. 악성코드 유포지에 대한 접속을 막는 방법의 하나로, 해당 악성사이트의 DNS에 대해 악성 아이피가 아닌 안전한 내부 아이피를 return 하는 방식의 악성 사이트 접속 차단 서비스를 제공하는 KISA 서버 이름은?




답--------------------------------------------------------------------------
1.
(1) ping of death
 : ICMP 패킷의 크기를 정상적인 크기보다 아주 크게 만들어 Fragmented Packet과 비정상적인  OOB(Out of Band)를 함께 대량으로 전송하여 시스템 자원을 소모 시키는 공격이다.
대응방안으로는 필요하지 않은 경우 ICMP를 막고, 필요한 경우 반복적으로 들어오는 일정 수 이상의 ICMP  패킷은 무시하도록 설정을 한다.(rate-limit를 이용) 최근 OS에는 이와 같은 사항은 모두 패치되어 있다.
(2) Smurf
  : 공격자의 Source IP를 피해자의 IP로 위조하여 특정 네트워크의 브로드캐스트 주소로 ICMP echo request를 날리는 공격이다. 이 경우 네트워크에 속하는 모든 컴퓨터들이 위조된 피해자 IP로 ICMP echo reply를 보내도록 하여 네트워크 대역폭을 소모시킨다.
대응방안으로는 네트워크 장비에서 브로드캐스트 주소로 ICMP를 보내지 못하도록 설정하거나 위조된 아이피를 가지고 들어오지 못하도록 내부 네트워크 대역이 아닌 IP가 src가 되지 못하도록 패킷을 필터링한다.
(3) Land Attack
  : src ip를 피해자의 ip로 위조하고, src ip와 dst ip를 동일하게 설정하여 패킷을 보내는 것으로, 피해 시스템에서 looping을 돌게 하여 시스템 자원을 소모시키는 공격이다.
 대응방안으로는  src ip와 dst ip가 동일한 패킷은 차단하도록 방화벽이나 라우터, 스위치 등에서 접근제어 설정한다.


2.
암호화는 C= Ek1(Dk2(Ek3(P))), 복호화는 이 반대인 P=DK3(Ek2(DK1(C)))로 이루어진다.
이때 K1을 K3와 같게 사용하기도 한다.

                           with K1               with K2                with K3
Plaintext P ---> 암호화(   )  ----> 복호화 (  ) ----> 암호화 (    ) --> Encrypted msg C


3. ARP 스푸핑은 같은 네트워크에 존재하여 ARP 패킷을 받을 수 있는 환경에서만 가능하다.  (HUB 등으로 연결된 경우는 가능하지만, Switch로 연결되면 불가능함. 이유는 브로드캐스트 주소로 요청하고 응답하기 때문.) 즉, 공격자 Cracker는 Alice와 Bob의 ARP request들을 보고 있다가, 자신의 MAC주소를 Alice와 Bob의 아이피에 맞는 MAC주소라고 위변조한 ARP Reply를 보내서 ARP Table을 변조한다. 이렇게 하면, Cracker는 Alice나 Bob에게 가려는 데이터 패킷을 중간에서 가로채 스니핑할 수 있게 된다.
 ARP스푸핑의 탐지방법은 arp -a 등의 명령어로 arp 테이블을 확인하여 동일한 아이피인데 MAC 주소가 여러개이거나, 같은 MAC주소가 여러개 아이피에 설정되어 있는지 확인하면 된다.
ARP 스푸핑에 대한 대처방법으로는 스위치 등 네트워크 장비에서 port security를 걸거나, ARP inspection을 설정하여 MAC 변조를 막거나, VLAN등을 나눠서 관리하도록 하며, 같은 네트워크에서만 공격이 성공하므로 외부에서 내부 네트워크로의 침투를 막고, 중요한 서버의 ARP 테이블은 static하게 정해 놓을 수 있다. (예. arp -s 192.168.1.1 A)


4.
바이러스 - 자신 또는 자신의 변형코드를 실행하는 프로그램으로, 숙주가 반드시 필요하다.
웜 - 네트워크나 전자메일을 통해 전송되며, 자기 증식이 가능하다.
트로이 목마 - 바이러스나 웜과 달리 자기 증식 능력이 없으며, 스스로를 유틸리티로 위장하여 배포되어 피해자 모르게 원격 제어, 정보 유출, 시스템 파괴 등의 통로로 쓰인다.
스파이웨어 - 사용자가 동의 없이 설치되어 컴퓨터 정보를 수집하고 전송하는 프로그램이나 트로이 목마와 같이 은폐성을 띄지 않는다.
랜섬웨어 - 내부 중요 문서 등을 암호화 하고, 이를 해제해 주는 조건으로 돈을 요구하는 형태의 프로그램
누킹소프트웨어 - 레지스트리, 키, 파일시스템을 훼손하여 블루스크린을 띄우는 등의 시스템 불능상태로 만드는 프로그램.
다운로더 - 그 자체적으로 악성행위를 하지는 않지만, 악성코드를 다운로드 해 주는 역할을 하는 프로그램
드라퍼 - 악성코드 등을 피해 시스템에 떨구는 역할을 하는 프로그램.


5. A - 증거 획득, B -보관/이송, C - 분석


6. 침입탐지 시스템의 탐지 방법은 <오용 탐지>와 <이상 행위 탐지>의 두 가지로 나눌 수 다. 오용탐지는 일반적인 공격을 기반으로 한 침입 규칙을 비교하여 분석하여 침입 여부를 판단한다. 따라서 지속적인 침입 탐지규칙에 대한 업데이트가 필요하다. 이상행위탐지는 일반적인 행동을 기반으로 하여 이상 행위 여부를 판단하는 것으로, 일반적이 아닌 행동을 하는 것을 모두 이상행위로 탐지하기 때문에 false positive 확률이 높아 정확성이 떨어진다.


7. 버퍼 오버플로우란 취약한 개발을 통해 입력한 버퍼의 값이 스택이나 힙의 적절한 공간을 넘쳐 흘러 리턴되는 주소지를 공격자가 원하는 곳으로 변경시키는 방법을 통해 공격자의 쉘코드를 실행시키는 공격 방식이다.
버퍼 오버플로우를 막기 위해서는 ROP(Return Oriented Programming) 방식을 이용하여 악의적인 코드의 주입을 방해하는 방식을 주로 이용한다. 그 예로, DEP(Data Execution Protection), NX(Not Executable), ASLR(Address Space Layout Randomization), Stack Canary(Stack 내에 Canary 값을 두어 함수가 리턴되었을때의 Canary 값이 바뀌었는지 확인하는 방식) 등의 방식이 있다.


8. 프로그램 개발 시 정확한 포맷 스트링을 사용하지 않았을 경우 이를 이용하여 임의의 명령어를 수행하거나 UID를 바꿀 수 있는 공격으로, 출력문 등에서 올바르지 못한 방법을 악용하여 공격자가 실제 메모리 번지를 원하는 값으로 변경하거나 시스템 루트권한을 획득하는 방식의 공격이다. 대응책으로 SetUID 제거 등이 있다.


9. Race Condition (경쟁조건)
   1) 임시파일 생성을 가능한 막는다.
   2) symbloic link를 만드는 것을 막는다. (unlink() 불가능하게)
   3) create()와 Open()의 구분을 명확히 하여, 파일 생성/쓰기가 안되도록 한다.
   4) umask는 022 정도로 유지하여, 다른 유저의 write permission을 막는다.


10. 시스템 자원을 너무 많이 사용하는 특정 유저나 프로그램의 무한루프 방지를 위해 다음과 같이 프로세스 수, 메모리 사용량등에 대해 제한 설정을 합니다. 먼저 vi에디터를 이용하여 /etc/pam.d/login을 열어 사용자 로그인 시 적용되도록 /lib/security/pam_limits.so 및 pam_selinux.so를 넣어주고, /etc/lib/security/pam_limits/so 파일을 열어 특정 계정, 혹은 모든 유저에 대해 사용가능한 프로세스 수 제한, 동시 접속 수 제한, 사용 가능 메모리 제한 설정을 한다.

[root@test] # vi /etc/pam.d/login
#pam_selinux.so open should be the last session rule
session      required    pam_selinux.so open
session      required    /lib/security/pam_limits.so


[root@test] # vi /etc/security/pam_limits.so
*                  soft         core                0                         <-- core="" p="" x="">*                  hard         rss                  10000                   <-- 5m="" p="">@hackers     soft         nproc              20                        <- 20="" br="">
@hackers     hard        nproc              30                        <- 30="" br="">
*                  hard        maxlogins         10                        <- 10="" p="">
* : 모든 유저
@ hackers : 해당 hackers라는 그룹에 속하는 유저
hard : 절대 한계를 넘을 수 없음


11.IPSec은, 본질적으로 데이터 송신자의 인증을 허용하는 인증 헤더 (AH)와, 송신자의 인증 및 데이터 암호화를 함께 지원하는 ESP (Encapsulating Security Payload) 두 종류의 보안 서비스를 제공한다. AH는 무결성, 데이터 발신처 인증, 재전송 공격으로부터 보호하고, IP Spoofing 공격에 대해서도 방어가 된다. 하지만 AH의 Payload는 암호화 되지 않는다.

반면 ESP에서는 공유 정보를 이용하여 패킷을 암호화하여 기밀성을 보장한다.

IPSec에서의 키 관리 프로토콜은 IKE, ISAKMP 등이 있다. 통신 상호 개체간의 연결-관계를 뜻하는 SA(Security Association)에서는 SPI(AH, ESP에서 SA와의 연관을 위한 구분자), 목적지 주소, 사용할 보안 프로토콜이 중요하다.

IPSec의 운용모드는 Tunnel mode와 Transport mode가 있는데, Tunnel mode의 경우 패킷 전체를 암호화하고 앞에 새로운 header를 붙여 두 네트워크의 gateway-gateway간 연결을 해 주는 방식이며, Transport mode의 경우 IP헤더는 그대로 이용하며 데이터 부분만 암호화 하여 전송하는 방식으로 Host-Host간 연결에 주로 쓰인다.


12.
(1) switch jamming
- switch의 ARP 캐쉬 테이블을 모두 채워 switch가 아닌 hub처럼 동작하게 강제적으로 만드는 방법. ARP 캐쉬 테이블을 채우기 위해 맥주소를 변경하면서 ARP 패킷을 계속 전송하여 ARP 캐쉬 테이블을 넘치게 한다.

(2) ARP Spoofing
- 공격자의 맥 주소를 스니핑 하려는 PC의 맥 주소로 변경하여 ARP를 뿌려 스니핑을 하는 기법

(3) ARP Redirection
자신의 MAC 주소를 스위치 MAC 인것처럼 broadcast ARP 패킷을 전송하여 모든 호스트와 스위치 사이의 트래픽을 스니핑하고, 이후 IP forwarding 기능을 이용해 사용자들이 눈치채지 못하게 하는 방법

(4) ICMP Redirection
호스트들에게 위조된 ICMP Redirection 메시지를 보내 공격자의 호스트로 패킷을 보내도록 하는 방법. (ICMP Redirection 메시지는 여러개의 라우터가 있을때 정상적으로 패킷을 받기 위해 전송)

(5) 스위치 모니터 포트로 스니핑.


13. 160


14. CA(인증기관), RA (등록기관), 사용자, 디렉터리


15. MAC (강제적 접근 통제)
     DAC (임의적 접근 통제)
     RBAC (역할기반 접근 통제)


16. 백로그큐를 늘려주고, Syncookie 설정을 하고, 사설 아이피와 같은 비정상 아이피에 대해서는 사전에 방화벽에서 차단해 주고, First syn drop 방식 사용


17. HTTP Get flooding과 UDP Flooding, ICMP Flooding을 혼합한 형태의 DDoS 공격으로 웹 서버의 연결 자원 고갈과 더불어서 네트워크 대역폭 자원의 고갈을 동시에 일으킨 공격방법이다. 이중 Get flooding 공격에서 루트 페이지에 대한 get 요청을 2회 수행하면서, cache-control 필드를 no-store로 설정하여 패킷을 전송하였음.
그동안은 주로 네트워크 회선의 대역폭 고갈의 DDoS가 많았기 때문에 , L7 레벨에서의 DDoS 공격에 대해 빠른 방어가 어려웠음.


18. 먼저 공격패킷의 패턴을 추출해 내서 해당 패턴에 대한 차단을 진행해야 한다. 그리고 HTTP Get Flooding 공격은 이미 TCP 3-way-handshake가 끝난 이후이므로, src 아이피에 대한 위변조가 어려우므로, 공격에 쓰이고 있는 src 아이피를 찾아내어 방화벽에서 차단해 준다. src 아이피를 찾아내기 위한 방법으로 공격하는 페이지를 특정 페이지로 302 리다이렉션 처리 하는 경우, 웹 브라우저로 접속하는 정상 사용자의 경우 리다이렉트 된 페이지로 접속하지만, 좀비PC의 BOT 등은 임시로 이동된 페이지로 요청하지 않으므로 아이피 리스트를 비교하여 추출할 수 있다.


19. R.U.D.Y는 Are You Dead Yet?의 약자로 http post 데이터를 보낼때 content length를 엄청 크게 잡은 이후 실제 데이터를 작게 보내는 패킷을 여러개 보내, 해당 content length 만큼의 데이터를 받을때까지 대기하는 웹 서버의 자원을 고갈시키는 형태의 공격이다.
 Slowloris 공격은 malformed http header를 보내어 웹 서버의 자원을 고갈시키는 방법으로, http 헤더의 끝이 \r\n\r\n으로 끝나야 하는데, \r\n 만 있는 상태로 패킷을 보내, 서버가 남은 http 헤더를 기다리며 커넥션을 유지하여 웹 서버의 자원을 고갈시키는 방법이다.
R.U.D.Y나 Slowloris 공격의 경우 공격 패킷에 특정한 패턴이 있으므로 해당 패턴에 대한 차단 및 timeout 시간을 설정하여 무한정 기다리지 않고 연결을 종료하도록 하고, content-length에 대한 제한 설정을 하며, 특정 접속자가 동시 접속을 하는 것에 대한 임계치를 설정하거나, 웹 서버의 부하를 줄이기 위해 웹 서버 앞단에 캐슁서버를 두어서 커넥션 유지 시간을 설정해 차단하는 것도 방법이다.


20. TCP-Wrapper는 xinetd 데몬에 의해 구동되는 네트워크 서비스들에 대한 접근통제, 인증, 로깅 등을 제공하는 서비스로 /etc/hosts.allow와 /etc/hosts.deny 에 지정한 접근통제 정책에 의거해 접근통제를 제공하며, /etc/xinetd.conf에 tcpd를 통해 서비스가 되도록 내용을 수정하여야 한다. 또한 로그를 남기기 위해서는 /etc/syslog.conf에 설정을 한다.


21. DNS 싱크홀 서버





댓글 없음:

댓글 쓰기

..