카테고리 없음

소프트웨어 취약성

김가네블로그 2020. 6. 8. 12:15

수년간 컴퓨터 소프트웨어에서 보안 문제를 발생시키는 수많은 버그들이 발견됐다. 해커들은 미세한 프로그래밍 오류나 상태 조건을 파헤쳐 리눅스를 원하는 대로 조작할 수 있었다. 버퍼 오버플로우는 흔한 프로그래밍 오류로 의미가 복잡하다. 개발자들은 특정 정보를 저장하기 위해 버퍼라는 미리 정해진 양만큼 임시 메모리를 할당하는 경우가 있다. 저장 공간에 맞춰 저장할 자료 크기를 세심히 확인하도록 코드를 작성하지 않으면 할당된 공간에 인접한 메모리를 덮어쓸 위험이 있다. 재주 있는 해커는 잘 조작한 자료를 입력해 프로그램을 오작동하게 할 수 있고, 원하는 코드를 실행할 수도 있다.

 

다행히도 최근 몇 년간 일어난 일부 버퍼 오버플로우 공격으로 인해 프로그래머 그룹이 이 문제에 관심을 보이게 됐다. 버퍼 오버플로우 문제가 여전히 발생하기는 하지만 빨리 발견되고 수정되며 오픈소스 응용 프로그램은 특히 더 그렇다. 자바와 닷넷같은 새로운 시스템에는 자동으로 자료 크기를 확인해 버퍼 오버플로우를 방지하는 장치가 포함됐다. 버퍼 오버플로우는 입력 확인 취약성이라는 소프트웨어 보안 버그에 속한다. 거의 모든 프로그램은 사용자로부터 어떤 형태의 입력을 받는다. 코드가 이런 입력 형식이나 내용이 적당한지 자세히 확인하지 않으면 나쁜 일이 벌어질 수 있다.

 

이런 공격 유형을 관리자가 어떻게 막을 수 있을까? 버그가 확인되고 패치가 나오기전에는 할 수 있는 일이 거의 없다. 관리자가 맡은 과업 중 하나는 이런 패치와 보안 게시판 애용을 반영하는 작업이다. 페도라의 yum이나 데비안 우분투같이 대다수 배포판에는 패치 자동화 프로그램이 있다. 이런 유틸리티를 활용해 소프트웨어 취약성에 대비하자