OpenBSD, buffer overflow 문제 해결?

권순선의 이미지

zdnet기사입니다. 참고하세요....

Quote:
오픈BSD 프로젝트의 리더 시오 드 라트는 오는 5월 1일 발매 예정인 BSD 유닉스 운영체제 신버전이 버퍼 오버플로우를 거의 발생시키지 않을 것이라고 밝혔다. 버퍼 오버플로우는 해커가 서버에 악성 프로그램을 수행할 수 있도록 하는 소프트웨어상의 메모리 결함이다.

지난 10일 개최된 캔섹웨스트(CanSecWest) 보안 전시회에서 드 라트는 참가자들에게 “버퍼 오버플로우 버그를 거의 완치했다고 말할 수 있다. 그러나 내가 속해있는 보안 공동체의 공식적인 발표는 아니다”라고 말했다.

메모리 버그는 거의 30년간 계속 발견돼 왔으며 드 라트는 오픈소스 그룹이 메모리 버그를 계속 유발시켜 왔다는 주장은 검증돼야 한다고 밝혔다.

캔섹웨스트 보안 전시회의 일부 참가자는 벌써 새 운영체제로 버퍼 오버플로우를 제거할 수 있을지 의구심을 표명하고 있다.

스위스 통신업체 콜트(Colt) 텔레콤의 보안관련 수석 매니저 니콜라스 피쉬바크는 “단지 보안에 또 다른 계층이 더해진 것에 불과하다. 소프트웨어에는 언제나 버그가 존재하기 마련이라 큰 차이는 없을 것”이라고 전했다.

해커는 프로그램에 과도한 정보를 요청하는 방법으로 오버플로우 버그를 악용할 수 있다. 해커가 보내는 요청 데이터에는 대부분 두 가지 구성요소가 포함돼 있다. 하나는 애플리케이션을 폭주시키는 요소이며 다른 하나는 해커가 실행하려는 프로그램이나 프로그램을 가리키는 메모리 주소다. 애플리케이션이 첫 번째 요소로 인해 폭주하게 되면 운영체제는 두 번째 데이터를 실행하게 된다.

오픈BSD 팀은 해커의 공격을 막기 위해 세 가지 방법으로 운영체제를 강화했다.

오픈BSD 팀은 애플리케이션과 사용 데이터가 저장되는 ‘스택’ 구조의 위치를 난수화했다. 이로 인해 해당 시스템의 메모리 사용 형태를 알아야만 버퍼 오버플로우를 악용하는 코드를 만들 수 있게 됐다.

드 라트는 “버퍼 오버플로우 결함은 특정 메모리 배치에 편승하는 경향이 있다. 오픈BSD 그룹이 이용한 방식은 메모리 낭비가 거의 없고 추가 부담도 작지만 해킹을 꽤 어렵게 만드는 효과가 있다. 이 방식으로 인해 해커는 더 많은 작업을 수행해야 시스템을 공격할 수 있다”라고 말했다.

또한 오픈BSD 그룹은 스택에 중요 주소가 저장되는 방식을 재구성해 버퍼 오버플로우가 발생해도 새로운 프로그램을 수행하기가 어렵게 만들었다. 이 그룹은 카나리아(canary)라고 불리는 작은 표식을 스택에 첨부해 주소가 수정됐는지 감지할 수 있도록 했다. 주소변경은 해커들이 정상적인 프로그램에 악성코드를 실행시킬 때 자주 사용하는 기법이다.

마지막으로 오픈BSD 그룹은 BSD 파일 시스템을 해킹해 메인 메모리를 기록가능영역과 실행가능영역으로 나눌 수 있는 방법을 찾아냈다. 메모리에 기억된...

http://www.zdnet.co.kr/foreignnews/article.jsp?id=60559&forum=1

뒷부분의 이야기가 더 재미있군요. 사람들을 모아놓고 공짜로 술을 취할때까지 마시게 하면 이런 결과가 나온다?? :-)

cjh의 이미지

일본 IBM의 에토 히로아키씨의 stack protector 코드가 OpenBSD gcc에 포함되었습니다. 그걸 이야기하는것 같군요.

http://www.trl.ibm.com/projects/security/ssp

--
익스펙토 페트로눔

익명 사용자의 이미지

기사내용에 오류가 있습니다(원문도). BSD 파일 시스템을 해킹해 ... -> BSD 가상 메모리 시스템을...

불량도ㅐㅈㅣ의 이미지

Quote:
오픈BSD 팀은 애플리케이션과 사용 데이터가 저장되는 ‘스택’ 구조의 위치를 난수화했다. 이로 인해 해당 시스템의 메모리 사용 형태를 알아야만 버퍼 오버플로우를 악용하는 코드를 만들 수 있게 됐다.

드 라트는 “버퍼 오버플로우 결함은 특정 메모리 배치에 편승하는 경향이 있다. 오픈BSD 그룹이 이용한 방식은 메모리 낭비가 거의 없고 추가 부담도 작지만 해킹을 꽤 어렵게 만드는 효과가 있다. 이 방식으로 인해 해커는 더 많은 작업을 수행해야 시스템을 공격할 수 있다”라고 말했다.

스택의 위치를 난수화 하겠다는 말은 "ShellCode" 조차 못 만들게 하겠다는 소리인가요?

정말 그게 이 기사대로 된다면 BSD형제들도 군침을 흘리겠군요.

문근영 너무 귀여워~~

cjh의 이미지

stack protector코드는 FreeBSD에서 먼저 개발되었습니다. Eto씨의 강연을 들은지가 한 2년 되었군요. 위에 제가 올린 홈페이지 가 보시면 각 OS나 플랫폼별로 gcc 빌드해서 테스트한 결과가 나와 있을 겁니다.

--
익스펙토 페트로눔

wooil의 이미지

Trusted Debian에서도 stack protector 패치를 사용한다는군요(http://www.trusteddebian.org/changelog.html).