728x90

 

여기서 말하는 빅데이터를 단순한 데이터를 말하기 보다는 빅데이터를 관리하고 저장하고 처리하는 기술들 까지 포함하는 그런 개념이다. 빅데이터 기술을 사용하는 것이 왜 중요하냐 라고 했을 때, Big Data Analystics라고 하는 것은 조직들이 그들의 데이터를 효율적으로 활용하고 활용해서 새로운 기회를 식별해내는데 도움을 줄 수 있기 때문에 빅데이터 분석은 중요하다.

 

  • 비용절감(Cost Reduction)
    • Hadoop 클라우드 기반의 분석기술(cloud-based analytics) 같은 빅데이터 기술들은 데이터를 저장하는데 있어서 비용절감 효과를 얻을 있다. 다시말해 빅데이터분석으로 새로운 서비스를 창출하고 싶은데 Hadoop이랑 클라우드가 비용절감을 도와줄 있다는 얘기다.
  • Faster, better decision making
    • Hadoop 인메모리 에너리틱스 상에서
    • 회사들이 필요한 정보를 분석해서 결정을 있다.
  • New products and services
    • 빅데이터 분석으로 고객들이 진정으로 원하는 서비스가 있다.
728x90

빅데이터의 3대요소 (3V)

  • 크기(Volume) - 데이터의 양을 표현, 데이터가 어떤 형태로 이루어지고 있냐로 포함한다. 
  • 속도(Velocity) - 데이터가 수집되고 분석되어야 하는 시간 자체를 말한다. 
  • 다양성(Variety) - 어떤 타입의 데이터가 수집되어야 하느냐이다. Ex) xml, json 
  • value(가치창출) - 빅데이터를 분석해서 무언가 가치를 창출하는게 중요하다.

세 개의 축으로 어느 한쪽이든 결합해서 확장하게 되면은 빅데이터 기술이 필요하다. 예를들면 데이터가 PB 수준이면서 Batch성이면 대표적인 빅데이터 플랫폼 하둡(Hadoop)이 목표로하고 있는 데이터처리 방법이다. 그런데 데이터 볼륨이 커지면서 Real Time일 수 있다. 그러면 데이터가 끊임없이 들어오는데 그거를 다 저장하면 너무 많은거고 어느정도 구간을 정해서 구간내에서 결정을 하는 경우도 있다. 그런것들은 보통 스트링 프로세스 라고 한다. Velocity가 얼마냐에 따라서 데이터처리 기술이 많이 달라진다.

Variety 측면은 데이터의 다양성인데, 예를들어 데이터가 아무리 다양해도 볼륨이 작으면 큰 빅데이터 기술이 필요하지 않을 수 있겠다. 데이터의 복잡도를 넓히는 측면이다.

 

volume 많기 때문에 데이터를 다루기 어려워지고, 또한 볼륨이 크면서 variety 하기 때문에 데이터의 종류가 테이블 형태로 표현되는 정형데이터 뿐만 아니라 다양한 형태의 데이터가 들어올 있다.

 

 

크기(volume)


확장 가능한 방식으로 데이터를 저장하고 분석하는 분산컴퓨팅 기법으로 접근이 필요하다. 왜냐하면 기존의 데이터 웨어하우스는 하나의 컴퓨터로 돌아가는 커다란 데이터베이스였는데 이렇게 하면 싱글 노드가 처리할 수 있는 데이터베이스가 한계가 있기 때문에 확장가능하지 않다.  그래서 최근에는 parralel database (병렬 데이터베이스)도 나온다. 결과적으로 컴퓨터 하나에 꽂을 수 있는 하드가 제한되어있으니까 컴퓨터들을 늘리는 것으로 접근할 수 밖에 없다.

 

하나의 싱글 컴퓨터 안에 들어가기 어려운 규모가 돼야지 빅데이터라고 할 수 있다.

 

분산시스템(distributed computing) 에서는 네트워크로 연결돼있는 컴퓨터를 노드라고 표현한다.

 

 

속도(velocity)


  • 실시간 처리(Real-time Processing)
    • 디지털 데이터는 매우 빠른 속도로 생성 (교통, 금융 거래, 쇼핑, SNS )
    • 데이터의 생산, 저장, 유통, 수집, 분석의 실시간 처리가 중요
  • 장기적인 접근 (Batch Processing) 
    • 수집된 대량의 데이터를 다양한 분석 기법과 표현 기술로 분석 (데이터 마이닝, 기계 학습, 자연어리 )

 

 

다양성(variety)


    • 정형(Structured)
      • 고정된 필드에 저장되는 데이터 (: 온라인 쇼핑몰에서의 제품 주문) 
      • 존의 솔루션을 이용하여 비교적 쉽게 보관, 분석, 처리 작업을 진행할 있음 (굳이 Hadoop이나 스파크 같은 것을 필요가 없다.)
  • 반정형(Semi-Structured)
    • 고정된 필드로 저장되어 있지는 않지만, XML, HTML, JSON 같이 메타 데이터나 스키마 등을 포함하는 데이터 (데이터베이스에서 표현하는 고정된 컬럼으로 되어있는 그런 모습은 아니지만 key value형태로 어느정도 스키마를 정의할 있는 문법같은게 있는데 이것들이 반정도는 구조를 갖고있는 같은 것들이다.)
  • 비정형(Unstructured)
    • 고정된 필드에 저장되어 있지 않은 데이터
    • 동영상, 사진, 오디오 데이터, 메신저로 주고 받은 대화 내용, 스마트폰에서 기록되는 위치 정보, 유무선 전화기에서 발생하는 통화 내용
728x90

빅데이터 정의 (Big Data Definition)

  • 빅데이터는 21세기 원유
  • IT의 원유 빅데이터, 잘 정제하면 혁신 불꽃 피어나
  • 데이터를 얻는 능력, 이해하는 능력, 처리하는 능력, 가치를 뽑아내는 능력, 시각화하는 능력, 전달하는 능력은 앞으로 10년간 엄청나게 중요한 능력이다.

Data Deluge

Flood of data is coming from many sources

  • New York Stock Exchange generates 4-5 terabytes of data per day
  • Facebook
  • Google
  • Geneva 광입자 가속기

Why Big Data

  • Science
    • Data-intensive e-Science
      • ex) 광입자 가속기 - 1초당 1PB만큼의 raw 데이터가 생성된다.
  • Engineering
    • 데이터 분석하고, 장애발생 징후 패턴 분석하고 고장을 예측한다.
  • Commerce
    • Customer Data(고객 데이터) -> Insights(통찰) -> Competitive advantages(경쟁력있는 장점이 된다.)
    • ex) 넷플릭스, 유투브 <- 고객 성향을 알고 추천해주는 알고리즘을 고객의 데이터로 분석, 학습을 해서 만들어지기 때문에 예가 된다.
  • Convergence(집합)
    • Healthcare + Big Data Technology

Concepts of Big Data

  • 데이터의 규모에 초점을 맞춘 정의
    • 기존 데이터베이스 관리도구의 데이터 수집, 저장, 관리, 분석하는 역량을 넘어서는 데이터
  • 업무 수행 방식에 초점을 맞춘 정의
    • 다양한 종류의 대규모 데이터로부터 비용으로 가치를 추출하고, 데이터의 빠른 수집, 발굴, 분석을 지원하도록 고안된 차세대 기술 아키텍처 (저비용 고효율을 지원할 있는 차세대 기술 아키텍처)
728x90

분산 DoS 공격 (DDoS)

  • 공격에 많은 호스트(zombie)를 동원
  • 공격자는 공격에 사용하기 위한 호스트(zombie)에 멀웨어를 설치하여 조정
  • 공격자가 직접 zombie를 조정할 수도 있지만, 보통 다음의 구조를 갖는다.
    • 공격자
    • Handler(C&C)
    • Agent(zombie)
  • Botnet
    • Zombie 군단을 보통 봇넷이라고 한다.

 

 

DDoS 방어

No zombie - no infection

  • 해석: zombie가 없으면 DDoS 공격은 가능하지 않다.
  • 그러나 이 방법은 전세계 호스트를 대상으로 해야 하는 일이므로 각 호스트 개인의 책임 영역에 있다.

 

Source IP address spoofing 방어

  • ISP의 협조
  • 사용하지 않는 IP 소스 주소의 패킷을 막음

 

SYN cookie - TCP authentication

  • 서버가SYN패킷을받았을때이것이정당한SYN패킷인지아닌지모르 기때문에 half-open 연결을 하지 않는다.
  • 대신, 서버는 초기 TCP sequential number를 다음과 같이 계산된 해시값 으로 사용한다.
    • TCPSN초기값=H(IP소스주소,IP목적지주소,SYN의포트번호,비밀값),비밀 값은 서버 만이 알고 있는 값
    • 이와 같이 계산된 SN 초기값을 SYN cookie라고 한다.
    • 그리고 서버는 SYN-ACK을 전송한다.
    • 이때, 서버는 SYN cookie 값이나 어떠한 연결 정보도 TCP 버퍼에 기록하지 않는다.
    • 나중에 SYN-ACK에 대한 응답을 받으면, 그 패킷에서 동일한 정보로 cookie값을 계 산한다. 만약 cookie+1이 응답된 패킷의 sequence number와 일치하면 정당한 연결 요청으로 TCP 버퍼에 연결 정보를 기록한다.
    • 이와 같이 서버는 SYN에 대한 정보를 기록하지 않고도 정당한 연결에 대해서 연결을 설정할 수 있다.
  • SYN Cookie는 서버(시스템)의 자원에 대한 공격을 방어하는 방법이다.
  • 서버가 네트워크에 연결된 링크의 대역에 대한 공격을 방어하지는 못한다.

 

다리를 파괴하라 (drop)

  • 감당할 수 없을 경우 패킷들을 drop 시킨다.
  • 그런데 이때 공격 패킷과 정상 패킷을 구분할 수 없다.
    • 공격 패킷 뿐만 아니라 정상 패킷까지 같이 drop된다.
    • 그렇다면, DDoS 공격이 어느 정도 성공되었다고 볼 수 있다.

출처: KISA

분산 서버 ("눈에는 눈, 이에는 이")

  • 서버를 지역적으로 분산시킨다.
  • 사실상이방법이현재웹서비스를하는회사들이DDoS를 방어하는 현실적인 방법이다.
  • 그래서 대표적인 웹 서비스 회사들의 서버는 DDoS 공격을 당하지 않는다.
  • 이러한 분산 서버 운영을 지원하는 대규모(다국적) 웹 호스 팅 서비스 회사들이 존재한다.

 

공격자 추적

  • 앞의 Botnet에서 보았듯이, 전문적인 공격자는 자신의 존재의 자취(log 기록 등)는 남기지 않는다.
  • IP 주소로도 추적하기가 힘들다.
  • 사실상, 공격자 추적은 가능하지 않고, 단지 zombie들만 추 적할 수 있다.

 

CAPTCHA

  • CAPTCHA(Completely Automated Public Turing test to tell Computers and Humans Apart)는 DoS 공격을 막는 방법의 한 종류라고 할 수있다.
  • 공격자가 자동적인(automated) 방법으로 접근을 시도 하려고 할 때 막는 방법이다.

 

728x90

서비스 거부 공격: DoS (Denial of Service)

  • 네트워크 대역, CPU, 메모리, 디스크 공간 등의 자원을 소모하여 네트워크, 시스템, 응용 서비스의 정당한 사용을 방해하는 공격 행위

DoS 공격 목표

  • 네트워크 대역
  • 시스템 자원 (resources)
  • 응용 프로그램 자원

DoS 공격은 정보 보안 요소의 가용성 (availability) 에 대한 공격이다.


공격 형태

Flooding

  • 공격 목표에 대량의 패킷을 집중적으로 전송한다.

Flooding 방법

  • Ping flooding
  • Source IP address spoofing
  • SYN flooding (spoofing)
    • Half-open connection
  • Reflector
  • Amplifier (Smurf attack)

Ping

Ping of death

  • 정상적인 ping 패킷 길이는 56바이트(ICMP 64, IP 84바이트)
  • IP 패킷의 최대 길이 65,535바이트
  • 공격자는 ping 패킷을 65,535바이트로 하고, 이것을 8바이트 로 분해하여 목표 호스트(target)에 전송하면, 이것을 재결합 하는 할 때 버퍼 오버플로우가 발생
  • 이전 시스템은 쉽게 이러한 문제가 발생했음

 

Ping flooding

  • 단순히 목표 호스트에 Ping 패킷을 집중적으로 보냄

 

Source IP address spoofing

  • 한 개의 호스트에서 공격 패킷이 날아오면 쉽게 공격을 찾아내고 방어할 수 있다.
  • 그래서 공격 패킷의 소스 IP 주소를 가짜 주소로 해서 보낸다.
    • 라우터에서 패킷을 처리할 때 IP 소스 주소의 진위 여부는 가리지 않는다.

 

반사 (reflection)

  • IP 소스 주소를 공격 대상 호스트로 하여 불특정 호스트에게 패킷을 보낸다.
    • 자신의 존재를 숨길 수 있다. (추적 방지)
    • 공격량을 증대시킬 수 있다.
  • 분산 반사 공격이라고 불리움
    • DRDoS (Distributed Reflection DoS)

 

 

증폭 (amplifier)

  • IP 브로드캐스트 주소 사용
    • IP 소스 주소를 공격 대상 호스트의 IP 주소로 한다.
    • 패킷의 수신 주소를 브로드캐스트 주소로 한다.
    • 그러면, 브로드캐스트 주소에 해당하는 모든 호스트가 공격 대상으로 응답 패킷을 보낸다.
  • Smurf 공격 (ICMP echo reply amplifier)

 

 

 

SYN flooding (spoofing)

  • 초기 대표적 DoS 공격 형태였다.
  • TCP 3-way handshake 절차 악용
    • 공격자는 SYN 패킷을 보낸다.
    • 수신 호스트는 메모리에 TCP 버퍼(스택)에 연결을 요청한 호스트 정보를 기록하고 SYN-ACK으로 응답한다. (half-connection)
    • 공격자는 소스 주소를 바꾸어 계속 SYN 패킷을 동일 호스트에 전송한다.
    • 수신 호스트는 메모리의 TCP 버퍼가 넘치면 더 이상 SYN 패킷을 처리할 수 없게 된다 (그것이 정상적인 SYN 패킷이라 하더라도).

 

'서버 > 암호' 카테고리의 다른 글

방화벽 (Firewall)  (0) 2021.08.02
Spoofing (속이기)  (0) 2021.07.29
Snooping (sniffing) – 정찰(탐색)  (0) 2021.07.29
네트워크 공격  (0) 2021.07.29
ICMP 질문 메시지(Query)  (0) 2021.07.29
728x90
  • 방화벽은 어떤 패킷이 네트워크를 통과할 수 있는지를 결정한다. - packet filtering
  • 어떤 패킷이 통과할 수 있는지의 여부는 망 보안 정책에 따라 결정된다.


방화벽 유형

원래 다음과 같은 두 가지 유형의 패킷 필터가 존재한다.

  • 패킷 필터
    • 네트워크와 수송 계층의 정보를 조사
  • Stateful 패킷 필터
    • 패킷 필터 + TCP 연결 상태를 조사

 


패킷 필터 (Packet Filter)

네트워크와 수송 계층의 헤더 정보를 사용

  • IP 소스/목적지 주소
  • IP 패킷의 Protocol Type
  • TCP/UDP의 소스/목적지 포트 번호
  • TCP Flag bits (SYN, ACK, etc.)
  • ICMP 메시지 유형(message type)
  • 네트워크 입구/출구에서의 기타 규칙

( + ) 장점 

  • 빠른 처리 속도

( - ) 단점

  • 각 패킷은 다른 패킷과 독립해서 별도로 처리된다.
  • TCP연결을볼수없다.
  • 응용데이터를볼수없다.
    • 따라서, 바이러스가 포함된 패킷이 통과할 수 있다.

 

패킷 필터링

 

Action Source IP Dest IP Source Port protocol Dest Port Flag Bits
Allow 202.30.107.0/24 Outside > 1024 TCP 80 Any
Allow Outside 202.30.107.0/24 80 TCP > 1023 ACK
Deny All All All   All All

( Access Control Lists (ACLs)에 의해 구성 )

  • 내부망의 주소: 202.30.107.0/24
  • 내부 호스트는 외부망의 웹 서버에 접속을 허용
  • 이외의 모든 트래픽은 차단

 

TCP ACK 스캔

공격자는 이와 같이 하여 방화벽을 통과할 수 있는 포트 번호를 스캔할 수 있다.

  • 공격자는 3-way handshake 없이 ACK 비트를 세팅하고 패킷을 보낸다.
  • 이것은 TCP/IP 프로토콜을 위반하는 것이다.
  • ACK 패킷은 패킷 필터를 통과한다.
    • 현재 연결 설정이 진행 중인 것으로 보여진다.
  • 이 패킷을 받은 수신 프로세스는 Reset 비트를 세팅하여 보낸다.
  • 공격자는 이와 같이 하여 방화벽을 통과할 수 있는 포트 번호를 스캔할 수 있다.


Stateful Packet Filter

패킷 필터에 연결 상태 정보를 추가한다.

TCP 연결과 flag 비트를 기억한다.

UDP 패킷도 기억할 수 있다. (e.g., DNS requests)

Action Source IP Dest IP Source Port protocol Dest Port Flag Bits 연결조사
Allow 202.30.107.0/24 Outside > 1024 TCP 80 Any  
Allow Outside 202.30.107.0/24 80 TCP > 1023 ACK O
Deny All All All   All All  

Intrusion Prevention System (IPS)

  • 원래 방화벽은 규범적인 용어가 아니라 서술적 용어, 즉, 이렇게 만들어야만 방화벽이라고 할 수 있다라는 것은 아니다.
  • 장비회사들은 원래의 패킷 필터가 사용하는 정보 이상의 정보를 사용하여 필터링하는 장비를 만들고 여러가지 이름으로 불렀다.
  • 이중 고착된 이름 중에 하나가 IPS이다.
  • IPS를 포괄적으로 정의를 해 보면,
    • 네트워크와 수송 계층 이상의 정보를 사용하여 필터링
    • 경우에 따라서는 트래픽에서의 규칙, 특성(signature)을 사용하여 필터링
      1. 이런 점에서는 IDS의 기능과 중복, 즉 패킷 필터링을 하는 IDS라고 할 수도 있다.

 

Applicartion Gateway (Proxy)

  • Application Gateway는 들어오는 (incoming) 응용 계층의 데이터를 검사한다.
  • 진입을 허용하기 전에 데이터가 안전한지 확인한다.
  • Proxy는 응용 프로토콜을 대신 동작하는 것을 의미한다.
  • 외부망으로 (에서) 접근할 때는 반드시 proxy와 먼저 통신을 해야 한다.
    • Proxy는 접근자에 대한 인증을 할 수도 있다.
    • 적법한 사용자의 패킷을 받아서 외부망의 서버에 패킷을 새로 구성해서 전달한다.
  • 여러 종류의 application proxy가 존재할 수 있다.
    • Telnet, HTTP, FTP, email application proxy 등등

( + ) 장점

  • 연결과 응용 데이터 모두를 볼 수 있다.
  • 응용 계층에서 나쁜 데이터를 걸러 낼 수도 있다. (viruses, Worm macros)

( - ) 단점

  • 느린 속도

 

예) Telnet gateway

예를 들어, 내부망의 특정 사용자만 외부망에 telnet으로 연결할 수 있도록 하고 싶다.

  • 사용자의 telnet 요청은 Application gateway와 먼저 연결
  • Gateway는 사용자를 인증
  • 허락된 사용자일 경우 외부망의 서버와 telnet 연결
  • 따라서, 두 개의 telnet 세션이 존재: gateway-to-내부 호스트, gateway-to-외부 호스트

 

 

방화벽과 심층 방어 (Defense in Depth)

  • DMZ부분은 쉽게 접근하여야 한다. 그리고 빨라야 한다.
  • 외부망에서 내부망 접근은 Telnet으로 연결이 된다. 속도가 느리다.

'서버 > 암호' 카테고리의 다른 글

네트워크 공격 : DoS (1)  (0) 2021.08.02
Spoofing (속이기)  (0) 2021.07.29
Snooping (sniffing) – 정찰(탐색)  (0) 2021.07.29
네트워크 공격  (0) 2021.07.29
ICMP 질문 메시지(Query)  (0) 2021.07.29
728x90
  • IP spoofing
  • ARP poisoning (spoofing)
    • MITM 공격
    • TCP 연결(세션) 하이재킹

 


IP spoofing

 

  • 프로토콜의 허점
    • 라우터는IP패킷의경로를결정할때목적지IP주소만을본다.즉,IP소스주 소는 상관하지 않는다.
  • 따라서, 공격자는 IP 패킷의 소스 주소를 임의로 사용할 수 있다.
    • 특정 호스트의 IP 주소를 사용(앞의 Zombie scanning의 예)
    • 현재 사용하지않는 임의의 IP 주소를 소스 주소로 사용
  • IP spoofing은 대표적으로 DoS 공격에 이용된다.
  • IP spoofing의 방어
    • 최소한 라우터가 IP 소스 주소가 합법적인 주소인지 판단한다.
    • ISP는 라우터에서 현재 사용하지 않고 있는 IP 소스 주소인 경우 폐기한다.

 


ARP poisong (spoofing)

 

  • ARP 서버(일반적으로 디폴트 라우터)는 네트워크 내의 모든 host의 IP 주소와 MAC 주소의 매핑 테이블을 갖고 있다.
  • ARP 서버는 이 정보를 ARP request/reply 프레임을 통해 얻는다.
  • 공격 시나리오
    • 공격자는잘못된매핑정보를담은ARPreply메시지를계속 보낸다.
    • ARP 서버는 request에 대한 reply가 아니므로 보통 무시한다.
    • 그런데, 서버가 이 잘못된 정보를 믿고 자신의 ARP테이블을 변경하는 경우가 생길 수 있다. (자신이 조금 전에 보낸 request에 대한 reply라 고 오인, 혹은 구현상의 에러, 등)

Ethernet에서의 ARP

 

  • Ethernet은 브로드캐스트를 사용하 여 ARP 서버의 도움없이 주소를 변 환한다.
    • 목적지 IP 주소의 Ethernet 주소(MAC 주소)를 물어보는 request 프레임을 브로드캐스트한다.
    • IP 주소가 자신의 것인 스테이션은 자 신의 MAC 주소를 reply 프레임으로 응답한다.
    • 주소를 받은 스테이션은 이 주소를 사용하여 MAC 프레임을 전송하고, 이 MAC 주소를 캐쉬에 보관한다.

 

 1 ) IP 패킷을 ARP 테이블에 맞게 보낼 것이다. (C 컴퓨터로 IP 패킷이 가야함)

 2 ) 1)에서 보낸 IP 패킷을 reply하는데 ARP 테이블에 해당 IP 주소의 MAC 주소가 1) 그림의 MAC 주소와 상이한 것을 볼 수 있다.

 3 )전송자는 IP 패킷을 C컴퓨터로 의도했는데 ARP 테이블에 바뀐 MAC 주소 때문에 A 컴퓨터로 유도된다.

  • 위 ARP spoofing 예는 세션 호스트 통신 하이재킹의 예를 보여 주고있다.
    • 공격자A는호스트C로가는모든패킷을갈취하여보고있다.
    • 또한, 공격자 A는 소스 IP주소를 호스트C로 하여 패킷을 보낼 수 있다. (source IP address spoofing)
    • 그렇다면,호스트C와통신하는호스트는자신이호스트C와통신 을 하고 있다고 생각하지만 실제로는 호스트 A와 통신을 하고 있다. (hijacking)
  • 만약 호스트 AARP spoofing을 한번 더 할 수 있으면, 중간 자 공격(MITM)이 가능해진다.

TCP 연결(세션) 하이재킹

 

  • 공격자는 공격대상 호스트의 IP 주소로 연결을 요청
  • 공격자는 flooding 공격으로 호스트(T)가 응답하지 못하도록 함
  • 공격자는 호스트 T를 대신하여 응답
  • 공격자는 ARP 서버와 호스트(T)의 TCP 연결을 절반은 하이재킹

 

  • 이 공격 시나리오가 성공하기 위해서는 공격자는 서버 가 처음으로 사용할 일련번호(y)를 알고 있어야 한다.
    • 일련번호를랜덤값으로하게되면예측하는것은거의불가 능하다.
    • 하지만이전OS는완전한랜덤값으로하지않아충분히예측 가능했다.

 


 

 

  • 만약 공격자가 호스트와 동일한 LAN에 있으면 ARP spoofing을 사용하여 이 공격을 더 쉽게 할 수 있다.
    • 이경우공격자는서버와호스트T의TCP연결을완전히 하이재킹하게 된다.(즉, 호스트 T를 소스로 하여 패킷을 보내고, 호스트 T가 목적지인 패킷을 모두 받아 볼 수 있다.)
    • 이공격시나리오는공격자와호스트T가동일한LAN에있 을 때 가능하다. 만약 공격자가 방화벽 뒤에 위치한다면 이런 공격이 성립하기는 어렵다.

 

'서버 > 암호' 카테고리의 다른 글

네트워크 공격 : DoS (1)  (0) 2021.08.02
방화벽 (Firewall)  (0) 2021.08.02
Snooping (sniffing) – 정찰(탐색)  (0) 2021.07.29
네트워크 공격  (0) 2021.07.29
ICMP 질문 메시지(Query)  (0) 2021.07.29
728x90
  • 엿듣기
  • Ping - ICMP echo request/reply (type 8과 0)
  • Trace route - ICMP time exceeded (type 11)
  • ICMP redirect - ICMP redirection (type 5)

 


경로 추적 (trace route)

 

  • 특정 목적지 호스트에 이르는 경로를 추적한다.
  • IP 패킷의 TTL값을 1부터 차례로 증가시켜 보낸 후에, ICMP Time Exceeded 에러 메시지를 받아본다.


ICMP redirect 공격

 

  • ICMP redirect는 네트워크 내의 호스트가 다른 네트워크의 호스트로 패킷을 보낼 때 네트워크의 정해진 라우터로 전송하게 된다.(보통 디폴트 라우터)
  • 이때 정해진 라우터를 변경하고 싶을 때 ICMP redirection 패킷을 전송한다.
  • 이 패킷을 수신한 호스트는 새로운 라우터를 디폴트 라우터로 하고 라우팅 테이블 값을 변경한다.
  • 원래 ICMP redirect의 목적은 더 좋은 경로가 존재할 경우 라우터를 변경하기 위한 것이다.
  • ICMP redirect 자체가 공격은 아니지만, 악의적으로 특정 호스트가 있는 네트워크로 패킷 전송을 유도(변경)할 수 있다.

Ping (포트스캐닝)

 

  • 완전 TCP 연결을 통한 포트 스캐닝 - 3 way handshake를 하여 완전한 연결을 설정
  • 반 연결 (half-open connection)을 통한 포트 스캐닝
    • 공격자는 SYN 세그먼트를 보내고 SYN-ACK 응답을 받는다.
    • 더 이상의 ACK는 하지 않는다.
  • Zombie scanning - TCP 연결을 통해 포트 스캐닝을 했다는 흔적을 남기지 않는다.
  • TCP ACK 스캔 - 방화벽에 열려있는, 즉 방화벽을 통과할 수 있는 포트 번호를 찾는다.

TCP 연결 설정 - 3 way handshake

 

  1. 세 번의 TCP 세그먼트의 교환으로 연결을 설정한다.
  2. 첫번째 세그먼트는 SYN flag 값을 1로 하고 초기 seq을 알려준다.(다른 내용은 없음)
  3. 두번째 세그먼트는 SYN ACK flag값을 1로 하고, ACK 값을 적음
  4. 세번째 세그먼트는 ACK flag값을 1로 하고, ACK 값을 적음

 

 


Zombie scanning

  • 공격자는 공격(스캔)을 대행할 호스트(zombie)의 IP 주소 를 이용한다. (source address spoofing)
  • 나중에 zombie 호스트로부터 받은 패킷의 IPID 값으로 공격 대상 호스트의 특정 포트가 열려 있는지를 판단한다.
  • 공격 대상 호스트는 연결을 요청한 호스트는 zombie로 기록되고 실제 공격자는 알지 못한다.

 

공격 대상 호스트의 포트가 열려있다면.

공격 대상 호스트의 포트가 열려있을 때

  1. 공격자가 공격 대상(T)한테 SYN과 ACK를 보내면
  2. 공격 대상(T)은 공격자가 SYN부터 보내오지 않았기에 일반적인 3 way handshake가 아니다. 그래서 비정상적인 요청이기 때문에 RST (Rest)과 IPID = x를 보낸다. 여기서 공격자의 목적은 IPID = x이다.
  3. 그리고 공격자는 Zombie PC한테 공격 대상의 포트로 SYN을 보낸다.
  4. 그러면 Zombie PC는 공격대상(T)에게 SYN을 받았다고 생각해서 공격대상(T)에게 SYN-ACK를 보낸다. 
  5. 그런데 공격대상(T)가 SYN을 보낸적이 없는데 SYN-ACK 요청이 오니깐 Zombie PC에게 RST (Rest)과 IPID = x+1을 보낸다.
  6. 그리고 공격자는 IPID가 x+1이라는것을 알고있고 다시 SYN-ACK를 공격대상(T)에게 보낸다
  7. 공격대상(T)는 RST (Rest)과 IPID = x+2 보낸다. 
  8. 결론 : 공격자는 IPID가 x+2 인걸 알고 2라는 짝수가 오면 공격자는 공격대상자의 포트가 열려있다는 것을 알 수 있다.

 

공격 대상 호스트의 포트가 닫혀있다면.

공격 대상 호스트의 포트가 닫혀있을 때

  1. 공격자가 공격 대상(T)한테 SYN과 ACK를 보내면
  2. 공격 대상(T)은 공격자가 SYN부터 보내오지 않았기에 일반적인 3 way handshake가 아니다. 그래서 비정상적인 요청이기 때문에 RST (Rest)과 IPID = x를 보낸다. 여기서 공격자의 목적은 IPID = x이다.
  3. 그리고 공격자는 Zombie PC한테 공격 대상의 포트로 SYN을 보낸다.
  4. 그러면 Zombie PC는 공격대상(T)에게 SYN을 받았다고 생각해서 공격대상(T)에게 연결을 시도하려고 했으나 포트가 열려있지 않아서 RST를 보낸다.
  5. 공격자는 다시 공격대상(T)에게 SYN-ACK을 보내본다.
  6. 공격대상(T)는 Zombie PC와 아에 echo가 발생하지 않았기 때문에 IPID가 x+1이 아닐 것이다. 그래서 공격대상(T)는 RST와 IPID = x+1를 공격자한테 보낸다.
  7. 결론: 공격자는 IPID가 x+1 인걸 알고 1이라는 홀수가 오면 공격자는 공격대상자의 포트가 열려있다는 것을 알 수 있다.

 


TCP ACK 스캔

  • 공격자는 3-way handshake 없이 ACK 비트를 세팅하고 패킷을 보낸다
  • ACK패킷은 패킷필터를 통과한다면, 이 ACK 패킷을 받은 수신 프로세스는 RST비트 를 세팅하여 보낸다.
    • SYN-ACK에 대한 응답 패킷이 아니므로 (프로토콜을 위반한 패킷)
  • 이와 같이 하여 공격자는 포트 1302가 현재 방화벽에서 열려 있는 것을 알 수 있다.

 

'서버 > 암호' 카테고리의 다른 글

방화벽 (Firewall)  (0) 2021.08.02
Spoofing (속이기)  (0) 2021.07.29
네트워크 공격  (0) 2021.07.29
ICMP 질문 메시지(Query)  (0) 2021.07.29
ICMP 에러 보고 메시지  (0) 2021.07.29
728x90
  • 원래 인터넷 프로토콜(TCP/IP protocol suite)은 네트워크 공격이 라는 것을 사실상 전혀 고려하지 않고 만들어졌다.(모두 신뢰할 수 있는 사용자일 것으로 가정)
  • 그래서 프로토콜에는 쉽게 공격에 이용당할 수 있는 취약점이 존재한다.
  • 인터넷 초기 이러한 유형의 네트워크 공격이 등장했다. 지금은 프 로토콜을 세심하게 운용하여 모두 방어를 하고 있다고 볼 수 있다.
  • 하지만 아직 우리가 발견하지 못한 네트워크 프로토콜의 취약점이 존재할 수도 있다.

네트워크 공격의 유형

공격의 절차

  • 공격자는 공격의 대상(victim)을 찾는다. - 호스트혹은TCP연결혹은응용프로토콜세션
  • 공격의 완성은 연결 혹은 세션을 갈취(hijacking)하여 공격자 의도대로 패킷을 주고 받는 것이라고 할 수 있다.
  • Snooping (sniffing) - 정찰(탐색)
  • Spoofing - 속이기
  • 하이재킹 (hijacking)

'서버 > 암호' 카테고리의 다른 글

Spoofing (속이기)  (0) 2021.07.29
Snooping (sniffing) – 정찰(탐색)  (0) 2021.07.29
ICMP 질문 메시지(Query)  (0) 2021.07.29
ICMP 에러 보고 메시지  (0) 2021.07.29
부트킷 (bootkit)  (0) 2021.07.29
728x90
  • Echo request/reply: 내용은 없고 그대로 응답
  • Timestamp request/reply: ICMP 질의메세지가 두 시스템간에 왕복하는데 소요된 시간 또는 시간차를 파악
  • Address-mask request/reply : 서브넷 마스크를 알고 싶을 때
  • Router solicitation/advertisement: 디폴트 라우터가 누구인지 알고 싶거나 알려줄 때

 

'서버 > 암호' 카테고리의 다른 글

Snooping (sniffing) – 정찰(탐색)  (0) 2021.07.29
네트워크 공격  (0) 2021.07.29
ICMP 에러 보고 메시지  (0) 2021.07.29
부트킷 (bootkit)  (0) 2021.07.29
루트킷 (rootkit)  (0) 2021.07.29

+ Recent posts