ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Check Point - Smart View, Smart Dash Board, IDS, IPS
    Security 2022. 5. 13. 19:42

    Check Point

     

    Check Point - Smart View

     

    Log - Log Queries - Predenfined - All Records : 방화벽에 의해 차단된 상세 내용을 분석합니다.

    벽돌 모양은 방화벽의 패킷 필터링 규칙에 의해 차단됩니다.

     

    Smart Defence : 패킷의 개수 등을 보고 허용 또는 거부를 결정하는 방식

    ex) 1분에 100개의 요청 > 사람이 하는 요청이 아닐 가능성이 높음, Script 등

    Rules : 24번째 Rule에 의해 차단

    Information : Attack Info : TCP header corrupt 헤더 조작으로 SSH를 통해 Brute force, Dictionary 가능성

     

    Attack Info : Echo request too long : 에코 리퀘스트가 너무 길어서 차단

     

    Ataack Info : TCP sequence vaildator : 번호의 순서가 Winodw 번호 범위를 벗어나서 차단

     

    - 5개의 오류 메시지 : Destination Tnreachable, Time Exeeded, Parameter Proble, Redirect (경로 변경), Source Quench (발신지 억제)

    - 4쌍의 질의응답 : Echo Request(8)와 Echo Reply(0) 등 (나머지 3쌍은 잘 쓰이지 않습니다)

    - Echo Request를 Windows에서 보내면 32 Byte, Linux에서 보내면 64 Byte (65 Byte가 넘으면 비정상)

     

    XSS : script tags detected in HTTP request : XSS 스크립트 태그를 발견해서 차단

     

    XSS (Cross Site Scripting)

     

    공격자가 상대방의 브라우저에 스크립트가 실행되도록 해 사용자의 세션을 가로채거나, 웹사이트를 변조하거나, 악의적 콘텐츠를 삽입하거나, 피싱 공격을 진행하는 것을 말합니다. XSS 공격은 스크립트 언어와 취약한 코드를 공격 대상으로 합니다. 

     

    Check Point - Smart Dash Board

    다계층 방어를 구현하여 Packet Filtering의 한계를 보완, 켜 두면 속도가 저하될 우려가 있습니다.

    * 다계층 방어 : Network Interlligence(ex 초당 개수 제한), Application Intelligence(ex 패턴 매칭 기법)를 함께 적용

     

    Smart Defense

    DoS 공격의 빈도나 시간 텀을 설정하여 거부

    아래의 공격 수단들을 사용할 수 있습니다.

     

    Tear Drop

    : 찢어서 버린다는 의미가 되며 재조립을 할 수 없습니다.

    패킷을 잘게 나누어서 보내면서 순서번호(Offset 값)를 조작하여 재조립 불가

    5개의 이벤트가 발생하면 Dos공격으로 알려주겠다고 설정

     

    Ping of Death

    : ICMP Echo Erequset를 -d 65000으로 설정 > 65000bytes (2의 16승으로 제한, 65535이지만, 헤더를 고려, OS에서 허용하는 크기)

     

    Max Ping Size

    : 핑 사이즈를 설정할 수 있습니다.

     

    SYN Attack Configuration

    CISCO에서는 TCP Intercept, Check Porint에서는 SYN Defender라고 합니다. Server앞에서 방화벽이 SYN를 받았을 때

    ACK가 오면, 정상적인 3-Way Handshaking으로 판단하고, ACK가 오지 않으면, SYN Flooding 또는 Port Scanning

     

    Application Intelligence

    General HTTP Worm Catcher

    (cmd\.exe)|(roo\.exe)의 패턴이 포함되어 있다면 차단합니다. \는 Escape .앞에 붙여서 문자로 처리해줍니다.

     

     

     Cross Site Scripting

    ex) WIKI > 게시판 스크립트를 업로드 하는 경우 많습니다.

    - HTML 태그를 사용하지 않음

    - [  ] 태그를 사용

    ex) *[[서울/강북]]

    IDS (Instrusion Detection System, 침입 탐지 시스템)

    : 네트워크에서 사용되는 자원의 무결성, 비밀성, 가용성을 저해하는 비정상적인 사용과 오용, 남용 등의 행위를 가능한 한 실시간으로 탐지하여 관리자에게 경고 메세지를 보내주고 대응하는 시스템을 말합니다.


    - 내, 외부망의 접속점에 위치하여 방화벽의 부족한 부분을 보강하기 위해 사용되는 침입탐지 시스템
    - IDS 도구의 기본 목적은 네트워크 상에서 발생하는 의심스러운 행동을 발견하고 관리자에게 경고음 전달합니다.
    - 시스템의 침해여부를 보기 위해 액세스 로그들을 조사하여 파일을 분석하는 시스템으로 활용됩니다.

     

    IPS(Instrusion Prevention System, 침입 방지 시스템)

    : 다양하고 지능적인 침입기술에 대항해 다양한 방법의 보안기술을 이용하여 침입이 일어나기 전에 실시간으로 침입을 막는 시스템입니다. 침입탐지가 목적인 IDS의 기능을 넘어서 침입을 탐지했을 경우에 대한 대처까지 수행합니다.

     

    데이터 수집

    : IDS는 설치 위치와 목적에 따라 HIDS(Host-Based Intrusion Detection, 호스트 기반 침입탐지 시스템)과 NIDS(Network-Based Intrusion Detection System)으로 나뉩니다.

     

    HIDS

    : 윈도우나 유닉스 등의 운영체제에 부가적으로 설치되어 운용되거나 일반 클라이언트에 설치. 운영체제에 설정된 사용자 계정에 따라 어떤 사용자가 어떤 접근을 시도하고 어떤 작업을 했는지에 대한 기록을 남기고 추적합니다. 네트워크에 대한 침입탐지는 불가능하며 스스로가 공격 대상이 될 때만 침입을 탐지할 수 있습니다.

     

    NIDS

    : 네트워크에서 하나의 독립된 시스템으로 운용 . 감사와 로깅을 할 때 네트워크 자원이 손실되거나 데이터가 변조되지 않습니다. HIDS로는 할 수 없는 네트워크 전반에 대한 감시를 할 수 있으며, 감시 영역이 상대적으로 매우 큽니다.

    - NIDS의 배치 위치는 일반적으로 방화벽의 뒤에 설치

     

    침입 탐지 기법

    오용탐지 (Misuse)

    - 공격 또는 악성코드 패턴을 모아놓은 DB를 Signature DB라고 함 (서명 기반) ex) 'or 1=1 #

    - 패킷이 들어오면 데이터 부분과 패턴들을 비교해봅니다. (Pattern Matching)

    - 패턴이 일치하면 관리자에게 Alarm을 보냅니다.

    - 오탐이 거의 없음 (오탐 : 공격이 아닌데 공격으로 간주하는 것), 미탐(공격인데 탐지 못한 것)은 있습니다.

    - Pattern을 많이 모아놓았기 때문에 이것을 지식기반(Knowledge Base)라고도 합니다.

     

    -문제 예시-

    문제) 다음 중 IDS의 오용탐지로 보기 어려운 것은?

    1) Pattern Matching을 사용한다. (O)

    2) Signature DB를 기반으로 한다. (O)

    3) 통계를 기반으로 한다. (X)

    4) 오탐이 거의 없다. (O)

     

    Anomaly Detection (이상 탐지)

    - 정상적인 트래픽을 파악하기 위해서 약 2주간의 트래픽을 모아서 기준점을 만듭니다. > 통계 기법을 활용(Statistical Based)

    - 기준점에서 많이 벗어나면(=임계치 초과) 이상하다고 탐지하게 됩니다. > 평소와 다른 트래픽 > 관리자에게 Alarm

    - 미탐(공격인데 모르는 것)은 거의 없지만 오탐(공격이 아닌데 공격으로 간주)이 많습니다. > 관리자들이 Alarm을 무시하게 됨(양치기 효과)

    - 최근의 트래픽을 기준점에 반영 > 신경망기법

    - 새로운 트래픽을 스스로 학습하는 방법을 도입 > Machine Learning (오탐을 줄이는 것이 목적)

    - 이상 행위를 판단하기 때문에 행위 기반(Behavior)이라고도 합니다.

     

    침입차단 시스템

    - 침입탐지 시스템 + 방화벽의 조합으로 생각할 수 있습니다.

    - 침입탐지 기능을 수행하는 모듈이 패킷 하나하나를 검사하여 그 패턴을 분석한 뒤, 정상적인 패킷이 아니면 방화벽 기능을 가진 모듈로 이를 차단합니다.

    동작 원리

     

    IDS : 탐지 후 관리자에게 보고

    IPS : 탐지 후 스스로 차단

    ex) Suricata는 IDS 설치를 한 후 설정에서 스스로 차단하는 기능을 활성화하면 IPS로 전환됩니다.

     

    IDS의 Pattern 이해

    - http://snort.org (IDS의 원조?)

    - 오픈소스라서 IDS SW는 무료로 제공하지만, Rule은 지식 재산이므로 판매

    - Community-Rules는 무료로 제공함

    - 다운로드 후 압축을 풀면 snort3-community.rules 파일이 있음 > Wordpad로 열어보세요.

     

    VNC 탐지 사례

    -참고용 자료의 라인이라 앞의 숫자는 신경 쓰지 않으셔도 됩니다.

    색상을 넣은 것 뒤에 설명을 적어두었습니다.

     

    18번 - alert(관리자) tcp $EXTERNAL_NET any -> $HOME_NET any(포트번호 상관 x) ( 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; )

     

    23번 - alert tcp $EXTERNAL_NET any -> $HOME_NET $HTTP_PORTS(80포트)(어디서 어디로 가는지) ( msg:"APP-DETECT Acunetix web vulnerability scan attempt(뜨는 알람 창)"; flow:to_server,established; flowbits:set,acunetix-scan; http_header; content:"(패턴 시작)Acunetix(툴)-",fast_pattern,nocase(대소문자 구분 X); metadata:policy max-detect-ips drop,ruleset community; service:http; reference:url,www.acunetix.com(참조하는 사이트); classtype:web-application-attack; sid:25358(고유 번호); rev:5; )

     

    랜섬웨어 탐지 사례

    362번 - alert tcp $EXTERNAL_NET any -> $HOME_NET $HTTP_PORTS ( msg:"INDICATOR-COMPROMISE Revil Kaseya ransomware log clearing http upload"; flow:to_server,established; file_data; content:"Server.CreateObject"(패턴); content:"KComWExec.execCmd"(패턴),fast_pattern,nocase; metadata:impact_flag red,policy balanced-ips drop,policy connectivity-ips drop,policy max-detect-ips drop,policy security-ips drop,ruleset community; service:http; reference:url,doublepulsar.com/kaseya-supply-chain-attack-delivers-mass-ransomware-event-to-us-companies-76e4ec6ec64b; reference:url,www.huntress.com/blog/rapid-response-kaseya-vsa-mass-msp-ransomware-incident; classtype:web-application-attack; sid:57879; rev:2; )

     

    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; )

     

    alert tcp $HOME_NET any -> $EXTERNAL_NET $HTTP_PORTS ( msg:"APP-DETECT Absolute Software Computrace outbound connection - 209.53.113.223"; flow:to_server,established; http_header; content:"Host|3A| 209.53.113.223|0D 0A|",fast_pattern,nocase; content:"TagId: "; metadata:policy max-detect-ips drop,policy security-ips drop,ruleset community; service:http; reference:url,absolute.com/support/consumer/technology_computrace; reference:url,attack.mitre.org/techniques/T1014; reference:url,www.blackhat.com/docs/us-14/materials/us-14-Kamlyuk-Kamluk-Computrace-Backdoor-Revisited.pdf; reference:url,www.blackhat.com/presentations/bh-usa-09/ORTEGA/BHUSA09-Ortega-DeactivateRootkit-PAPER.pdf; classtype:misc-activity; sid:32845; rev:3; )

     

    출발지 : $HOME_NET any

    목적지 : $EXTERNAL_NET $HTTP_PORTS

    msg : "APP-DETECT Absolute Software Computrace outbound connection - 209.53.113.223"

    flow : to_server,established

    content 패턴 : "Host|3A| 209.53.113.223|0D 0A|" (줄 바꿈), "TagId: "

    classtype : misc-activity

    sid(고유번호) : 32845

     

    EX)

    alert udp $EXTERNAL_NET any > $HOME_NET 177 ( msg:"X11 xdmcp info query"; flow:to_server; content:"|00 01 00 02 00 01 00|",fast_pattern,nocase; metadata:ruleset community; reference:nessus,10891; classtype:attempted-recon; sid:1867; rev:6; )

     

    content가 있으면 msg가 뜹니다.

     

    Pattern 보는 방법

    - $출발지_NET 포트 -> $목적지_NET 포트 (Trojan은 방향이 내부 > 외부)

    - msg:"    " # 관리자의 Alert창에 보여지는 내용

    - flow:                                 # 방향

    - content:"    " > 패턴(공격 패턴 또는 악성코드 패턴)

    - classtype:    > 악성 행위의 분류

    - sid:  #                                                                                                                               #패턴의 고유번호

    - reference : 공식 취약점 번호, 취약점 분석도구의 고유번호, URL 등을 알려줌 #어떤 공격인지 상세한 정보를 확인할 수 있음

     

    실습 패턴을 보고 악성코드 혹은 공격에 대한 패턴을 찾아서 확인해보기

    - 북한 해커들이 유포한 랜섬웨어 Wannacry(2017년)

    alert tcp any any -> $HOME_NET 445 ( msg:"OS-WINDOWS Microsoft Windows SMB remote code execution attempt"; flow:to_server,established; content:"|FF|SMB3|00 00 00 00|",depth 9,offset 4; byte_extract:2,26,TotalDataCount,relative,little; byte_test:2,>,TotalDataCount,20,relative,little; metadata:policy balanced-ips drop,policy connectivity-ips drop,policy max-detect-ips drop,policy security-ips drop,ruleset community; service:netbios-ssn; reference:cve,2017-0144; reference:cve,2017-0146; reference:url,blog.talosintelligence.com/2017/05/wannacry.html; reference:url,isc.sans.edu/forums/diary/ETERNALBLUE+Possible+Window+SMB+Buffer+Overflow+0Day/22304/; reference:url,technet.microsoft.com/en-us/security/bulletin/MS17-010; classtype:attempted-admin; sid:41978; rev:5; )

     

    alert tcp $HOME_NET any -> $EXTERNAL_NET $HTTP_PORTS ( msg:"MALWARE-CNC Win.Trojan.Rombrast variant outbound connection"; flow:to_server,established; http_uri; content:"/file.aspx?file=",fast_pattern,nocase; http_header; content:"ksp/WS"; metadata:ruleset community; service:http; reference:url,www.virustotal.com/file/af1ffe831112cbb34866fe1a65ed18613578039b002ca221757b791a5006894d/analysis/; classtype:trojan-activity; sid:25258; rev:5; )

    해쉬값을 얻을 수 있습니다. 저것을 바이러스토탈에 입력하면 정보를 확인 가능합니다.

     

    외에도

    - 안드로이드 악성 앱

    - SMB 취약점 (MS17-010, CVE-2017-0143

    - bitcoin miner

     

    Anti-Virus의 포털 사이트

    http://www.virustotal.com/ 

     

    VirusTotal

     

    www.virustotal.com

    - 악성코드 여부 확인 가능

    - Search를 클릭하고 해시값을 넣으면 악성코드인지 확인 가능- 안드로이드 악성 앱

    - SMB 취약점 (MS17-010, CVE-2017-0143

    - bitcoin miner

     

    정규표현식

    : 문자를 그대로 기술하지 않으면서 문자들의 순열이나 패턴을 기술하며, 파일 검색 시 사용되는 와일드카드 문자와 정규표현식에서의 문자는 다른 의미를 가집니다.

    - 전화번호를 골라내려면? 전화번호 패턴

    - IP주소만 골라내려면? IP주소 패턴

    - 패턴을 추출하거나 특정한 형식을 골라내기 위해서 정규표현식을 사용합니다.

    - PCRE (Perl Compatible Regular Expression, 펄 호환 정규 표현)

    - 각 언어 또는 스크립트에 따라서 약간씩 다릅니다.

    맨 위 a를 입력하면 아래의 4개가 다 포함될 수 있습니다.

     

    * 핸드폰 번호 정규표현식

    /^\d{3}-\d{3,4}-\d{4}$/;

    3자리-3,4자리-4자리

     

    * 이메일 정규표현식

    /^[0-9a-zA-Z]([-_.]?[0-9a-zA-Z])*@[0-9a-zA-Z]([-_.]?[0-9a-zA-Z])*.[a-zA-Z]{2,3}$/i;

     

     

    File Signature

    : 대부분의 보안 솔루션과 운영체제에서 파일을 탐지하는 기법들이 대부분 File Signature를 보고 판단

    Magic Number라고도 합니다.

     

    댓글

Designed by Tistory.