라즐리 [1084527] · MS 2021 (수정됨) · 쪽지

2023-06-06 01:46:23
조회수 6,219

DNS 스푸핑(18학년도 6평) 지문을 읽어봅시다

게시글 주소: https://io.orbi.kr/00063249683

일단 처음부터 DNS 스푸핑이 뭔지를 알려줍니다. 지문엔 안 나와 있지만 Domain Name System Spoofing으로, spoofing은 IT 용어로 '위장하기'를 의미합니다.

인터넷 사용자가 어떤 사이트에 접속하려고 할 때, 사용자를 위조 사이트로 접속시키는 행위라고 하네요. 이는 도메인 네임을 IP 주소로 변환해 주는 과정에서 발생한다고 합니다.

여기서 IP 주소가 무엇인지 모르는 학생들을 위해, 아래에 설명을 해 주었습니다.

인터넷에 연결된 컴퓨터들이 서로를 식별(識別)하고 통신하기 위해서 각 컴퓨터들은 IP(Internet Protocol)에 따라 만들어지는 고유 IP 주소를 가져야 한다고 합니다. 프로토콜(Protocol)의 정의에 대해서도 설명해 주고 있고, IP 주소는 중복 지정하거나 임의로 지정할 수 없다고 하네요. 예를 들어서 자신이 사용하는 컴퓨터의 IP 주소를 159.175.34.6와 같이 지정할 수 없습니다.

단어 문제를 조금 볼게요. ㉠을 '제조(製造)되는'으로 바꿔 쓰는 것은 적절하지 않습니다. '제조하다'라는 것은 물리적으로 물건 따위를 만들어내는 데 사용하는 것이 적절하기 때문에 'IP에 따라 제조되는 고유 IP 주소'라고 하면 어색합니다.

㉡은 '표시(標示)한다'로 바꿔도 무방합니다. 'IP 주소는 ~ 4개의 필드에 숫자를 사용하여 표시한다.'라고 써도 어색함이 없죠.

다음으로 공인 IP 주소를 고정 IP 주소와 유동 IP 주소로 구분합니다.

고정 IP 주소: 같은 번호를 지속적으로 사용

유동 IP 주소: DHCP에 의하여 IP 주소가 부여됨

DHCP는 IP 주소를 필요로 하는 컴퓨터에 IP 주소를 할당해 주고, 해당 컴퓨터가 IP 주소를 사용하지 않는 경우에는 주소를 반환받은 뒤, 다른 컴퓨터가 해당 IP 주소를 사용할 수 있게 합니다.

그리고 내부 네트워크에서 서로를 식별하는 데 사용되는 사설 IP 주소가 있다고 하는데요, 예를 들면 하나의 와이파이 공유기에 노트북과 스마트폰이 동일한 내부 네트워크에 연결되었을 때, 내부 네트워크에서 노트북과 스마트폰을 식별하는 데 사설 IP 주소가 이용됩니다.

여기서 32번 문제의 답이 ②라는 것을 알 수 있습니다. 사설 IP 주소는 내부 네트워크에서 서로를 식별할 수 있어야 하는데, 동일한 내부 네트워크에 연결된 컴퓨터들의 사설 IP 주소가 서로 같다면 식별이 안 되겠죠.

③이 틀렸다는 것도 알 수 있는데, 유동 IP 주소는 DHCP가 할당해 줍니다. A라는 컴퓨터에 IP 주소 728.385.12.5가 할당되었고, A가 이 IP 주소를 사용하지 않으면 B라는 컴퓨터에 728.385.12.5를 할당해줄 수 있는 것입니다. 두 컴퓨터 A, B에 동시에 728.385.12.5라는 IP 주소를 할당할 수는 없습니다.

④는 2문단에 틀렸다는 근거가 있습니다. IP 주소를 중복 지정할 수 없다고 했기 때문이죠.

도메인 네임이 무엇인지 설명해 줍니다. 예를 들면 www.orbi.kr이 대표적이죠. 그리고 컴퓨터가 유동 IP 주소인지, 고정 IP 주소인지에 따라 네임서버의 IP 주소 기록에 대하여 설명해 줍니다.

DNS: 도메인 네임을 IP 주소로 변환해 주는 서버

네임서버: DNS를 운영하는 장치=도메인 네임을 IP 주소로 변환해 주는 서버를 운영하는 장치

유동 IP 주소 컴퓨터: IP 주소를 받을 때 네임서버의 IP 주소가 자동으로 기록됨

고정 IP 주소 컴퓨터: 사용자가 네임서버의 IP 주소를 직접 기록해야 함

㉢의 경우, '이루어진'은 '발생(發生)된'과는 거리가 멀기 때문에 바꿔 쓰기에 적절하지 않습니다.


그리고, 32번 문제의 ①을 보면 DNS가 도메인 네임을 사설 IP 주소로 변환한다고 되어 있는데, 사설 IP 주소는 내부 네트워크에서 서로를 식별하는 데 사용될 뿐, 인터넷에 직접 접속이 안 되기 때문에 인터넷을 사용할 때 나오는 도메인 네임을 사설 IP 주소로 변환한다는 설명도 잘못되었습니다.

⑤도 잘못되었는데, 인터넷 통신사는 가입자들이 공동으로 사용할 수 있는 네임서버를 운영하고 있다고 했으니 IP 주소가 상이한 컴퓨터들이라도 각각에 기록되어 있는 네임서버의 IP 주소는 동일할 수 있습니다.

30번 문제의 답이 ④라는 것도 지금까지 읽은 부분에서 알 수 있습니다. DHCP를 이용하는 컴퓨터는 유동 IP 주소가 할당되고, 이 경우 IP 주소를 받을 때 네임서버의 IP 주소가 자동으로 기록되기에 사용자가 기록할 필요가 없습니다.

다음 문단부터 슬슬 복잡해지는데...

클라이언트는 웹 사이트에 접속하려는 컴퓨터를 말하고, 사용자가 방문하고자 하는 사이트의 주소를 입력하거나 검색하여 클릭한 이후의 과정이 중요합니다.

주어진 도메인 네임에 해당하는 IP 주소를 물어보는 질의 패킷을 네임서버A에 전송

네임서버A에 해당 IP 주소가 있는가?(Yes/No)

Yes인 경우

클라이언트에 이 IP 주소를 알려주는 응답 패킷 전송

No인 경우

네임서버B의 IP 주소를 알려주는 응답 패킷 전송→클라이언트가 네임서버B에 질의 패킷 전송

네임서버B에 해당 IP 주소가 있는가?(Yes/No)

Yes인 경우

클라이언트에 이 IP 주소를 알려주는 응답 패킷 전송

No인 경우

네임서버C(D, E, F, ...)의 IP 주소를 알려주는 응답 패킷 전송→이 과정으로 알아낸 IP 주소로 사이트를 찾아감


여기서 네임서버와 클라이언트는 UDP라는 프로토콜에 맞춰서 패킷을 주고받는데, UDP는 상대에게 보낸 패킷이 도착하였는지 확인하지 않고, 특정 질의 패킷에 대하여 처음 도착한 응답 패킷만 본다고 합니다.

㉣을 '인정(認定)한', ㉤을 '비교(比較)해'로 바꾸는 것도 적절하지 않아 보이네요.

UDP는 특정 질의 패킷에 대하여 처음 도착한 응답 패킷만을 보기 때문에, 공격자가 보낸 응답 패킷이 네임서버가 보낸 것보다 클라이언트에게 먼저 도착하면 클라이언트는 공격자가 보낸 응답 패킷을 옳은 것으로 인식하고 위조 사이트로 연결된다고 합니다.

이제 31번 문제를 볼게요. ㉮는 사용자가 어떤 사이트에 정상적으로 접속하는 과정이고, ㉯는 DNS 스푸핑이 이루어지는 과정입니다.

①을 보면, 클라이언트가 질의 패킷을 2번 보냈다고 합니다. 

클라이언트가 네임서버A에 질의 패킷 전송네임서버A에는 클라이언트가 접속하려는 사이트의 IP 주소가 없기 때문에 네임서버B의 IP 주소가 담긴 응답 패킷 전송클라이언트가 네임서버B에 질의 패킷 전송

질의 내용은 동일하지만, 패킷을 받는 수신 측이 네임서버A, 네임서버B로 서로 다릅니다.(오답)

②에서는 클라이언트가 응답 패킷을 2번 받았다고 합니다.

클라이언트가 네임서버A에 질의 패킷 전송네임서버A에는 클라이언트가 접속하려는 사이트의 IP 주소가 없기 때문에 네임서버B의 IP 주소가 담긴 응답 패킷 전송클라이언트가 네임서버B에 질의 패킷 전송네임서버B에 클라이언트가 접속하려는 사이트의 IP 주소가 (있으면 해당 IP 주소가 담긴 응답 패킷 전송/없으면 네임서버C의 IP 주소가 담긴 응답 패킷 전송)

일단 두 응답 내용은 서로 다릅니다. 근데 응답 패킷을 보낸 송신 측이 네임서버A, 네임서버B로 서로 다릅니다.(오답)


정답은 ③번인데요, ⓐ에서 질의한 도메인 네임에 해당하는 IP 주소를 네임서버가 찾았다면 해당 IP 주소로 접속하게 되고, 못 찾았다면 다른 네임서버의 IP 주소를 알려주는 응답 패킷이 오기 때문에 적절합니다.


④와 ⑤는 DNS 스푸핑이 이루어지는 과정입니다. 공격자가 보낸 응답 패킷이 먼저 오고 클라이언트는 이를 옳은 패킷으로 인식하여 위조 사이트에 접속하기에, DNS 스푸핑이 이루어졌다면 ⓓ의 응답 패킷에 공격자가 보낸 IP 주소가 항상 포함될 수는 없습니다.(공격자가 둘 이상이라면 ④도 답이 될 수 있습니다. 공격자 A, B가 IP 주소를 보냈는데 A가 보낸 IP 주소가 먼저 왔다면 공격자 B가 보낸 IP 주소는 ⓓ에 포함될 수 있으니까요.)

그리고 DNS 스푸핑이 일어났다면, ⓔ의 IP 주소는 클라이언트가 ⓐ에서 질의한 도메인 네임과 다른 IP 주소가 됩니다. 위조 사이트니까요. 즉, ⑤도 오답입니다.

33번 문제입니다.

hosts 파일에 도메인 네임과 그에 해당하는 IP 주소를 적어 놓았다고 하는데, 이 파일에서 원하는 도메인 네임의 IP 주소를 찾으면 바로 접속, 못 찾으면 네임서버에 질의 패킷을 보낸다고 합니다.

즉, hosts 파일에서 원하는 도메인 네임의 IP 주소를 찾으면 네임서버에 질의 패킷을 보내지 않는다는 의미가 됩니다.

접속하려는 사이트의 도메인 네임과 IP 주소를 사용자가 클라이언트의 hosts 파일에 적어 놓으면, 네임서버에 질의 패킷을 보내지 않고 접속할 수 있으니 질의 패킷 전송이 선행되어야 하는 DNS 스푸핑이 발생하지 않겠죠. 답은 ⑤번입니다.

단어 문제는 아까 설명했으니 생략합니다.

0 XDK (+0)

  1. 유익한 글을 읽었다면 작성자에게 XDK를 선물하세요.