[ 정규표현식 ]

  • 패턴을 추출하거나 특정한 형식을 골라내기 위해서 정규표현식을 사용
  • PCRE (Perl Compatible Regular Expression, 펄 호환 정규 표현)
  • 각 언어 또는 스크립트에 따라서 약간씩 다름

 

[ 실습 ]

  • gnuboard 설치 후 웹 방화벽 설치시 잘 작동하는지 확인
  • sql 구문을 넣었을 때 Fobidden으로 방화벽이 잘 작동하는 것을 확인할 수 있음

방화벽 설치 후 Forbidden으로 공격이 차단됨을 확인할 수 있음

 

참고) Gnuboard5 설치 방법 : https://ffoorreeuunn.tistory.com/289

 

[ Gnuboard ] Ubuntu 20.04 에서 그누보드 설치하기 (근데 망했어요)

우선 APM 부터 설치하도록 하겠습니다. 1. apache 설치하기 sudo apt install apache2 2. mysql 설치하기 sudo apt install mysql 3. php 설치하기 sudo apt install php libapache2-mod-php php-mysql 4. gnuboar..

ffoorreeuunn.tistory.com

참고) Modsecurity 설치 방법 : https://jimnong.tistory.com/749

 

[우분투 18.04 데스크톱] LAMP : 아파치(Apache)에 ModSecurity 설치 과정 정리

ModSecurity는 php인젝션 및 패턴 탐지용 아파치 모듈입니다. 아파치에서 php를 쓴다면 필수적으로 설치해야 하는 보안 모듈이라고 생각합니다. http://modsecurity.org/documentation.html 이 포스팅은 아파치 .

jimnong.tistory.com

 

 

** 본 실습은 모두 가상 환경 / 테스트 환경에서 이루어졌으며, 실제 서버에서 실행하시면 안됩니다. 본 블로그는 실습에 대한 어떠한 책임도 지지 않습니다 **

'보안 위협 탐지' 카테고리의 다른 글

CheckPoint  (0) 2022.05.13
방화벽  (0) 2022.05.12

Smart View Tracker - 로그 관리

 

[ 벽돌 ]

  • packer filtering에 의해 차단된 것

 

[ Smart Defense 메뉴 ]

  • Network Intelligence: 초당 개수를 제한하는 방식
  • Application Intelligence: 패턴 매칭 기법 사용
  • Packet Filtering의 한계를 보완하기 위한 방법을 사용하고 잇음

 

[ Smart Defence에서 차단 이유 ]

  • 기본적으로 패킷의 개수 등을 보고 허용 혹은 거부 결정
  • sequence validator → 일련번호에 문제
  • tcp header corrupt → brute force 등 문제
  • echo request too long → 요청이 너무 긻
  • Cross site script → script 태그가 발견됨

 

[ Teardrop (눈물) ]

  • Tear drop: 찢어서 버린다는 의미 → 재조립 할 수 없음
  • 패킷을 잘게 나누어서 보내면서 순서번호(Offset 값)를 조작 → 재조립 불가

 

[ IP and ICMP ]

  • Max Ping size - ping 크기 제한
  • IP Fragment - 재조립 안되는 IP Fragment 몇개까지 허용?

 

[ TCP ]

  • SYN Defender = TCP incercept (CISCO)Server 앞에서 방화벽이 SYN을 받았을 때, 대신 ACK/SYN로 응답
  • ACK가 오면 (정상적인 3-way Handshaking으로 판단하고 Server에게 전달)
  • ACK가 오지 않으면 SYN Flooding 또는 Port Scanning으로 의심
  • Sequence Verifier - 순서 번호가 맞는지 확인하는 기능

※ 기능을 많이 켜 놓으면 검사할게 많아지기 때문에 네트워크 속도는 느려짐

 

[ Application Intelligence ]

  • 패턴 매치와 유사
  • General HTTP Worm Catcherx
  • Cross Site Scripting
  • ex) Wiki → 게시판 스크립트를 업로드 하는 경우 많음
  • html 태그 사용하지 않음
  • [ ] 태그 사용

 

[ Ruleset의 현실 ]

  • 일반적으로 제조사들이 약 150라인(내외) 추천 → 성능 고려
  • 실제로 회사는 대체로 약 450라인 정도 사용 → 느려짐 (중복된 라인 등이 많이 있을 것임)

 

[ 침입탐지 시스템(IDS) ]

  • 호스트 기반 침입탐지 시스템(HIDS) - 주요 컴퓨터에 설치
  • 네트워크 기반 침입탐지 시스템(NIDS) - 네트워크 중간에 설치, 독립된 시스템

1) 오용탐지(Misuse)

  • 공격 또는 악성코드의 패턴을 모아놓은 DB를 Signature DB라고 함(서명기반, Signature Base)
  • ex) ‘ or 1=1 #
  • 패킷이 들어오면 데이터 부분과 패턴을 비교 (Pattern Matching)
  • 패턴이 일치하면 관리자에게 Alarm을 보냄
  • 오탐이 거의 없음 (오탐: 공격이 아닌데 공격으로 간주하는 것), 미탐(공격인데 탐지못한 것)은 있음
  • 패턴을 많이 모아놓았기 때문에 이것을 지식기반(Knowledge Base)라고 함

 

2) 이상탐지(Anomaly Detection)

  • 정상적인 트래픽을 파악하기 위해서 약 2주간의 트래픽을 모아서 기준점 만듦 → 통계 기법을 활용(Statistical Based)
  • 급격한 변화를 일으키거나 확률이 낮은 일이 발생하면 침입탐지를 알림
  • → 요즘에는 회사에서 이벤트 안하고 클라우드에서 진행
  • 기준점에서 많이 벗어나면(=임계치 초과) 이상하다고 탐지 → 평소와 다른 트래픽 → 관리자에게 Alarm
  • 미탐은 거의 없지만 오탐이 많음 → 관리자들이 Alarm을 무시하게 됨(양치기 효과)
  • 최근의 트래픽 기준점에 반영 → 신경망기법
  • 새로운 트래픽 스스로 학습하는 방법 도입 → Machine Learning (오탐 줄이는 것이 목적)
  • 이상 행위를 판단하기 때문에 행위 기반(Behavior)이라고도 함

 

[ Snort 패턴 보는 방법 ]

  • msg : “ “ → 관리자의 Alert 창에 보여지는 내용
  • flow: → 방향 (어느 쪽으로 가는지)
  • $출발지_NET 포트 → $목적지_NET 포트 (트로이안은 내부에서 외부로 = 밖에서 안 뿐만 아니라 안에서 밖으로 나가는 것도 탐지)
  • content : “ “ → 패턴 (공격 패턴 또는 악성코드 패턴)
  • classtype: → 악성 행위의 분류
  • sid: → 패턴의 고유 번호
  • reference: 공식 취약점 번호. 취약점 분석 도구의 고유 번호, URL 등을 알려줌 → 어떤 공격인지 상세한 정보를 확인할 수 있음
  • rev: 해당 패턴이 몇번째 번호인지 알려줌

 

[ VNC 탐지 패턴 사례 ]

  • VNC 탐지 패턴 사례
  • alert tcp $EXTERNAL_NET any -> $HOME_NET any ( msg:"APP-DETECT VNC server response"; flow:established; content:"RFB 0",depth 5; content:".0",depth 2,offset 7; metadata:ruleset community; classtype:misc-activity; sid:560; rev:9; )

 

  • 웹취약점 분석도구(Acunetix) 패턴 사례
  • alert tcp $EXTERNAL_NET any -> $HOME_NET $HTTP_PORTS ( msg:"APP-DETECT Acunetix web vulnerability scan attempt"; flow:to_server,established; flowbits:set,acunetix-scan; http_header; content:"Acunetix-",fast_pattern,nocase; metadata:policy max-detect-ips drop,ruleset community; service:http; reference:url,www.acunetix.com; classtype:web-application-attack; sid:25358; rev:5; )

 

 

  • Hex Code 패턴 사례
  • alert tcp $EXTERNAL_NET any -> $HOME_NET 749 ( msg:"INDICATOR-SHELLCODE kadmind buffer overflow attempt"; flow:to_server,established; content:"|00 C0 05 08 00 C0 05 08 00 C0 05 08 00 C0 05 08|",fast_pattern,nocase; metadata:ruleset community; reference:bugtraq,5731; reference:bugtraq,6024; reference:cve,2002-1226; reference:cve,2002-1235; reference:nessus,15015; reference:url,www.kb.cert.org/vuls/id/875073; classtype:shellcode-detect; sid:1894; rev:14; )
  • Trojan 패턴 (방향이 반대방향 : Reverse Connection)
  • alert tcp $HOME_NET any -> $EXTERNAL_NET $HTTP_PORTS ( msg:"DELETED MALWARE-CNC Win.Trojan.Crysis variant outbound connection"; flow:to_server,established; http_header; content:"|0D 0A|Content-Length|3A 20|88|0D 0A|",fast_pattern,nocase; http_client_body; content:"+",depth 1,offset 71; content:"+",within 1,distance 3; metadata:ruleset community; classtype:trojan-activity; sid:26481; rev:4; )

 

[ Anti-Virus의 포털 사이트 ]

  • virustotal.com
  • 악성코드 여부 확인 가능
  • Search → hash 값 넣으면 악성코드인지 확인해줌

 

'보안 위협 탐지' 카테고리의 다른 글

GnuBoard  (0) 2022.05.30
방화벽  (0) 2022.05.12

[ 보호 ]

  • 내부 정보가 안에서 밖으로 나가는 것을 막음

 

[ 보안 ]

  • 밖에서 안으로 들어오는 것 막음

 

[ 용어 ]

  • 침입 차단 시스템(Intrusion Blocking System) : (인터넷) 방화벽
  • 침입 탐지 시스템(Intrusion Detection System) : IDS
  • 침입 방지 시스템(Intrusion Prevention System) : IPS = IDS + FW + 기타기능
  • 통합 위협 관리(Unified Threat Management) : IPS + Virus 탐지
  • 각 회사마다 약간씩 이름을 다르게 부름 (차별화를 위한 마케팅 방식)
  • 인트라넷 = 내부망

 

[ 라우터(Router) ]

  • 서로 다른 네트워크를 연결하는 장치 = 공유기도 라우터의 일종임
  • ex) 이더넷과 Wi-fi, 이더넷과 PPP를 연결, 이더넷과 HDLC 연결 등
  • LAN과 WAN을 연결
  • LAN 종류: Ethernet(Xerox), Token Ring, FDDI, Wi-Fi
  • WAN 종류: PPP, HDLC, ATM, X.25 등
  • IP 주소 대역이 다른 네트워크 연결(L3) → Routing Table에서 관리
  • Router에 ACL(Access Control List)를 설치하면 Screen Router라고 함
  • ACL(액클, 접근 통제 목록): 패킷이 지나가는 것을 허용 또는 거부 (Permit or Deny)
  • ACL에는 허용 / 거부할 IP주소 등이 적혀 있음(살생부)

 

[ Bastion ]

  • 성벽 중간에 크고 높고 앞으로 돌출되어 있는 시설
  • 성벽을 공략하기 전에 Bastion을 먼저 무력화 시켜야 함
  • 네트워크에서 모든 트래픽이 지나가도록 설정되어 있는 시스템

 

[ 스크린 라우터(Screen Router) ]

  • 패킷 헤더 내용(ip, port, TTL)을 필터링 할 수 있는 라우터,
  • OSI 3 또는 4계층에서 동작

 

[ 베스천 호스트(Bestion Host) ]

  • 내부와 외부 네트워크 사이에서 일종의 게이트웨이 역할
  • FW에서 가장 중요한 역할
  • proxy 많이 사용
  • 구매시 속도를 고려함

 

[ 1세대 방화벽 - 패킷 필터링(Packet filtering) ]

  • IP헤더(IP 주소), TCP/UDP헤더(Port 번호)를 보고 허용, 거부 결정
  • 헤더만 보기 때문에 속도 매우 빠름
  • IP Spoofing(출발지 주소를 속임)에 취약 → DoS/DDoS 공격에 취약

 

[ 2세대 방화벽 - Application Level(Proxy - 중계) Firewall ]

  • 7계층 헤더를 보고 허용, 거부 결정
  • 특정 프로토콜의 동작(Upload 차단, 다운로드 허용)을 보고 통제 가능
  • 서비스마다 별도의 데몬(Daemon)이 존재 → 데몬이 많아지고 설정 복잡
  • 7계층까지 갔다와야하고 데몬도 많기 때문에 매우 느림 = 잘 안팔림
  • ex) MS-ISA (Proxy Firewall)
  • 세부 설정(프로토콜마다 다른 설정)이 가능하다는 장점

 

참고) Circuit Gateway Firewall

  • 하나의 데몬이 모든 서비스 통제 (허용, 거부)
  • 덜 복잡하고 덜 느림

 

[ 3세대 방화벽 - Stateful Packet Inspection (SPI) : 상태 기반 방화벽 ]

  • State Table(상태 테이블)에 트래픽의 정보를 저장하고 관리하는 방식: 출IP, 목IP, 출Port, 목Port, 프로토콜, 방향 등등
  • 3, 4 계층을 위주로 판단, 트래픽 상황을 보고 판단 → 안전 + 빠름 (잘 팔림) : Check Point
  • cf) HW는 Nokia에서 만들고, SW는 CheckPoint를 사용해서 Appliance(일체형) 형태로 판매
  • 내부망에서 요청한 트래픽을 기록하기 때문에 외부에서 들어오는 응답 트래픽은 허용(네트워크의 정황(context)을 고려)
  • Stateful: 네트워크의 흐름을 고려해서 처리한다는 의미

 

[ 4세대 방화벽 - Dynamic Packer Filter ]

  • 능동적으로 차단하는 기능이 있는 방화벽
  • 요청 개수가 임계값을 초과하는 경우 → 공격으로 간주 → 스스로 차단
  • 2, 3세대 조합해서 만든 방화벽

 

[ 5세대 방화벽 - Kernel Proxy, Secure OS 개념 도입 ]

  • 최근에는 HW 일체형 방화벽(Appliance) → 이미 설정이 되어있기 때문에 선을 연결하기만 하면 됨
  • 방화벽 배치 방법 - Screened Host
  • 모든 트래픽은 Bation Host(Proxy Server)를 들렀다가 가야 함
  • 웹 브라우저에서 Proxy 주소를 Bation Host로 설정하면 됨 (안하면 인터넷 연결이 안됨)
  • 외부에서 Bastion Host 외에는 보이지 않기 때문에 가려진 호스트(Screened Host)라고 함
  • Screened Host - Bastioon host 뒤에 있는 호스트는 보이지 않기 때문에 screented host라고 부름
  • 방화벽 = packet filtering router + bastion host

 

[ 방화벽 배치 방법 - Dual Home ]

  • 외부 내부 인터페이스가 다르게 되어있는 것
  • 외부망을 연결하는 포트와 내부망을 연결하는 포트가 따로 분리되어 있음 (물리적인 분리)
  • 트래픽을 내부망과 외부망으로, 서로 다른 네트워크로 구성할 수 있음(내부망은 사설 IP, 외부망은 공인 IP → NAT 설정해야 인터넷 가능)
  • 방화벽이 문제가 생기면 네트워크를 분리된 상태가 되므로 상당히 안전함

 

[ 방화벽 배치 방법 - Screened Subnet ]

  • 밖에서는 DMZ까지만 접근 가능, 따라서 네트워크 제한 가능
  • 외부망(인터넷)과 내부망 사이에 DMZ 구간을 두어서 네트워크를 분리하는 방식
  • 외부망에서는 DMZ까지만 접근이 가능, 내부망은 접근할 수 없도록 설정
  • 내부망에서는 DMZ까지만 접근이 가능, 외부망으로는 나갈 수 없음
  • DMZ - 완충지대 역할
  • DMZ - 외부에서 접근이 많은 로그인 서버, 웹서버, 메일 서버, DNS 등을 배치
  • DB 서버는 내부망에 배치 → 뱅킹 서버에서는 DB 서버에 접근이 가능하지만 외부망에서는 DB 서버에 접근 불가능 (은행 네트워크 등에서 많이 쓰임)

 

[ CheckPoint.iso ]

  • Module: 방화벽 본체
  • Smart Console: 방화벽을 관리하는 컴퓨터

 

[ 방화벽 규칙 작성 방법 (Rule Set) ]

  • 맨 마지막 줄에는 모두 거부를 배치 (Deny All Philosophy: 모두 거부 원칙)
  • 최소한 하나의 허용이 있어야 함
  • 큼 조건은 아래로 배치, 작은 조건은 위에 배치 → 위에서부터 내려가면서 적용되기 때문에 큰 조건이 위에 있으면 아래는 무력화 됨
  • 자주 참조될수록 위쪽에 배치 (효율성 측면)

 

[ 방화벽 적용 방법 ]

  • 위에서 내려가면서 적용
  • 해당 규칙을 찾으면 그 조건을 적용
  • 해당 규칙을 찾지 못하면 마지막 줄에서

다른 방화벽이 CheckPoint를 보고 만들기 때문에(다른 것도 비슷한 화면) 실습에 사용

'보안 위협 탐지' 카테고리의 다른 글

GnuBoard  (0) 2022.05.30
CheckPoint  (0) 2022.05.13

+ Recent posts