320x100

TCP Length는 1514이상 넘을 수가 없다. (패킷의 최대 사이즈는 1500 + 프레임의 최대크기는 14 ) → 1514

 


 

transport layer (전송 계층) (4계층)

데이터 링크 계층은 물리적으로 1:1 연결된 호스트 사이의 전송이라면, 전송계층은 논리적으로 1:1 연결된 호스트 사이의 전송

 

  • 흐름 제어

물리적 계층과 비교하여 상대적으로 복잡

수신자가 슬라이딩 윈도우 프로토콜의 윈도우 하단 값을 조정

슬라이딩 윈도우 프로토콜은 데이터 전송의 흐름을 제어하는 방법입니다. 이 프로토콜은 주로 TCP(전송 제어 프로토콜)에서 사용되며, 송신자와 수신자 간의 데이터 전송을 효율적으로 관리하기 위해 사용됩니다.

슬라이딩 윈도우 프로토콜의 기본 개념:

 

윈도우 크기:
슬라이딩 윈도우 프로토콜에서는 송신자가 한 번에 전송할 수 있는 데이터의 양을 "윈도우 크기"로 정의합니다. 이 윈도우 크기는 수신자가 처리할 수 있는 데이터의 양을 나타냅니다.

 

윈도우 하단 값:
윈도우 하단 값은 현재 수신자가 수신할 수 있는 데이터의 시작 지점을 나타냅니다. 데이터가 수신되면 이 하단 값이 이동하여 새로운 데이터가 수신될 준비가 됩니다.

 

수신자가 윈도우 하단 값을 조정하는 이유:
수신자는 자신의 버퍼 크기 및 처리 능력에 따라 윈도우 하단 값을 조정합니다. 만약 수신자의 버퍼가 가득 차면, 수신자는 송신자에게 더 이상 데이터를 보내지 못하도록 하여 데이터 손실을 방지합니다.

 

  • 오류 제어

데이터 변형, 데이터 분실 오류

재전송 기능으로 복구

빨리말하면 이해 못한다.

 

TCP 헤더 크기는 20 이다.

1480 - 20 = 1460

 

TCP

연결형 서비스를 지원

전이증(쌍방향) 방식의 가상 회선을 제공

신뢰성 있는 데이터 전송을 보장

 

TCP 헤더

1층은 4byte

TCP 헤더 크기: 4 * 5층 = 20 byte

6층// padding 은 배수를 맞춰주기 위해 사용한다. // 마지막 층은 지금은 사용하지 않는다.(제외)

TCP, UDP (4계층)의 상위 계층은 7계층(응용프로그램) 이다.

 

포트번호

  • TCP, UDP 프로토콜이 상위 계층에 제공하는 주소 표현 방식

TLS (port 443)

SSL (port 20)

 

TLS(전송 계층 보안, Transport Layer Security)는 인터넷에서 데이터의 안전한 전송을 보장하기 위해 설계된 암호화 프로토콜입니다

Well-known 포트

  • 많이 사용하는 인터넷 서비스에 고정된 포트 번호 할당

포트 숫자가 1024 보다 작으면 모두 Well-known 포트이다. (전세계 통용)

  • Source port : 보내는 쪽의 포트 // 웹서버 포트는 port 80
  • Sequence Number: 3계층 네트워크 계층까지는 데이터만 빨리가면 되었지만, 4계층에서는 데이터 전송의 신뢰성과 순서를 보장하는 데 필수적인 역할을 합니다.
  • Acknowlegement number : 말풍선 100개를 했는데 응답이 50번 까지만 받으면 100을 다 받기 위해 기다린다. 응답이 오지 않으면 51번 부터 다시 보낸다. - 상대가 어디까지 받았는지를 확인하는 것
  • Data Offset(= headerLength 20byte)
  • Reserved : 앞으로 예약된 것이 있다. (요즘은 사용하지 않아서 0 값을 넣는다)

Flag 각 1비트 (1비트는 경우의 수가 2개)

  • URG (urgent) : 패킷을 빠르게 처리 할 수 있는 방법 ( urgent 라고 빨리 보낼 수있는 것이 요즘은 없기 떄문에 사용하지 않는다 비트번호 0 으로 처리)
  • ACK : SYN 에서 의견을 물어보고 ACK 에서 대답을 한다. 응답하면 okay sign 응답을 안보내면 no
  • PSH (push) : 해더 해석이 다 되었으면 상위계층으로 올릴때 사용
  • RST (reset): 급한일이 있을때 너랑 이야기 안해하고 끝남 FIN은 1의 신호를 받아야끝나지만 이건 내가 통보하는 방식임
  • SYN : 0하고 1밖에 없다고 가정하면, 나는 너하고 이야기하고 싶어라고 신호 1(말풍선)을 던지는 의견을 물어봄
  • FIN (finish) : 할말 다 끝나고 FIN을 1로 보내면 그 이후에 내가 어떤말을 하든 간에 듣지 못한다.
  • Window : 슬라이딩 윈도우 프로토콜과 같음 // 상대방이 초당 100 마디하면 난 능력이 안되 초당 50마디만 말해줘 라고 제어해주는 흐름제어장치
  • Checksum : 무결성을 확인하기 위함
  • Urgent Pointer : URG가 1이 되었을때 사용, 급한 일이 있을떄 사용하기 위함 // 요즘은 URG 를사용하지 않기 떄문에 비트번호가 0 이 되어야한다.

Sequence Number 는 정하기 나름 (보통 1로 시작)

  • Sequence number
  • ACK number : 다음에 수신하기를 원하는 데이터를 지정

6계층에서 내려온 것을 캡슐로 싸면 캡슐라이제이션


UDP - 8byte

비연결형 서비스를 제공

Best effort (빨리만 보내면 된다) 전달방식을 지원

실시간적 중요성을 하기 위해 생김 (헤더 처리가 없기 떄문)

신뢰성이 의미가 없을때 빨리 하기 위해서 사용

지금의 모든 것들은 TCP 를 사용한다.

지금 실시간 방송은 TCP 를 사용 // 엄밀히 따지만 실시간은 아니다 UDP를 사용해야함

ex) 프랑스에서 금메달 땃으면 바로 주는게 아니고 2~3초동안 데이터의 분실이 있나 확인하고 송출한다.

해커들이 명령어 때릴 떄는 UDP 를 사용한다 ( 응답을 받을 일이 없기 때문)



SYN Flooding

SYN Flood는 반개방 공격이라고도 하며, 보낸 SYN 요청에 대한 서버의 SYN-ACK에 응답하지 않고 SYN 요청만 마구잡이로 보내는 네트워크 계층 공격입니다. 결과적으로 많은 수의 열린 TCP Connection으로 인하여 서버의 리소스가 과도하게 소모되어 정상 트래픽의 처리를 어렵게 하면서 정상적인 새로운 Connection을 열 수 없으며, 이미 연결된 사용자의 Connection의 경우에도 서버가 올바르게 작동하기 어렵게 됩니다.

300x250
320x100

포렌식은 크게 3가지로 나눠진다.

시스템 포렌식 - 너무 경우의 수가 많다.

네트워크 포렌식 - 통일된게 있다. (악성코드 분석, 트래픽 분석)

메모리 포렌식은 망했다. - SSD는 주기적으로 싹 지움

 

인터네트워킹

라우터: 네트워크를 연결하는 장비이며, 일반적으로 3 네트워크 계층 기능을 수행

서브넷 마스크가 있기 떄문에 랜을 구별할 수 있다.

 

리피터 : 반복한다 / 랜이 너무 커서 10km가 되면 랜인 회선으로 연결되어있는데 전기신호가 10키로 동안 계속 가는건 저항이 생긴다 떄문에 중간 중간 리피터(증폭기)를 설치를 한다. - 요즘은 사용하지 않음

 

브릿지: 랜을 버츄얼하게 나누고 싶을때 사용 / 라우터의 랜을 가상으로 한 포트당 몇개씩 버츄얼 하게 하기 위해서 랜선 하나 따서 그 밑에 여러개를 묶는 것 - 요즘은 라우터 값이 싸져서 사용하지 않음

 

랜에서 시작하여 첫번째로 만나는 라우터를 게이트웨이라고함

 

라우터 설명할때는 3계층 밖에 없다 - 왜냐면, 인터넷 상에 있는 라우터들은 최종 목적지가 아니기 떄문에 네트워크 계층에서 반환되고 다시 물리적 계층으로 내려간다 (목적지 아이피 주소가 나인지 아닌지만 확인함)

 

- 네트워크 계층

- 데이터 링크 계층

- 물리 계층



PART 2

전송 (4계층) - 신뢰성 또는 통신품질에 대해 배울 예정

오류 제어

  • 전송 오류의 유형

화자가 이야기 한 것에 대해 청자가 바르게 알아 들어야한다.

  • 수신(청자) 호스트의 응답 프레임

긍정응답프레임: 데이터가 정상적으로 도착했을때, 수신 호스트가 송신 호스트에게 회신

부정응답프레임: 데이터가 꺠져서 도착했을떄, 수신 호스트가 송신 호스트에게 회신

(부정 응답 프레임을 받은 송신 호스트는 재전송 기능으로 오류 복구 시도)

 

프레임 분실: 내가 말한 것이 통으로 없어진다. (저녁먹을래 → 저녁 … ? )

1) 송신호스트에서 프레임 분실

송신 호스트는 타임아웃 시간을 갖고 상대방의 응답을 기다리는 시간이 있음 / 타임아웃 시간이 지날때까지 응답이 없으면 데이터를 재전송한다.

송신 호스트는 내가 말한 것을 상대방이 알아들었는지 못알아들었는지 판단이 가능하다. )

2) 수신호스트에서 프레임 분실

송신 호스트에서 데이터를 전송하고 “수신 호스트”에서 긍정 응답을 주는 와중에도 데이터 손실이 발생할 수 있다. → 그럼 송신 호스트에서 데이터를 재전송한다.

 

순서 번호 (sequence number)

  • 대화의 순서번호를 저장을 해둬야한다.

송신호스트가 대화를 수신호스트에게 했는데, 수신호스트가 긍정응답을 하는 중 프레임분실이 일어난다면, 송신 호스트는 일정 시간 타임아웃을 주고 기다리다가 다시 재전송을 한다.

만약 순서번호가 없으면 데이터의 중복이 발생한다. (금전적으로 보면 돈을 두번 보내는 꼴)

전송 오류의 유형

  • 수신 호스트의 응답 프레임

부정 응답 프레임을 받은 송신 호스트는 재전송 기능으로 오류 복구 시도

송신 호스트의 타이머 기능

  • 데이터 분실시 수신호스트로부터 어떠한 응답프레임도 발생하지 않음 → 송신 호스트는 일정 시간동안 응답 프레임이 없으면 타임아웃 기능으로 재전송을 시도

순서번호의 기능

 

수신호스트가 중복 프레임을 구분 할 수 있도록 지원

 

흐름제어

  • 수신 호스트가 감당할 수 있는 속도로 송신 호스트가 데이터를 전송하도록 제어를 해야한다.
  • 너무 빨리 전송하는 경우

수신 호스트가 내부 버퍼에 보관하지 못할 수 있음 -> 이는 프레임 분실과 동일한 효과를 야기함

내가 상대방한테 데이터를 줄때 상대방이 받는 응답의 속도에 맞춰서 흐름 제어를 한다. (슬라이딩 윈도우 프로토콜)


1, 2 계층 프로토콜

CSMA/CD(Carrier Sense Multiple Access with Collision Detection)

이더넷 =( LAN = MAC = 1,2 계층 = 물리적) 모두 같은말이다. 

 

Dummy HUB : 인터넷을 공유한다 (BUS 구조로 되어있음)

스위칭 HUB : 나만 연결한다 - > 속도가 더미허브에 비해 빠름

 

MA(Multiple Access): 다수 호스트가 하나의 공유 매체에 연결됨

 

CS(Carrie Sense): 호스트는 공유 매체의 사용 가능 여부를 신호 감지로 확인

 

CD(Collision Detection): 공유 매체에서 데이터 충돌 여부 확인

 

공유매체(LAN)의 길이가 길면 길수록 전송 지연이 증가하여 충돌가능성이 높아진다.

 

--------

1,2 계층 = 프레임 (3 계층에서 내려온 데이터 + 헤더를 칭함)

3 계층 = 패킷 (4 계층에서 내려온 데이터 + 헤더를 칭함)

4 계층 = TCP 세그먼트 / UDP 데이터그램 (위에서 내려온 데이터 + 헤더를 칭함)

---------

1,2 계층 헤더 크기는 14byte

3계층 헤더 크기 20byte

4계층 헤드 크기 20byte

-------

0-1500바이트까지 데이터를 담을 수 있다

패킷의 최대사이즈 1500바이트 (그림에서 Data 부분)

패킷의 최대사이즈는 1500을 넘을 수 없다. 하지만 어느날 데이터가 1600이 되어 있으면 ‘비정상’적 이기 때문에 잡아내면 된다.

 

8비트 = 1바이트

 

헤더의 구성

목적지 맥주소 6byte + 소스 맥주소 6byte + type 2byte (length)

= 물리계층의 총 헤더의 길이는 14byte이다. 

헤더 뒤에는 패킷이 따라옴

 

type(Length) 이 0x0800 (숫자 하나 하나가 16진수)이면 IP에게데이터를 줘야한다.

16진수는 2^4이기때문에 = 4비트이다.

‘영’ 4비트 ‘팔’4비트 ‘영’4비트 ‘영’4비트

8비트+ 8비트 = 2바이트



 

Type(Length): 내께 맞으면 데이터를 위로 올려야하는데 OS단에는 stack, IP .. 여러개가 있는데 누구한테 줘야하는지 정해준다. (포트 역할)

 

preamble : 데이터가 가기 전에 미리 알려주는 것 = (수신 호스트가 송신 호스트의 블록 동기를 맞추는 용도)

start delimiter : 1바이트 쉬고 데이터를 보내준다 = 프레임의 시작

 

traller: LAN 카드는 OS에 영향을 받을 수 밖에 없는다 OS에는 64비트, 32비트 설정하는게 있다. 이런것은 bus의 단위를 말함. CPU하고 죽은 기기를 통신할때 1비트씩 보내는게 아닌 64비트는 64를 한번에 보낸다. 만약 버스가 있다고 하면 64의 배수가 되어야 한다. 그럼 데이터를 맞추기 위해 PAD 를 통해 0000000을 집어넣어 64틀에 딱 맞춰서 보낸다.

checksum : 무결성값을 보낸다 // 앞에서 계산한 checksum 과 뒤에서 계산한 checksum값을 비교한다. 값이 다르면 랜카드는 폐기를 한다.

 



Wireshark

랜에서 돌아가는 트래픽을 수집을 한다.

원래 통신은 자기 랜카드 주소에 대한 것만 수집을 해야하는데, 랜카드에 접속되는 모든 전기신호를 다 수집을 한다.

프레임의 순서 | 캡쳐를 시작한 상대적 시간 | source IP주소 | destination | protocol | length | info: info 프레임에 대해 세그먼트에 대해 해석된 것

 

 

왼쪽 하단 = 구조적으로 보여줌

물리적계층 단을 보여준다 =  이더넷

출발지, 목적지, type

 

 

오른쪽 하단

목적지와 소스의 아이피의 16진수(각 6바이트) + type 2바이트                        아스키코드

 

 

랜카드가 물어봐야하니까 랜카드 맥주소를 씀

와이어샤크 캡처 옵션에서 “모든 인터페이스에서 무작위 모드 사용” 가 사용함이 되어있어야한다. 그렇지 않으면 내 껏만 받음

 

ARP : IP → MAC 주소로 변환해준다.

ARP 로 뿌리면 해당되는 IP주소가 응답을 하면서 MAC주소를 알려줌

who has 192.168.1.40? Tell 192.168.1.1

192.168.1.40이 누구에요? 192.168.1.1한테 말해주세요

192.168.1.40의 MAC주소는 74:5d:22:9b:14:a2  이야 ! 


3계층 네트워크 계층의 기능

 

서비스의 종류

  • 연결형: 종이컵 2개에 실을 연결해서 대화를 하듯 연결을 하는 것
  • 비연결형 서비스: 데이터나 경로가 미리 정해져있지않음 (데이터가 가는데 주소만 간다) - 주소만 가지고 가까운 길로 간다.

(비연결형 서비스)

  • 패킷(데이터와 헤더가 합쳐짐)이 IP주소(네트워크계층이니까) 를 가지고 서로 다른 경로로 전송되므로 도착 순서가 일정하지 않는다. -> 그래서 상위 계층(4 전송계층)에서 순서를 재조정해야한다.

IP계층의 핵심목적은 정보가 깨지는 걸 신경쓰는게 아니라 빨리 보내는 것.

  • 그렇기에, 패킷 분실 가능성이 있다
  • 패킷의 100% 도착을 보장하지 않는다.
  • 상위 계층에서 패킷 분실 오류를 복구해야한다.

IP 프로토콜

 

IP 프로토콜은 비연결형이다 = 품질을 보장하지않는다 (쿠팡맨은 보내면 끝이고 상위계층 쿠팡에서 물건을 보상해줌)

TCP 는 연결형 프로토콜

 

패킷을 분할/병합하는 기능을 수행한다.

IP 헤더는 32비트이다 = 32비트 = 4 바이트

0 ~ 31

 

5층으로 나누어져 있어서 4+4+4+4+4 = 총 20바이트임

맨 밑에 계층은 요즘엔 쓰지 않아 빼고 계산

 

반 바이트 = 버전 넘버

Ipv4 = 4byte

Ipv6 = 6byte

 

읽는방법 : 각 층이 끝나면 왼쪽 으로 돌아감

version number : 우리는 ipv4를 사용함 = 4byte

header length = 3계층의 해더크기는 20바이트 이다 //  1 = 4byte // 20 byte = 5

MAC source address | MAC destination address | type(length) | 패킷 (version number 4 + header length 5)

 

모든 패킷의 시작점은 45 로 시작한다.

45가 아닌 숫자가 나오면 비정상으로 잡아내야한다.

 


 

  • service type : 세팅값에 따라 어떤건 빠르고 어떤건 늦게 간다 (하지만 지금은 의미가 없어져서 사용하지 않는다) = 0 → 만약 숫자가 0이 아니고 1이라는 숫자가 하나라도 나오면 잡아내야함

Covert Channel Hacking 은밀한 채널 해킹: 모든 OS는 service type 이 안쓴다는 걸 알기 떄문에 해석을 하지 않음, 해석하면 속도가 느려지니까 → 해커들이 좀비pc 에 명령을 때려서 시그니처를 하는데, 데이터에 attack 명령어를 쓰는게 아니고 service type 에서 명령을 때린다. 왜냐? 아무도 사용하지 않기 때문에 걸리지 않는다.

 

  • packet length(fragment offset) : 패킷의 최대 사이즈 1500 // 8바이트 단위로 계산한다.
  • Time to live : 패킷이 살아남기 위한 시간 // 예를들어 100으로 설정되어 있으면 라우터를 지날떄마다 하나씩 깐다 0이되면 소멸한다. - 쓰레기 패킷을 없애기 위함 (전송은 안되고 라우터끼리 핑퐁을 하는 등 ..)
  • transport : TCP 를 보낼지 IP를 보낼지 적어놓고 받는쪽에 배려를 한다는 의미. 윗계층 누구한테 줘야하는지를 적어놓음
  • header checksum: hash값으로 혹시나 의심스러울때 비교를 했는데 같으면 무결성 o 같지 않으면 무결성에서 어긋나서 잡아내야함 // UDP 17 TCP 6

*UDP 17과 TCP 6은 각각 UDP와 TCP 프로토콜을 식별하는 프로토콜 번호입니다. 이 번호들은 IP 헤더에서 해당 프로토콜을 구분하는 데 사용됩니다.

 

scanner : 내가 상대방을 공격하기 전에 상대방의 정보를 꺼내 오는 것 ( Nmap )

 

 

 

  • 1기가를 전송하기 위한 패킷이 몇개가 팔요한가 ?

1기가 / 1500byte (패킷의 최대 사이즈)

하지만 헤더 20을 빼면 1480 만 한번에 전송될 수 있다 =

한번에 1기가를 받지 않고 1500byte씩 나눠서 받는 이유는 중간에 전송중 에러가 나면 1500만 다시 보내면 되지만 1기가로 보낼경우 1기가를 처음부터 다시 보내야한다. 

 

  • identification: 어디 데이터에서 왔는지 식별을 한다. A B C를 한번에 다운받는다고 가정을하면. A에서 쪼개고 B에서 쪼개서 전송되고하면 섞인다. 이것을 식별하고 모으기 위한 장치
  • DF (Dont Fragment): 분할하지 마라 / 있는 그대로 전송하면되고 분할하지 마라 (쪼개서오면 잡아내면된다)

 

fragmentation attack : 분할하지않아야 하는 것을 분할해서 하는 공격.

(패턴 = rule = signiture = 침해사고 = 악성코드// 모두 같은 말)

정보보호 기술은 패턴매칭 밖에 없다

V3 백신이 하는게 헤더와 데이터에 어택이 있으면, 어택 공격을 잡아내는 것 안잡히게 하려면 fragmentation을 해서 쪼개지 않아야 할 것을 강제로 쪼갬 → 보안장비를 속여 식별이 안됌 → 끝에 가면 헤더를 때고 합치기 떄문에 공격이 된다.

 

  • MF (More Fragment?) : 전송된 데이터가 완전히 다 들어왔는지 확인하는 장치 (내 뒤에 조각이 더 있나요? 하고 물어봄- 조각이 더 있으면 1 이라고 답함 그리고 마지막에 more fragment의 응답은 0으로 끝난다. - 반드시 마지막은 0으로 끝나야한다.)

—---------------------- 문제 -----------------------

IP 프롤토콜

**분할의 예

  • IP 헤더를 제외한 전송 데이터의 크기가 380 바이트
  • 패킷의 최대 크기가 128 바이트 일경우**
  1. Identification : 우리가 설정하는 값
  2. Packet length: 패킷의 최대크기 128바이트 에서 헤더 20을 떼고 봤을때 108바이트. Fragement Offset을 구하기 위해서는 8바이트로 나눠서 정수로 떨어져야 한다. 그래서 104 로 데이터 크기를 임의로 줄여 8바이트로 나눴을때 정수로 결과가 나오게 한다. (기존 108→104로 줄이면서 남은 값들은 모아서 맨뒤에서 처리할 예정)

104 + 헤더20 = 124 가 하나의 packet legnth(패킷 길이는 헤더값을 포함함) 값이 되는 것

최종적으로 124 / 124 / 124 / 88 이 나오는데 헤더크기 20을 각각 떼고 총 합을 더하면 데이터의 크기 380바이트로 데이터 전부 정상 전송하게 된다.

MF (more fragment) : 너 뒤에 더 있니? 있으면 1 마지막은 무조건 0 이되어야 한다.

Fragment Offset: 8바이트로 나눠져야함/ 패킷의 최대 크기 128바이트에서 헤더 20 떼고 108바이트에서 8로 나눴을때 정수로 떨어지게 하기 위해 104바이트로 줄임 → 이값을 8바이트 단위로 나누면 104/8 = 13

오프셋은 중첩이 되어 표에 작성된다. 13 / 26 / 39 … 데이터의 크기 380바이트가 모두 전송될때까지 늘어남

결과표

 

----------------------------

 

 

tracert www.google.com

tracert는 Windows에서 네트워크 경로를 추적하는 데 사용되는 명령어로, 특정 도메인이나 IP 주소까지의 경로를 보여줍니다.

300x250
320x100

OSI 모델은 분업화가 되어있다 호환성과 속도를 위해서.

예를들어, 하드디스크가 고장이 났을 경우 하드디스크만 교체하면 된다. 이처럼, 한 계층이 고장이 나도 그 부분만 바꾸면 되기 때문 효율이 좋음 + 개별적으로 패치,업그레이드가 가능하다.

 

 

(송신자 - 모니터)

  • software layer- 응용프로그램 (웹브라우져, 카톡 ..)

7계층 | 응용계층 - (http 웹브라우저)

 

6계층 | 표현계층 - (압축, 암호기능)

5계층 | 세션계층 - (압축, 암호기능)

 

  • Heart of OSI - OS (하드웨어 구동 - 램카드는 하드웨어이기 떄문에 램카드 위에 있어야함)

4계층 | 전송계층 - (1,2,3계층까지의 작업에 에러나 오류가 생기면 고쳐주는 것)

 

  • Hardware layer - LAN카드(데이터가 램카드에 저장됩니다. // 컴퓨터 안에서 통신담당)

3계층 | 네트워크계층 - (IP 주소)

 

2계층 | 데이터 링크 계층 - (에러와 오류를 복구,수정을 위함) → 데이터링크와 물리계층을 하나의 계층으로 봐도 상관없다.

 

1계층 | 물리계층 - (신호를 주고 받으면 끝남)

 

 

통신은 크게 3가지 방법으로 한다 --> 무선: 주파수 // 유선 : 전기 // 광통신 : 매체가 모인 것


Media (매체) : 정보가 흘러나가는 공간

데이터의 헤더 : 데이터의 부가정보 (계층에서 받은 데이터를 잘 표현하기 위함, 해석이 된다.)

계층 간 프로토콜: 계층 간에 알아 먹을 수 있는 통신규약

시스템공간: 컴퓨터가 컴퓨터 역할을 하기 위해 정의한것

시용자 공간: OS 밑단에 대해 사용자가 필요로 하는것

프로세스: 프로그램에서 지금 실행되고 있는 것

ICMP : internet control management protocol

 

OSI 모델은 크게 4계층으로도 불려진다.

 

이를 OSI 산업표준 이라고 한다.

1,2계층 이더넷 프로도콜

3계층 아이피 프로토콜

4계층 TCP 프로토콜을 사용

7계층 프로토콜이 너무 많다

 

 

1 bite = 2^8 = 0 ~ 255

 

  • 4계층

TCP/UDP : 전송 계층 프로토콜

TCP : 신뢰성 o - 말한대로 전달한다

UDP: 신뢰성 x - 말한대로 전달하지 않는다

  • 3계층

ARP (Address resolution protocol) - IP를 MAC주소으로 변환

RARP - MAC주소를 IP으로 변환

 

URL은 알고 있는데 IP 주소(destination code )는 모른다. 그떄 DNS 에게 URL 주소를 물어보면 IP주소로 변환을 해줌

source MAC 1.1.1.1.1.1 내가 알고 있음 (6 bite) + destination MAC ( 여기서 말하는 MAC주소는 PC와 가장 근접한 라우터의 MAC주소를 물어보는것)

 

routing table :

라우터를 키면 BGP protocol 을 이용해 routing table에 가는 길들을 다운받는다.

라우터는 포트가 4개가 있다.

 

subnet mask:

서브넷 마스크(subnet mask)는 네트워크에서 IP 주소를 서브넷으로 나누는 데 사용되는 값입니다

내 아이피 주소를 가지고 어디까지가 네트워크 주소인지를 판단할때 사용 ( 네트워크 주소와 호스트 주소 나눈 것을 판별하는 것)

 

게이트웨이 (Gateway): 우리 PC가 인터넷 세상으로 나가기 위해서 처음 만나는 라우터(별명)

000.000.000 | 000

network | host

 

Host : 한번 물어본 것은 기록하는 것

보조 DNS : 메인 DNS가 고장났을 때 사용하기 위함

 

결론

내 PC에서 MAC 주소를 가지고 ARP 를 사용해서 → 게이트웨이(처음만나는라우터)의 IP 주소를 알 수있다.

** PC에서 ARP 를 가지고 나에게 연결된 모든 라우터에게 브로드캐스트를 보낸다

예를들어, google에 접속시도를 하는 중일경우, 구글로 가는 길목에 해당되는 라우터에서만 응답을 받는다.

 

브로드캐스트(broadcast)는 네트워크에서 특정 정보를 모든 장치에 동시에 전송하는 방식입니다.

unicast :한 사람의 특정 수신자에게만 데이터 패킷을 전송하는 방식

받는 쪽으로 리마인드

랜카드에서 받았을때 (내가 첫 게이트웨이일경우)


토막상식 : 4계층에서는 데이터를 푸쉬해서 7계층으로 올린다.

 

7계층 : URL

4계층 : port 주소 (어느 프로그램에게 가야 하는지를 알려줌) (2 bite)

3계층 : IP (4 bite)

1,2계층 : MAC (6bite)

 

- 7계층 URL

송신자는 PC에서 Google에 접속하기 위해 웹 브라우저를 열고 URL 을 입력한다.

DATA 만 내려줌

 

- 4계층 port 주소 (어느 프로그램에게 가야 하는지를 알려줌) (2 bite)

header를 붙임| DATA

Soruce port(ex 2000 port) + Destination port (ex 80 port) | DATA

작업이 끝난 후 DATA 만 내려줌

 

- 3계층 IP (4 bite)

header를 다시 붙임 | DATA

Source IP + Destination IP | DATA

URL을 입력하면, 먼저 DNS(Domain Name System)에 쿼리를 보내 해당 도메인의 IP 주소를 조회합니다.

DNS 서버는 해당 도메인에 대한 IP 주소를 반환합니다. 이 IP 주소가 목적지 IP가 됩니다.

 

DATA 만 내려줌

 

- 1.2계층 MAC (6bite)

header를 다시 붙임 | DATA

Source MAC+ Destination MAC | DATA

 

게이트웨이(처음만나는 라우터)의 IP 주소는 알고 있고 있지만, 난 MAC 주소를 알고 싶기때문에

ARP를 사용해서 브로드캐스팅 -> 해당 IP 주소를 가진 장치가 자신의 MAC 주소를 포함한 ARP 응답을 송신 장치에게 전송합니다.

 


송신과정

 

PC→A→B→C→D->Google

 

A라우터 -> B라우터 로 가는 과정

  • 1,2계층에서 씌운 헤더 해석후 데이터만 3계층으로 보냄
  • 3계층 네트워크계층(os)에서 데이터를 확인후 본인에게 온 것이 아니므로 다시 1,2 계층으로 보냄

Source MAC(A라우터의 MAC주소)+ Destination MAC(B라우터의 MAC주소) | DATA

 

 

A라우터가 브로드캐스트해서 google 로 가는 다음 목적지 라우터 B의 IP주소를 받고 ARP를 통해 MAC주소를 받음

 

source MAC + Destin MAC 가 완성이 되었으면 header를 떼고 전송하여 다음 라우터 B로 간다.

 

라우터 B 는 네트워크계층(os)에서 데이터를 확인후 본인에게 온 것이 아니므로 다시 1,2 계층으로 보냄

 

위의 작업을 반복하고 C->D 로 넘김

300x250
320x100

시험문제

  1. 주요정보통신 기반시설을 점검할 수 있는 자 (아닌것은?)

한국인터넷진흥원 KISA

정보공유 분석센터,

정보보호 전문 서비스 기업 (정보보호 전문 서비스 기업은 SK쉴더스를 포함 총 28기업이 있다.)

한국전자통신연구원 

 

 

주요정보통신 기반시설로 지정이 되어 있는 장소는 1년에 한번 취약점 진단을 꼭 받아야한다 

제17조(취약점 분석 및 평가 시기) → 지정 후 6개월 이내에 분석을 해야함, 매년 취약점 분석 평가를 실시해야한다.

과학기술정보통신부고시 제2021-103호:

** 법률은 선택사항이 아닌 의무사항이다.

 

 

---

2. 시험문제

보안위협에 대해 설명하고 이것을 제거하기 위해서 설정해야할 것은?

 

Session Timeout 설정 - 383

주기적으로 세션 체크를 해서 연결이 정상적인지 확인한다 .

Session Timeout 설정 (5이하 권고)

Session Timeout 설정 유무를 점검하여 터미널 접속 후 일정 시간(Session Timeout 지정 시간)이 지난 뒤 터미널 세션이 자동으로 종료되어 관리자의 부재(터미널 작중 자리 비, 작업 완료 후 터미널 접속을 종료하지 않 음) 시 발생 가능한 비인가자의 터미널 접근 통제가 되는지 확인하기 위함

 

Session Timeout 정책이 적용되지 않을 경우, 관리자 부재 시 비인가자가 네트워크 장비 터미널에 접속된 컴퓨터를 통해 네트워크 장비의 정책 변경 및 제 등의 행위를 할 수 있는 위험이 존재함

Session Timeout: 터미널 접속 후 유휴 상태 일 때 자동으로 터미널 접속을 종료하는 시간 설정

---

3. 시험문제 - 387

SNMP(Simple Network Management Protocol) 서비스와 관련해서 라우터에 config 해야할 사항은??

가장 좋은 방법은 사용을 안하는것

하지만 사용을 해야한다면, 보안을 해야 할 사항들 중 틀린것은?

  • Community String이 디폴트로 되어있는 것은 사용하면 안된다 ( 삭제해야함)

  • 새롭게 Community String 을 생성해야하는데 복잡하게 생성을 해야함
  • Community String의 권한은 라이트 권한을 주어서는 안된다. (필요에 의해 사용을 할 수 있어도 기본적으로 라이트 권한은 안됌)

  • SNMP를 통해서 장비에 접근할 수있는 아이피를 제한한다. access list를 통해 제한한다.

Community String: SNMP는 MIB라는 정보를 주고받기 위해 인증 과정에서 일종의 비밀번호인 'Community String'을 사용함

---

 

4. 시험문제 - 397

스푸핑 방지를 위해 설정해야할 아이피 주소가 아닌것은? (객관식)

 

■ 장비별 조치방법 예시 공통 특수 용도 주소 차단(RFC 6890 참조)

 

0.0.0.0/8 자체 네트워크(This host on this network, RFC1122)

10.0.0.0/8 사설 네트워크(Private-Use, RFC1918)

127.0.0.0/8 루프백(Loopback, RFC1122)

169.254.0.0/16 링크 로컬(Link Local, RFC3927)

172.16.0.0/12 사설 네트워크(Private-Use, RFC1918)

192.0.2.0/24 예제 등 문서에서 사용(TEST-NET-1, RFC5737)

192.168.0.0/16 사설 네트워크(Private-Use, RFC1918)

 

---

5. 시험문제 - 434 (단답형 주관식)

 

Directed-broadcast 차단

 Directed-broadcast 서비스 차단을 통해 DoS 공격을 방지하기 위함

IP Directed-Broadcast는 유니스트 IP 패정 서브넷에 도착 했링크-이어 브로드스트로 전되는 을 허용함. 이은 보통 의적으로 이용되, 특히 smurf 공격에 이용

 

스머프 공격 은 브로드캐스트

 

Smurf 공격: 인터넷 프로토콜(IP) 브로드캐스트나 기타 인터넷 운용 측면을 이용하여 인터넷망을 공격하는 행위로 브로드캐스트에 대한 응답받을 IP 주소를 변조하여 해당 IP 주소 호스트에 DoS 공격을 감행하는 공격 기법

 

브로드캐스트 아이피 특징 :

그쪽으로 핑을 보내면 이 범위 안에 있는 호스트들에게 다 뿌린다.

그래서 스머프 공격이라는 것은 내가 공격 대상자 소스 IP를 변조해서 브로드 캐스트 아이피로 핑을 보냄,

브로드캐스트 아이피가 같은 범위 안ㅇ ㅔ있는 호스트에게 request 를 보냄

→ 이것을 받은 호스트들이 공격 reply 를 공격자가 변조를 시킨 공격 대상 IP로 공격을 보냄

 

이것을 차단하기 위해서 차단해야 하는 항목은 무엇인가?

 

다이렉트 브로드캐스트 차단.

 

 


객관식 3문제 / 주관식 2문제

사설 아이피는 객관식

주관식은 스머프 공격

취약점 진단개요

취약점 : 위협발생의 사전 조건으로 자신이 가진 취약한 속성

안전장치의 부재 + 보안상의 결점

ex)

  • 서버에서 실행되는 오래된 버전의 서비스 ( 버그나 패치등이 나오기 때문에) → 하위 버전의 취약점이 제거가 됌 하지만 제거하기 힘들다.

왜냐면? 업데이트를 했을때 서비스에 문제가 없을지 판단이 안됌. 하나의 버젼이 업데이트되면 다른 운영 버젼들이 못따라 줄 수가 있다. → 그렇기에 항상 취약점이 존재하다.

웹서비스를 운영하기위해 웹

취약점 진단하는 두가지 방법

1 체크리스트 (서버에 보안 설정이 되어있는가?)

2.취약점 진단 스캐너 (스캐너가 패턴을 보내서 돌아오는 값을 보고 판단) - 진단 스캐너 Tool 넥세스

  • 제한없는 네트워크 접근 (보안에서 가장 중요한 핵심)

접근제한 (서버, 라우터, 시스템에서 접근할 수 있는 아이피만 허용하고 나머지는 막는다.) → 가장 효과적인 방법

  • 침입차단 시스템의 열린 포트

우리 회사쪽으로 접근이 허용된 IP주소 포트가 있을거고 접근 허용이 안된 포트를 제어하는 것이 방화벽 / 방화벽이 열린 포트 제어를 안하면 뻥 뚫려있음 → 불필요한 포트까지 오픈되어 있어서 내부로 침입이 가능하는 취약점을 가지고 있다.

TCP 80 , TCP 443 포트를 open 시켜놓으면 누구든지 아이피를 제한을 안해놨기때문에 접속이 가능하다. → 이 홈페이지를 공격하는 해킹 트래픽을 방화벽에서는 막을 수 없다. 이것을 해결해줌 공격IP만잡아주는 것 IPS.

web service 에 특화된 공격을 막아주는 것은 web firewall.

접근통제가 안될때 올드한 버젼에 대해 방어할 수 있는 최선의 대책은 IPS (허용된 트래픽 중에서 해킹성 트래픽을 막아준다.)

UTM :하나의 장비에 여러가지 보안서비스를 구축해놓은 것

(기본기능은 방화벽 + VPN) + 옵션추가해야함 IPS ANTI VIRUS, 유해차단

오래된 서비스에 UTM을 사용하고 있다면 적용가능한 것은 ?

접근통제하는방법

UTM안에 들어있는 IPS 기능을 활성화 시켜야함

  • 느슨한 통제구역의 물리적 보안
  • 서버와 PC에 취약한 패스워드 설정

취약점 발생유형

환경 및 시설

물리적 보호 결여, 불안정한 전원 설비, 재해를 입기 쉬운 입지조건 …

DI → 재해복구

CSP

MSP 구축되어있는 클라우드 시설에 고객의 아이티 시설을 옮겨줘야 하는데, 그러기 위한 컨설팅과 옮겨주는 기술을 MSP 사업이라고 함 → MSP 역할을 하려면 클라우드에 대한 CSP에 대한 이해도가 높아야함



취약점 점검 분류 기준

관리적 관점 : 정보보호관리체계 보안 통제에 근거하여 취약점 점검

기술적 관점 : 아이티 시설 네트워크, 서버, 웹,PC에 대해 취약점 점검

물리적 관점: 문서 검토, 체크리스트, 면담, 실사 통해 점검

취약점 진단 절차

  1. 자산 조사 및 분석 → 자단을 파악, 그 회사가 운영하고 있는 아이티 시설들이 리스트화 되어 있는데 그중에서 진단 대상을 설정 예를들어 같은 역할을 하는 장비가 여러대 있을 수 있는데 그 중 샘플링 작업을 통해 뽑아서
  2. 진단 대상 선정
  3. 제약 사항 및 일정 확인 → 서비스에 영향을 줄 수 있어서 서비스 제한이 없는 야간에 할 수도 있음
  4. 진단 수행 → 수동점검, 자동점검으로 나눠짐 // 네트워크 시스템 또는 보안장비는 체크리스트가 나와있다. 리스트의 내용대로 설정이 되어 사용하는지 확인해야함 , 윈도우나 유닉스 계열 서버는 점검해야할 체크리스트가 많다. 한 서버 하는데 2시간 걸림 시간 단축을 위해→ 그래서 서버쪽은 스크립트 기반 점검을 진행한다 (명령하는 것을 하나의 스크립트 파일로 만들어서 하나씩 스크립트를 실행하고 그것을 파일로 만들어줌) ///////// 자동진단(스크립트프로그램, 넥세스라는 진단프로그램을 사용) ////// 수동진단(주요정보통신기반시설 기술적 취약점 분석평가 가이드를 통해 진단을 함)
  5. 결과분석
  6. 결과 보고서 작성 . 보고
  7. 진단 완료

시험 출제 (여기서 부터)


주요 정보통신 기반 시설점검

  • 주요정보통신 기반시설 점검의 이해
  • 네트워크 장비 보안 점검/실습
  • 유닉스 서버 보안 점검
  • 윈도우 서버 보안 점검
  • 보안장비 보안점검
  • PC 보안 점검

42p

정보통신기반 보호법 : 주요정보통신 기반시설 점검은 정보통신기반보호법 제9조(취약점의 분석 평가) 및 시행령 제17조(취약점 분석 평가의 시기)를 준용하고 있음.

헌법 → 법률 → 대통령령(시행령) → 시행규칙 → 고시

국가법령정보센터에서 모든 법률 정보를 조회할 수 있음

제8조(주요정보통신기반시설의 지점) : 정부기관에 많은 아이티 시스템이 운영되고 있는데 , 이 시스템 중에서 대국민 서비스를 하기 위해 매우 중요한 시스템들을 지정하고 그 시설들을 주요정보통신기반 시설이라고함. ex) 고등학교 성적표는 교육청시설의 nice에 들어가 있음 이런 시설같이 대국민 대상으로 서비스를 하는 시설들을 주요정보통신기반시설으로 지정한다.

보호법 → 제8조 → 1항 // 보호가 필요하다고 인정되는 시설을 지정할 수 있다. (국가사회적 중요성, 기관이 수행하는 업무 정보통신기반시설의 의존도, 상호연계성, 침해사고가 발생시 국가 경제사회에 미치는 피해규모 및 범위, 침해사고 발생가능성 또는 복구의 용이성

취약점 분석 평가를 할 수 있는 기업이 정해져 있다. ( 아무나 취약점 진단을 하는것이 아님) - 한국인터넷진흥원 KISA or 정보공유 분석센터, 정보보호 전문 서비스 기업, 한국전자통신연구원 만 점검 할 수있다.

주요정보통신 기반시설로 지정이 되어 있는 장소는 1년에 한번 취약점 진단을 꼭 받아야한다 (정보보호 전문 서비스 기업은 SK쉴더스를 포함 총 28기업이 있다.)

제17조(취약점 분석 및 평가 시기) → 지정 후 6개월 이내에 분석을 해야함, 매년 취약점 분석 평가를 실시해야한다.

과학기술정보통신부고시 제2021-103호:

** 법률은 선택사항이 아닌 의무사항이다.


시험문제

  1. 주요정보통신 기반시설을 점검할 수 있는 자 (아닌것은?)

취약점 분석 평가를 할 수 있는 기업이 정해져 있다. ( 아무나 취약점 진단을 하는것이 아님) - 한국인터넷진흥원 KISA or 정보공유 분석센터, 정보보호 전문 서비스 기업, 한국전자통신연구원 만 점검 할 수있다.

주요정보통신 기반시설로 지정이 되어 있는 장소는 1년에 한번 취약점 진단을 꼭 받아야한다 (정보보호 전문 서비스 기업은 SK쉴더스를 포함 총 28기업이 있다.)


취약점 분석 및 평가 수행

주요정보통신기반시설에 대해 종합적으로 분석 및 평가, 개선하는 일련의 과정

주요시설로 지정된 시설은 스캐너를 사용할 수 없다. 가이드에 있는 체크리스트로 진단해야한다.

기반시설에 대해 취약점을 분석 평가 수행할 수 있는 수행주체

  • 관리기관이 직접 수행할 수 있다.
  • 외부기관 위탁
  • 정보보호 전문서비스 기업, 한국인터넷진흥원, 정보공유 분석센터, 한국전자통신연구원.

보안관제 전문기업은 안된다. 정보보호 전문서비스 기업으로 지정이 된 기업만 취약점 분석이 가능하다.

정보보호전문서비스기업으로 지정받으려면, 정보보호산업진흥법 법률 제23조 ( 학력, 자격증, 경력으로 차별을 둔다. )

수행 주기

시설로 지정된 이후 6개월 이내 평가를 해야한다. + 매년 정기적으로 취약점 분석 평가를 진행 해야한다.

분석 평가 대상 범위

주요정보통신기반시설의 세부시설로 정의된 정보보호 대상 자산

분석 평가 기본항목은 1 관리적 2물리적 3기술적 으로 구분

수행절차

1단계: 취약점 분석 평가 계획 수립 (수행주체, 수행절차, 소요예산, 산출물 등을 포함한 자체 세부계획 수립)

2단계: 취약점 분석 평가 대상 선별

네트워크, 보안, 시스템 별로 그룹화하여 취약점 분석, 평가 대상 목록 작성 (동일한 장비에 대해서 샘플링을 하기 위해서는 그룹으로 묶어놔야한다.)

3단계: 취약점 분석 수행

취약점 분석 요령….

4단계: 취약점 평가 수행

정보보호의 3대 목표 CIA 기밀성, 무결성, 가용성

이것을 기준으로 하여 자산의 중요도를 평가한다.

CIA 관점에서 등급에 따라 급수를 나눈다.

조치불가 취약점으로 분류된 것들 (오래된 버전 등)은 다른 방안을 사용하여 준비를 하고 보고를 하면 된다.

취약점이 발견이 되면, 이용도 부분에서 상 중 하로 평가를 한다.

주요정보통신기반시설 기술적 취약점 분석 평가 상세 가이드

한국인터넷진흥원의 지식플랫폼 → 가이드라인


실습


네트워크 장비 보안 점검

  1. 계정관리: 사용하고 있는 계정의 계정정보를 어떻게 하는지
  2. 접근관리: 장비쪽으로 접근할 수 있는 접근 통제를 어떻게 해놨는가?
  3. 패치관리: 시스템의 버전 정보를 보고 체크

UTM 외부인터넷과 내부 망을 분리하는 역할을 함 → 공인 아이피로 분류되는 것은 UTM

내부 망은 공인 아이피가 아니다 = 외부에서 접속이 안된다. (사설 아이피는 라우팅이 안된다.)

공인 아이피를 사용하고 있는 외부 PC와는 접속이 안된다

내부 망에서 운영하고 있는 네트워크 장비, 보안장비는 해커들의 공격 대상이 되지 않는다.

보안 담당자는 취약으로 나온 부분에 대해 보안조치 계획서를 만든다. → IT 시설을 운영하고 있는 협력사와 협의를 해서 계획서를 만들거나 협력사에게 던짐

만약 장비가 너무 오래되서 조치불가가 떨어져서 장비를 바꿔야 한다면,

장기, 단기, 중기로 나눠져서 계획서를 작성하게 된다.

모델은 안보이고 소프트웨어 버젼만 보고 취약으로 보고서를 작성하지만, 담당자는 너무 오래되서 조치가 안된다. 컨설턴트는 이러한 기준을 생각해야한다.

  1. 로그관리: 원격 로그 서버를 운영하고 있느냐, 로깅 버퍼

장비나 서버에서 로그는 보안사고 발생시 추척을 할 수 있는 정보로 중요

로그는 해커가 지우고 나오면 흔적이 안보이기 떄문에, 보안에서 로그는 로그서버에 별도로 저장을 하는 것으로 권고 하고 있음

  1. 기능관리



패스워드 설정

371 372 375 377 378 379

383 387 396 397 400 402

CISCO 는 두가지 암호를 사용한다.

enable password

enable secret 일 방향 암호화 SHA 함수에 의해

enable password 는 service password-encryption이 설정이 안되어 있으면 서비스 상에 암호가 그대로 보임 - 377

원격 터미널(VTY) 통해 네트워크 장비 접근 시 지정된 IP에서만 접근이 가능 하도록 설정되어 있는지 점검 - 379



  1. 시험문제

Session Timeout 설정 - 383

주기적으로 세션 체크를 해서 연결이 정상적인지 확인한다 . 보통 5분정도 주기

보안위협에 대해 설명하고 이것을 제거하기 위해서 설정해야할 것은?



SNMP 서비스 확인 - 387

각 호스트 에서 정기적으로 여러 정보를 자동으로 수집하여 네트워크 관리를 하기 위한 프로토콜

SNMP 가 없을떄는 Ping 테스트를 통해서 장비 관리를 하였다.

실시간으로 장비의 트래픽. CPU, 메모리 사용률, 누가 어디서 로그인했는지, 실시간 트래픽이 얼마만큼 흘러다니는지 → 실시간으로 관리를 하기 위해서 나온 프로토콜이 SNMP 이다.

SNMP 를 사용하기 위해서는 버젼이 동일해야한다. SNMP community string이 일치해야 정보를 받을 수 있다. 이것을 사용하는데 서버 같은 경우 OS 가 설치가 되면 default 값으로 퍼블릭과 프라이빗 값이 생성이 되는데 이것들은 사용하면 안된다. 왜? 해커가 그 커뮤니? 값을 이용해 장비의 정보를 가져올 수 있다.

그래서 새로운 커뮤니티를 만들어서 사용하는 것을 권고.

커뮤니티 스트링은 권한이 주어짐

  • need 오닉 - 장비 접근해서 정보만 가져옴 ( CPU얼마
  • need light 쓸 수 있는 권한 ( config 에 장비를 재현할 수 있다, ex 라우터를 리부팅, 인터페이스를 죽이고, 데몬을 다운 할 수도 있다.)

그런 권한을 가지고 있는 곳은 부가적으로 접근통제를 해서 관리자만 접근할 수 있게 해야한다.



  1. 시험문제 - 387


SNMP 서비스와 관련해서 라우터에 config 해야할 사항은??

가장 좋은 방법은 사용을 안하는것

하지만 사용을 해야한다면, 보안을 해야 할 사항들 중 틀린것은?

  • 커뮤니티스트링이 디폴트로 되어있는 것은 사용하면 안된다 ( 삭제해야함)
  • 새롭게 커뮤니티 String을 생성해야하는데 복잡하게 생성을 해야함
  • 커뮤니티스트링의 권한은 라이트 권한을 주어서는 안된다. (필요에 의해 사용을 할 수 있어도 기본적으로 라이트 권한은 안됌)
  • SNMP를 통해서 장비에 접근할 수있는 아이피를 제한한다. access list를 통해 제한한다.


TFTP 서비스 차단 - 396

TFTP : 계정 정보 없이 정보를 다운로드 받을 수 있는 기능

그래서 이 서비스는 사용하지마라.



Spoofing 방지 필터링 적용 또는 보안장비 사용- 397

사설 네트워크, 루프백 등 특수 용도로 배정하여 라우팅이 불가능한 IP 주소 를 스푸핑 방지 필터링(Anti-Spoofing Filtering)을 적용하여 차단하는지 점검

사설아이피 대역은 라우팅이 안되서 정보가 밖으로 나갈 수 없다.




  1. 시험문제 - 397

스푸핑 방지를 위해 설정해야할 아이피 주소가 아닌것은?

사설아이피 범위에 대해서는 명확히 알고 있어야한다.

■ 장비별 조치방법 예시 공통 특수 용도 주소 차단(RFC 6890 참조) 0.0.0.0/8 자체 네트워크(This host on this network, RFC1122) 10.0.0.0/8 사설 네트워크(Private-Use, RFC1918) 127.0.0.0/8 루프백(Loopback, RFC1122) 169.254.0.0/16 링크 로컬(Link Local, RFC3927) 172.16.0.0/12 사설 네트워크(Private-Use, RFC1918) 192.0.2.0/24 예제 등 문서에서 사용(TEST-NET-1, RFC5737) 192.168.0.0/16 사설 네트워크(Private-Use, RFC1918)




내가 보안점검을 하려는 장비의 위치가 방화벽, 백본 밑 스위치 장비이면 사설아이피를 운영하고 있기 때문에 디도스 공격을 받을 일이 없다.

디도스 공격은 경계라우터에 대해서만 설정을 하면 된다.

사용하지 않는 인터페이스의 Shutdown 설정 402

사용하지 않은 포트에 광케이블을 꼿으면 상대라우터와 통신이 된다.

사용하지 않는 포트는 강제로 셧다운을 시키고 사용할때는 노 셧다운을 시켜서 사용해야한다.

사용자·명령어별 권한 수준 설정 - 404

계정별로 레벨을 달리해서 세팅을 하기를 권고하고 있음

VTY 접속 시 안전한 프로토콜 사용 - 409

텔렙 접속, SHH. web 접속

텔렙과 web 은 통신할때 암호화 통신을 안하기 떄문에 중간에 탈취가 될 수 있다.

장비에 접속을 할때는 암호화된 프로토콜 SHH 를 사용해라.

불필요한 보조 입·출력 포트 사용 금지 - 411

사용하지 않는 보조(Auxiliary) 포트의 사용을 제한하여 비인가 접근을 원천 적으로 방지

로그온 시 경고 메시지 설정 - 413

배너정보가 설정되어 있는지 확인

로그온 시 접근에 대한 경고 메시지를 설정한 경우

Router(config)# banner motd #

원격 로그서버 사용 - 415

로컬에 발생되는 메모리를 원격 로그 서버로 실시간 전송을 해야한다.

원격 로그 서버 아이피가 지정이 되어있는지

버퍼 크기가 적절하게 설정되어있는지

정책에 따른 로깅 설정이 되어 있는지

NTP 서버 연동 - 422

시스템마다 시간이 다르면 분석을 할 수 없다. 그래서 시간을 모든 장비들을 동기화 시키기 위해 NTP 서버를 사용 해야한다.

timestamp 로그 설정

TCP Keepalive 서비스 설정 (연관 되는 것이 세션 타임아웃)

네트워크 장비의 Telnet 등 TCP 연결이 원격 호스트 측에 예상치 못한 장애 로 비정상 종료된 경우 네트워크 장비가 해당 연결을 지속하지 않고 해제하 도록 TCP Keepalive 서비스를 설정

Finger 서비스 차단 - 426

Finger 서비스로 사용하여 네트워크 장비에 로그인한 계정 ID, 접속 IP 등 정보 노출 Finger 서비스가 활성화되어 있으면, 장비의 접속 상태가 노출될 수 있고 VTY(Virtual Type terminal)의 사용 현황을 원격에서 파악하는 것이 가능함

핑거 서비스를 가지고 장비에 현재 접속되어있는 계정정보와 아이피 주소를 가져온다. 이 아이피 주소는 서버에 접속하도록 허용되어있는 아이피이다. → 이것을 이용해 아이피 스푸핑을 통해 장비에 접속이 가능하다.

웹 서비스 차단 - 428

HTTP 접속을 하지 않게 해라 → 암호화된 통신이 아니기 떄문

TCP/UDP Small 서비스 차단

※ TCP/UDP Small 서비스는 IOS 11.3 이상에서는 기본적으로 서비스가 제거된 상태이므 로 Small 서버들이 Default로 Disable되어 있지만 낮은 버전의 경우는 직접 설정해 주 어야 함

Bootp 서비스 차단

Bootp 서비스를 차단하지 않을 경우, 다른 라우터 상의 OS 사본에 접속하여 OS 소프트웨어 복사본을 다운로드 할 수 있음

※ Bootp 서비스: 네트워크를 이용하여 사용자가 OS를 로드할 수 있게 하고 자동으로 IP 주소를 받게 하는 프로토콜임

CDP 서비스 차단

시스코 장비 두대가 연결이 되어있으면 한쪽 장비에서 다른쪽 장비의 정보를 알 수있다. 그렇기 때문에 CDP 서비스를 차단해야한다.



  1. 시험문제 - 434 (단답형 주관식)

Directed-broadcast 차단

스머프 공격 은 브로드캐스트

※ Smurf 공격: 인터넷 프로토콜(IP) 브로드캐스트나 기타 인터넷 운용 측면을 이용하여 인터넷망을 공격하는 행위로 브로드캐스트에 대한 응답받을 IP 주소를 변조하여 해당 IP 주소 호스트에 DoS 공격을 감행하는 공격 기법

브로드캐스트 아이피 특징 : 그쪽으로 핑을 보내면 이 범위 안에 있는 호스트들에게 다 뿌린다. 그래서 스머프 공격이라는 것은 내가 공격 대상자 소스 IP를 변조해서 브로드 캐스트 아이피로 핑을 보냄, 브로드캐스트 아이피가 같은 범위 안ㅇ ㅔ있는 호스트에게 request 를 보냄 → 이것을 받은 호스트들이 공격 reply 를 공격자가 변조를 시킨 공격 대상 IP로 공격을 보냄

이것을 차단하기 위해서 차단해야 하는 항목은 무엇인가?

→ 다이렉트 브로드캐스트 차단.



Source 라우팅 차단 - 436

목적지 아이피를 보고 찾아간다.

라우터에서 밖으로 인터넷으로 보내려고하는데 목적지 아이피 주소를 가지고 찾아가는 것이 아니고 소스 아이피주소를 가지고 목적지를 찾아가는 방식.

소스 아이피에 대해서는 라우팅을 별도로 운영할 수 있다.

Proxy ARP 차단

Proxy ARP를 차단하지 않을 경우, 악의적인 사용자가 보낸 거짓 IP와 MAC 정보를 보관하게 되며 이로 인해 호스트와 호스트 사이에서 정상적인 통신 이 이루어지지 않을 수 있음

ICMP unreachable, Redirect 차단 - 438

목적지를 찾아갈때 ICMP 프로토콜이 없으면

ICMP 프로토콜을 이용해 사용하는 프로그램 ping test …

ICMP unreachable을 차단하지 않을 경우, 공격자의 스캔 공격을 통해 시스 템의 현재 운영되고 있는 상태 정보가 노출될 수 있음

ICMP redirect을 차단하지 않을 경우, 호스트 패킷 경로를 다시 지정하는 과 정에서 특정 목적지로 가기 위해 고의적으로 패킷 경로를 변경하여 가로챌 수 있음

ICMP unreachable: ICMP unreachable 메시지에는 특정 호스트 및 게이트웨이에 패킷 을 보냈을 때 어떠한 이유로 전달될 수 없는지 나타내는 코드들을 포함하고 있음

identd 서비스 차단 (핑거서비스도 사용자 식별이 가능)

identd 서비스는 TCP 세션의 사용자 식별이 가능하여 비인가자에게 사용자 정보가 노출될 수 있음

Domain lookup 차단

명령어를 잘못 입력할 때 발생하는 불필요한 Domain Lookup를 차단

PAD 차단

mask-reply 차단

스위치, 허브 보안 강화

스위치나 허브에서 포트 보안, SPAN 설정이 적용되고 있는지 점검

스위치에서 패킷을 분석하기 위해 설정해 놓은 것이 있는가? 스니핑과 같음. 이런 것 설정이 안되어 있어야 양호 를 줄 수있음.



실제 config 를 보고 해당사항이 없는지 엑셀파일로 실습 + 보고서 작성

비밀번호 기술지원


정보보호 분야 자격증

민간자격

  1. 컴퓨터보안전문가
  2. CPPG 개인정보관리사 ( 개인정보 보호에 관한 자격증)
  3. 산업보안관리사 ( 국가 공인)

국가공인

  1. 정보처리기사
  2. 정보보안기사
  3. 정보시스템 감리사
  4. 기술지도사
  5. 정보통신/관리기술사
  6. ISMS-P 인증심사원

국제자격증

  1. CISSP 정보시스템 감사사
  2. CISA 정보시스템 보안전문가
  3. ISO27001 정보보호관리체계 인증심사원
  4. BS10012 개인정보보호 인증심사원

해외취업

CISSP CISA CCNA CCNP

결론은 기술사 자격증

취업과 동시에 기술사 공부를 해야한다. 보통 2년 정도를 본다.

300x250
320x100

(보안업체 대표님 말씀)

'HOST 분석 스킬이 있으면 플레인 비트, host분석 스킬이 없으면 네트워크쪽으로 파라. 보안관제업체보다는 전쟁터로 들어가는 게 더 많이 배울 수 있다. 예를들어, 서비스가 돌아가는 곳 or 게임회사 or 포탈 or e커머스 아무일도 일어나지 않는 곳 보안이 명목적으로 있는 곳은 배울 것이 없다.' + 데이터 분석 시장이 유망하다.

 

사이버보안 환경변화 2부

 

우리나라 사이버보안은 3개로 나눠져 있음

  • 민간은 한국인터넷진흥원이 총괄
  • 공공은 국정원 담당
  • 군은 사이버사령부가 담당

우리나라는 아직 3.20 후속조치 체계로 이루어져있다.

 

2009년 7·7 디도스 공격

2009년 7월 7일을 기점으로 대한민국과 미국의 주요 정부기관, 포털 사이트,

은행 사이트 등이 분산 서비스 거부 공격(DDoS, 디도스)을 당하여 서비스가 일시적으로 마비된 사건이다.

 

2013년 3.20 사이버테러

2013년 3월 20일 문화방송, 한국방송공사, YTN 등 주요 방송사와 은행, 카드 회사 등의 전산망이 마비되었던 사건

 

2016년 국방망 해킹사건

원래 국방부 PC는 해킹 방지의 목적으로 인트라넷과 일반 인터넷 회선이 분리가 되어 있습니다. 그런데 국방부 내 한 PC에서 임의의 랜카드를 추가해서 사용하였고 그 랜카드가 결국 일반 인터넷망과 연결되면서 해킹이 시작되어 국방부 내 PC 약 3200대가 해킹되었습니다. 위 해킹은 북한의 소행이라고 추측하였지만 군사기밀은 이미 유출된 뒤 였고 한·미 연합군 대응계획인 ‘작전계획 5027’ 까지 유출되지 않았나 하는 의혹까지 불러들였습니다.

 

2021년 제로트러스트 선언

누구도 믿지 않겠다는 것이다. 제로 트러스트 전략에 따르면 안전한 영역도 없고, 안전한 사용자도 없다. 내부인이라도 철저한 인증과 신원 확인을 거쳐야 한다. 네트워크를 사용할 수 있는 시스템과 정보 접근 권한도 최소화할 필요가 있다. 

 

2022년 클레이스왑 20억 털린 사건

2022년 카카오톡의 대표 코인 플랫폼 클레이스왑이 BGP 하이재킹으로 22억 규모 암호화폐 탈취 당하였다.

 

- BGP Hijacking

AS(Autonomous System)라는 IP 대역을 자동으로 관리해 주는 서비스 간에 라우팅 테이블을 공유하는 BGP 프로토콜을 악용하여 공격자가 임의로 설정한 라우팅 테이블을 인접한 AS에 퍼뜨리는 것을 의미합니다. 

 

쉽게 말하면, 통신 시에 통신의 목적지를 공유하는 규칙이 있는데, 이 규칙을 악용하여 공격자가 임의로 설정한 목적지로 변조해버리는 것이죠. 

더 쉽게 말하면, 국가 간의 경계를 관리하는 관문을 강도 짓 해서 점거하고, 출입자들의 경로를 강도가 원하는 곳으로 납치해버리는 공격 방식

 

BGP Hijacking 공격 대응 방안

  • IP 대역에 맞지 않는 트래픽이 발생하는지 확인
  • 갑자기 응답 패킷의 양이 변하는지 확인
  • 잘못 연결되어 리다이렉트되는 트래픽이 있는지 등을 체크하면서 꾸준히 모니터링
  • 또한, 특정한 대역만 허용하도록 하는 화이트리스트 사용

(화이트리스트: 특정한 IP 주소, 도메인, 또는 네트워크 대역만을 허용하여 접근을 제어하는 보안 메커니즘)

  • 라우팅 정보의 무결성을 보장하는 인증서를 발행하여 통신의 신뢰성을 올리는 방법

 

복원력 resilience

  • 복원성 있는 네트워크는 주어진 권한을 벗어나는 행위를 빠르게 식별하고 이러한 행위를 격리할 수 있어야 한다.
  • 복원성 있는 네트워크는 통제 가능하도록 구성되어야 하며 이를 통해 잠재적 피해를 최소화할 수 있어야 한다.

Ex) 7.7 DDos 공격은 대응할 수 있는 장치가 구성되어 있지 않았다.

  • 이때 가장 중요한 것은 탐지된 비정상 행위를 격리하되 비즈니스 연속성 보장을 위한 작업의 생존성을 보장하여야 한다.

 

제로트러스트

제로트러스트는 경계선 기반 방어체계의 한계를 극복하기 위해 구성

제로트러스트는 자산의 중요도를 따진다. 자산을 식별하고 가치를 매기는 것이 어렵다.

경계선 기반 방어쳬계의 완벽한 항복 선언 ( 경계선 기반 방어는 증가된 공격표면을 감당하지 못함)

why ? 경계선을 만들 수 없다, 다른회사들 소프트웨어 쓰는거, 클라우드 기반 등을 지켜야 하는데 경계선이 무한히 확장되었기 때문에 지킬 수가 없다. 그래서 좀 더 자른 경계를 만들어야 한다 그게 제로트러스트이다.

네트워크의 구조변화를 통한 네트워크 가시성 확보에서 시작 ( 방어 가능한 네트워크 )

 

SDN (Software Defined Network), 오버랩 네트워크

SDN과 오버랩 네트워크는 현대의 IT 환경에서 중요한 역할을 하며, 네트워크 관리의 효율성을 높이고, 변화하는 비즈니스 요구에 신속하게 대응할 수 있게 해줍니다. 이러한 기술들은 특히 클라우드 컴퓨팅, 데이터 센터, 그리고 대규모 네트워크 환경에서 큰 주목을 받고 있습니다.

 

Root DNS

DNS의 역할: DNS(도메인 네임 시스템)는 도메인 이름을 IP 주소로 변환하여 인터넷에서의 통신을 가능하게 합니다.


DNS 서버의 종류: DNS 서버는 다양한 도메인 최상위 도메인(TLD)을 관리합니다. 예를 들어, .com, .net, .org 등의 도메인을 담당하는 DNS 서버가 있습니다.


13개의 DNS 서버
구성: 총 13개의 DNS 서버가 있으며, 이 서버들은 각각 특정 TLD를 관리합니다. 이들 서버는 고유한 IP 주소를 가지고 있으며, 도메인 네임에 대한 정보를 응답합니다.


책임 분담: 각 DNS 서버는 특정 도메인에 대한 요청을 처리합니다. 예를 들어:
.com TLD를 담당하는 DNS 서버
.net TLD를 담당하는 DNS 서버
.org TLD를 담당하는 DNS 서버


응답 주소: 각 DNS 서버는 해당 TLD에 대한 도메인 이름의 IP 주소를 응답할 수 있습니다. 이 주소는 로그에 기록된 IP 주소들로 나타납니다.


요약
DNS 서버: 총 13개, 각각 특정 TLD를 관리
TLD 종류: .com, .net, .org 등
기능: 도메인 이름을 IP 주소로 변환하여 응답
응답 주소: 각 DNS 서버는 고유한 IP 주소를 가지고 있으며, 해당 도메인에 대한 정보를 제공

 

** CCTLD는 "Country Code Top-Level Domain"의 약자로, 국가 또는 특정 지역에 대한 도메인 네임을 나타내는 최상위 도메인입니다.

 

 

DNS 프로세스 흐름


DNS 요청:

사용자가 PC에서 http://www.naver.com에 대한 DNS 요청을 합니다.
DNS 서버로 요청 전송:

PC는 설정된 DNS 서버(168.126.63.1)에 http://www.naver.com의 IP 주소를 요청합니다.
DNS 서버의 처리:

168.126.63.1 DNS 서버는 자신의 레코드에 해당 도메인 정보가 없으므로, 다른 DNS 서버(예: 루트 DNS 서버 또는 TLD DNS 서버)에 요청을 전달합니다.
응답 수신:

최종적으로, 해당 도메인에 대한 정보가 있는 DNS 서버에서 http://www.naver.com의 IP 주소를 찾아서 168.126.63.1 DNS 서버로 응답합니다.
PC로 응답 전달:

168.126.63.1 DNS 서버는 찾은 IP 주소를 PC로 다시 전달합니다. 이제 PC는 http://www.naver.com에 대한 IP 주소를 알고, 해당 웹사이트에 접근할 수 있습니다.

 

 

PC -> 설정된 DNS서버 -> Root DNS or TLD DNS server (IP GET) -> 설정된 DNS 서버 -> PC (사이트 접근)

 

 

 

Firewall(정책을 걸어서 끊는다) - > IDS (string기반 침입 탐지장치) - > IPS( IDS + active response ((TCP 통신을 reset 기반 통신차단 기법을 이용해 통신을 차단하는 장치)

 

 

패킷에는 타임스탬프가 없고 피캡에는 있다.

 

패킷:
일반적으로 패킷 자체에는 타임스탬프 정보가 포함되어 있지 않습니다. 패킷은 전송된 데이터의 기본 단위로, 수신 시각이나 생성 시각 같은 메타데이터를 포함하지 않습니다.
피캡 파일:

피캡 파일(.pcap 형식)은 네트워크 패킷을 캡처하여 저장하는 파일로, 각 패킷의 전송 시간 정보를 포함할 수 있습니다. 이 파일은 패킷 분석 도구(예: Wireshark)를 사용하여 열어볼 수 있습니다.

 

타임스탬프 옮기기
타임스탬프를 피캡 파일에 옮기는 작업은 다음과 같은 절차로 진행됩니다.

패킷 캡처:
네트워크 트래픽을 캡처하여 피캡 파일로 저장합니다. 이때 각 패킷의 수신 시각이 타임스탬프로 기록됩니다.

 

타임스탬프 추출:
피캡 파일에서 각 패킷의 타임스탬프를 추출합니다. 이를 위해 Wireshark와 같은 패킷 분석 도구를 사용할 수 있습니다.

 

타임스탬프 저장:
추출한 타임스탬프를 각 패킷에 대응하여 별도의 파일이나 데이터베이스에 저장할 수 있습니다. 이 데이터는 나중에 패킷 분석 시 유용하게 활용될 수 있습니다.

 

분석:
타임스탬프 정보를 활용하여 패킷의 전송 시간, 지연 시간, 패킷 손실 등을 분석할 수 있습니다.

 

 

1. 싱크홀(Sinkhole)
네트워크 보안에서 싱크홀은 악성 트래픽을 특정 서버로 유도하여 분석하거나 차단하는 기술입니다. 이를 통해 공격을 감지하고 방어할 수 있습니다.

 

2. 패킷에서 존을 바라보는 이유
존(Zone): 패킷의 특정 필드에서 "존" 정보를 확인하여 해당 패킷이 싱크홀과 관련이 있는지 판단할 수 있습니다. 이 정보는 패킷의 출처나 목적지를 분석하는 데 유용합니다.

 

3. IP TTL (Time to Live)
TTL 개념: TTL 값은 패킷이 네트워크에서 얼마나 오래 살아남을 수 있는지를 나타냅니다각 라우터를 통과할 때마다 TTL 값이 감소합니다.
윈도우 vs 리눅스:
윈도우: 기본 TTL 값은 64입니다.
리눅스: 기본 TTL 값은 127입니다.
마지막 0이 될 때: TTL 값이 0이 되면 패킷은 폐기됩니다. 따라서 TTL 값을 통해 패킷의 경로를 추적할 수 있습니다.

 

4. 3-Way Handshake
정의: TCP 연결을 설정하기 위한 과정으로, 다음과 같은 단계로 이루어집니다:
SYN: 클라이언트가 서버에 연결 요청을 보냅니다.
SYN-ACK: 서버가 클라이언트의 요청을 수락하고 응답합니다.
ACK: 클라이언트가 서버의 응답을 확인합니다.
에크(ACK): 이 단계에서 클라이언트와 서버 간의 연결이 완전히 설정됩니다.

 

5. HTTP Request
푸쉬(PUSH): 클라이언트가 서버에 데이터를 전송할 때 사용됩니다. 이때 HTTP 요청이 발생합니다.

 

6. DNS TTL
정의: DNS TTL은 캐시된 DNS 레코드가 얼마나 오랫동안 유지될지를 결정합니다. 이 값이 만료되면 DNS 서버는 해당 정보를 새로 요청해야 합니다.

 

7. 기타 용어
핀(PING): 네트워크 연결을 테스트하기 위해 ICMP 프로토콜을 사용하는 명령어입니다. 네트워크의 응답 시간을 측정하는 데 사용됩니다.
신(SYN): TCP 연결 요청을 나타내는 플래그입니다.
리셋(RST): TCP 연결을 강제로 종료할 때 사용되는 플래그입니다.
에크(ACK): 데이터가 성공적으로 수신되었음을 확인하는 플래그입니다.

 

 

DDOS

방어자 입장에서 당할 수 잇는 공격 3가지

  • 대역폭 소진 공격 (100g 라우터에 200g들어오면 null routing 이라고 버림 --> 이는 서비스의 가용성을 저하시킵니다.)

부분차단

70G공격이 100g router에 들어오면 라우터에서 차단을 하고 쓰레기통으로 버리고 남은 통신은 정상적으로 전달이 된다.

 

대역폭소진공격에서 가용대역폭을 초과하는 공격이 들어오게 될 경우, 예를들어 20g공간에 30g가 들어오게 되면 라우터는 이 과부하를 처리할 수 없어 일부 트래픽을 차단하게 됩니다.

 

방어방법

대역폭소진공격은 가용성을 가지고 있는 상단에서만 막을 수 있다.  // 우리나라 관문체계에서는 대역폭 소지기반 대응이 다 들어가있다.

 

  • HTTP기반 공격 ( 클라이언트 ↔ 서버 관계에서)

HTTP 기반 공격은 클라이언트와 서버 간의 연결을 악용하여 서버의 자원을 소진시키거나 서비스 중단을 유발하는 공격

 

서버는 한 번에 처리할 수 있는 연결 수에 한계가 있습니다. 예를 들어, 초당 1,000번의 연결을 처리할 수 있는 서버가 있다고 가정할 때, 클라이언트가 초당 1,000번의 요청을 보내면 서버의 연결이 소진됩니다.

 

SYN Flood 공격:

공격자가 지속적으로 SYN 패킷을 전송하면 서버는 각 연결 요청에 대해 "SYN-ACK" 응답을 보냅니다. 이 과정에서 서버는 연결을 위한 리소스를 할당하게 되며, 이로 인해 서버의 자원이 고갈됩니다. 결국, 정상적인 클라이언트의 연결 요청을 처리할 수 없게 됩니다.

 

DDoS 공격:

공격자가 여러 클라이언트를 이용해 초당 하나씩 요청을 보내면, 서버의 연결 수를 소진시키는 DDoS(분산 서비스 거부) 공격이 발생할 수 있습니다. 이 경우, 공격자는 여러 IP 주소를 사용하여 서버의 자원을 고갈시키므로 방어가 더욱 어려워집니다.

 

방어방법

시그니처 기반 방어:

공격 패턴에 대한 시그니처를 설정하고, 이를 기반으로 비정상적인 트래픽을 필터링합니다. 이러한 방법은 자동으로 공격을 탐지하고 차단할 수 있는 효과적인 방법입니다.

 

대피소 동작:

대피소와 같은 시스템을 구축하여 공격이 발생했을 때 자동으로 대처할 수 있는 체계를 마련합니다. 이 체계는 공격을 감지하고, 필요한 경우 트래픽을 차단하거나 우회시킵니다.

 

프록시 및 DNS 변경:

방어를 위해 프록시 서버를 사용하고 DNS를 변경하는 방법이 있습니다. 이를 통해 공격 트래픽을 다른 서버로 우회시키고, 공격자의 IP 주소가 직접 서버에 도달하지 않도록 할 수 있습니다.

 

재방문 횟수 카운트: 

공격자의 재방문 횟수를 카운트하여, 일정 횟수 이상 접속하는 IP 주소를 차단합니다. 이를 통해 공격자를 식별하고 차단할 수 있습니다.

 

 

  • 국지적 DDoS 대역폭 소진 공격

 

DDoS 공격은 여러 대의 컴퓨터(봇넷)를 이용하여 특정 서버나 네트워크를 대상으로 대량의 트래픽을 발생시켜 서비스의 정상적인 운영을 방해하는 공격입니다. 국지적 DDoS 공격은 특정 지역이나 특정 네트워크에 집중된 공격을 의미합니다.
대역폭 소진:

100메가의 대역폭을 가진 네트워크에서는 공격이 명확하게 보이지만, 백지망(예: 서버의 대역폭이 매우 높은 경우)에서는 상대적으로 덜 보일 수 있습니다.


패킷 흐름:
공격자가 자신의 IP 주소(a.b.c.d)를 소스 IP로 설정하고, 피해자의 IP 주소(5.4.3.2)를 목표로 하여 DNS 쿼리를 보냅니다. 이때 패킷의 소스 포트와 목적지 포트가 53번(DNS 포트)인 경우, 해당 트래픽이 의심스러운 것으로 간주되어야 합니다.

 

*소스 포트가 53번인 경우, 이는 DNS 서버가 클라이언트로부터의 쿼리에 대한 응답을 보내고 있다는 것을 의미합니다. 그러나 공격자가 자신의 IP 주소를 위조하여 이러한 패킷을 전송하는 경우, 정상적인 DNS 쿼리와는 다른 비정상적인 트래픽 패턴이 발생할 수 있습니다.

 

방어 방법

트래픽 모니터링:
비정상적인 트래픽 패턴을 모니터링하고, 특히 DNS 쿼리에 대한 비정상적인 요청을 감지합니다. 소스 포트와 목적지 포트가 53번인 경우, 이를 즉시 차단하거나 추가 검토를 요청할 수 있습니다.

 

오픈 DNS 서버 제한:
공개 DNS 서버가 악용되지 않도록 설정을 강화합니다. 오픈 리커시브 DNS 서버의 사용을 최소화하고, 필요한 경우 IP 주소 필터링을 적용하여 접근을 제한합니다.
대역폭 관리:

네트워크의 대역폭을 관리하고, DDoS 공격 발생 시 자동으로 트래픽을 차단하거나 우회시키는 시스템을 구축합니다.

 

신속한 대응 체계 구축:
공격 발생 시 신속하게 대응할 수 있는 체계를 마련합니다. 예를 들어, 특정 패턴의 트래픽을 감지했을 때 자동으로 차단하거나 경고를 발생시키는 시스템이 필요합니다.

 


패킷 분석 실습

 

cat delegated-* 


cat delegated-* | awk -F"|" '{print $3}' | sort | uniq -c

 

| sort:
추출된 결과를 정렬합니다. 정렬된 결과는 다음 단계에서 중복 제거를 위해 필요합니다.


| uniq -c:
uniq -c 명령어는 연속된 중복 항목을 제거하고, 각 항목의 개수를 세어 출력합니다.


 

cat delegated-* | awk -F"|" '{print $3}' | sort | wc -l

 

delegated를 출력하여 3번째 칼럼의 word count를 확인

 


cat delegated-* | awk -F"|" '{print $2}' | sort -u | head

 

sort -u 데이터에서 중복을 제거하고 정렬된 고유한 값의 리스트를 생성

 

** 추가자료

 


cat delegated-* awk -F"|" '{print $0}' | grep -v *> uOv4.1

 

| awk -F"|" '{print $0}':
awk를 사용하여 각 행을 파이프(|)로 구분된 형식으로 처리합니다. 여기서 {print $0}는 현재 행 전체를 출력하는 명령입니다. 사실상 이 부분은 생략 가능하며, 단순히 cat의 출력을 그대로 전달하는 역할을 합니다.

 

| grep -v *:
grep 명령어는 특정 패턴을 포함하거나 제외하여 데이터를 필터링합니다.
-v 옵션은 "invert match"를 의미하며, 지정한 패턴이 포함되지 않는 행만 출력합니다. 이 경우 * 패턴이 포함되지 않은 행을 필터링합니다.


> uOv4.1:
최종 결과를 uOv4.1이라는 파일로 저장합니다.

 


 

cat ipv4.log | grep KR | tr"|""\t" | sort -k 6 | head

 

sort -k 6

여섯번째 칼럼을 기준으로 오름차순 정렬을 한다.

 


cat ipv4.log | awk -F"|" '{print $2 "\t" $5} END{print "ZZzZZ\tZZzZZ"}' | sort | awk '$1==prv{sum+=$2;next}{print prv "\t" sum; prv=$1; sum=$2}' | sort -rnk 2

 

2번 칼럼 : 국가 / 5번 칼럼 : 넘버

 

END{print "ZZzZZ\tZZzZZ"}는 마지막에 더미 데이터를 추가하여 집계 작업의 끝을 나타냅니다.

 

1번 칼럼(원래 2번) : 국가 == prv(previous) 일 경우, 2번 칼럼(원래 5번) 넘버를 더해라.

if not, prv 와 sum 값을 출력하라. 그리고 prv=$1; sum=$2

국가명이 달라지면 다시 뒤로 돌아가서 새로운 국가명으로 출력 시작합니다.

 

sort -rnk 2

리버스r + 랭크nk


cat ipv4. log | awk -F"|" {print  $2 "\t" $5}' | sort | awk '$1==prv{sum+=2; next}{print prv "\t" sum; prv=$1; sum=$2}' | sort -rnk 2 | awk '{print NR "\t" $0}'

 

| awk '$1==prv{sum+=2; next}{print prv "\t" sum; prv=$1; sum=$2}':
첫 번째 필드($1)와 이전 필드(prv)가 같으면 sum을 2 증가시키고, 그렇지 않으면 현재의 prv와 sum을 출력합니다. 이후 prv를 현재의 첫 번째 필드로 업데이트하고 sum은 두 번째 필드($2)로 초기화합니다.

 

| sort -rnk 2: 두 번째 필드를 기준으로 내림차순으로 정렬합니다. -r 옵션은 내림차순 정렬을 의미하고, -n은 숫자로 정렬하라는 뜻입니다.

 

| awk '{print NR "\t" $0}': 최종 결과에 행 번호를 추가하여 출력합니다. NR은 현재 레코드 번호를 나타냅니다.

 

이 명령어는 ipv4.log 파일에서 특정 필드를 추출하고, 해당 데이터를 정렬 및 집계한 후, 최종적으로 각 행에 번호를 붙여 출력합니다.


dig ns | grep root-server.net | awk '{print $5}'

 

dig ns:
dig 명령어는 DNS 정보를 조회하는 유틸리티입니다. ns는 네임서버 정보를 요청하는 옵션입니다. 만약 특정 도메인을 조회하고 싶다면 dig ns example.com과 같이 사용할 수 있습니다.

 

| grep root-server.net:
grep 명령어를 사용하여 root-server.net이라는 문자열이 포함된 행만 필터링합니다. 이 부분은 dig 명령어의 출력 중에서 특정 네임서버 관련 정보를 찾는 역할을 합니다.

 

| awk '{print $5}':
awk를 사용하여 각 행에서 다섯 번째 필드를 출력합니다. 일반적으로 네임서버의 IP 주소가 다섯 번째 필드에 위치합니다.

 


cat root_dns.domain | while read line; do echo "$line: $(dig "$line" +short)"; done

 

cat root_dns.domain:
root_dns.domain 파일의 내용을 출력합니다.

 

| while read line; do ...; done:
파이프를 통해 cat 명령어의 출력을 while 루프에 전달하여 각 행을 line 변수에 저장하고 처리합니다.

 

echo "$line: $(dig "$line" +short)":
echo 명령어를 사용하여 line의 내용과 함께 dig 명령어의 결과를 출력합니다.

 

dig "$line" +short는 각 행(도메인 이름)에 대해 간단한 DNS 정보를 조회합니다. +short 옵션은 출력 결과를 간단하게 보여줍니다.


 

**참고자료

 

$NF는 awk에서 사용되는 특수 변수로, 현재 레코드(행)의 마지막 필드를 나타냅니다. NF는 "Number of Fields"의 약자로, 현재 레코드에서 필드의 총 개수를 의미합니다.

 

 

dig kr ns | grep dns.kr | awk '{print $5}' | parallel dig {} +short | parallel whois -h whois.maru.com {}

 

dig kr ns:
kr 도메인의 네임서버(NS) 정보를 조회합니다. 이 명령어는 한국의 도메인 네임 서버 목록을 가져옵니다.

 

| grep dns.kr:
grep을 사용하여 dns.kr이 포함된 결과만 필터링합니다. 이는 한국의 특정 DNS 서버와 관련된 정보를 찾기 위함입니다.

 

| awk '{print $5}':
awk를 사용하여 각 행의 다섯 번째 필드를 출력합니다. 여기서 다섯 번째 필드는 일반적으로 네임서버의 도메인 이름입니다.

 

| parallel dig {} +short:
parallel 명령어를 사용하여 (이전 단계) 중간봉 | 앞에서 출력된 네임서버에 대해 dig 명령어를 실행합니다. +short 옵션은 결과를 간단하게 출력합니다.

 

| parallel whois -h whois.maru.com {}:
다시 parallel 명령어를 사용하여 각 네임서버에 대해 WHOIS 정보를 조회합니다. -h whois.maru.com은 WHOIS 서버의 주소를 지정합니다.

 

이 명령어는 한국의 네임서버 정보를 조회한 후, dns.kr과 관련된 네임서버의 IP 주소를 찾고, 해당 IP 주소에 대한 WHOIS 정보를 가져오는 과정을 수행합니다.

 

**참고자료


각 아이피가 어떤 나라를 거쳐서 최종적으로 도달했는지 그림을 그리는 방법

 

cat krdns.log | awk -F"|" '{print $7}' | sort -u | sed 's/ /->/g' > cmplx.dot

 

| sed 's/ /->/g':
sed를 사용하여 출력된 각 줄의 공백을 ->로 변경합니다. s/ /->/g는 각 줄에서 모든 공백을 찾아서 ->로 대체하겠다는 의미입니다.

 

> cmplx.dot:
최종 결과를 cmplx.dot 파일로 저장합니다.

 

emacs cmplx.dot

 

emacs cmplx.dot 명령어는 Emacs 편집기를 사용하여 cmplx.dot 파일을 열겠다는 의미입니다. Emacs는 강력한 텍스트 편집기로, 다양한 프로그래밍 언어와 파일 형식을 지원합니다.

 

Emacs 편집기를 통해 dot 파일을 열은 후 다이어그래프를 만들기 위해 위 아래로 digraph { ... } 을 작성합니다. 

...

 

cat cmplx.dot | dot -Tpng -o c.png

 

cat cmplx.dot:
cmplx.dot 파일의 내용을 출력합니다. 이 파일은 Graphviz에서 사용할 수 있는 DOT 형식의 그래프 정의를 포함하고 있어야 합니다.

 

| dot -Tpng -o c.png:
| 기호는 파이프를 의미하며, 앞선 명령어(cat)의 출력을 다음 명령어(dot)의 입력으로 전달합니다.
dot은 Graphviz의 도구로, DOT 언어로 작성된 그래프를 시각화하는 데 사용됩니다.


-Tpng 옵션은 출력 형식을 PNG 이미지로 지정합니다.


-o c.png 옵션은 출력 파일의 이름을 c.png로 지정합니다.

 

이후 [New SFTP window 클릭]

 

 

** 내가 위치한 다이렉토리가 이상해서 파일이 보이지 않을때

copy 파일명 ~/  ->     cp c.png ~/

 

**참고자료

 

 

 

중복된 선을 없애고 깔끔하게 프린트하는 법


 

tar -xzvf assn3.tar.gz

tar: tar는 Unix 및 Linux 시스템에서 파일을 아카이브하고 압축하는 데 사용되는 명령어입니다.
-x: 이 옵션은 압축을 해제(extract)하라는 의미입니다.
-z: 이 옵션은 gzip 압축을 해제하라는 의미입니다. tar.gz 파일은 gzip으로 압축된 tar 아카이브입니다.
-v: 이 옵션은 verbose 모드로, 압축 해제 과정에서 처리되는 파일의 이름을 화면에 출력합니다.
-f: 이 옵션은 뒤에 오는 파일 이름이 tar 아카이브 파일임을 지정합니다.


tshark -nnr assnq1_dns_sinkhole.pcap

tshark: tshark는 Wireshark의 명령줄 기반 패킷 분석 도구입니다. 네트워크 트래픽을 캡처하고 분석하는 데 사용됩니다.
-nn: 이 옵션은 네트워크 주소를 해석하지 않고 숫자 형식으로 출력하라는 의미입니다. 즉, IP 주소나 포트 번호를 숫자로 그대로 보여줍니다.
-r: 이 옵션은 지정된 파일을 읽는(read) 모드로 설정합니다. 여기서는 assnq_dns.sinkhole.pcap 파일을 읽겠다는 의미입니다.


tcpdump -nnr assnq1_dns_sinkhole.pcap

 

**

tcpdump 패킷 분석기 (헤더와 프로토콜을 분리하지 않음)

wireshark 프로토콜 분석기 (훨씬 강력) → 그래서 프로토콜을 분석할떄는 Tshark 를 쓰는 것이 좋다.

패키지에서 http 프로토콜을 뽑아내고 싶다 하면 와이어샤크를 이용하면 됌

 

1단계

tshark -nnr assnq1_dns_sinkhole.pcap -Tfields -e frame.time_epoch

 

주어진 명령어는 tshark를 사용하여 assnq1_dns_sinkhole.pcap 파일에서 패킷의 타임스탬프 정보를 추출하는 과정입니다.

 

-Tfields:
출력 형식을 필드 기반으로 설정합니다. 특정 필드만 선택적으로 출력할 수 있습니다.

 

-e frame.time_epoch:
출력할 필드를 지정합니다. 여기서는 각 패킷의 타임스탬프를 UNIX 시간 형식(에포크 시간)으로 출력하겠다는 의미입니다.

 

 

2단계

tshark -nnr assnq1_dns_sinkhole.pcap -Tfields -e frame.time_epoch -e ip.src -e ip.dst -e dns.qry.name

 

-e ip.src: 출발지 IP 주소를 출력합니다.
-e ip.dst: 목적지 IP 주소를 출력합니다.
-e dns.qry.name: DNS 질의 이름을 출력합니다.

 

3단계

tshark -nnr assnq1_dns_sinkhole.pcap -Tfields -e frame.time_epoch-e ip.src -e ip.dst -e dns.qry.name -e dns.flags.authoritative -e dns.a

 

-e dns.flags.authoritative: 해당 DNS 응답이 권위 있는 응답인지 여부를 나타내는 플래그를 출력합니다.
-e dns.a: DNS A 레코드를 출력합니다. 이 레코드는 도메인 이름을 IP 주소로 변환하는 데 사용됩니다.

 

 


 

tshark_ttl.sh assn_q2.pcap
tshark_http.sh assn_q2.pcap

tshark_ttl.sh: 이 부분은 실행할 스크립트의 이름입니다. 스크립트의 내용에 따라 다양한 분석 작업을 수행할 수 있습니다.
assn_q2.pcap: 분석할 패킷 캡처 파일의 이름입니다. .pcap 확장자는 패킷 캡처 파일 형식을 나타냅니다.
이 명령어는 tshark_ttl(or http).sh 스크립트를 실행하고, assn_q2.pcap 파일을 인자로 전달하여 스크립트가 이 파일을 처리하도록 합니다.


ngrep -qI assn_q3.pcap

 

주어진 명령어는 ngrep를 사용하여 assn_q3.pcap 파일의 내용을 분석하는 것입니다. 

ngrep: ngrep네트워크 패킷을 필터링하고 분석하는 데 사용하는 도구입니다. 일반적으로 패킷을 실시간으로 캡처하고 특정 패턴을 찾아 출력합니다.
-q: 이 옵션은 출력 시 "조용히" 작동하도록 설정합니다. 즉, 불필요한 정보 없이 패턴이 매치되는 데이터만 출력합니다.
-I: 이 옵션은 입력 파일을 바이너리 형식으로 읽어들이겠다는 의미입니다. ngrep는 기본적으로 실시간 패킷 캡처를 위해 설계되었지만, 이 옵션을 사용하면 파일에서도 데이터를 읽을 수 있습니다.
assn_q3.pcap: 분석할 패킷 캡처 파일의 이름입니다. .pcap 확장자는 패킷 캡처 파일 형식을 나타냅니다.

 

ngrep -qI assn_q3.pcap nbunbang.ru

 

맨 뒤에 원하는 정보 nbunbang.ru 를 적어서 그 부분만 추출할 수 있다.

 


tshark -nnr assn_q4.pcap tls.handshake.extensions_server_name

 

tshark: Wireshark의 명령줄 기반 패킷 분석 도구입니다.
-nn: 네트워크 주소를 해석하지 않고 숫자 형식으로 출력합니다. 이는 IP 주소나 포트 번호를 숫자로 그대로 보여주기 위한 옵션입니다.
-r: 지정된 파일을 읽는 모드로 설정합니다. 여기서는 assn_q4.pcap 파일을 읽습니다.
tls.handshake.extensions_server_name: TLS 핸드셰이크 과정에서 서버 이름 확장(Server Name Indication, SNI)을 추출하는 필드입니다. 이 필드는 클라이언트가 서버에 연결할 때 어떤 도메인 이름을 요청하는지를 나타냅니다.


이 명령어는 assn_q4.pcap 파일을 읽고, 각 TLS 핸드셰이크 패킷에서 서버 이름 확장 정보를 추출하여 출력합니다.

 

*TLS(Transport Layer Security)는 인터넷 상에서 데이터를 안전하게 전송하기 위한 암호화 프로토콜


 

전체 DNS 주소(칼럼 5번)를 불러온다.

 

총 DNS 서버가 몇개인지 확인 

 

12061개의 DNS 서버를 사용되었음.

DNS가 실제 DNS인지 확인하기 위해서는 kisa.or.kr을 집어 넣는다 만약 답변 해주면 open recursive 이다.

 

emacs digdns.sh

 

kisa.or.kr의 DNS 주소가 무엇인지 물어봄

retry 3번씩 하기 때문에 0으로 맞춤

 

TCP/IP에서 연결이 안되면 3번까지 리셋 시도를 하게 되어 있음

TCP/IP가 중간에 하이재킹인지 알고 싶다면 TTL값을 확인하면 됨 - TTL이 변한다

P1/bin/bash

echo $1 ${dig @$1 kisa.or.kr +short +retry=0}

 

bash digdns.sh 8.8.8.8 아래와 같이 kisa.or.kr 의 DNS 주소가 나옴 -> 즉 open recursive 라는 것

bash digdns.sh 8.8.8.8

 

 

 

만약, DNS 전체 주소를 물어보려면

 

tshark -nnr drdos.pcap dns | awk '{print $5}' | sort -u | parallel bash digdns.sh {}

 

클라이언트의 IP 주소를 정렬하려면

 

211292:  번호: 이 항목의 고유 식별 번호입니다. 각 로그 항목은 고유한 번호로 식별됩니다.
4.997539: 시간: 쿼리가 발생한 시간입니다. 소수점 숫자로 표현되며, 4초와 997539 밀리초를 의미합니다.
1.255.41.90: 출발지 IP 주소: 이 DNS 쿼리를 보낸 클라이언트의 IP 주소입니다. 즉, 요청을 보낸 사용자 또는 장치의 주소입니다.
->: 화살표: 요청이 보낸 방향을 나타내며, 클라이언트에서 서버로의 흐름을 보여줍니다.
203.234.152.20: 목적지 IP 주소: 이 쿼리에 응답한 DNS 서버의 IP 주소입니다. 클라이언트가 이 서버에 요청을 보냈습니다.
DNS: 프로토콜: 사용된 프로토콜을 나타냅니다. 이 경우 DNS(Domain Name System)를 의미합니다.
66: 패킷 길이: 전송된 패킷의 크기입니다. 여기서는 66 바이트로 표시됩니다.
Standard query: 쿼리 유형: DNS 쿼리의 유형을 나타냅니다. 이 경우 표준 쿼리임을 의미합니다.
Oxee85: 쿼리 ID: DNS 쿼리를 식별하기 위한 고유 ID입니다. 이 ID는 클라이언트와 서버 간의 통신을 추적하는 데 사용됩니다.
A: 쿼리 레코드 유형: 이 쿼리가 A 레코드를 요청하고 있음을 나타냅니다. A 레코드는 도메인 이름을 IPv4 주소로 변환하는 데 사용됩니다.
yna.kr: 쿼리 도메인: 클라이언트가 요청한 도메인 이름입니다. 여기서는 yna.kr이라는 도메인에 대한 정보를 요청하고 있습니다.

300x250
320x100

 

SFTP란

 

SFTP는 호스트간에 파일을 전송하기위한 보안 채널을 제공하며 보안 파일 전송 프로토콜입니다.

 

SFTP 프로토콜은 SSH 프로토콜 (원격 로그인 응용 프로그램)의 일부입니다.

 

SFTP는 클라이언트와 서버간에 SSH 프로토콜에 의해 설정된 연결로 파일을 전송합니다.

 

SFTP는 전송하기 전에 데이터를 암호화하는 특징이 있습니다.

 

그래서 SFTP는 한 호스트에서 다른 호스트로 파일을 전송하는 안전한 방법을 제공합니다.

 

 

SFTP 서버 접속하는법

 

 

Bitvise SSH Client 설치

 

아래와 같은 창이 나오면 주어진 Host, Port, Username을 입력

주어진 패스워드를 활용하여 Log in 진행

 

 

 

커멘드 서버를 사용하기 위해 [New terminal console]을 선택합니다.

 

커멘드 서버를 열면 같이 초기화면을 확인할 수 있습니다.

 

- ls: 현재 디렉토리 또는 지정된 디렉토리의 파일 및 디렉토리 목록을 표시하는 명령어입니다. 

- /data: 확인하고자 하는 특정 디렉토리의 경로입니다.

 

/data 디렉토리에 포함된 모든 파일과 하위 폴더의 이름이 화면에 출력됩니다.

 

1. cp /data/delegaged .

cp /data/delegated-* . // 아시아 지역 IP 할당기관에 접속하여 최신 IP 할당 정보 다운

 

cp: 파일 복사를 수행하는 명령어입니다. 

/data/delegaged: 복사할 원본 파일의 경로입니다. 여기서는 /data 디렉토리에 있는 delegaged 파일을 지정하고 있습니다.

 

즉, delegaged 파일을 현재 위치(현재 디렉토리)로 복사하라는 뜻입니다.

 

2. cat delegaged

 

cat: "concatenate"의 줄임말로, 파일의 내용을 출력하거나 여러 파일을 연결하는 명령어입니다. 

delegaged: 출력하고자 하는 파일의 이름입니다. 현재 작업 중인 디렉토리에서 이 파일의 내용을 보여줍니다. 

 

따라서 이 명령어를 입력하면 delegaged 파일의 모든 내용이 터미널에 표시됩니다.

 

 

wget https://ftp.apnic.net/stats/apnic/delegated-apnic-extended-latest 

 

wget + 링크 = 원하는 링크의 파일을 설치 할 수 있습니다.

 

** edu9@edu:~$ rm delegated-* // 잘못 다운받아서 지우고 싶을때

** ctrl + c // 작업중인 프로세스가 끝남

 

cat delegated-* | wc -l

 

wc는 "word count"의 약자

결과적으로 이 명령어는 delegated-로 시작하는 모든 파일의 내용을 연결한 후, 그 내용의 줄 수를 세는 기능을 수행한 것입니다.

 

cat delegated-* | less

 

less: 출력된 내용을 페이지 단위로 볼 수 있는 프로그램입니다. less를 사용하면 출력된 내용을 스크롤하면서 확인할 수 있어, 긴 파일의 내용을 쉽게 탐색할 수 있습니다.

 

위의 명령어를 입력했을 때 아래와 같은 창을 볼 수 있다.

 

 

cat ipv4.log

ipv4.log 파일의 모든 내용이 터미널에 표시됩니다.

 

 

cat ipv4.log | awk -F"|" '$2!=""{print $0}' | head

 

cat ipv4.log: ipv4.log 파일의 내용을 출력합니다. 

|: 파이프(pipe) 기호로, 앞의 명령어의 출력을 다음 명령어의 입력으로 전달합니다. 

awk -F"|" '$2!=""{print $0}': awk: 텍스트 파일을 처리하고 분석하는 데 사용되는 프로그래밍 언어입니다. 

-F"|": 필드 구분자를 |로 설정합니다. 즉, 각 행이 | 기호로 구분된 여러 필드로 나뉘게 됩니다. 

'$2!=""{print $0}': 두 번째 필드($2)가 비어 있지 않은 경우(즉, 값이 있는 경우) 해당 행($0)을 출력하라는 의미입니다. 

| head: 앞의 명령어의 결과에서 첫 10줄을 출력합니다. 기본적으로 head는 10줄을 출력합니다. 

 

결과적으로 이 명령어는 ipv4.log 파일에서 두 번째 필드가 비어 있지 않은 행을 찾아 그 중 처음 10줄을 출력합니다.

 

 

 

 

cat delegated-* | awk -F"|" '$3=="ipv4"{print $0}'

 

delegated-로 시작하는 파일들에서 세 번째 필드가 "ipv4"인 행을 출력하게 됩니다.

 

 

 

 

 

cat ipv4.log | awk -F"|" '$2!=""{print $2}' | sort -u 

 

'$2!=""{print $2}': 두 번째 필드($2)가 비어 있지 않은 경우(즉, 값이 있는 경우) 해당 필드의 값을 출력하라는 의미입니다.

| sort -u: 앞의 명령어의 결과를 정렬하고 중복된 값을 제거하여 고유한 값만 출력합니다. -u 옵션은 "unique"의 약자로, 중복된 값을 제거합니다.

 

결과적으로 이 명령어는 ipv4.log 파일에서 두 번째 필드가 비어 있지 않은 모든 값을 추출하고, 그 중복을 제거한 후 정렬하여 출력합니다.

 

 

 

 

 

cat delegated-* | tr"|"\t" | head

 

tr "|" "\t": tr: 문자 변환(transliterate) 명령어로, 특정 문자를 다른 문자로 변환하는 데 사용됩니다. 

 

"|" "\t": 이 부분은 | 문자를 탭 문자(\t)로 변환하라는 의미입니다. 즉, | 기호를 탭으로 바꿉니다. 

 

결과적으로 이 명령어는 delegated-로 시작하는 모든 파일의 내용을 출력하면서 | 문자를 탭 문자로 변환한 후, 그 결과의 처음 10줄을 화면에 표시합니다.

 

 

 

cat delegated-* | awk -F"|" '$3=="ipv4"{print $0}' | head

 

'$3=="ipv4"{print $0}': 세 번째 필드($3)가 "ipv4"인 경우 해당 행($0)을 출력하라는 의미입니다.

결과적으로 이 명령어는 delegated-로 시작하는 파일들에서 세 번째 필드가 "ipv4"인 행을 찾아 그 중 처음 10줄을 출력합니다.

 

 

 

 

 

cat ipv4.log | awk -F"|" '$2!=""{print $0}' | grep -v '*'

 

| grep -v '*':

grep: 텍스트에서 패턴을 검색하는 명령어입니다.

-v: 패턴이 일치하지 않는 행을 출력합니다.

즉, * 문자가 포함된 행을 제외합니다. 

 

결과적으로 이 명령어는 ipv4.log 파일에서 두 번째 필드가 비어 있지 않은 행을 출력한 후, * 문자가 포함된 행을 제외합니다. 이 결과는 ipv4.log 파일에서 유효한 데이터만 필터링하여 보여줍니다.

 

 

 

ls -lth

 

ls -lth 명령어를 실행하면, 현재 디렉토리 내의 파일과 디렉토리 목록이 최신 수정 시간 순으로 정렬되어 상세 정보와 함께 표시됩니다.

 



 

 

cat ipv4.log | awk -F"|" '$2!=""{print $0}' | grep -v '\' | awk -F"|" '{sum+=$5} END{print sum "\t" sum/2^32100 "%"}'

 

 

1. cat ipv4.log

  • 이 명령어는 ipv4.log 파일의 내용을 출력합니다. 이 파일이 존재하고 읽을 수 있는 상태여야 합니다.

2. awk -F"|" '$2!=""{print $0}'

  • F"|": 필드 구분자로 파이프(|)를 설정합니다.
  • $2!="": 두 번째 필드가 비어 있지 않은 행을 필터링합니다.
  • {print $0}: 필터링된 행 전체를 출력합니다.

이 명령어는 두 번째 필드가 비어 있지 않은 모든 행을 출력합니다.

3. grep -v '\*'

  • v: 이 옵션은 패턴이 일치하는 행을 제외합니다.
  • '\*': 별표(``)가 포함된 행을 제외합니다.

이 명령어는 별표가 포함된 행을 모두 제외한 결과를 출력합니다.

4. awk -F"|" '{sum+=$5} END{print sum "\t" sum/2^32*100 "%"}'

  • F"|": 다시 한 번 필드 구분자로 파이프(|)를 설정합니다.
  • {sum+=$5}: 다섯 번째 필드의 값을 sum 변수에 누적합니다. 이 부분에서 $5는 다섯 번째 필드를 의미합니다.
  • END{print sum "\t" sum/2^32*100 "%"}': 모든 입력이 처리된 후, 누적된 합계 sum과 그 값을 2^32로 나눈 후 100을 곱한 값을 퍼센트로 출력합니다.

 

문제

 

1. 대한민국이 최초로 IPv4를 할당받은 년도는 언제인가?

 

cat delegated-* | grep KR | awk -F"|" '{print $6}' | sort | head

 

19860630

 

 

2. 대한민국 최초의 통신사는 어디인가?

 

cat delegated-* | grep KR | grep 19860630

 

apnic|KR|ipv4|128.134.0.0|65536|19860630|allocated|A92DDC30

 

KT

 

 

 

------

dig www.naver.com - ip를 확인가능 

DNS = 분산 db 라서 route DNS가 필요하다

ns = name sever

prefix = 목적지의 주소

from 누가 이야기해줬는가

ASpath 네트워크 path

zcat access.gz | wc -l // 몇줄인지 나옴

cd works // change directory 약자로, 현재 작업 중인 디렉토리를 변경하는 명령어입니다. works: 이동하려는 대상 디렉토리의 이름입니다. 이 디렉토리는 현재 위치한 디렉토리 내에 존재해야 합니다.

 

 

awk ‘{print $7}’ | sort | uniq -c | sort -rn | head -n 20 | awk ‘{print $2 “\t” $1}’ | feedgnuplot+bargraph.sh

 

awk '{print $7}': 입력된 데이터의 각 행에서 7번째 필드를 추출하여 출력합니다. 주로 로그 파일에서 특정 컬럼을 선택할 때 사용됩니다.

| sort: 추출된 결과를 정렬합니다. 기본적으로 오름차순으로 정렬됩니다.

| uniq -c: 중복된 행을 제거하고 각 행이 나타난 횟수를 세어 출력합니다. 이때 각 행의 앞에 그 숫자를 추가합니다.

| sort -rn: 숫자 기준으로 내림차순으로 정렬합니다. -r은 역순, -n은 숫자 형식으로 정렬하라는 의미입니다.

| head -n 20: 정렬된 결과에서 상위 20개의 행만 출력합니다.

| awk '{print $2 "\t" $1}': 상위 20개의 행에서 두 번째 필드(원래의 7번째 필드)와 첫 번째 필드(횟수)를 출력합니다. 이때 두 필드 사이에 탭 문자를 추가합니다.

| feedgnuplot+bargraph.sh: 최종 결과를 feedgnuplot+bargraph.sh 스크립트로 전달하여 바 그래프를 생성합니다. 이 스크립트는 데이터 시각화를 위해 Gnuplot을 사용하는 도구입니다.

전체적인 흐름
이 명령어는 특정 데이터에서 7번째 필드를 추출하고, 그 필드의 발생 빈도를 계산한 후, 가장 많이 발생한 상위 20개의 값을 바 그래프로 시각화하는 과정입니다.

 

 

 

 

zcat access.gz | grep /xampp/img/flash.gif | awk ‘{print $1}’ | sort -u | wc -l

 

zcat access.gz: access.gz 파일의 내용을 압축 해제하여 출력합니다.

| grep /xampp/img/flash.gif: 압축 해제된 데이터에서 /xampp/img/flash.gif라는 패턴이 포함된 행만 필터링하여 출력합니다. 즉, 이 경로에 대한 요청을 찾습니다.

| awk '{print $1}': 필터링된 결과에서 첫 번째 필드(일반적으로 IP 주소)를 추출하여 출력합니다.

| sort -u: 추출된 IP 주소를 정렬하고, 중복된 값을 제거하여 고유한 IP 주소만 남깁니다.

| wc -l: 고유한 IP 주소의 수를 계산하여 출력합니다.

 

 

bot.ip - ip를 모으는 방법

 

 

 

 

 

 

Layer 2
통신 방식: Layer 2에서는 MAC 주소를 통해 통신합니다.
신뢰성: MAC 주소는 모두 다르기 때문에 서로 간의 신뢰관계가 형성됩니다.
공격 방식:

 

ARP (Address Resolution Protocol)**는 네트워크에서 IP 주소를 MAC 주소로 변환하는 프로토콜입니다. 주로 IPv4 네트워크에서 사용되며, 데이터 링크 계층에서 호스트 간의 통신을 가능하게 합니다.


ARP Spoofing: MAC 주소를 기반으로 하는 공격으로, 네트워크에서 ARP를 조작하여 데이터 전송을 가로채는 방식입니다.
Man-in-the-Middle Attack: 공격자가 게이트웨이 주소를 변경하여 패킷에 URL을 삽입하고, 이를 통해 데이터를 가로채거나 변조합니다.
Layer 3
BGP (Border Gateway Protocol) Hijacking:
네트워크 경로를 악의적으로 변경하여 트래픽을 가로채는 공격입니다.
DNS (Domain Name System):
TTL (Time to Live):
TTL이 짧으면 DNS 질의에 부하가 걸립니다.
TTL이 길면 DNS 질의가 줄어들어 서버에 가는 부하가 적습니다.
DNS Sinkhole: 악성 트래픽을 차단하기 위해 DNS 요청을 조작하여 가짜 IP 주소로 유도하는 기술입니다.
BGP 하이재킹 탐지
BGP 하이재킹을 탐지하기 위해서는 자신이 소유한 prefix보다 하나 작은 prefix를 모니터링해야 합니다.

300x250

+ Recent posts