Sysmon

  1. Sysmon là gì?

    Sysmon là bộ công cụ của Microsoft dùng để kiểm tra những hoạt động của Windows: process, network, file… và đưa vào windows event log.

    1 vài ví dụ về log sysmon export ra event viewer

  2. Vậy Sysmon dùng làm gì?

    Sysmon thường được dùng để audit những hành vi bất thường của ứng dụng (process, thread, connection, file, command, sign ,dns…)

  • Process: dùng để tìm kiếm những process bất thường chạy trong windows.
  • Connection: phát hiện những kết nối bất thường đến những IP nghi ngờ. Kết hợp với geoip để phân loại quốc gia theo IP
  • File: phát hiện thay đổi file. Trường hợp này phát hiện với ransomware, thay đổi hàng loạt file.
  • DNS: phát hiện những truy vấn DNS bất thường.

Sysmon được tích hợp khá nhiều với các SIEM như:

QRadar:
https://www.ibm.com/support/knowledgecenter/SSKMKU/com.ibm.extensions.doc/r_sysmon_setup.html

Splunk:

https://splunkbase.splunk.com/app/1914/

Logrhythm:

https://logrhythm.com/products/logrhythm-sysmon/

  1. Cài đặt sysmon

    Download sysmon từ:

    https://docs.microsoft.com/en-us/sysinternals/downloads/sysmon

    Sau đó mở cmd với quyền administrator để cài đặt sysmon

    Sysmon64.exe -accepteula -I -n -l

    -i Install
    -l Lưu log thay đổi
    -n Lưu lại kết nối connection
    -c Dùng file config với bộ rule
    -u Uninstall

    Các thông số cài đặt có thể xem thêm tại đây : https://docs.microsoft.com/en-us/sysinternals/downloads/sysmon

  2. Xóa sysmon khỏi windows

    Xem log sysmon trên event viewer

    Mở event viewer

    Event Viewer -> Application and Services -> Microsoft -> Windows -> Sysmon -> Operational

  3. Cấu hình sysmon

    Do mặc định sysmon sẽ ghi lại log toàn bộ mọi thứ: nên những ứng dụng bình thường cũng sẽ bị ghi log lại và dẫn đến quá nhiều log.

    Nên chúng ta sẽ cần viết rule cho sysmon để log những gì cần log.

    Đây là file config mẫu của Sysmon: https://github.com/SwiftOnSecurity/sysmon-config

    Khuyến cáo: nên dùng notepad++ để mở file config xml

    1. Ví dụ 1:

    <Sysmon
    schemaversion=“4.22”>


    <HashAlgorithms>md5,sha256,IMPHASH</HashAlgorithms>


    <CheckRevocation/>


    <EventFiltering>


    <RuleGroup
    name=“IT4VN”
    groupRelation=“or”>


    <ProcessCreate
    onmatch=“include”>


    <CommandLine
    condition=“contains”>iexplore.exe</CommandLine>


    <CommandLine
    condition=“contains”>firefox.exe</CommandLine>


    </ProcessCreate>


    </RuleGroup>


    </EventFiltering>

    </Sysmon>

    Ở đây chúng ta chỉ cần quan tâm từ dòng EventFiltering. Từ dòng này chúng ta sẽ có những định nghĩa như sau:

  • RuleGroup: tên của group rule
  • groupRelation: Mối quan hệ giữa các group, and hay or. Trong ví dụ bên trên thì sysmon sẽ log những process được tạo ra có tên là
    iexplore.exe
    ho
    ặc firefox.exe
  • ProcessCreate: Sysmon có 22 event ID. Mỗi event ID có rule riêng. Tham khảo thêm ở file config mẫu.
ID Tag Event
1 ProcessCreate Process Create
2 FileCreateTime File creation time
3 NetworkConnect Network connection detected
4 n/a Sysmon service state change (cannot be filtered)
5 ProcessTerminate Process terminated
6 DriverLoad Driver Loaded
7 ImageLoad Image loaded
8 CreateRemoteThread CreateRemoteThread detected
9 RawAccessRead RawAccessRead detected
10 ProcessAccess Process accessed
11 FileCreate File created
12 RegistryEvent Registry object added or deleted
13 RegistryEvent Registry value set
14 RegistryEvent Registry object renamed
15 FileCreateStreamHash File stream created
16 n/a Sysmon configuration change (cannot be filtered)
17 PipeEvent Named pipe created
18 PipeEvent Named pipe connected
19 WmiEvent WMI filter
20 WmiEvent WMI consumer
21 WmiEvent WMI consumer filter
22 DNSQuery DNS query
  • onmatch: onmatch có 2 giá trị là
    include

    hoặc
    exclude
    .
    Include sẽ xuất log ra eventlog khi những điều kiện bên dưới đúng. Exclude sẽ không xuất ra eventlog khi những điều kiện bên dưới đúng (ngược lại với include)
  • CommandLine: Điều kiện của mỗi rule. Ví dụ ở process event thì có rule command, network connection thì có rule source IP, destination IP , port…Tham khảo thêm ở file config mẫu.
  • Giải thích: ở file config ban đầu có group rule tên là IT4VN, groupRelation or tức là những chỉ cần thỏa 1 điều kiện là đủ. Ở đây là CommandLine có chứa tên iexplore.exe hoặc firefox.exe
  1. Ví dụ 2:


<RuleGroup
name=“”
groupRelation=“or”>


<DnsQuery
onmatch=“exclude”>


<QueryName
condition=“is”>..localmachine</QueryName>


<QueryName
condition=“is”>localhost</QueryName>


<QueryName
condition=“end with”>.windowsupdate.com</QueryName>


<QueryName
condition=“end with”>.xboxlive.com</QueryName>


<QueryName
condition=“is”>login.windows.net</QueryName>


<Image
condition=“begin with”>C:\ProgramData\Microsoft\Windows Defender\Platform\</Image>


</DnsQuery>


</RuleGroup>

  • Giải thích: Ở ví dụ 2 là cấu hình cho eventlog DnsQuery. Với event này groupRelation or nên chỉ cần đúng với một điều kiện. Sau đó là nên khi đúng với điều kiện bên dưới thì sẽ được loại trừ không đưa và eventlog:
    • dns query là ..localmachine, localhost, .windowsupdate.com, .xbox.live.com, login.windows.net
    • Tên của process bắt đầu với C:\ProgramData\Microsoft\Windows Defender\Platform\
  1. Bước kế tiếp

    Sau khi đã có log rồi, những với hàng chục hàng trăm server thì việc xem eventlog không dễ tí nào. Do đó thông thường eventlog được thu thập và tập trung lại để theo dõi. Ở phần kế tiếp eventlog sẽ được đưa vào ELK để biểu diễn dưới dạng dashboard giúp việc theo dõi dễ dàng hơn.

Đánh giá post

Leave a Reply

Your email address will not be published. Required fields are marked *