시스템 해킹

 1576, 1/79 회원가입  로그인  
   kumi123
   오버플로우나 포맷스트링을 아예 차단하지 않는 이유가 뭔가요?

http://www.hackerschool.org/HS_Boards/zboard.php?AllArticle=true&no=1653 [복사]


버퍼오버플로우나 포맷스트링은 아직까지 막히지 않았는데..

제작자 입장에서는 gets() 같은 함수는 아예 없애버리고

포맷스트링 printf(buffer) 같은 것은 아예 쓰지 못하게 막아버리면 될텐데..

왜 그렇게 안하나요 ? ㅡㅡ

  Hit : 3729     Date : 2013/02/20 03:34



    
key 일반적으로 알려진 잠재적으로 취약한 함수들을 사용한다고 해서 반드시 취약점이 발생하는 것은 아닙니다.
이 때문에 해당 함수들을 막지는 않고, 아주 오래된 컴파일러가 아닌 이상, 컴파일을 할 때 취약한 함수들이 사용되었다면 경고를 해줍니다.
또한 취약한 함수를 safe 함수로 자동으로 변경시켜서 컴파일을 해주는 내장된 기능을 사용할 수 있습니다.
컴파일러는 본연의 목적이 컴파일이기 때문에 컴파일단의 추가적인 보안은 컴파일러의 플러그인으로 보완하시면 됩니다.

그러나 모든 개발자가 보안을 고려한 코딩을 하는 것이 아니며, 인간은 실수없이 사는것이 불가능하기 때문에 취약점이 발생하는 것입니다.
2013/02/20  
dwdwzzz 호환성문제도 있을거같네요.
이미 만들어진 프로그램중에 특정 취약한함수를 사용한 라이브러리가있다고해서
프로그램을 사용하지 못한다거나하면 낭비가 심할테니까요..
2013/02/25