C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
분야별 포럼
C++빌더
델파이
파이어몽키
C/C++
프리파스칼
파이어버드
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

자유게시판
세상 살아가는 이야기들을 나누는 사랑방입니다.
[15604] 25 가지의 가장 위험한 플밍 에러들
이경문 [gilgil] 3736 읽음    2009-01-14 16:21
소프트웨어상의 취약점을 야기할 수 있는 위험한 프로그래밍에 대해 언급을 하고 이를 어떻게 대처해야 하는지에 대한 개괄적인 내용을 다루고 있는 문서입니다.

내부적으로 시스템 보안을 튼튼히 했다고 해서 갑업체가 "어이구 잘 하셨어요" 엉덩이 톡톡해 주지는 않겠지만, 개발 실력 업글을 위해서는 가끔 이런 문서도 한두번쯤은 봐 주는 것도 괜찮을거 같다는 생각이 든네요. ^^

http://cwe.mitre.org/top25
김태선 [cppbuilder]   2009-01-15 23:17 X
아직 제대로 읽어 보지는 않았는데, 재미있는 자료를 발견하신 것 같네요.

오랜 시간 프로그래밍을 하다 보니, 위험성 있다는 에러 코드에 무감각해진 것 같습니다.
아주 금방 문제를 바로 잡기 때문에.
실제로 플밍에 있어 고민은, 특별한 알고리즘 구성이나, 특별한 기능을 넣을 때가
시간의 대부분을 잡아 먹는 것 같습니다.
이경문 [gilgil]   2009-01-16 00:40 X
1. 소스(혹은 binary module)에서 strcpy같은 함수를 사용하는 곳을 찾아냄
2. 그거 역추적해서 buffer over flow를 시키는 방법 알아 냄.
3. return address를 조작하여 attacker의  malicious code를 실행시킴.

해커의 전형적인 buffer over flow 방식인데 주위에 이것만 전문적으로 하는 사람들이 있다 보니, ㅎㅎㅎ
개발자들도 이런데 관심을 가지고 플밍을 하면 좋을 거 같습니다. ^^
김태선 [cppbuilder]   2009-01-16 09:43 X
그건 아주 유명한 해킹 방법 이죠.
문제는 사용자의 input만 적절하게 통제하면 되닌까.
보통은 sql injection 처럼 어느 부분이 취약하다는 것은 개발하다 보면 거의 눈에 띄입니다.
하지만 플머가 모든 경우를 다 인식하지 못하는 경우도 많기 때문에
말씀하신 해킹의도에 대해 코드를 살펴 보는 일이 중요한 것 같습니다.
VC에서는 기존의 strcpy처럼 해킹 가능성 있는 코드를 deprecate 하다고 해서
..._s 식으로 대체된 함수를 이용할 것을 권하고 있죠.
빌더에서는 지원하지 않는 내용이지만, 의식있는 플머라면 보통 해킹이 의심되는 곳은
strcpy 등의 동작을 하기 전에 미리 길이 체크부터 하기 때문에 굳이 지원 안해도 별 문제는 없어 보입니다.
.._s 함수를 쓰는 것보다 미리 길이 체크하는 것이 더 견고한 코드임은 두말할 필요가 없고요.

원격 서비스 프로그램을 만든다면 말씀하신 해킹 가능성에 관심이 없으면 곤란하겠죠. ㅎㅎ
이경문 [gilgil]   2009-01-16 11:59 X
아, 또 다른 얘기로 코드상의 보안 위협이 언급되는 많은 부분중에서 대표적인게 바로 ActiveX 입니다.
어떤 ActiveX의 인자(parameter)에 야리꾸리한 값("AAAAAA....."을 넣어 보니 return address가 "0x41414141"이 되더라...
이게 밝혀 지면 관련된 취약점을 간단한 Java Script로 만든 다음에 해당 악성코드를 쫙 뿌리면 걸려 드는 사용자들이 꽤 있습니다.
국내의 경우에도 유명한 ActiveX의 이러한 취약점을 가지고 있어서 이쪽 바닥에서는 홍역을 치룬 적이 많이 있었죠. ^^

+ -

관련 글 리스트
15604 25 가지의 가장 위험한 플밍 에러들 이경문 3736 2009/01/14
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.