프로젝트 2 주차 데이터 링크계층MAC PPP ARP 프로토콜 목 차 데이터 링크계층의 프로토콜MAC ( 매체 접속 제어 ,Media Access Control) : 매체로 프레임을 보내거나 수신하기 위해 사용되는 기술 데이터 충돌을 방지하기 위해 LAN 에 연결된 모든 장치는 정의된 규칙에 따라 전송매체에 접근 하는데 매체 접근 제어 (MAC, Media Access Control) 개 요 작동 방 식 경쟁 방식 : 실시간으로 매체에 접근이 가능한 방식 토큰 제어 방식 : 토큰을 사용하여 정해진 순서나 시간에 따라 매체에 접근할 수 있는 방식MAC ( 매체 접속 제어 ,Media Access Control) : 매체로 프레임을 보내거나 수신하기 위해 사용되는 기술 표준 공학기관들과 통신회사에 의해 기술된 표준MAC ( 매체 접속 제어 ,Media Access Control) : 매체로 프레임을 보내거나 수신하기 위해 사용되는 기술 토큰링 순차적으로 (sequential) 방송하는 네트워크 토큰을 수신한 네트워크는 독점적으로 데이터를 전송할 수 있음 free token : 모든 호스트가 어떠한 프레임도 송신하고 있지 않는 경우 busy token : 특정 호스트가 데이터를 전송하고 있을 경우 독특한 형태의 bit 로 구성 전송 권한을 부여해주는 역할MAC ( 매체 접속 제어 ,Media Access Control) : 매체로 프레임을 보내거나 수신하기 위해 사용되는 기술 토큰링MAC ( 매체 접속 제어 ,Media Access Control) : 매체로 프레임을 보내거나 수신하기 위해 사용되는 기술 토큰링 토큰링의 토큰 형태 토큰링의 프레임 형태 우선권 , 프레임종류MAC ( 매체 접속 제어 ,Media Access Control) : 매체로 프레임을 보내거나 수신하기 위해 사용되는 기술 CSMA/CD Carrier Sense Multiple Access with Collision Dectection 모든 컴퓨터는 버스 에 연결 전송량이 적을 때 매우 효율적이고 신뢰성이 높음 일정 길이 이하의 데이터를 송신할 경우 충돌을 검출할 수 없음 CSMA/CD 방식을 사용하는 LAN 을 이더넷 (Ethernet) 이라고 함MAC ( 매체 접속 제어 ,Media Access Control) : 매체로 프레임을 보내거나 수신하기 위해 사용되는 기술 CSMA/CD Carrier Sense : 네트워크 장치가 데이터를 보내기 전 네트워크를 살펴보는 것 Collision Detection : 충동 발생한 후 , 감시하고 잼 신호를 통해 모든 컴퓨터에게 알려주는 것MAC ( 매체 접속 제어 ,Media Access Control) : 매체로 프레임을 보내거나 수신하기 위해 사용되는 기술 CSMA/CD Multiple Access : 아무도 통신하지 않을 때 모든 컴퓨터가 동시에 데이터전송MAC ( 매체 접속 제어 ,Media Access Control) : 매체로 프레임을 보내거나 수신하기 위해 사용되는 기술 CSMA/CD CSMA/CD 전송 방식 백 오프 ( Backoff )MAC ( 매체 접속 제어 ,Media Access Control) : 매체로 프레임을 보내거나 수신하기 위해 사용되는 기술 CSMA/CD CSMA/CD 프레임MAC PPP ARP 프로토콜 목 차 데이터 링크계층의 프로토콜PPP(Point to point protocol) : 점대점 데이터 링크 프로토콜 두 컴퓨터 간의 데이터 전송제어 및 관리 프로토콜 두 장치 간에 링크 설정 및 데이터 교환 네트워크 계층의 데이터에 대한 encapsulation 두 장치 간의 인증 절차 장치들 사이에서 교환될 프레임의 형식 특징 작동 방 식 LCP PAP, CHAP NCPPPP(Point to point protocol) : 점대점 데이터 링크 프로토콜 두 컴퓨터 간의 데이터 전송제어 및 관리 프로토콜 구 조 NCP(Network Control Protocol) networking state 에 있을 때 사용 3 계층으로부터 오는 데이터를 캡슐화 LCP(Link Control Protocol) 링크의 수립 , 유지 , 종료를 담당 WAN 구간의 데이터 링크 연결 제어 상위계 층 하 위계층PPP(Point to point protocol) : 점대점 데이터 링크 프로토콜 두 컴퓨터 간의 데이터 전송제어 및 관리 프로토콜 프레임 필 드PPP(Point to point protocol) : 점대점 데이터 링크 프로토콜 두 컴퓨터 간의 데이터 전송제어 및 관리 프로토콜 인 증 PAP( Password Authentication Protoco l ) 2-Way 핸드 쉐이킹 암호화가 없음 사용자 이름과 암호는 일반 텍스트로 전송 낮은 수준의 보안 제공 CHAP(Challenge Handshake Authentication) 3way 핸드쉐이크 방식 Challenge/response ( 질의 / 응답 ) 방식을 사용해 인증 PAP 보단 훨씬 강력한 보안 PPP 에서 인증은 중요한 역할을 함 자원을 사용하기 위해 접근하고자 하는 사용자를 인증하는 것 . ★PAP 와 CHAP 둘 다 PPP 프레임의 payload 필드를 통해 전송된다PPP(Point to point protocol) : 점대점 데이터 링크 프로토콜 두 컴퓨터 간의 데이터 전송제어 및 관리 프로토콜 PAP( Password Authentication Protoco l ) 인 증PPP(Point to point protocol) : 점대점 데이터 링크 프로토콜 두 컴퓨터 간의 데이터 전송제어 및 관리 프로토콜 CHAP(Challenge Handshake Authentication) 인 증PPP(Point to point protocol) : 점대점 데이터 링크 프로토콜 두 컴퓨터 간의 데이터 전송제어 및 관리 프로토콜 전체과 정MAC PPP ARP 프로토콜 목 차 데이터 링크계층의 프로토콜ARP(Address Resolution Protocol) : 논리적인 IP 주소를 데이터링크 계층의 물리적인 MAC 주소로 바꿔주는 프로토콜 작동 방 식 ARP 물리적 네트워크 주소 : 이더넷 또는 토큰링 48 비트 네트워크 카드 주소 패킷을 전송할 때 , 호스트의 IP 주소와 물리적 네트워크 주소가 필수: 논리적인 IP 주소를 데이터링크 계층의 물리적인 MAC 주소로 바꿔주는 프로토콜 작동 방 식 ARP(Address Resolution Protocol): 논리적인 IP 주소를 데이터링크 계층의 물리적인 MAC 주소로 바꿔주는 프로토콜 패 킷 ARP(Address Resolution Protocol): 논리적인 IP 주소를 데이터링크 계층의 물리적인 MAC 주소로 바꿔주는 프로토콜 RARP ARP(Address Resolution Protocol) RARP 프로토콜은 ARP 와 반대로 MAC address 을 IP 로 매핑시키는 역할 처음 전원이 들어오고 RARP 서버로부터 IP 를 부여받을 때: 논리적인 IP 주소를 데이터링크 계층의 물리적인 MAC 주소로 바꿔주는 프로토콜 스푸 핑 ARP(Address Resolution Protocol) 통신하는 두 대상의 MAC 주소를 공격자 MAC 주소로 바뀌어 중간에서 패킷을 가로채는 공격 정상 통 신: 논리적인 IP 주소를 데이터링크 계층의 물리적인 MAC 주소로 바꿔주는 프로토콜 스푸 핑 ARP(Address Resolution Protocol) 통신하는 두 대상의 MAC 주소를 공격자 MAC 주소로 바뀌어 중간에서 패킷을 가로채는 공격 공격 통신Thank You{nameOfApplication=Show}
Network Layer in OSI 7 Layer 프로젝트 1 주차목 차OSI 7 Layer 네트워크계층 라우 터 데이터그램 OSI 7 Layer 란 ? OSI 7 Layer 1 OSI 7 Layer 의 정의 Open Systems Interconnection 의 줄임말로 국제 표준화 기구 (ISO) 에서 개발한 모델로 , 컴퓨터 네트워크 프로토콜 디자인과 통신을 계층으로 나눈 것으로 일반적으로 OSI 7 계층 모델이라고 불리기도 한다 . 정 의 각각의 계층에서 독립적인 프로토콜이 동작함 . 각 계층은 하위 계층의 기능만을 이용하고 , 상위 계층에게 기능을 제공함 . 일반적으로 하위 계층들은 하드웨어로 , 상위계층들은 소프트웨어로 구현됨 . 특 징 IPv6 주소체계 라우팅 알고리즘 라우팅 프로토 콜 캐스트방식패킷은 송신자의 응용프로그램계층에서 시작하여 한 계층씩 내려가면서 하위 계층의 Header 에 의해 포장되고 , 수신자의 컴퓨터에 도착하여 올라가면서 Header 가 하나씩 벗겨져 수신자의 응용프로그램 계층에서는 송신 프로그램이 보낸 원본 데이터를 수신 할 수 있게 됨 . OSI 7 Layer 란 ? OSI 7 Layer 1 실질적인 네트워크 구조 OSI 7 Layer 네트워크계층 라우 터 데이터그램 IPv6 주소체계 라우팅 알고리즘 라우팅 프로토 콜 캐스트방식네트워크 계층이란 ? OSI 7 Layer 2 네트워크 계층의 정의 상위계층 하 위계층 네트워크를 구성하는 컴퓨터나 통신 장비등의 각 노드 를 데이터가 목적지까지 올바르게 도달할 수 있도록 경로 선택 및 라우팅 기능 네트워크 계층 OSI 7 Layer 네트워크계층 라우 터 데이터그램 IPv6 주소체계 라우팅 알고리즘 라우팅 프로토 콜 캐스트방식네트워크 계층 OSI 7 Layer 2 네트워크 계층의 용 어 패킷이 라우터의 입력 링크에 도달했을 때 라우터는 그 패킷을 적절한 출력 링크로 전달하는 것 . 포워딩 송신자가 수신자에게 패킷을 전송 할때 , 패킷 경로를 결정 . 라우 팅 각 라우터가 가지고 있가되고 , 해제시 지워지므로 네트워크 라우터는 현재 모든 연결에 대한 정보를 유지 해야 한다 . 연결 상태 정보 OSI 7 Layer 네트워크계층 라우 터 데이터그램 IPv6 주소체계 라우팅 알고리즘 라우팅 프로토 콜 캐스트방식네트워크 계층 OSI 7 Layer 2 가상회선과 데이터그램 네트워크 네트워크 계층 비연결형 서비스 : 데이터그램 네트워크 종단 시스템이 패킷을 보낼 때 마다 패킷에 목적지 종단 시스템의 주소를 찍어 보냄 원 리 패킷의 목적지 주소 : 11001000 00010111 00*************1 - 0 11001000 00010111 00*************0 - 3 포워딩 테이블 목적지 주소의 프리픽스 (prefix) 를 포워딩 데이블과 대응시킴 OSI 7 Layer 네트워크계층 라우 터 데이터그램 IPv6 주소체계 라우팅 알고리즘 라우팅 프로토 콜 캐스트방식라우터 OSI 7 Layer 3 라우터의 구조 스위치 구조 입력포트 출 력 포트 라우팅 프로세서 OSI 7 Layer 네트워크계층 라우 터 데이터그램 IPv6 주소체계 라우팅 알고리즘 라우팅 프로토 콜 캐스트방식라우터 OSI 7 Layer 3 입력 포트 라인종단 데이터 링크 처리 ( 캡 슐화 ) 검색 (lookup) 포워딩 큐잉 입력 포트 내부 라인종단 : 라우터로 들어오는 입력 물리 링크의 종단으로 물리 계층기능 데이터 링크 처리 : 들어오는 링크의 반대편에 있는 링크 계층과 상호 운용하기 위해 필요한 링크 계층 기능을 수행 검색 : 도착한 패킷을 전달할 출력 포트를 포워딩 테이블에서 찾는 것 . 포워딩 : 패킷의 적절한 출력 링크로 이동시키는 것 . 큐잉 : 인터페이스로 나가기 위해 대기하는 패킷들을 줄세우는 작업 . 라우터의 스위칭 구조로 전달된 패킷이 적절한 포트로 출력되도록 하기 위한 검색과 전달 하는 것 입력 포트 OSI 7 Layer 네트워크계층 라우 터 데이터그램 IPv6 주소체계 라우팅 알고리즘 라우팅 프로토 콜 캐스트방식라우터 OSI 7 Layer 3 스 Layer 네트워크계층 라우 터 데이터그램 IPv6 주소체계 라우팅 알고리즘 라우팅 프로토 콜 캐스트방식데이터그램 OSI 7 Layer 4 데이터그램 구성요소 VER( 버전 ) : 데이터그램의 IP 프로토콜 버전 명시 HLEN( 헤더길이 ) : IP 데이터그램에서 실제 데이터가 시작하는 곳 명시 Service Type : 데이터그램이 어떻게 처리되어야 하는지 정의 명시 Total length : IP 데이터그램의 전체길이 Identification , Flags, Fragmentation offset : 단편화 할때 사용 Time to live : 데이터그램이 네트워크에서 무한히 순환하지 않게 표기 OSI 7 Layer 네트워크계층 라우 터 데이터그램 IPv6 주소체계 라우팅 알고리즘 라우팅 프로토 콜 캐스트방식데이터그램 OSI 7 Layer 4 데이터그램 구성요소 Protocol : 목적지의 트랜스포트 계층 프로토콜 명시 Header checksum : 라우터가 IP 데이터그램을 받을 때 비트 오류 찾음 Source IP address : 출발지 IP 주소 Destination IP address : 도착지 IP 주소 Options and padding : IP 헤더 확장 OSI 7 Layer 네트워크계층 라우 터 데이터그램 IPv6 주소체계 라우팅 알고리즘 라우팅 프로토 콜 캐스트방식데이터그램 OSI 7 Layer 4 데이터그램 단편화 MTU 보다 큰 데이터그램을 전송하기 위해 MTU 보다 작은 단위로 나누는 과정 . 단편화 개요 프레임의 최대크기 . 전송의 안정성을 높이기 위해 여러 방식의 네트워크는 MTU 가 각각 다름 . MTU 조각들을 다시 합치는 것 . 단편들은 트랜스포트계층에 도달하기 전에 재결합 되어야 함 . 네트워크 라우터가 아닌 종단 시스템에서 재결합함 . 재결 합 목적지 호스트가 데이터그램이 조각인지 판단하기 위해 인식자 , 플래그 , 단편화 오프셋 필드을 이용함 . OSI 7 Layer 네트워크계층 라우 터 데이터그램 IPv6 주소체계계 Classless Interdomain Routing 의 약어로 서브넷 주소체계 표기를 일반화함 . a.b.c.d /x 형식으로 최상위 비트를 의미하는 x 는 IP 주소의 네트워크 부분을 구성함 . CIDR 의 정의 a.b.c.d /21 : 첫 21 비트들은 기간의 네트워크 프리픽스를 나타내고 이 기관의 모든 장비의 IP 주소의 첫 부분 . 나머지 11 비트는 기관 내부의 특정 호스트 식별 ◼외부 기관의 라우터가 목적지 주소가 내부 기관인 데이터그램 전달시 앞의 x 비트들만 고려한다 = 포워딩 테이블의 크기를 줄여줌 ◼기존 클래스 주소체계에 비해 다양한 크기의 서브넷을 구성할 수 있게 해 IP 주소 낭비를 막을 수 있다 CIDR 의 장점 OSI 7 Layer 네트워크계층 라우 터 데이터그램 IPv6 주소체계 라우팅 알고리즘 라우팅 프로토 콜 캐스트방식IPv4 주소체계 OSI 7 Layer 5 동적 호스트 구성 프로토콜 DHCP(Dynamic Host Configuration Protocol) 자동으로 IP 주소나 DNS 주소를 할당 받는 것 . 네트워크를 자동으로 호스트와 연결해주기 때문에 플러그 앤 플레이 프로토콜이라고도 함 . 동적 호스트 구성 프로토콜 정의 OSI 7 Layer 네트워크계층 라우 터 데이터그램 IPv6 주소체계 라우팅 알고리즘 라우팅 프로토 콜 캐스트방식라우팅 알고리즘 OSI 7 Layer 6 라우팅 알고리즘이란 ? 주어진 라우터에서 라우터를 연결하는 링크들의 집합에서 출발지 라우터로부터 목적지 라우터까지 ‘ 좋은 ’ 경로를 결정하는 것 라우팅 알고리즘의 목적 호스트에 대한 디폴트 라우터 (default router) OSI 7 Layer 네트워크계층 라우 터 데이터그램 IPv6 주소체계 라우팅 알고리즘 라우팅 프로토 콜 캐스트방식라우팅 알고리즘 OSI 7 Layer 6 라우팅 알고리즘 분류 방법 분산 라우팅 알고리즘 네트워크에 대한 완벽한 글로벌 정보 없이 점차적으로 최소비용경로 계산 거리벡터 (DV) 알고리즘 글로벌 라우팅 알고리즘같은 알고리즘을 사용하는 라우터의 그룹 자치 시스템 (Autonomous System,AS ) 1 개의 AS 내부에서 동작하는 라우팅 알고리즘 인트라 AS 라우팅 프로토콜 게이트 웨이 라우터 OSI 7 Layer 네트워크계층 라우 터 데이터그램 IPv6 주소체계 라우팅 알고리즘 라우팅 프로토 콜 캐스트방식라우팅 프로토 콜 OSI 7 Layer 7 RIP Routing Information Protocol 의 약자 라우터 네트워크의 최적 경로를 결정하기 위한 프로토콜 DV 알고리즘을 사용함 RIP 정의 ★홉 (hop) : 출발지 라우터에서 목적지 서브넷까지의 최단 경보를 지나는 서브넷 숫자 * 홉에 의존해 홉의 카운팅이 낮으면 가장 좋은 경로라고 지정 각 라우터는 라우팅 Table 을 가짐 RIP 메시지를 통해 30 초마다 라우팅 업데이트를 함 RIP 특징 구현하기 쉬 움 많은 메모리 요구 안함 홉 카운트가 15 이상이면 보낼 수 없다고 판단 , 대규모 네트워크에서 적용 불가 비용을 홉 카운트에만 의존 , 최적의 경로 선택 불가 장점 단 점 OSI 7 Layer 네트워크계층 라우 터 데이터그램 IPv6 주소체계 라우팅 알고리즘 라우팅 프로토 콜 캐스트방식라우팅 프로토 콜 OSI 7 Layer 7 OSPF Open Shortest Path First 의 약자 LS 알고리즘 사용 RIP 의 문제점을 해결 OSPF 정의 OSPF 라우터 사이의 모든 교환은 인증을 받아야 함 OSPF 패킷에는 비밀키가 붙여져 있음 OSPF+ 비밀키 ========= 패킷인증 MD5 해시 여러 경로가 있을 때 , OSPF 는 여러 경로로 사용가능 OSPF 는 AS 을 단일 라우팅 도메인에서 계층적으로 조직화 가능 여러 경로 보안 계층지원 OSI 7 Layer 네트워크계층 라우 터 데이터그램 IPv6 주소체계 라우팅 알고리즘 라우팅 프로토 콜 캐스트방식라우팅 프로토 콜 OSI 7 Layer 7 BGP Border Gateway Protocol 의 약자 AS 와 AS 간 사용되는 라우팅 프로ow}
프로젝트 6 주 차 PORT SCANPort Scan? TCP 패킷 분석 UDP 패킷 분석 Port Scanning 대응방법 목 차Port Scan?PORT SCAN ? UDP 와 TCP 를 이용해서 해당 시스템에 포트가 열려있는지 확인하는 것 이는 곧 어느 서비스가 활성화 되어 있는지 , 어느 포트로 침입해야 하는지에 대한 기초 정보를 제공하기에 해커에게 유용한 정보를 줄 수 있음 .Open Scan TCP connect 완전한 연결을 하는 스캔으로써 , 3-way-handshaking 방식을 사용함 로그가 남아 탐지되기 쉬움 . 신뢰성이 높음 . PORT SCAN ?Half-open Scan Open 스캔과는 다르게 완전한 세션을 성립하지 않는 것 SYN TCP flag SYN 플래그를 보내서 SYN/ACK 가 오는 것을 확인해 포트가 열려 있는 것만 확인한후 RST 를 보내서 연결을 끊어버림 = 정상적인 연결이 아님 = 로그가 남지 않음 PORT SCAN ?Stealth FIN , NULL, XMAS 스캔 다른 스텔스 스캔으로는 FIN(Finish) 패킷을 보내는 방법이 있다 . NULL 과 XMAS 패킷 또한 이와 같은 결과를 얻을 수 있다 . 여기서 NULL 은 아무 Flag 도 설정하지 않음을 XMAS 는 ACK, FIN, RST, SYN, URG 플래그를 모두 설정한 것을 말한다 . XMAS 에 선물을 푸짐하게 주지않는가 그래서 이렇게 명한다 . TCP FIAG 의 FIN 을 활성화하여 패킷을 보냄 TCP FIAG 를 모두 비활성화 하여 패킷을 보냄 TCP FIAG 를 모두 비활성화하여 패킷을 보냄 TCP FIN Xmas NULL PORT SCAN ?Stealth 시간차 공격 짧은 시간 , 긴 시간 두 가지 방법이 있다 . 아주 짧은 시간에 보내는 것은 방화벽과 IDS 처리 용량 제한을 넘기는 방법 긴 시간 동안에 걸쳐서 보내는 방법은 패킷 패턴에 대한 파악을 못하게 하여 공격자를 탐지하는 것을 어렵게 한다 . 다음과 같이 또 분류된다 . Paranoid : 5 분이나 10 분 간격으로 패킷을 하나씩 보낸다 . Sneaky : WAN 에서는 15 초 , LAN 에서는 5 초 단위로 패킷을 보낸다 . Polite : 패킷을 0.4 초 단위로 보낸다 . Normal : 정상적인 경우다 . Aggressive : 호스트에 대한 최대 타밍아웃은 5 분이며 , 패킷당 1.25 초까지 응답을 기다린다 . Insane : 호스트에 대한 최대 타임아웃은 75 초 , 패킷당 0.3 초까지 응답을 기다린다 . 랜 카드가 100Mbps 이상이 아니면 탐지 불가하다 . PORT SCAN ?Stealth TCP 단편화 TCP 를 이용한 또 다른 스텔스 스캔 방법으로 TCP 단편화 (fragmentation) 이 있다 . 20 바이트인 TCP 헤더를 패킷 두 개로 나누어 보내는 것이다 . 첫 번째는 출발 IP, 도착 IP 주소를 두 번째는 스캔하고자 하는 포트 번호가 있는 부분을 보낸다 . 첫 번째 패킷은 TCP 포트에 대한 정보가 없기 때문에 두 번째 패킷은 IP 주소에 대한 정보가 없어 방화벽을 지날 수 있다 . 이 방법은 방화벽은 통과하지만 IDS( 침입 탐지 시스템 ) 은 피할 수 없다 . ACK 패킷 ACK 패킷을 보내는 방법이다 . ACK 패킷을 포트 하나가 아니라 모든 포트에 보낸다 . ACK 패킷을 받은 시스템은 이에 RST 패킷을 보낸다 . RST 패킷에 기록되어 있는 TTL 값과 윈도우의 크기를 분석한다 . 포트가 열려 있을 경우 TTL 값이 64 이하인 RST 패킷이 윈도우가 0 이 아닌 임의의 값을 가진 RST 패킷이 들어온다 . 포트가 닫힌 경우에는 TTL 값이 운영체제에 따라 일정하게 큰 값이며 , 윈도우의 크기가 0 인 RST 패킷이 들어온다 . PORT SCAN ?UDP 스캔 PORT SCAN ?TCP FIAG 종류 SYN ACK RST PSH URG FIN 연결 요청 세션 설정하는데 사용 , 시퀀스 번호 전송 응답 시퀀스 번호 + 받은 데이터 양 전송 재연결 종료 양방향에서 동시에 일어나는 중단 작업 , 비정상적인 세션 연결 끊기 선처리 요청 버퍼가 채워지기를 기다리지 않고 바로 데이터 전송 긴급 데이터 연결 종료 요청 PORT SCAN ?TCP 패킷 분석TCP 패킷 분석 클릭 !!TCP 패킷 분석1 번째 세션 TCP 패킷 분석25 번째 세션 TCP 패킷 분석Port Scan TCP 성 공 실 패 ACK RST ACK SYN TCP 패킷 분석열려있는 포트일 경우 t cp.flags.syn == 1 tcp.flags.ack == 1 TCP 패킷 분석닫혀있는 포트일 경우 tcp.flags.reset == 1 tcp.flags.ack == 1 TCP 패킷 분석UDP 패킷 분석UDP 패킷 분석 클릭 !!UDP 패킷 분석 192.168.0.112 (1873) = 192.168.0.15 (161) TCP 와 다르게 ICMP 프로토콜로 “Port Unreachable” 보냄 UDP 에서는 포트가 열려 있지 않을 경우 , 3 계층에 존재하는 ICMP 가 대신 메시지를 전해줌UDP 패킷 분석 ip.src ==192.168.0.112 ip.dst == 192.168.0.15 접속자 IP(192.168.0.112) 와 목적지 IP(192.168.0.15) UDP 프로토콜 ICMP 프로토콜 포트가 닫혀 있는 경우 필터링 icmp udpUDP 패킷 분석 포트가 닫혀 있는 경우 필터링UDP 패킷 분석 포트가 열려 있는 경우 필터링 열려 있는 경우 ICMP 프로토콜은 사용되지 않기 때문에 , ip.src ==192.168.0.112 ip.dst ==192.168.0.15 udp not icmpPort Scanning 대응방 법PORT Scanning 대응방법 ? ▶ 네트워크 장비에 의한 필터링 Router 나 switch 에서 ACL 을 이용하여 허용하지 않은 사용자 이외에는 네트워크 차단 ▶ 서버에서 실행되고 있는 불필요한 서비스 중지 불필요하게 Open 되어 있는 포트를 막음 ▶ 침입탐지 시스템과 침입차단 시스템의 연동 네트워크 장비에 의한 필터링은 scanning 을 탐지하지 못하기 때문에 어디에서 공격이 들어오는지 알 수 없음 . 점검하더라도 이미 scanning 이 끝난 상태가 대다수 . 침입탐지 시스템을 이용하여 침입자 감지하고 공격자 IP 차단해야 함 .THANK YOU!{nameOfApplication=Show}
프로젝트 2 주차 FTP 패킷 분석01 FTP 이란 ? 02 FTP 서버구축 03 서버 접속 04 패킷 분 석 목차 CONTENTS01 FTP 이란 ? 컴퓨터와 컴퓨터 or 컴퓨터와 인터넷 파일을 주고받을 수 있도록 하는 TCP/IP 의 응용 계층 원격파일 전송 프로토콜 User DTP User PI User interface Server DTP Server PI User File System File system 제어 연결 데이터 연결 Server-FTP User-FTP 정 의01 FTP 이란 ? 두 호스트 간에 제어 정보 , 사용자 계정 , 비밀번호 , 원격 디렉터리를 바꾸는 명령어등을 사용함 제어 연결 실제 데이터를 가져오는 연결 Active 모드 , Passive 모드 존재 데이터 연결01 FTP 이란 ? 클라이언트의 명령과 서버의 응답으로 이루어짐 . 이것은 전체 FTP 세션 동안 계속 연결 상태를 유지 . 제어 연결 USER : 서버에 접근하는 사용자 확인 PASS : 사용자 패스워드 PORT : 사용할 포드 TYPE : 전송되는 데이터 유형01 FTP 이란 ? 데이 터 연결 Active 모드 서버가 클라이언트에 접속 시도 제어 연결 : 클라이언트 5150- 서버 21 데이터 연결 : 서버 20- 클라이언트 5151 단점 : 서버가 공인망에 있거나 . 클라이언트가 사설망이나 방화벽 안쪽에 있을 경우 접속불가01 FTP 이란 ? 데이 터 연결 Passive 모드 클라이언트가 서버에 접속 시도 제어 연결 : 클라이언트 5150- 서버 21 데이터 연결 : 클라이언트 5151- 서버 3267 단점 : 서버 측에서 클라이언트가 접속할 수 있도록 21 번 포트 외에 일정범위의 포트를 열어야 함02 FTP 서버 구축 알 FTP 을 이용해 FTP 서버를 만든다 .02 FTP 서버 구축 알 FTP 을 이용해 FTP 서버를 만든다 . IP : 192.168.0.5 PORT : 2103 FTP 서버 접 속 VMWARE 의 리눅스을 이용해 FTP 서버에 접속함 .03 FTP 서버 접 속 VMWARE 의 리눅스을 이용해 FTP 서버에 접속함 . FTP 서버 192.168.0.5 접속03 FTP 서버 접 속 VMWARE 의 리눅스을 이용해 FTP 서버에 접속함 . 통신을 하기 위해 ARP 테이블에서 게이트웨이 MAC 주소를 확인한다 . 없기 때문에 , ARP 를 이용해 요청 메시지를 Broadcasting 요청 메시지를 받은 게이트웨이는 자신의 MAC 주소를 담아서 응답메세지 를 보내줌03 FTP 서버 접 속 VMWARE 의 리눅스을 이용해 FTP 서버에 접속함 . - 접속을 위한 쓰리 핸드쉐이킹 클라이언트 IP : 192.168.130.129 FTP 서버 IP : 192.168.0.5 접 속03 FTP 서버 접 속 VMWARE 의 리눅스을 이용해 FTP 서버에 접속함 . FTP 서버에서 이름과 비밀번호를 요구함 .03 FTP 서버 접 속 VMWARE 의 리눅스을 이용해 FTP 서버에 접속함 . FTP 서버에서 이름과 비밀번호를 요구함 .03 FTP 서버 접 속 VMWARE 의 리눅스을 이용해 FTP 서버에 접속함 . USER younghee : 사용자명 “ younghee ” 전송 “ Younghee ” 에 대한 비밀번호를 요구함 PASS younghee : 사용자 비밀번호 전송 로그인 완료 FTP 는 평문 전송이기 때문에 패킷의 내용이 노출됨03 FTP 서버 접 속 VMWARE 의 리눅스을 이용해 FTP 서버에 접속함 . FTP 서버에게 운영체제의 종류를 물어봄 .03 FTP 서버 접 속 VMWARE 의 리눅스을 이용해 FTP 서버에 접속함 . SYST : FTP 서버에 운영체제 문의함 . PORT : Active 모드로 데이터 전송시 서버에게 클라이언트가 대기할 주소와 포트를 전송함 .03 FTP 서버 접 속 VMWARE 의 리눅스을 이용해 FTP 서버에 접속함 . LIST : 현재 작업 디렉토리의 파일 목록을 얻어 옴03 FTP 서버 접 속 VMWARE 의 리눅스을 이용해 FTP 서버에 접속함 . RETR : 로컬로 파일 다운로드 시 클라이언트가 서버에게 데이터 전송시작을 요청함03 FTP 서버 접 속 FTP 서버에서 이용해 가상머신으로 사진을 가져옴 .03 FTP 서버 접 속 VMWARE 의 리눅스을 이용해 FTP 서버에 접속함 . QUIT : 연결을 종료04 FTP 패킷 분석 패킷 순서04 FTP 패킷 분석 VMWARE 의 리눅스을 이용해 FTP 서버에 접속함 . 이더넷 헤더 00 0c 29 09 15 61 : 목적지 Mac 주소 00 05 56 ea b4 a0 : 송신지 Mac 주소 08 00 : IP 이더넷 헤더 다음에 오는 헤더04 FTP 패킷 분석 VMWARE 의 리눅스을 이용해 FTP 서버에 접속함 . IPv4 헤 더04 FTP 패킷 분석 VMWARE 의 리눅스을 이용해 FTP 서버에 접속함 . TCP 헤더 E2 eb : 송신자 포트 번호 : 58091 00 15 : 수신자 포트 번호 : 21 5c 58 7d 92 : 데이터 순서를 나타내는 번호 : 1549303186 00 00 00 00 : acknowledge Number A0 : TCP 헤더 길이 : 160 02 : Flags : 2 72 10 : window size : 29200 8e 38 : Checksum : 36408 00 00 : 옵션04 FTP 패킷 분석 VMWARE 의 리눅스을 이용해 FTP 서버에 접속함 . FTP 헤더 55 53 45 52 : USER 79 6f 75 6e 67 68 65 65 : youngheeThank you.{nameOfApplication=Show}
인터넷 보안Setuid 취약점을 이용한 공격1. 개요-SetUID , SetGId 란?- SetUID의 위험성2. SetUID 취약점을 이용한 공격- 백도어-버퍼오버플로우4. SetUID 취약점 대응방법1. 개요1. SetUID, SetGID 란?권한 이름설명값SetUID(S,s)파일 소유주의 권한으로프로그램을 실행한다.4000SetGID(S,s)그룹 소유주의 권한으로프로그램을 실행한다.2000파일에 SetUID가 설정되어 있으면 이 파일을 실행하는 동안에는 잠시동안은 그 파일의 소유자 권한으로 파일이 실행된다. 대표적으로 passwd 명령이 있다. 기본적으로 리눅스에서 사용자의 패스워드는 /etc/shadow 파일에 기록되지만 일반 사용자는 shadow파일에 쓰기 권한이 없기 때문에 shadow파일에 임의적으로 비밀번호를 기록할 수 없다. 하지만 passwd명령어를 이용하면 SetUID에 의해서 비밀번호를 설정하는 순간만큼은 관리자의 권한으로 상승되기 때문에 shadow파일에 기록이 가능하게 되고 정상적으로 비밀번호를 설정할 수 있는 것이다. 다음은 표와 그림으로 설명한 것이다. 그림은 SetUID,SetGID 권한이 있는 상태의 종류 이다.첫 번째줄 -rwxrwsrwx : 소문자 s는 실행권한 x와 SetGID 같이 권한 부여두 번째줄 -rwxrwSrw- : 대문자 S는 실행권한 x없이 SetGID만 권한 부여세 번째줄. -rwsr-sr-x : 소문자 s는 실행권한 x와 SetUID 같이 권한 부여네 번째줄. -rwSrw-rw- : 대문자 S는 실행권한 x없이 SetUID만 권한 부여2. SetUID의 위험성잠시 setuid 라는 것을 짚고 넘어가자면 파일에 설정되는 룰중에 하나로 어떤 사람이든 그 룰이 설정된 파일을 실행하면 그 파일의 소유권의 계정(ID)으로 그 프로그램이 실행된다. cat 이라는 명령어는 이 프로그램은 파일을 읽거나, 쓸 수 있는 기능을 가지고 있다. 예를 들면, $ cat /etc/passwd 라고 하면 /etc/passwd 파일을 읽는다. 만약 bugscan이라는 사람이 만든 파일이 있어도 permission이 일반 사용자들한테는 닫혀 있다. 하지만 아래는 실행이$ whoamiguest$ ls -al /tmp/passwd-rw------- 1 bugscan admin 45147 8월 19일 15:45 /tmp/passwd$ ls -al /bin/cat-r-sr-xr-x 1 bugscan bin 9388 Jul 16 1997 /bin/cat$ cat /tmp/passwd된다.이런식으로 할당되지 말아야할 권한이 SetUID로 인해 할당되기도 한다. 자세한 내용은 뒤에 설명하겠다.2. SetUID 취약점을 이용한 공격가. 백도어백도어란? 일반적인 인증을 통과, 원격 접속을 보장하고 평문에 접근을 취득하는 등의 행동을 들키지 않고 행하는 방법을 일컫는다. 시스템 관리자가 일부러 열어놓은 시스템의 보안 구멍, 백도어는 주로 시스템이 고장났을 경우 시스템을 만들 회사의 프로그래머로 하여금 직접 접속해 들어와 점검하도록 하기 위해 특정 계정을 열어놓는 것이다. 백도어는 경우에 따라서 프로그래머가 디버깅 등 시스템 유지보수를 위해 사용할 목적으로 특수 계정을 허용하는 코드를 운영체제나 응용프로그램에 넣을 수도 있다. 즉, 백도어는 컴퓨터에 몰래 숨어들어가 컴퓨터 속의 정보를 빼내가거나 특정 작업을 하도록 제작된 프로그램이다. 백도어는 시스템 비인가 접근 프로그램으로써 일반적으로 공격으로 루트권한을 얻은후 차후 접근을 위해서 설치하는 프로그램이며 백도어의 원래 목적은 관리자들이 원격으로 작업하기 위한 용도로 개발되었지만 해커들이 최초 해킹시도를 한 이후에 관리자의 권한을 쉽고 빠르게 가져오기 위한 일종의 뒷문(backdoor)으로 사용함으로써 악용되기 시작하였다. 백도어를 이용한 SetUID공격은 setUID취약점을 이용한 공격이며 일단 백도어 프로그램을 만들어 심어놓은 후 사용자 계정으로 백도어를 실행하면 바로 root권한으로 권한상승이 이루어진다. 최초 해킹시도가 아닌 재시도에 있어 편의를 위한 프로그램이다. 다음은 SetUID취약점을 이용한 공격 실습이다.먼저 root계정으로 /tmp에 rooting 라는 이름으로 vi에디터를 이용하여 프로그램을 만든다.만든후에 컴파일 해준다.rooting 파일에 SetUID권한을 부여 해주고, 확인한다.사용자 계정(본인계정 kang)을 이용해 /tmp디렉토리에서 rooting를 실행한다. 실행하고 userid, groupid를 확인해 보면 root로 권한이 상승된 것을 알 수 있다. rooting프로그램이 최종 생성된 백도어 프로그램이다.find / -user root -perm +4000또, SetUID 권한이 있는 파일을 바로 찾을 수 있다. 그 명령어는 아래에 나와있는 명령어 이다.아래의 그림은 실제 실행 했을 때 나오는 파일들이다.나. 버퍼 오버 플로우버퍼 오버 플로우란, 가장 기본적인 개념은 데이터의 길이에 대한 불명확한 정의를 악용한 덮어쓰기로 인해 발생한다. 즉, 정상적인 경우에는 사용되지 않아야 할 주소 공간, 원래는 경계선 관리가 적절하게 수행되어 덮어쓸 수 없는 부분에 해커가 임의의 코드를 덮어쓰는 것을 의미한다.OverFlow는 '넘쳐 흐르다' 라는 의미이다. 특정 함수를 사용할 때, 입력한 문자열을 저장하기 위해 선언한 변수(배열)의 크기보다 더 길게 입력하면, 다른 용도로 사용하는 영역에 값을 덮어쓰게 된다. Buffer OverFlow 공격에 취약한 함수는 다음과 같다."strcpy, strcat, gets, fscanf, scanf, sprintf, sscanf, vfscanf, vsprintf, vscanf, vsscanf, streadd, strecpy, strtrns"이러한 함수들의 공통적인 특징은 처리하는 문자열의 최대 크기를 정하지 않는다는 점이다.간단한 원리를 strcpy함수로 예로 들어 설명하자면, strcpy(buffer, argv[1])과 같은 함수 사용은 버퍼에 첫 번째 인자(argv[1])을 복사한다. 사용자가 abcd를 입력한다면 buffer에 “abcd”가 저장되는 것이다. 이때 만약 버퍼의 크기가 :char buffer[10]로 정의되어있다고 가정하자. strcpy함수는 입력된 인수의 경계를 체크하지 않는다. 즉 인수는 buffer[10]이니 10바이트 길이를 넘지 않아야만 정상적인 작동이 될 것이다. 그러나 만약 13의 길이를 갖는 인수를 입력한다면 메모리 내에서 포인터가 가리키는 주소가 허용 공간을 넘어 다른 영역을 침범하게 된다. 이때 스택은 복귀주소(ret)값을 잃어버려 Segmentation Fault를 발생시키고 프로그램이 비정상 종료하게 된다. 사실 여기까지는 단순히 프로그램의 오류라고 생각할 수 있다. 그러나 1988년 모리스 웜(Morris Worm)이 fingerd 버퍼 오버플로우를 이용했다는 것이 알려지면서 문제의 심각성이 대두되었고, 1997년에는 유명한 보안 잡지인 프랙에서 알렙 원(Aleph One)이 “Smashing The Stack For Fun And Profit”이라는 문서를 게재하면서 더욱 널리 알려졌다. 일반 사용자 권한에서는 단순히 프로그램의 문제로 종료되나, SetUID를 사용하여 프로그램을 관리자 권한으로 실행하도록 한후, 비정상 종료되는 스택 복귀주소에서 미리 예약해놓은 쉘을 호출 함으로써, 관리자 계정으로 쉘을 실행한 것처럼 침입하는 것이다.