오늘은 보안에 관련된 주제로 Security Hole에 대해서 알아보자.
먼저 Security Hole이란, 우리 나라말로 안전취약점 또는 보안허점 이라고 하는데
네이버 지식 백과 사전에 따르면 시스템에 내재된 보안상의 허점,
프로그램 설계상의 실수로 인해 소프트웨어에 생긴 결함 중 안전상의 약점이 되는 모든 것이라고 정의한다.
(사실 Security Hole은 컴퓨터 관련 언어로서만 사용되는 것이 아니라, 인간이나 조직의 안전(Security)이 위기 속으로
침몰될 수 있는 상황/ 경우/지역 등으로 정의되어 사용되기도 한다.)
특히 Security Hole 공격은 인터넷 등에서 실행 불가능한 조작이 실제로 일어날 수 있어 심각한 피해를
발생한다. Security Hole 공격의 하나로 버퍼 오버플로 공격이 있는데,
버퍼 오버플로에 대해 간략히 알아보면 스택에 확보되는 함수의 리턴 주소를 변경해 임의의 코드를
실행시키도록 하는 방법이다.
버퍼 오버플로에 대한 자세한 내용은 추후 포스팅하기로 한다.
이어서 Security Hole 공격에 대해 알아보면, 구체적인 피해 사례로는
1. 본래의 접속 순서를 거치지 않고 접속을 허용해서 순식간에 월드 와이드 웹 서버상의 하이퍼텍스트 생성 언어(HTML) 파일이 변경되는 경우
2. 웹 프라우저의 버그에 의해 어떤 홈페이지에 접속한 사람의 하드 디스크 내용이 전부 소거되는 경우
3. 접속된 사람의 개인 정보가 노출되는 경우
등이 있는데, 이러한 문제점들은 이용자나 기업의 입장에서 막심한 피해를 불러 올 수 있기 때문에
소프트웨어 관련 기업에서는 이러한 Security Hole를 빠르게 발견하고 이를 보안하는 대책을 세워야한다.
우리가 아는 기업의 제품 중에서 Security Hole이 발견된 사례는 어떤 것이 있을까?
보안 관련 연구원들이 iPhone에 Security Hole이 있다는 것을 밝혀냈는데,
이에 따르면 당시 해킹은 거의 보이지 않을 정도의 크기의 SMS를 집중적으로 송신하여 메일을 송신하거나
주소록의 연락처로 연락하는 등, iPhone의 모든 기능을 제어할 수 있었다.
또한 다시 다수의 iPhone을 해킹하기 위해 더 큰양의 텍스트 메시지를 송신하는 특징이 있었다.
이에 대한 내용은 2009년 7월 30일자 기사로 현재로서는 모두 보완됐을 내용이지만 Security Hole에 대한
예시로 이야기 한 것이다.
이처럼 Security Hole은 소프트웨어 설계에 있어서 가장 중요한 부분이라고 생각한다.
멋지고 편리한 기능들이 탑처럼 쌓여 있어도 하나의 Security Hole은 그 탑을 무너뜨릴 수 있다고 생각한다.
따라서 프로그램을 설계할 때에 내가 설계한 부분 중 Security Hole은 존재하지 않는지
검토를 꼭 해봐야 할 듯 하다!!
참고
네이버 지식 백과 사전 - Security Hole
http://terms.naver.com/entry.nhn?cid=925&docId=852379&mobile&categoryId=925
http://terms.naver.com/entry.nhn?cid=2959&docId=836526&mobile&categoryId=2959
News - iPhone Security Hole 문제
http://news.livedoor.com/article/detail/4274524/
News 번역 - ZonZon's Blog
http://zonzon.kr/tc/entry/iPhone-%EC%8B%9C%ED%81%90%EB%A6%AC%ED%8B%B0-%ED%99%80-%EB%B0%9C%EA%B2%AC