목록화

inthyes·2023년 6월 24일
0

SECURITY

목록 보기
1/6

1. 풋프린팅

1.1 풋프린팅에 대한 이해

  • 풋프린팅(Footprinting)

    • 발자국을 살펴보는 일
    • 공격 대상의 정보를 모으는 방법 중 하나
    • 사회 공학이란 일반적인 사회 현상 연구가 아니다. 친구끼리 사용자 계정이나 패스워드 정보를 주고받거나, 패스워드를 잊지 않으려고 수첩이나 컴퓨터 옆에 적어 놓은 경험이 있을 것이다. 사회 공학 기법은 이런 점을 이용하는 해킹이다.
    • 언뜻 ‘그런 게 무슨 해킹이야. 정말 해커라면 그런 것들로 시스템을 뚫고 들어가는 게 무슨 의미가 있겠어?’라고 생각할지 모른다. 하지만 이는 해커에게도 보안 책임자에게도 무척 중요한 문제이다. 실제로 패스워드가 노출되는 사건의 대부분이 스니핑이나 스푸핑처럼 고급 기술이 아닌 사회 공학에 의한 것이다. 세기의 해커로 알려져 있는 케빈 미트닉이 가장 능통한 분야도 사회 공학으로, 사회 공학만을 이용해 자신을 해고한 회사 시스템의 핵심부까지 침투한 이야기를 실은 책도 있다.
  • 사회 공학 기법(Social Engineering)

    • 실제로 패스워드가 노출되는 사건의 대부분이 사회 공학에 의한 것
    • 친구끼리 사용자 계정이나 패스워드 정보를 주고 받거나, 패스워드를 잊지 않으려고 수첩이나 컴퓨터 옆에 적어 놓은 것들을 이용하는 해킹
  • 해킹에 필요한 정보

    • 침투하고자 하는 시스템의 사용자 계정
    • 패스워드를 찾기 위한 계정을 사용하는 사람의 정보
    • 게시판 이용
    • 협력사나 계열사의 보안 조치 확인
    • 주의사항: 공격 대상 사이트를 직접 접속하는 것보다 유틸리티로 웹 사이트를 다운로드한 뒤 검색하는 것이 좋음

2. 스캔

2.1 스캔에 대한 이해

  • 스캔(Scan)
    • 서비스를 제공하는 서버의 작동 여부와 서버가 제공하는 서비스를 확인하기 위한 작업
    • TCP기반의 프로토콜은 기본적으로 요청을 보내면 응답을 전달해줌

2.2 ping

  • Ping
    • 네트워크와 시스템이 정상적으로 작동하는지 확인하기 위한 간단한 유틸리티
    • ICMP(Internet Control Message Protocol)를 사용하며, 기본적으로 TCP/IP네트워크에서 사용

2.3 ICMP 스캔

  • ICMP를 이용해 공격 대상 시스템의 활성화 여부를 알아보는 방법
    • Echo Request(Type 8)와 Echo Reply(Type 0) 이용하기
    • Timestamp Request(Type 13)와 Timestamp Reply(Type 16) 이용하기
    • ICMP Address Mask Request(Type 17)와 ICMP Address Mask Reply(Type 18) 이용하기 → 가장 일반적인 방법 : Echo Request(Type 8) & Echo Reply(Type 0)를 이용하는 것
  • 윈도우 실행 결과
    • ICMP패킷의 길이를 나타냄(윈도우: 32바이트/ 유닉스||리눅스: 56바이트)
    • 공격 대상에서 보내온 ICMP Echo Reply패킷의 크기
    • Echo Request 패킷을 보낸 후 Reply 패킷을 받기까지의 시간
    • TTL(Time TO Live)값
    • Request 패킷의 개수, Reply 패킷의 개수, 손실된 패킷의 개수
    • Request 패킷을 보낸 후 Reply 패킷이 오기까지의 시간 정보
  • 윈도우 실행 결과

  • 우분투 실행 결과

    - 리눅스는 중지 명령을 내리기 전까지 Request 패킷을 계속 보냄
  • ICMP Echo Request 패킷이 막혔을 때 이용할 수 있는 방법

    1. Timestamp Request 패킷 이용

    2. Information Request 패킷 이용

    3. ICMP Address Mask Request와 Reply 패킷을 이용
      → ICMP를 이용한 ping은 시스템 하나를 조사하기에 적절

2.4 TCP와 UDP를 이용한 스캔

  • TCP Open 스캔
    • 열린 포트에 대해 완전한 세션을 성립시킴으로써 포트의 활성화 상태 파악
    • 먼저 작동할 것으로 예상하는 포트에 세션을 생성하기 위한 SYN패킷을 보낸다.
    • 포트가 열린 경우 서버에서 SYN+ACK패킷이 돌아오고, 공격자는 다시 ACK패킷을 보낸다.
    • Reverse Ident 스캔은 세션을 성립한 상태에서 원격지 서버에서 데몬(사용자 인터페이스에는 나타나지 않지만 서비스를 요청하면 이에 반응할 수 있도록 항상 실행되고 있는 프로그램)을 실행하고 있는 프로세스의 소유권자를 확인하는 방법이다.
    • Reverse Ident스캔은 세션을 성립한 후에 113번 포트를 열고 113번 포트는 사용자 인증을 위해 사용되지만 이 서비스는 보통 중지되어 있다.
  • 스텔스(Stealth) 스캔
    • 로그를 남기지 않는 것만이 아니라, 공격 대상을 속이고 자신의 위치를 숨기는 스캔 모두를 통칭
    • 대표적인 경우로 TCP Half Open 스캔이 있음
    • FIN(finish) 스캔 : 포트가 열린 경우 응답이 없고, 닫힌 경우 RST패킷이 돌아옴
    • NULL 스캔 : 플래그 값을 설정하지 않고 보낸 패킷
    • XMAS 스캔 : ACK, FIN, RST, SYN, URG 플래그 모두를 설정하여 보낸 패킷
  • ACK 패킷을 이용한 스캔
    • 모든 포트에 ACK 패킷을 보낸 후 이에 대한 RST 패킷을 받아 분석
    • 포트가 열린 경우 TTL값이 64이하인 RST 패킷, 윈도우가 0이 아닌 임의의 값을 가진 RST 패킷이 돌아옴(닫힌 경우엔 TTL값이 일정하게 큰 값이며, 윈도우 크기가 0인 RST 패킷)
  • TCP 패킷을 이용한 스캔
    • 모든 시스템에 동일하게 적용되지 않으며, 많이 알려져서 거의 적용되지 않음
    • SYN 패킷을 이용한 스캔 방법은 세션을 성립하기 위한 정당한 패킷과 구별할 수 없기 때문에 아직도 유효하며 아주 효과적임
  • TCP 단편화(Fragmentation)
    • 크기가 20바이트인 TCP헤더를 패킷 두 개로 나누어 보냄(첫 번째 패킷은 출발지와 도착지 IP주소, 두 번째 패킷에는 스캔하려는 포트 번호)
    • 첫 번째 패킷은 TCP 포트에 대한 정보가 없어 방화벽을 통과하고, 두 번째 패킷은 출발지와 목적지 주소가 없어 방화벽을 지날 수 있음
  • 시간차를 이용한 스캔
    • 아주 짧은 시간 동안 많은 패킷을 보내는 방법 : 방화벽과 IDS처리 용량의 한계를 넘기는 방법
    • 아주 긴 시간 동안 패킷을 보내는 방법
  • 시간차에 의한 공격의 구분
    • Paranoid : 5분이나 10분 간격으로 패킷을 하나씩 보냄
    • Sneaky : WAN에서는 15초 단위로, LAN에서는 5초 단위로 패킷을 보냄
    • Polite : 패킷을 4초 단위로 보냄
    • Normal : 정상적인 경우
    • Aggressive : 호스트에 대한 최대 타임아웃은 5분, 패킷당 25초까지 응답을 기다림
    • Insane : 호스트에 대한 최대 타임아웃은 75초, 패킷당 3초까지 응답을 기다림. 방화벽과 IDS의 네트워크 카드가 100Mbps 이상이 아니면 탐지하지 못함
  • FTP 바운스 스캔
    • 취약한 FTP 서버에서 PORT명령어를 통해 다른 시스템의 포트 활성화 여부를 확인
  • UDP 스캔
    • UDP는 포트가 닫힌 경우에 공격 대상이 ICMP Unreachable 패킷을 보내지만, 열린 경우에는 보내지 않는다.
    • UDP를 이용한 포트 스캔은 신뢰하기 어렵고 패킷이 네트워크를 통해 전달되는 동안 라우터나 방화벽에 의해 손실될 수 있음

3. 운영체제 탐지

3.1 운영체제 탐지에 대한 이해

  • 배너 그래빙(Banner Grabbing)
    • 상대 시스템의 운영체제를 확인하는 가장 기본적인 방법
    • 텔넷처럼 원격지 시스템에 로그인을 하면 뜨는 안내문과 비슷한 배너를 확인하는 기술
  • TCP/IP 반응 살펴보기
    • FIN 스캔 이용 : 적용되는 운영체제는 윈도우, BSD, Cisco, IRIS 등
    • 세션 연결 시 TCP 패킷의 시퀀스 넘버 생성을 관찰
      • 윈도우 : 시간에 따른 시퀀스 넘버 생성
      • 리눅스 : 완전 랜덤
      • FreeBSD, Digital-Unix, IRIX, 솔라리스 : 시간에 따른 랜덤한 증분
  • Netcraft 이용하기
    • 공격 대상의 운영체제에 대한 다양한 정보를 보여줌

4. 방화벽 탐지

4.1 방화벽에 대한 이해

  • 방화벽
    • 침입자를 차단하는 1차 방어선
    • 접속에 대한 허용과 차단을 결정
    • 침입 탐지 시스템(IDS) : 방화벽이 막을 수 없거나 차단에 실패한 공격을 탐지하여 관리자에게 알려주는 역할

4.2 방화벽 탐지

  • 방화벽 탐지
    • 방화벽 설치 여부를 알 수 있는 갖아 손쉬운 방법 : traceroute
    • Traceroute를 실행했을 때 *만으로 표시되는 곳이 라우팅에서 필터링 해주고 있거나 방화벽이 존재하는 것
  • firewalk
    • 방화벽의 ACL(Access Control List)을 알아내는 방법
  • firewalk 원리
    • 방화벽이 탐지되면 방화벽까지의 TTL보다 1만큼 더 큰 TTL값을 생성하여 보냄
    • 방화벽이 패킷을 차단할 경우, 아무 패킷도 돌아오지 않음
    • 방화벽이 패킷을 그대로 보내면 패킷은 다음 라우터에서 사라지고 라우터는 traceroute 과정처럼 ICMP Time Exceeded 메시지(Type 11)를 보냄
    • 공격자는 ICMP Time Exceeded 메시지 여부를 받은 포트에 대해 열린 포트임을 추측할 수 있음
  • 방화벽이 닫힌 포트에 패킷을 보낸 경우
    • 응답 패킷이 돌아오지 않음
  • 방화벽이 열린 포트에 패킷을 보낸 경우
    • 다음 라우터까지 전달된 후 ICMP Time Exceeded 메시지가 돌아옴

5. SNMP

5.1 SNMP에 대한 이해

  • SNMP(Simple Network Management Protocol)
    • 중앙 집중적인 관리 툴의 표준 프로토콜(비용 절반이상 감면)
  • SNMP 소개
    • SNMP 버전 1
      • 1988년 IAB에서 표준화 작업을 거쳐 SGMP(Simple Gateway Monitoring Protocol)를 발전시켜 만든 것
      • 보안 기능이 없어 해당 네트워크 장비의 모든 정보를 얻어낼 수 있음
    • SNMP 버전 2
      • 1993년 PDU(protocol Data Unit)타입을 정의할 수 있고, DES와 MD5를 이용한 보안 기능을 추가하여 만듦
    • SNMP 버전 3
      • 1999년 SNMP 버전 2에 인증 기능을 더함
  • SNMP 구성 요소
    • 관리 시스템과 관리 대상(Agent)으로 나뉨
    • 에이전트의 구성
      • SNMP(Simple Network Management Protocol) : 전송 프로토콜
      • MIB(Management Information Base) : 관리할 개체의 집합
      • SMI(Structure of Management Information) : 관리 방법
    • 관리 시스템과 에이전트 통신의 최소 일치 사항
      • 버전, 커뮤니티, PDU 타입
    • 관리 시스템과 에이전트 통신
      • Get Request : 관리 시스템이 특정 변수 값을 읽음
      • Get Next Request : 관리 시스템이 이미 요청한 변수 다음의 변수 값을 요청
      • Set Request : 관리 시스템이 특정 변수 값의 변경을 요청
      • Get Response : 에이전트가 관리 시스템에 해당 변수 값을 전송
      • Trap : 에이전트의 특정 상황을 관리 시스템에 알림
  • MIB
    • 관리자가 조회하거나 설정할 수 있는 개체들의 데이터베이스
    • 개체별로 트리 형식 구조를 이룸
  • SMI
    • 표준에 적합한 MIB를 생성하고 관리하는 기준(관리 정보 구조)
  • OID
    • MIB를 생성하려면 OID를 지정받아야 함(IP주소와 유사한 표기법 사용)
    • 각 제조업체나 기관은 특정 번호를 할당받고 이 번호를 생산한 장비에 부여

5.2 SNMP 취약점을 이용한 정보 획득

  • SNMP의 취약점
    • 기본적으로 누구라도 SNMP의 MIB정보를 볼 수 있음
    • 패킷이 UDP로 전송되어 연결의 신뢰도가 낮음
    • 데이터가 암호화되지 않은 평문으로 전송되어 스니핑 가능

5.3 보안 대책

  • SNMP의 보안 대책
    • SNMP가 불필요하다면 SNMP 사용을 막음
    • SNMP를 사용해야 한다면 커뮤니티를 패스워드처럼 복잡하게 설정하여 쉽게 노출되지 않도록 관리
    • 패킷을 주고받을 호스트를 설정하여 SNMP를 사용할 시스템의 IP를 등록

0개의 댓글