해결된 질문
작성
·
146
·
수정됨
0
안녕하세요, 먼저 양질의 강의를 만들어 네트워크를 이해할 수 있는 실습도 준비해주셔서 정말 감사드립니다.
덕분에 정말 많은 인사이트를 얻어가는 듯 합니다.
이렇게 질문을 드리는 이유는 다름이 아니라, 유해사이트 차단 프로젝트를 해보는 중에 rst 플래그를 이용한 위조 패킷을 날려 dns 질의에 대한 응답을 차단시키는 방향으로 프로젝트를 진행해 보고 싶어 그런 방향으로 진행하였습니다. 어찌저찌 dns response 보다 빠르게 rst 패킷을 날리는데에는 성공하였고, DOH(Dns Over Https) 프로토콜을 사용하는 웹페이지들은 추적자체가 불가능하여 TCP+HTTP 연결을 사용하여 DNS 응답을 주는 사이트로 테스트를 해보고 있습니다.
문제는 RST 패킷이 제대로 인식은 됐는지 이후 ACK나 DNS 응답에 RST 패킷으로 DNS 서버에 응답을 주는데, 브라우저는 정상적으로 페이지를 로드를 한다는 것입니다. 제가 이해한 바로는 HTTP는 TCP 위에서 동작하는 것이니 연결이 종료된 포트로는 더이상 응답을 수신 안하고 무시해야 할 것 같은데.. 이해가 잘 되지 않습니다. 원인을 알 수 있을까요? 네트워크 스택이 달라 HTTP만 바라보는 브라우저 입장에선 TCP 스택인 RST 패킷이 오든 말든 상관 없는걸까요? Chat GPT는 브라우저에서 DNS를 처리하는 엔진에서 RST 패킷을 무시하는 로직이 있을 수 있다고 하는데 이것 때문일 지 궁금합니다.
답변 1
0
정확히 확인한 것은 아니지만...
한 가지는 말씀드릴 수 있을 것 같습니다. 연결이 실패하더라도 재시도 할 가능성이 있습니다.
그리고 DNS 응답과 상관 없이 이미 캐싱된 정보를 활용해 IP주소로 직접 접근 할 가능성도 있습니다. 이 점을 고려해 Wireshark으로 현상을 더 분석해보실 것을 권합니다.
이 강의에서 논하는 것들은 상용 솔루션의 원리에 근접한 것들이 많습니다. 자료가 생각보다 많지 않을 것입니다. 하지만 잘 해내시리라 믿습니다. 건투를 빕니다! 😄
답변 감사합니다! wireshark로 분석해본 결과, 이미 캐싱된 정보를 활용하는 건 아닌것 같고(연속적으로 요청하면 dns 질의 응답이 안찍혔다가 브라우저에서 방문 기록을 삭제하고 발송하면 DNS 질의 요청하는 걸로 볼 때)
dns query response로 가져온 ip를 활용하여 HTTP GET으로 페이지를 로드하는 것을 확인하였습니다. rst 패킷을 서버에 전송하니 수신을 못받았다고 인식하는지 dns 질의 응답이 여러번 찍히는 것을 보면 재시도를 하는것 같긴 합니다..(안 그럴때도 있긴하네요..)
어렵네요 말씀하신 것처럼 자료가 너무 없더라구요 ㅠㅠ 좀 더 찾아보겠습니다 응원 감사합니다! 좋은 강의 만들어주셔서 감사하고 수강 너무 잘하고 있습니다!