과연 인터넷 강국의 수치인가?

지리즈의 이미지

아래의 내용은 zdnet에서 가져온 내용입니다.

가장 정확한 진단이라 여겨져 여기 올립니다.

덧붙여...

인터넷 강국의 부끄러운 모습이라고 여기시는 분들도 계시는데,
저는 좀 다른 쪽으로 보고 싶습니다.

밑에 글에 처럼 기하 급수적으로 늘어나는 패킷의 양이라면
우리나라와 같은 초고속 인터넷 망이 보급되지 않은 국가에서는
라우터 중간중간에서 트래픽 폭증으로 인해 메인 DNS서버에
전달되는 내용은 어느 정도 제한이 될 겁니다.

하지만, 우리나라와 같이 빵빵한 백본과 각 망 간에 연결된
강력한 라우터의 성능으로 인해 거의 대부분의 트래픽이
DNS서버에 다 전달 되었다는 결론으로도 볼수 있습니다.

결국 우리나라 인터넷이 졸라 대역폭이 넓게 잘 구축되어 있다는
반증도 되지요...

물론 혜화전화국에 있는 최상위 DNS 하나에 다운으로 인해
전체 인터넷이 마비되었다는 것에는 문제가 있음을 시인합니다만,
여기에 대한 해결 방법은 의외로 간단히 해결될 수 있을 수도
있다고 믿습니다.
->본인 같은 경우는 당일 168.126.63.1로 네임쿼리가 안되자
바로 210.117.65.1(두루넷 도메인)로 세팅을 바꾸어서
바로 불편없이 인터넷을 사용했습니다.
(아무런 생각없이 그렇게 했습니다.
대다수의 국내 인터넷이 이런 형상으로 마비가 온줄은 나중에
밤늦게 퇴근해서 알았지요 -_-;;;)

하여튼... 전 너무 부끄럽게만 생각할 필요는 없다고 봅니다.

옛날에 cron에 rdate 등록하면서 time.kriss.re.kr서버가
다운되지 않을 까 걱정하시면서 이곳에 팁을 올리셨던 분의
글이 기억나는 군요...

Quote:
404바이트「웜」하나에 전국이「넉다운」

25일 발생한 전국적인 인터넷 망 다운 사태의 최초 원인은 뜻밖에 간단하다.

박창신 기자 (디지털타임스)
2003/01/27


정보통신부와 보안 전문가들에 따르면 누군가 불순한 목적으로 마이크로소프트(MS)의 데이터베이스용 서버(SQL서버)에서 활동하는 패킷(웜 프로그램)을 작성, 한 SQL서버에 옮긴 것이 이번 사건의 발단이다.

이렇게 옮겨진 패킷은 SQL 서버의 메모리(램)에 상주하면서 한 번에 256(2의 8제곱)개씩의 패킷을 발생시켜 밖으로 내보냈다. 이들 패킷은 서버끼리의 커뮤니케이션 통로인 UDP 1434포트를 통해 수많은 다른 SQL서버로 전송된 것이다.

UDP 1434포트는 SQL서버들이 실제로 데이터를 주고 받았는 지를 확인하기 위해 열어놓은 통로. 네트워크의 처음과 끝을 죽 점검함으로써 데이트를 받는 측의 SQL서버가 살아 움직이며 실제로 데이터를 받았는지를 확인하는 기능이다. MS는 이를 `레졸루션 서비스' 또는 `확인 서비스'라고 한다.

이번 사건은 SQL서버의 이같은 기능이 보안상의 허점으로 작용하면서 발생한 것으로 보인다. 최초 한 SQL서버의 램에 자리잡은 웜 프로그램이 UDP 1434포트를 통해 다른 SQL서버로 404바이트의 패킷을 무수히 보내면, 이 패킷이 목적지 SQL서버의 시스템 메모리에 덮어쓰기 형태로 상주하면서 연쇄적으로 2 개씩의 다른 SQL 서버를 호출하기 시작한 것이다. MS는 외부에서 들어온 패킷이 SQL서버의 메모리에 덮어쓰기 형태로 자리잡는 것을 `버퍼 오버런'이라고 말한다.

버퍼 오버런과 확인서비스를 통해 발생하는 패킷의 양을 숫자로 표현하면 처음에는 패킷 1개가 그 다음에는 256(2의 8제곱)개, 다시 그 다음에는 `256의 8제곱' 개씩으로 실로 기하급수적으로 늘어난다. SQL서버들끼리 교신하는 데이터 량이 순식간에 어마어마한 양으로 늘어나는 것이다.

엎친 데 덮친 격으로 문제의 웜 프로그램에 감염된 SQL서버끼리의 `패킷 주고받기'가 끝간데 없이 계속되는 사이클 현상도 벌어졌다. 한 SQL서버와 또 다른 SQL서버가 UDP 1434를 통해 똑같은 내용으로 묻고 되묻고, 다시 묻고 하는 식의 패킷 교환사이클에 빠지게 되는 것이다.

SQL서버와 또 다른 SQL서버간의 이같은 패킷 주고 받기가 늘어나면서 발행한 네트워크 부하는 인터넷접속서비스를 제공하는 사업자(ISP)들의 도메인 네임 서버(DNS)에 심대한 영향을 주었다. 한 서버가 다른 서버를 향해 패킷을 보내면, 그 중간에서 DNS서버가 해당 패킷의 목적지(인터넷주소)를 확인해 전달하는 역할을 수행하게 된다.

따라서 전국에 산재하고 있는 SQL서버들에 문제의 웜 프로그램이 상주한 상태에서 UDP 1434포트를 통해 어마어마한 패킷을 발생시킬 경우 DNS서버가 이를 감당하기 어려운 상황에 직면하게 된다.

DNS서버의 CPU용량을 초과하는 수준의 네트워크 부하가 발생하는 것으로, 이는 DNS의 작동을 느리게 하거나 사실상 멈추게 함으로써 인터넷을 중단시키는 것이다. 정보통신부 관계자는 "초당 1000~2000건을 처리하던 DNS서버에 초당 10만 이상의 콜이 밀려들었다"며 "이런 상황이 발생하면서 DNS서버가 급격히 느려지면서 가입자가 보기에는 인터넷망이 다운되는 현상이 일어났다"고 설명했다.

SQL서버들간에 발생한 엄청난 네트워크 부하로 인해 사실상 작동불능 상태에 이르게 된 DNS서버 중에는 KT의 서울 혜화전화국 장비가 있다. 컴팩(현 HP)와 IBM이 납품한 12대의 유닉스 서버로 구성된 이들 DNS서버는 지난 15일 오후 2시30분 경보가 울린 직후 순식간에 한계상황에 이르게 된 것이다.

혜화전화국의 DNS서버는 CPU용량의 20~40% 수준에서 작동해야 정상이며, 이런 정상기준을 20% 초과할 경우 경보가 울리도록 돼 있다. 이와 관련, KT 관계자는 "12대의 DNS서버에는 부하분산(로드 밸런싱) 기능이 있었지만, 한꺼번에 몰려드는 네트워크 부하에는 당해낼 재간이 없었다"고 말했다.

결론적으로 404바이트의 작은 패킷 프로그램 한 개로 시작된 이번 사건은 인터넷의 보안상 취약점을 여실히 말해주고 있는 것이다. @

winchild의 이미지

KT 서버가 다운되기 이전에 이상 트래픽이 증가하고 있는것을 담당자가 무시했다고들리더군요. 보안업체에서도 경고를 했는데도 말이지요.

결국은 몇가지의 안전장치들이 있었지만 마치 진주만이 일본군에게 습격을 당할때 마냥 바보같은 행동 몇가지가 겹쳐지면서 결국은 최악의 상태가 되어버렸다는 의견이더군요.

좋은 경험이었다고 생각합니다. 더구나 정권이 바뀌면서 IT 의 우선순위가 밀리는 상황이었는데 단번에 역전시킨것은 아닌가 싶네요.

- 겨울아찌 -

- 겨울아찌 -
winchild@gmail.com