버퍼 오버플로 공격 원리는?
버퍼 오버플로란 무엇입니까?
버퍼 오버플로는 컴퓨터 프로그램이 버퍼로 채워진 데이터 비트 수가 버퍼 자체의 용량을 초과하는 경우입니다. 오버플로 된 데이터는 합법적 인 데이터를 덮어 씁니다. 프로그램에서 데이터 길이를 검사하고 버퍼 길이를 초과하는 문자열을 입력할 수 없는 것이 좋습니다. 그러나 대부분의 프로그램은 데이터 길이가 항상 할당된 스토리지 공간과 일치한다고 가정하므로 버퍼 오버플로에 숨겨진 위험이 있습니다. * 운영 체제에서 사용하는 버퍼를 스택이라고도 하며, 각 * 프로세스 간에 명령이 일시적으로 스택에 저장되고 스택에 버퍼 오버플로가 발생합니다. < P > 긴 데이터가 버퍼에 들어가면 초과 부분은 다른 버퍼에 기록되고, 다른 버퍼에는 데이터, 다음 명령에 대한 포인터 또는 다른 프로그램의 출력이 저장됩니다. 이러한 내용은 덮어쓰거나 삭제됩니다. 데이터의 작은 부분이나 일련의 명령어가 넘칠 경우 프로그램이나 * 시스템이 충돌할 수 있습니다.
오버플로의 근본 원인은 프로그래밍
버퍼 오버플로가 프로그래밍 오류로 인해 발생한다는 것입니다. 버퍼가 가득 찼고 프로그램이 버퍼 경계를 확인하지 않았거나 데이터 수신을 중지하지 않은 경우 버퍼 오버플로가 발생합니다. 버퍼 경계 검사는 수익성이 없는 관리 지출로 간주되고, 컴퓨터 자원이 부족하거나 메모리가 부족한 것은 프로그래머가 버퍼 경계 검사문을 작성하지 않는 이유이지만, 무어의 법칙은 이미 이런 이유로 존재의 기초를 잃게 했다. 그러나 대부분의 사용자는 여전히 주요 응용 프로그램에서 1 년 또는 2 년 전의 프로그램 코드를 실행한다. < P > 버퍼 오버플로가 범람하는 것은 오픈 소스 프로그램의 본질에 의해 결정된다. 일부 프로그래밍 언어는 버퍼 오버플로에 면역성이 있습니다. 예를 들어, Perl 은 바이트 배열의 크기를 자동으로 조정하고 Ada95 는 버퍼 오버플로를 검사하고 차단할 수 있습니다. 하지만 널리 사용되는 C 언어는 검출 메커니즘을 확립하지 못했다. 표준 C 언어에는 문자열을 복사하고 추가하는 많은 함수가 있어 표준 C 언어에서 경계 검사를 수행하기가 어렵습니다. C++는 약간 좋지만 버퍼 오버플로는 여전히 존재합니다. 일반적으로 다른 데이터 영역을 덮어쓰는 데이터는 의미가 없으며 최대 응용 프로그램 오류를 일으킬 수 있습니다. 그러나 입력 된 데이터가 "해커" 또는 바이러스에 의해 신중하게 설계된 경우 버퍼를 덮는 데이터는 정확히 "해커" 또는 바이러스의 침입 프로그램 코드입니다. 여분의 바이트가 컴파일되면 "해커" 또는 바이러스가 원하는대로 할 수 있습니다. < P > 넘침으로' 해커' 바이러스가 횡행하게 된 < P > 버퍼 넘침은 바이러스 저자와 트로이 목마 저자가 선호하는 공격 방법이다. 공격자 또는 바이러스는 시스템에서 버퍼 오버플로가 발생하기 쉬운 부분을 발견하고, 특수 프로그램을 실행하고, 우선 순위를 부여하고, 컴퓨터에 파일 손상, 데이터 변경, 민감한 정보 유출, 뒷문 액세스 포인트 생성, 다른 컴퓨터 감염 또는 공격을 지시합니다.
2 년 7 월, Microsoft Outlook 및 Outlook Express 는 공격자가 메시지를 보내는 것만으로 대상 호스트의 보안을 위태롭게 할 수 있는 취약점이 발견되었습니다. 메시지 헤드 프로그램이 실행되면 버퍼 오버플로가 발생하고 악성 코드가 트리거됩니다. 21 년 8 월,' 레드 코드' 는 마이크로소프트 IS 허점을 이용해 버퍼 오버플로우를 발생시켜 기업 네트워크를 공격하는' 주범' 이 되었다. 23 년 1 월 Slammer 웜은 Microsoft SQL 취약점을 이용하여 버퍼 오버플로를 발생시켜 글로벌 인터넷에 영향을 미쳤습니다. 최근 몇 일 동안' 충격파' 라는 웜 바이러스가 마이크로소프트 RPC 원격 호출의 버퍼 취약점을 이용하여 Windows 2/XP, Windows Server 23 을 공격하여 글로벌 네트워크 시스템에 파급했습니다. CERT 보안팀에 따르면 * 운영 시스템의 보안 취약점 중 5% 이상이 메모리 오버플로우로 인해 발생하며, 그 중 대부분은 메모리 오버플로우와 관련된 보안 취약점이 점점 더 많은 웜 바이러스에 사용되고 있습니다. < P > 버퍼 오버플로는 현재' 해커' 형 바이러스가 횡행하는 주요 원인이다. 빨간색 코드에서 슬럼머, 일전에 폭발하는 충격파까지 버퍼 오버플로우 허점을 이용하는 전형이다. 버퍼 오버플로는 버퍼 오버플로를 이용한 공격을 방지하는 프로그래밍 문제입니다. 프로그램 개발자는 프로그램을 개발할 때 오버플로를 주의 깊게 점검하고 데이터 오버플로 버퍼를 허용하지 않습니다. 또한 사용자는 * 시스템 및 어플리케이션 공급업체의 웹 사이트에 자주 로그인하여 게시된 시스템 취약점을 추적하고 패치를 즉시 다운로드하여 시스템 취약점을 보완해야 합니다.