파이썬 2.3.2 파이널 릴리즈

2.3.1에서 발견된 문제점들을 수정한 2.3.2가 릴리즈되었습니다. 2.3.1에서 있었던 주요 문제점은

  • os.fsync가 오타로 인해 빠짐

  • 소스 타볼에 CVS/ 디렉토리가 그대로 다 남음

  • OpenSSL 보안 버그 수정된 바이너리로 내장 (윈도우 배포본)

  • 문서 밑에 2.4.0a0이라고 나온 것 버전 제대로 수정

  • HP/UX에서 configure 제대로 되지 않던 문제 수정. (이 문제는 사실 HP/UX에서는 허구헌날 발생하는 거라서, 제대로 된다는 게 이상할 정도이긴 합니다. :) )

그리고, 다음 릴리즈인 2.3.3은 3달내에 다시 릴리즈할 예정이라고 합니다. FreeBSD포트는 지금 대구에 있는 관계로 조만간 업데이트할 예정입니다~

『디지털 생물학』

오랜만의 책 얘기군요.. 그동안 출퇴근할 때 늘 책을 읽기는 했는데, 몇 백페이지씩 되는 책을 겨우 블로그 하나에 감히 요약한다는 게 좀 부담스럽기도 해서 아무래도 손이 잘 안 가네요 흐흐;;

[ISBN-8934912812] 『디지털 생물학』. 요 책은 일반적으로 흔하게 나오는 생물학의 디지털화에 대한 것보다는 진짜로 제목 그대로 디지털 세계의 생물학에 다룬 책입니다. 저자는 정말로 거의 디지털 세계에 대해서는 득도에 가까이 갔는지, 디지털 세상을 현실 세상과 완전히 동일시할 수 있는 능력을 갖고 있음을 책 여기저기서 자랑하고 있습니다. :) 즉, 컴퓨터 네트워크 위의 바이러스라던지, life game위에서 돌아가는 벌레라던지.. 이런 것들을 모두 생물로 볼 수 있는 능력을 갖추고 있는 것이지요. (헉~;)

저자는 디지털 세상의 모든 것을 실세상(사실, 디지털 생물학의 관점에서는 실 세상이란 게 따로 구분할 게 없다는군요. 세상은 매트릭스 수준이랄까 -_-;)의 것들과 비교해가면서 거기서 희열을 느끼는데, 읽다보면 뭔가 세뇌되는 듯한 기분이 들며 진짜로 뇌에 있는 정보를 하드디스크에 저장해두고 싶은 기분이 자주 들게 돼 버립니다. 그는 오히려 사람들의 디지털 세계를 “가상 세계”로 치부하는 태도에 대해 거부감을 표시하는데,

이 시점에서 나는 굵직한 글씨체로 ‘모든 세계에 동등한 권리를 보장하라’는 문구가 씌어진 플래카드를 내걸고자 한다. 흔한 일이지만 디지털 세계는 형편없는 대우에 시달린다. ‘인공적’, ‘시뮬레이션’, ‘가상’이란 말들은 우리의 세계를 닮은 어떤 것이 컴퓨터에 등장할 때 가외로 붙는 수식어이다. 우리는 가상 현실, 인공적인 생활, 시뮬레이션 환경 등에 대한 이야기를 끊임 없이 듣는다. 왜인가? 왜 디지털 세계 속에 존재하는 것은 물리적인 세계의 사물보다 ‘비실제적’인 것으로 간주되어야 하는가? 왜 가상현실은 가상적인가? 조금은 불공평하지 않은가?

이에 그치지 않고, 디지털 세상에 대한 확신으로 독자들에게 강력한 근거를 대며 설득합니다.

다음 장에서 소개하겠지만, 내 컴퓨터에 진화 알고리즘을 실행하면 그것은 진화를 시뮬레이션하지(흉내내지) 않는다. 내 컴퓨터의 새로운 배양기에서는 ‘진짜’ 진화가 발생한다. 마찬가지로 내 컴퓨터가 산과 강 그리고 동물들이 뛰어다니는 어떤 환경을 창조할 때, 거주자의 관점에서 그 환경은 가상이 아니라 실제이다. 또한 어떤 디지털 세계에 의식을 가진 신경망이 성공적으로 진화한다면, 그것은 인공적이 아니라 살아 있는 것으로 불릴 만하지 않겠는가?

어쨌든 컴퓨터의 작동이 비현실적이라는 생각은 대다수의 그릇된 견해이다. 컴퓨터가 어떤 일을 하는지 그리고 그 일을 어떻게 하는지 생각해볼 때, 그러한 관점은 편견에 불과하다. 내가 컴퓨터로 두 수를 곱할 때, 컴퓨터는 그 계산을 모방하는 것인가? 수학을 흉내내는 것인가? 물론 아니다. ALU는 회로에 새겨진 덧셈 규칙에 따라 정확한 답을 계산한다. 그러나 내가 두 수를 곱하면 항상 같은 결과가 나오지는 않는다. 나는 종종 정답을 얻기 위해 내 기억에 의존한다. 이와 같이 수학적 관점에서 내 컴퓨터의 작동은 내 자신의 행동보다 더 실제적이다. 오히려 내가 인공적인 계산기라 할 수 있다.

정말로 말 그대로 “대략 정신이 멍”해지면서.. 충격적이었습니다. 이 말을 어린애들이 들으면 얼마나 충격받을 까요 흑흑 ㅡ.ㅜ (갑자기 18금으로 사이트 등급이 올라간다;;)

그 외에도, 진화적 알고리즘(GA)에서의 기계의 기가 막힌 환경 적응력이나, 신경망, 군중 이론, 프랙탈 생명체같은 디지털 세계의 것들에 대해서 설명하고, 그리고 “물리적” 세계의 곤충들의 집단 두뇌나 동물의 면역계 진화, 언어의 진화 패턴같은 우리가 익숙하고 일반적으로 믿고 있었던 “물리적” 세계에서의 특징들을 디지털 생물학적 특징으로 가져갈 수 있는 아이디어들을 제시하고 있습니다.

이 책은 엄청 사색적이면서 적당히 괴짜스럽고 읽기 쉬운 문체로 되어있어서 지하철에서 읽기는 아주 좋았습니다. 그런데, 꽤나 수긍이 가면서도 뭔가 속은 듯한 기분이.. 크크.. :)

국군의 날!

이제 2003년도 얼마 안 남았군요. 벌써 10월이 오다니 ㅡ.ㅜ

오픈룩을 자주 들러주시는 모든 분들 앞으로 남은 세달에 행운만 가득하기를 빕니다. *(_ _)*

아울러 오늘은 국군의 날인데 “국군장병아저씨” 늘 감사합니다. (-ㅇ-;;;) 병특은 뭐 따로 기념일 없나요 흑흑 =3 =33

OpenSSL 보안 결함 발견

wu-* 씨리즈에 둘째가라면 서러운 보안버그 단골 OpenSSL이 또 보안 버그를 발표했습니다. (크크 — 뭔가 혼자 즐겁다;;)

이번 버그는 인증서 데이터를 인코딩할 때 사용되는 ASN.1의 파서에서 발견되었는데, 사실상 대부분의 SSL 코드에서 ASN.1 파싱은 꼭 거치기 때문에 서버가 계속 나자빠지는 등;; 위험하게 작용하게 됩니다. 구체적으로 적용되는 부분을 번역해 보자면:

  • OpenSSL 0.9.7에만 적용되는 문제: 잘못된 형식의 ASN.1이 들어왔을 때 SSL을 거절하는 경우에 메모리 해제(deallocation)가 일어나게 되는데 이 부분에서 잘못된 해제 코드가 들어있어서 결국 프로세스가 죽게 되는 등의 Denial of Service 공격에 사용될 수 있는 버그가 발견되었습니다.

  • 몇가지 자주 사용되지 않는 ASN.1 태그에서, 버퍼 아웃바운드 문제 발견. 버퍼 끝을 잘못 포인트해서 읽게 유도할 수 있기 때문에 마찬가지로 루틴이 죽을 수 있어서 DoS공격에 악용될 수 있습니다. 이 버그는 0.9.6에도 적용됩니다.

  • 인증서에 잘못된 형식의 퍼블릭 키가 들어있는 경우에 제대로 되어있는지 디코딩 전에 확인하는 루틴에서 인증서 잘못을 무시하는 경우에 프로세스가 크래쉬할 수 있습니다. 일반적으로 디버깅 옵션을 끈 상태에서는 항상 무시되기 때문에 늘 악용될 수 있는 버그라고 할 수 있습니다.

  • SSL/TLS 프로토콜 핸들링의 에러로 인해서 서버가 특별히 요청하지 않은 상황에서도 클라이언트의 인증서를 읽게 된다고 합니다. 이 부분은 직접적으로 연결되는 보안 취약점이 있는 것은 아니지만, SSLv1, SSLv2, SSLv3의 각각 프로토콜 자체상의 결함을 상위 버전에서 원치 않게 허용할 수 있게 된답니다.

  • 이번 버그는 OpenSSH건처럼 root가 뚫린다던지 하는 일은 없지만 모두 쉽게 발생시킬 수 있는 DoS코드들이 이미 공개되어 있기 때문에, 원한을 산 분들은 얼른 얼른 업데이트 하셔야 될 듯 합니다. 적용되는 버전은 구석기시대의 SSLeay를 포함한 OpenSSL 0.9.7b까지의 버전이라고 합니다. 간단히 말해서 “지금 쓰는 모든 버전은 구멍이 숭숭~” 이란 말;; =3 =33

    지금 글을 쓰고 있는 현재 FreeBSD에는 보안 패치가 적용되어 있지 않고, Python은 2.3.2에서 0.9.7c를 기반으로 작업할 예정이라고 합니다.

    즐 패치~;;;