전체 글
-
[ARP spoofing] 1. ARP spoofing 프로젝트 시작하기해킹/network 2023. 5. 30. 11:19
지난달부터 네트워크 팀 프로젝트 주제를 생각하다가, ARP spoofing을 주제로 해보면 어떨까 하는 생각이 들었다. 네트워크 해킹에서 많이 다뤄지는 주제이고, 처음 시도하는 해킹 프로젝트로 시작하기 적합해 보여서, 도전해보기로 하였다. ARP spoofing이란? ARP spoofing은 MITM(Man In The Middle)공격 기법 중 하나로, 같은 네트워크 계층에 있을 때, 패킷을 탈취해서 도감청 하거나 변조하는 등의 중간자 공격이다. User가 서버와 통신을 할 때, 인터넷으로 나가기 위해선 Router를 거쳐야 한다. 라우터는 일반적으로 공유기에 해당한다고 보면 된다. 이 때, 해커는 ARP Reply라는 프로토콜을 각각 User 와 Router에게 보낸다. ARP Reply는 각각 기기..
-
[네트워크] 13. TCP congestion controlCS/네트워크 2023. 4. 22. 11:44
TCP의 마지막입니다. congestion control에 대해 알아봅시다.(매우 중요) 1. Principles of congestion control congestion control이란, 쉽게 말해서 너무 많은 데이터를, 너무 빠르게 보내서 network가 감당하지 못하는 상황을 조절하는 것입니다. (flow control이랑은 다른 개념입니다) congestion이 발생하면, packet loss나 long delay가 발생할 수 있습니다. 그럼 언제 congestion이 발생하는지, 예시를 들어보겠습니다. Host A는 라우터를 통해 데이터를 보낸다고 가정해봅시다. 라우터의 output link capacity가 R일 때, 두 개의 Host가 있으므로, 각각 connection에 대한 thro..
-
[네트워크] 12. TCP flow controlCS/네트워크 2023. 4. 17. 23:19
1. TCP flow control flow control이란, application에서 데이터를 가져가는 속도가, sender가 주는 데이터의 속도보다 느릴 때, 데이터를 천천히 받도록 조절하는 것입니다. sender는 receiver의 버퍼가 가득 찼는지 모르기 때문에, 이를 flow control을 통해서 조절합니다. 다음과 같이 sender과 receiver의 버퍼가 있다고 가정하겠습니다. 여기서 rwnd가 receiver의 남은 버퍼 공간입니다. 이 값을 계속 알려줌으로써 sender가 데이터를 전송하는 속도를 조절하게 합니다. rwnd = RcvBuffer - (LastByteRcvd - LastByteRead) sender는 recevier가 보내준 rwnd값을 보고, in-flight 상태..
-
[네트워크] 11. TCPCS/네트워크 2023. 4. 11. 23:19
1. TCP 이제부터 reliable data transfer protocol 중 하나인 TCP에 대해 알아보도록 하겠습니다. 1.1 TCP reliable data transfer TCP는 다음과 같은 특징을 가집니다. pipelined segment : 여러 개의 segment를 한번에 전송하고, ACK를 한번에 받습니다. culmulative ACK : 누적 ACK라는 의미로, 매 번 ACK를 보내는 것이 아니라 누적 ACK를 보냅니다. single retransmission timer : 가장 오래된 segment를 기준으로 timer를 한 개만 설정합니다. retransmission은 timeout또는 duplicate ACK 에 따라 발생합니다. 우선 duplicate ACK를 고려하지 않는 ..
-
[네트워크] 10. Pipelined protocol (Go-back-N, selective repeat)CS/네트워크 2023. 4. 10. 22:34
1. Pipelined protocol 지난 시간에 reliable transfer 에 대해 알아보았습니다. 이 방식은 unreliable한 네트워크 계층에서도 reliable할 수 있게 보장합니다. 기존에 살펴본 방법은 stop and wait 방식으로, 하나의 패킷을 보내고 정상적으로 ACK가 올 때 까지 기다렸습니다. 때문에 시간이 오래 걸리는 문제가 있었습니다. 하지만 만약 여러 패킷을 한번에 보내고 ACK도 한번에 받으면 어떻게 될까요? 컴퓨터 구조에서 말하는 파이프라이닝을 네트워크에도 적용시킬 수 있습니다. Pipelined protocol에는 크게 두 가지 종류가 있습니다. go-Back-N selective repeat 파이프라이닝을 적용시키면 아래와 같은 효과를 볼 수 있습니다. 1.1 ..
-
[webhacking] 2. CSRF ( Cross Site Request Forgery )해킹/webhacking 2023. 4. 10. 00:54
CSRF 교차 사이트 요청 위조라는 뜻의 CSRF는, 공격자가 HTTP 요청을 위조하여 피해자의 권한으로 임의의 사이트에 요청을 보내는 것입니다. 공격 방법은 XSS와 비슷하게, 악성 스크립트를 실행하도록 게시판에 글을 올려 조회하도록 유도하거나, 특정 URL로 접속하게 만드는 방법 등이 있습니다. 이 때, 공격자는 쿠키를 사용하여, 로그인이 되어 있어 세션 정보가 있다면, 실제로 효과적인 공격을 가할 수 있습니다. 공격 방법 HTML의 Img 태그를 이용하여 GET 방식으로 요청을 보내거나, form 태그를 사용해서 POST 방식으로도 보낼 수 있습니다. 위와 같이, img src에 get 방식의 요청을 입력하여, 해당 게시물을 볼 때, 자동으로 get 요청이 가도록 할 수 있습니다. form 태그의 ..
-
[네트워크] 9. Principles of Reliable data transferCS/네트워크 2023. 4. 4. 23:05
이번 챕터는 Data transfer에서 어떻게 Reliable하게 보낼 것인지에 대해 다루게 됩니다. 1. Principles of Reliable data transfer Application layer의 데이터 무결성은, Transport layer가 해주게 됩니다. 무선 등의 환경에서 어떻게 reliable한 데이터 전송을 가능하게 할 지 알아보도록 하겠습니다. 1.1 Reliable data transfer : Error & Solutions 데이터 전송 시 발생할 수 있는 문제는 크게 2가지가 있습니다. Corruption (Bit-error) : 비트가 틀려서 데이터가 잘못 된 경우입니다. Checksum과 ACK로 해결할 수 있습니다. Packet Loss : 도중에 패킷이 유실되는 경우..
-
[네트워크] 8. Transport Layer, multiplexing, UDPCS/네트워크 2023. 4. 3. 00:58
1. Transport services Application Layer 아래 계층인 Transport Layer에 대해서 알아보도록 하겠습니다. Transport service는 application layer 사이 통신이 logical communication 이라는 신뢰성을 주는 역할을 합니다. 보내는 쪽에서는 segment라고 하는 작은 단위로 쪼개서 보내게 되고, 받는 쪽에서는 그 쪼개진 segment를 모아 조합해서 application layer로 보내줍니다. (참고로 UDP는 Transport Layer에서는 나누지 않고, Network Layer에서 억지로 나누게 됩니다.) 1.1 Transport vs network layer Transport layer는 network layer의 ap..