NetBSD 공작소

named 보안 권고

대충 무시하고 넘어가도 됐었던 어제의 보안 권고와는 달리, 이번엔 좀 심각한 보안 권고가 나왔다. DNS 써버인 BIND named에 해당하는 것으로, 외부에서 특정 패킷을 보내어 써버를 죽게 만드는 것이다. 원인은 동적 DNS 갱신 패킷을 처리하는 과정에 버그가 있어서 그런 것이지만, 동적 DNS 갱신 기능을 꺼 놓았다고 해도 해당 패킷을 받으면 써버가 죽게 되므로 named를 돌리고 있는 경우라면 모두 해당한다고 보면 된다. NetBSD만이 아니라 기존의 모든 BIND named의 문제이므로, 어떤 플랫폼이든지 BIND named를 돌리고 있다면 9.5.1pl3이나 그 이후의 버젼으로 갱신해야한다. NetBSD의 경우에는 7월 29일 이후 버젼으로 갱신하면 된다.

dhcpd와 SHA2 보안 권고

써버를 운영하다보면 보안 권고가 나올 때마다 일일이 패치해주는 것도 상당히 부지런해야 할 수 있는 일이다. 공격받을 가능성이 있다는 걸 알면서 패치를 안 할 수도 없는 노릇이고, 그렇다고 매번 패치하고 컴파일하고 설치하려면 여간 귀찮은 것이 아니다. 하지만 보안 권고를 자세히 읽으면 자신의 써버에는 해당사항이 없거나, 가능성이 없는 공격이어서 굳이 패치를 하지 않아도 되는 경우를 많이 발견할 수 있다. 게다가 보안 문제에 대해 배우는 것도 많으니 보안 권고가 자주 나온다고 짜증내기보다는 월간지 읽는 기분으로 찬찬히 읽어보는 것은 어떨까?

어제 발표된 NetBSD 보안 권고는 DHCP 써버SHA2 알고리즘에 관한 것이다. DHCP 써버의 문제는 요새 널리 회자되고 있는 DoS 공격 가능성이 있다는 것인데, 대부분의 경우 무시해도 무방하다. DHCP를 쓰는 경우의 99%는 DHCP 클라이언트만 실행하는 것이기 때문이다. DHCP 써버를 운영하는 경우는 내 써버가 다른 기계에 IP 주소를 발급해주는 역할을 할 때이므로, ISP가 아닌 이상은 써버를 돌리더라도 LAN에서만 돌리는 것일테니 이번에는 그냥 통과해도 좋은 보안 권고이다. 혹시라도 패치하고 넘어가야 직성이 풀리겠다면 7월 17일 이후 버젼으로 갱신하면 된다.

SHA2 문제는 제일 흔한 “버퍼 넘침” 문제인데, 이 문제는 심한 경우 공격자가 루트 권한으로 아무 명령이나 실행할 수 있긴 하다. 하지만 이 경우는 조금 다른데, 버퍼 넘침이 기껏해야 4바이트나 8바이트 뿐이기 때문이다. 그러므로 버퍼에 대용량을 우겨넣어서 코드 영역까지 넘어가게 만들고자하는 공격 전략은 이 경우에는 통하지 않는다고 봐도 무방하다. 하지만 초과한 4바이트나 8바이트가 메모리의 중요한 부분을 덮어 쓸 수도 있기 때문에 피해가 전혀 없을 수는 없다. 그렇다면 과연 패치를 해야하는 것일까? 보안 권고에는 어떤 소프트웨어가 영향을 받는지도 잘 나와 있는데, 이 경우는 libssh와 pkg_install이라고 한다. pkg_install이야 관리자가 패키지를 설치하려고 실행하는 명령이니 관리자만 조심(서명이 들어간 패키지 검증 안하기 등)하면 그만이지만, libssh는 ssh를 사용하는 프로그램들에서 쓸 가능성이 있다. 결국 ssh를 통해 외부 접속을 허용하는 경우에만 대비책을 세우면 되는 것이다. 패치를 하려면 7월 22일(NetBSD-current는 5월 26일) 이후 버젼으로, 그마저도 귀찮다면 ssh의 설정 파일에서 SHA256을 쓰지 않도록 해 주는 방법도 있다.

써버를 패치하는 일은 단순히 컴파일, 설치만이 아니라 동작중인 서비스를 모두 중단해야할 수도 있다는 점을 염두에 두고, 보안 권고가 나오더라도 그 위험 정도를 정확히 파악, 서비스에 미치는 영향을 최소화할 수 있는 대책을 마련하는 자세가 중요하다.

pkgsrc-2009Q2 발표

올해의 두 번째 안정 브랜치가 지난 주말에 발표되었다. 동결에 들어간지 5주만이다. 사실 안정 브랜치가 모습을 드러낸 것은 7월 7일이지만, 그간 여러 보안상 헛점이 발견된 패키지들을 새 버젼으로 교체하고, 자잘한 버그를 고치다보니 예상보다 좀 지연되었다.

이번 브랜치에서 가장 큰 변화는 라이센스를 엄격히 확인하고 원치 않는 라이센스의 패키지가 설치되는 것을 원천 봉쇄할 수 있는 기능이 추가된 것이다. 이전에도 라이센스 검사 기능은 있었지만, 바이너리 재배포가 불가능하다든가 하는 몇몇 극단적인 경우에만 해당이 되었다. 하지만 이제는 각 패키지마다 라이센스를 Makefile에 명시를 하고, ACCEPTABLE_LICENSE에 적어 준 라이센스에 해당할 경우에만 설치가 가능하도록 바뀌었다. 물론 대부분의 오픈소스 라이센스는 ACCEPTABLE_LICENSE의 기본값에 포함이 되어 있어서, 별다른 조치를 취하지 않아도 그대로 사용 가능하다. 아직은 라이센스를 명시하지 않은 패키지들이 많아서 당장 큰 효용성은 없겠으나, 앞으로 라이센스를 명시하는 패키지가 늘어나면 행여나 나도 모르는 사이에 라이센스를 어기면서 패키지를 쓰고 있는게 아닌지 염려할 필요가 없어질 것이다.

또 하나 반가운 소식은 pkgin이 정식으로 pkgsrc에 포함된 것이다. 저자의 홈페이지에 잘 나와 있듯이, 이 프로그램은 pkgsrc에서 apt나 yum과 같은 역할을 한다. 정식으로 제공되는 바이너리 패키지가 늘어나면 더 이상 pkgsrc에서 하염없이 컴파일을 하지 않아도 손쉽게 패키지 관리를 할 수 있을 것이다.

마지막으로 이번 브랜치부터는 대부분의 기본 텍 패키지들이 텍라이브 2008의 패키지들로 갱신되었다. 아직 teTeX의 잔재가 많이 남아있기는 하지만, 포맷 생성에 필요한 주요 패키지들은 모두 텍라이브로 교체되었다. 그동안 teTeX에 포함된 패키지들의 버젼이 낮아서 새로운 텍이나 라텍 패키지를 이용하는데에 불편을 겪었다고 해도, 이번 브랜치에서는 별 문제없이 쓸 가능성이 매우 높아졌다. 일례로, hyperref 등의 최신 버젼을 요구하는 ko.TeX도 잘 작동한다. ko.TeX은 이번 브랜치에는 포함되지 않았지만 이미 pkgsrc에 패키지로 들어가있으며, 다음 브랜치부터는 함께 제공될 예정이다.

dhclient의 스택 넘침에 관한 보안 권고

이번 보안 권고도 NetBSD의 외부 프로그램에 대한 것이다. NetBSD에는 ISC의 DHCP 써버와 클라이언트가 들어 있는데, 그 중 클라이언트에 문제가 있어서 외부 DHCP 써버에서 임의의 코드를 루트 권한으로 실행시키는 것이 가능하다는 것이다. 대부분의 노트북 컴퓨터의 경우 무조건 무선으로 DHCP 써버에 접속해서 IP 주소를 받아오도록 설정되어 있는 경우가 많으므로, 공공장소에서 누군가 악의를 품고 DHCP 써버를 직접 돌릴 가능성을 배제할 수 없다. 이 문제를 고치려면 NetBSD-current는 6월 25일, NetBSD 5와 4는 7월 14일 이후의 소스로 갱신해야 한다.

보다 나은 방법은 아예 ISC의 DHCP 클라이언트를 사용하지 않는 것이다. 물론 그렇다고해서 DHCP로 IP 주소를 받지 말라는 것은 아니다. NetBSD에는 DHCP 클라이언트가 하나 더 있다. Roy Marples씨가 만든 dhcpcd인데, 지난 4월 말에 -current에 포함되었다. ISC의 클라이언트와 비교해서 가볍고 꼭 필요한 기능만을 포함하고 있다. /etc/rc.confdhclient 대신 dhcpcd를 넣으면 된다.

ko.TeX 패키지

pkgsrc의 라텍 패키지로 한글 문서를 조판하려면 print/tex-hlatex이나 print/tex-dhucs를 써야 했다. 하지만 두 패키지 모두 사실상 개발이 중단된 상태이다보니, 한글 TeX 사용자 그룹이나 한국텍학회를 통해 계속되어 온 한글 조판 노력들이 반영되지 못하였다. 이 두 패키지를 통합하여 개발을 지속하고 있는 ko.TeX은 나온지가 2년이 되었지만, 아직 pkgsrc에는 포함되지 않고 있어서, 직접 설치해서 쓰려면 번거로움이 많았는데, 이번에 pkgsrc의 텍라이브 패키지를 대거 갱신하는 김에 print/tex-kotex 패키지로 만들어 넣었다. 색인 만들기 등에 쓰이는 유틸리티들은 아직 패키지로 만들지 않았지만, 글꼴과 라텍 스타일은 모두 포함하고 있으므로, 기본적인 한글 문서를 조판하는데에는 무리가 없을 것이다.

지난달에 이미 pkgsrc가 동결에 들어간 탓에 2009Q2에는 포함되지 못했지만, 2009Q3에는 포함될 예정이다. 물론 pkgsrc-current를 쓰는 경우라면 바로 tex-kotex을 설치할 수 있다.

이전 글 »