Network(6)_네트워크 보안
네트워크 보안은 정보 보호의 한 부분(네트워크 보안, 시스템 보안, 어플리케이션 보안)으로 위협으로부터 네트워크를 보호하고 안전하게 유지하는 것을 목표로 합니다. 정보 보호의 목표는 기밀성(Confidentiality), 무결성(Integrity), 가용성(Availability)으로 줄여서 CIA로 표현합니다. CIA는 모든 정보 보안 프로세스의 목표를 정의하는 주요 속성입니다. 추가적으로 정보기술의 적용범위가 확대됨에 따라 책임 추적성, 인증성, 신뢰성의 요구가 추가 되고 있습니다.
보안은 조직이 보호해야할 대상(자산, assets)을 정보 시스템의 손상을 유발시키는 위협(threats)으로 부터 방어하는 것입니다. 주로 공격자들은 취약성(vulnerability)를 통해 공격합니다. 주로 네트워크 보안은 네트워크 프로토콜의 취약성을 이용한 공격으로 부터 보호합니다. 방화벽(Firewall), 침입 탐지시스템(IDS), 침입 차단시스템(IPS)을 설치하여 보호(DPI)합니다.
공격유형
-
변조 : 원래의 데이터를 다른 내용으로 바꾸는 행위로, 데이터를 조작해 정보의 무결성 보장을 위협합니다.
-
가로채기 : 공격자가 전송되고 있는 정보를 몰래 열람, 도청하는 행위(스니핑, 소극적 공격)로 정보의 기밀성 보장을 위협합니다.
-
차단 : 정보의 송수신을 원할하게 유통하지 못하도록 막는 행위를 말합니다.
-
위조 : 마치 다른 송신자로부터 정보가 수신된 것처럼 꾸미는 것으로, 시스템에 불법적으로 접근하여 오류의 정보를 정확한 정보인 것으로 속이는 행위를 말합니다. 대표적으로 스푸핑이 있습니다. ARP, DNS, IP 스푸핑 등이 있습니다. 이러한 스푸핑은 네트워크의 취약점을 공격하는 데에 활용합니다.
프로그램 취약점을 이용한 공격
-
버퍼 오버플로우 : 이 공격은 프로그램이 특정 버퍼(임시 저장 공간)에 데이터를 저장할 때 해당 버퍼의 용량을 초과하여 데이터를 입력하는 상황에서 이루어집니다. 이는 프로그램이 이러한 오버플로우를 적절하게 처리하지 않을 때 발생합니다. 시스템의 보안을 침해하고 권한 상승, 임의 코드 실행 등을 가능하게 합니다. 이러한 공격을 방지하기 위해서는 프로그램이 사용자 입력을 올바르게 검증하고, 버퍼 오버플로우 상황을 처리할 수 있는 적절한 방어 메커니즘을 구현해야 합니다. 이러한 방어 메커니즘으로는 스택 가드와 실행 가능한 메모리 영역의 제한 등이 있습니다.
-
힙 오버플로우 : 버퍼 오버플로우와 비슷한 원리로 작동하지만, 메모리의 힙(Heap) 영역에서 발생하는 보안 취약점을 이용한 공격입니다. 힙은 프로그램의 실행 중에 동적으로 할당되고 해제되는 메모리 영역을 말합니다. 힙 오버플로우는 주로 동적 메모리 할당 함수(예: malloc() 또는 new 등)를 사용하는 프로그램에서 발생할 수 있습니다.
-
ASP, PHP, 스크립트 취약점을 이용한 공격
- ASP 취약점과 공격
-
SQL 삽입(SQL Injection) : ASP 애플리케이션에서 입력 데이터가 충분히 검증되지 않을 경우, 공격자는 악의적인 SQL 쿼리를 주입하여 데이터베이스를 조작하거나 정보를 빼낼 수 있습니다.
-
크로스사이트 스크립팅(XSS) : ASP 페이지에서 입력 데이터를 적절하게 처리하지 않을 경우, 공격자는 스크립트 코드를 주입하여 다른 사용자의 브라우저에서 실행되도록 할 수 있습니다.
-
- PHP 취약점과 공격
-
파일 업로드 취약점 : 파일 업로드 기능을 통해 공격자는 악성 스크립트나 실행 파일을 업로드하여 시스템에 악의적인 동작을 수행하게 할 수 있습니다.
-
쿠키 및 세션 관리 취약점 : 세션 하이재킹이나 세션 픽싱과 같은 공격을 통해 공격자는 세션 정보를 훔쳐서 다른 사용자의 세션을 탈취하거나 조작할 수 있습니다.
-
- 스크립트 언어 취약점과 공격
-
원격 코드 실행(RCE) : 보안 취약점을 이용하여 공격자는 원격에서 코드를 실행할 수 있으며, 시스템을 완전히 제어할 수 있게 됩니다.
-
파일 포함 취약점 : 악의적인 파일 경로를 이용하여 파일을 포함시키는 공격으로, 중요한 시스템 파일을 노출하거나 실행할 수 있습니다.
-
- ASP 취약점과 공격
네트워크 프로토콜 취약점을 이용한 공격
- 자원고갈
- Ping of Death : 패킷을 길게 하여서 보냅니다.
- Syn flooding : TCP 프로토콜을 악용하여 시스템의 리소스를 고갈시키는 공격입니다. 이 공격은 TCP의 “3-way handshake” 프로세스를 이용하는 것을 기반으로 합니다. 반복적인 Syn 패킷(실체가 없는)을 전송하여서 서버에서 Syn received 상태인 Syn-Ack 신호를 보내고 응답을 기다리는 상태에서 블로킹 됩니다.
- Smurf : IP스푸핑 + 다이렉트 브로드캐스트 + ICMP 리다이렉트를 활용한 공격으로, 이 공격은 대규모 네트워크에 대한 공격으로서, 네트워크 리소스 고갈 공격의 한 유형입니다.
- 취약점
- Tear Drop : 패킷이 다시 재조합 과정에서의 취약점을 노린 공격으로, boink(처음), bonk(중간), tear drop(마지막)방식으로 공격합니다.
- Land : Syn flooding 공격과 마찬가지로 TCP의 3way 프로세스의 취약점을 이용한 공격입니다. Source IP와 Destination IP를 같게 설정하여서 무한한 연결 요청을 생성하여 서비스를 마비시킵니다.
- DDoS
다수의 컴퓨터 또는 장치를 사용하여 하나의 대상 시스템을 동시에 공격하여 서비스의 가용성을 저해하는 공격입니다. 이러한 공격은 네트워크 리소스나 시스템 자원을 고갈시켜 정상적인 사용자들이 시스템에 접근하지 못하도록 만듭니다. DDoS 공격은 여러 가지 형태로 수행될 수 있으며, 감염된 좀비 봇넷을 통해 대상 시스템에 대량의 트래픽을 집중시켜서 시스템을 마비시키는 것이 목표입니다. 이러한 공격은 정상적인 사용자들의 서비스 이용을 방해하고, 조직의 업무나 온라인 비즈니스에 심각한 영향을 줄 수 있습니다.
Firewall, IDS, IPS
방화벽(Firewall), IDS(Intrusion Detection System), IPS(Intrusion Prevention System)는 네트워크와 시스템 보안을 강화하기 위한 도구들로서, 다양한 형태의 공격을 탐지하고 차단하는 역할을 수행합니다.
-
Firewall : 방화벽은 네트워크와 시스템을 보호하기 위한 기본적인 보안 장치입니다. 주로 네트워크의 출입구에 설치되며, 네트워크 트래픽을 감시하고 허용된 트래픽만 통과시키는 역할을 수행합니다. 방화벽은 패킷 필터링, 상태 기반 패킷 검사, 프록시 서버 등의 방식으로 동작할 수 있습니다.
-
IDS : IDS는 네트워크나 시스템 내에서 비정상적인 활동이나 침입 시도를 탐지하는 시스템입니다. 주요 목적은 공격이나 침입을 감지하고 이에 대한 경고를 제공하는 것입니다. 주로 방화벽과 함께 사용됩니다. 시그니처 기반 탐지(Signature-based Detection)는 이미 알려진 공격 패턴이나 시그니처를 기반으로 공격을 탐지합니다. 미리 정의된 패턴을 매칭하여 악성 행위를 식별합니다. 행위 기반 탐지(Behavior-based Detection)은 시스템의 정상적인 동작 패턴을 학습하고, 이와 다른 동작을 감지하여 비정상적인 활동을 식별합니다. 히그리스틱 기반 탐지(Heuristic-based Detection)은 알려진 패턴이나 시그니처가 아닌 특정한 행위 패턴을 식별하여 공격을 탐지합니다.
-
IPS : IPS는 IDS의 기능을 확장하여, 공격을 감지하는 것뿐만 아니라 탐지된 공격을 차단하거나 방어하는 기능도 수행합니다. 독립적으로 사용됩니다. IDS와 비슷하게 시그니처 기반, 행위 기반, 히그리스틱 기반 방식을 사용하여 공격을 탐지하고 차단합니다.