SIEM? Nếu các bạn làm an toàn vận hành thì SIEM là giải pháp không thể thiếu và bài viết hôm nay mình sẽ chia sẻ công việc liên quan đến nó, hi vọng những chia sẻ có thể giúp được các bạn phần nào khi làm An toàn vận nói chung và SIEM nói riêng.
Trước khi đi vào chi tiết, mình giới thiệu qua về SIEM – Đây là một hệ thống quản lý an toàn thông tin tập trung, cho phép thu thập dữ liệu log từ nhiều nguồn để lưu trữ tập trung, thực hiện tương quan (correlation) và phân tích, xử lý để phát hiện các hành vi bất thường liên quan đến hệ thống công nghệ thông tin trong một tổ chức.
Công việc chính của các bạn là dựa vào dữ liệu log từ các nguồn trong hệ thống để cố gắng “control” được các rủi ro đang giám sát, đánh giá được các sự kiện, hành vi bất thường để đưa ra các xử lý kịp thời, đặc biệt trong các tình huống diễn ra tấn công mạng, thì tốc độ lúc này là yếu tố quyết định, chúng ta càng nhanh hơn thì xác suất chiến thắng càng cao.
Tùy từng vào môi trường lab nghiên cứu hay Enterprise ở các công ty lớn thì cũng sẽ có các yêu cầu khác nhau, nên với mỗi vấn đề mình sẽ trình bày dựa trên góc nhìn của cả hai.
Những điều bạn học được ở những bước đầu cũng sẽ ảnh hưởng trực tiếp tới quá trình phát triển sau này của chính bạn, vì vậy hãy nghiêm túc và thành thật ngay từ lúc bắt đầu nhé.
Có thể các bạn trẻ bây giờ đã được tiếp cận với công nghệ, IT từ sớm chứ thời mình thì mãi lên đại học thì mình mới chính thức được học hiểu về IT (trước kia chỉ chơi game).
Theo quan điểm của mình, khi mới học về IT, thì việc quan trọng nhất là học tốt các kiến thức về lập trình, hiểu cách thức hoạt động của một hệ thống, và các dữ liệu giao tiếp qua môi trường mạng.
Đây đều là nền tảng để các bạn đi xa. Giống như việc bạn muốn xây 1 ngôi nhà 3 tầng thì nền móng của bạn phải vững, nếu nền móng không vững chắc thì ngôi nhà sẽ đổ sập.
Để có kiến thức tốt về mảng này, thì một số tài liệu sau các bạn có tham khảo ngoài giáo trình trên trường lớp như:
– Linux in Action
– Richard Stevens, TCP/IP Illustrated
– Operating System Concepts 8th Edition
– Windows Internal
– AWS Certified Solutions Architect Official
Để đỡ buồn chán khi chỉ đọc sách, khuyến khích các bạn nên thực hành với các tool trong đó như: Wireshark, tcpdump, nmap, process explorer,… hay trải nghiệm cloud.
Hãy học code thật chăm chỉ và “dám đương đầu”.
Khi bạn mới học code thì sẽ gặp nhiều khó khăn nhưng tin mình đi, nó mới chỉ là bắt đầu. Code để chạy được đã khó, code sạch khó hơn, tối ưu khó hơn nữa, đảm bảo an toàn bảo mật thì … Vậy học security thì học code để làm gì?
Câu trả lời là bạn code cho những vấn đề của bạn, và để “đoán” được ý của người khác. Sau khi đi làm, đi hack, các bạn sẽ phải code những script để làm mọi thứ nhanh và chuẩn xác hơn, nếu chậm thì sẽ bị bỏ rơi lại rồi, và lúc đó mới đi học chắc? Hay bạn nghĩ sao khi bạn đoán được những sai lầm của người khác và tận dụng chúng? Và cũng chỉ học code, bạn mới có thể hiểu và tìm được phương án xử lý, vá lỗi cho những lỗ hổng.
Trong thế giới IT, code cũng chính là việc nói ở thế giới thực, bạn không mong muốn mình bị câm chứ? Và nếu có thể thì hãy code thật nhiều ngôn ngữ và giỏi một vài, trước sau gì thì điều đó cũng sẽ có ích với bạn sớm thôi.
Kiến thức về security thực sự rất rộng, nếu bạn đang không biết bắt đầu từ đâu thì hãy chơi CTF và đọc series Hackemall.
Và khi muốn làm SIEM analysis thì hãy học tất cả các mảng được chia sẻ ở Hackemall như Web, Pwn, Re, Crypto có khi cả Forensic.
Vì bạn chỉ có thể phân tích, đánh giá được các hành vi tấn công vào hệ thống hay trái phép thì trước tiên cần phải nắm được cơ bản các kiểu tấn công. Nếu không biết về các kiểu tấn công thì chắc chắn sẽ bỏ sót số lượng lớn các payload tấn công, thậm chí còn không nghĩ tới việc phải thu thập những dữ liệu log trên để phục vụ cho việc analysis sau hay incident response,…
Áp dụng các kiến thức security đã học được và kinh nghiệm từ các cuộc thi CTF, hãy chơi Bug Bounty khi rảnh rỗi , để hiểu thực tế, tình hình security của các tổ chức như nào?
Hãy đọc writeup về các cuộc tấn công APT, các bounty report sẽ giúp các bạn hiểu và nắm được các rủi ro đang tồn tại trên các nền tảng, công nghệ. Từ đó thể giúp ích cho việc nắm được từ khóa, yếu tố để phát hiện các hành vi bất thường tấn công vào hệ thống. Hay kiểm tra các lỗ hổng, rủi ro đối với hệ thống của công ty bạn, có kế hoạch xử lý nhanh chóng nếu phát hiện có dấu hiệu bị tấn công, và các phương án xử lý lâu dài, dứt điểm.
Với hệ thống SIEM, bạn có thể tự pentest hệ thống của cá nhân, công ty bạn, và nắm được nhiều thông tin từ các log debug, log internal,… giúp cho việc pentest, đánh giá lỗ hổng hệ thống của một công ty, tổ chức tốt hơn.
Làm về SIEM thì phải tự mình dựng hệ thống SIEM, để có thể hiểu và tận dụng nó tốt hơn. Các giải pháp SIEM có rất nhiều nhưng theo mình thì các bạn nên chọn 2-3 giải pháp để nghiên cứu sâu và có sự so sánh, đối chiếu lẫn nhau. Như mình thì chọn nghiên cứu và làm sâu về Splunk và ELK (Elasticsearch, Logstash, Kibina)
Với kinh nghiệm của mình thì khi bắt đầu, các bạn nên tự triển khai hệ thống ELK để nắm được các phần sau:
– Các thành phần của hệ thống SIEM
– Kinh nghiệm tìm kiếm từ khóa, dựng các bảng biểu để theo dõi, giám sát dựa trên cách phát hiện hành vi tấn công
– Triển khai đưa ra cảnh báo khi phát hiện hành vi tấn công
– Triển khai các case detect, phòng thủ lên SIEM theo một kịch bản tấn công
– Simulator attack: Thử tấn công xem khả năng phát hiện ở các case trên SIEM, để đánh giá khả năng của SIEM mình vừa dựng.
Các bạn có thể dựng theo nhiều giải pháp SIEM khác nhau tùy ý mình thích, mình thì follow theo cái này để tiện các bạn theo dõi:
ELK : https://www.elastic.co/guide/en/elastic-stack/current/installing-elastic-stack.html
Splunk : https://docs.splunk.com/Documentation/Splunk/8.0.5/SearchTutorial/InstallSplunk
Và các bạn nên tìm thêm thông tin với các từ khóa như “(SIEM/ELK/Splunk) Deployment Architecture” để có thể hiểu rõ hơn về kiến trúc mô hình mà bạn đang triển khai nhé. Hay cũng có thể viết sẵn các script để phục vụ cho việc deployment tự động các phần trong hệ thống SIEM.
Tích lũy căn cơ thật sâu và chọn lọc tinh hoa từ các kiến thức đó để triển khai, phát triển. Tiếp tục học hỏi nhiều hơn nữa và chuẩn bị thật kỹ lưỡng, không sợ thất bại thì mới có thể có thành công to lớn.
Với mỗi case security thì sẽ dùng đến các dữ liệu log khác nhau, việc quan trọng nhất để có thể phát hiện các hành vi bất thường, sự kiện tấn công vào hệ thống thì bạn phải làm chủ được các dữ liệu log này.
Thường ở các hệ thống thì dữ liệu log sẽ dạng default, cần phải nắm được:
– Thu thập các dữ liệu log gì?
– Với dữ liệu log đó, cần phải có thông tin gì?
Khi đã trả lời được 2 câu hỏi trên, bạn sẽ có được một tập dữ liệu log ổn, đủ đảm bảo cho việc tìm kiếm mỗi khi có sự cố, cần điều tra. Nhưng để có thể giám sát, phát hiện nhanh và chuẩn xác thì các bạn cần thêm một vài yếu tố như:
– Tối giản dữ liệu log, loại bỏ nhiễu, rác
– Chuẩn hóa về các định dạng dữ liệu phù hợp
– Hiểu rõ được các field, thông tin trong dữ liệu log
– Sử dụng từ khóa chuẩn, chính xác cho từng case
– Thường xuyên cập nhật, tối ưu hơn dữ liệu log trong suốt quá trình phân tích, giám sát.
Ví dụ với hệ thống máy chủ Linux, mặc định sẽ có một vài log cơ bản, hệ thống auditd cũng chỉ audit một số hành vi cơ bản để đảm bảo hiệu suất hệ thống, trải nghiệm người dùng.
Vì vậy để nâng cao bảo mật, chúng ta cần phải thu thập thêm các dữ liệu log khác như log command line, hay auditd cần audit nhiều hành vi sự kiên hơn ngoài việc authen, author,… Với các dữ liệu log này, cũng cần phải hiểu rõ các field trong log đó, và ý nghĩa của các giá trị trong field đó. Xuyên suốt quá trình sinh dữ liệu log, chuẩn hóa dữ liệu log, sử dụng dữ liệu log thì cần phải đánh giá được các các log trùng ý nghĩa hay không sử dụng tới thì cần cấu hình loại bỏ để giảm nhiễu trong quá trình xử lý và giải tải cho hệ thống lưu trữ.
Với mỗi loại dữ liệu log của từng phần mềm, môi trường, thì bạn cần hiểu rõ về hoạt động của phần mềm, môi trường đó trước, xong tự đưa ra các đánh giá về dữ liệu log, đảm bảo đủ thông tin để khai thác, đáp ứng cho các kịch bản theo dõi và từ đó tối ưu dần. Nếu có những sự cố phát sinh mà phát hiện những cảnh báo không có, thiếu dữ liệu log thì cần tìm hiểu rõ ràng để cấu hình và xử lý lại dữ liệu log.
Sau khi nhảy việc ở một vài công ty và đều đã làm về SIEM, thì mình nhận thấy là quy mô và yêu cầu của từng công ty đối với hệ thống SIEM và công việc phân tích dữ liệu log cũng sẽ khác nhau. Nhưng để có thể thích nghi và làm chủ được quan điểm của mình thì các bạn nên suy nghĩ và học hỏi những kiến thức về quy trình và chuẩn trong xử lý sự cố, triển khai vận hành SIEM như NIST, Mitre ATT&CK framework, quy trình phát triển sản phẩm,…
Ví dụ khi bạn làm ở các công ty lớn, bạn cần nắm được các bước trong quy trình phát triển sản phẩm để hiểu và đối chiếu với quy trình công ty đang sử dụng. Sau đó là áp dụng security vào quy trình đó, với “Shift left”, ứng dụng các chuẩn NIST trong các bước triển khai security.
Đối với việc phân tích dữ liệu log, hay cả triển khai vận hành SIEM thì đều quan trọng việc hiểu được tổng quan và chi tiết hệ thống. Bạn chỉ có thể phân tích được tốt về những thứ bạn hiểu và bạn cũng sẽ sử dụng tốt những thứ bạn hiểu để đi phân tích hoặc làm gì khác. Vì vậy theo mình thì các bạn nên nắm được:
– Hiểu được sâu về hệ thống SIEM (việc này sẽ càng khó hơn khi mô hình lớn dần, phát sinh nhiều bài toán mới)
– Hiểu được về cách vận hành của hệ thống mà bạn đang theo dõi, phân tích.
Phần 1 mình có nói về việc phải học về hệ thống, mạng, đó chính là nền tảng để bạn nghiên cứu, hiểu sâu hơn về hệ thống của từng công ty khi bạn làm việc. Với mỗi vấn đề có nhiều cách giải quyết, và việc lựa chọn đánh giá sẽ dựa trên nhiều tiêu chí như chi phí, tiện lợi, hiệu quả, trải nghiệm,… Và muốn đánh giá được thì bạn phải hiểu và làm được nó trước. Việc hiểu sâu hệ thống SIEM cũng rất quan trọng, khi có vấn đề với dữ liệu log (nhiều rác, nhiễu, bị lỗi mất log,…) thì bạn cần phải có kiến thức đủ sâu để nắm được vấn đề gốc rễ, tìm ra các giải pháp tạm thời và dứt điểm để giải quyết vấn đề trên.
Nền tảng công nghệ ngày càng phát triển, DevOps ngày càng mạnh, nếu bạn làm Security mà không hiểu biết về nó thì sẽ luôn bị động.
Trên twitter có rất nhiều thông tin quan trọng, hay và free mà chúng ta có thể học hỏi và chia sẻ. Có nhiều idol chia sẻ thông tin về bug, xu hướng security,… Ngoài ra cũng có nhiều idol chia sẻ về các dự án outsource cho blue team, cho siem hay các phân tích đối với dữ liệu log. Ví dụ như: cyb3rops, Bakk3rM, olafhartong, KyleHaxWhy, rimpq, SBousseaden,…
Để học hỏi hoàn thiện hơn tư duy về security và SIEM thì việc nhanh và đơn giản nhất là đọc sách, slide và nghiên cứu các outsource. Dưới đây là một số tài liệu mình nghĩ các bạn nên đọc: (chỉ với Blue team và SIEM, còn pentest, Redteam khác thì các bạn đọc thêm ở bài viết khác trên Hackemall nha):
– Blue Team Handbook: SOC, SIEM, and Threat Hunting Use Cases: A condensed field guide for the Security Operations team. (Cuốn này khá hay, tóm tắt được các ý chính về SIEM, trình bày các use cases logs với Windows và các vấn đề khác với SIEM.)
– Security Operations Center: Building, Operating and Maintaining Your SOC. (Cuốn sách hay về lý thuyết cho SIEM, gần như chắc chắn phải đọc khi muốn làm SIEM tốt.)
– Security Operation Center Concepts & Implementation (Cuốn sách trình bày về các thành phần của SIEM khá hay)
– Sans SEC555 SIEM with Tactical Analytics
– Series sách về Splunk: https://www.splunk.com/en_us/training.html
– Các slide Splunk: https://conf.splunk.com/watch/conf-online.html
Khi bạn đọc xong mấy cuốn trên thì chắc cũng đủ khả năng để biết mình cần học sâu, tìm hiểu về các lĩnh vực trong SIEM, và sẽ tự tìm được các tài liệu SIEM sâu hơn.
Khi làm việc với SIEM thì sẽ gặp phải các bài toán về dữ liệu lớn hay các công việc lặp đi lặp lại và mất nhiều bước, thời gian để remote vào máy chủ để thực hiện,… Các bạn hãy thử suy nghĩ xem liệu có thể “lười” được không? Viết các script, viết các apps, hay thậm chí là thử nâng cấp tính năng nào đó cho hệ thống SIEM của mình. Dù kết quả có như nào thì mình tin, các bạn sẽ hiểu rõ hơn về hệ thống SIEM của mình và có những bài học quý giá.
Ngoài ra ở trên mạng với từng giải pháp SIEM cũng sẽ có một vài outsource hỗ trợ, hãy thử ngâm cứu nhé. Và cũng có thể ngâm cứu cả một giải pháp outsource SIEM, biết đâu vài năm nữa nó sẽ là bản Enterprise.
Khi bạn hiểu sâu về SIEM hay các giải pháp bảo mật, bạn sẽ thấy các ý tưởng của nó rất chính xác và dễ hiểu. Và SIEM hay các giải pháp bảo mật giá trị ở ý tưởng và sự tiện lợi trong trải nghiệm người dùng để triển khai các ý tưởng đó.
Khi ở mức này rồi thì bạn đã có thể hiểu được phần nào về SIEM và việc phải làm tiếp theo rồi. Hãy vững tin và trau dồi hơn nữa, đi tìm về nguồn cội, bản chất của vấn đề, để có thể học hỏi nhiều hơn và nâng tầm bản thân.
Có rất nhiều giải pháp, ứng dụng được phát triển để hỗ trợ cho việc tự động hóa các quy trình xử lý của các hệ thống. Và hệ thống SIEM cũng không ngoại lệ, hãy học hỏi và triển khai các ứng dụng đó để thực hiện tự động đối với khối lượng lớn các công việc. Ví dụ như: ansible chef puppet saltstack,… Khi làm chủ được công nghệ, tự động hóa nhiều hơn thì bạn cũng sẽ có nhiều thời gian để học hỏi và cập nhật nhiều thứ hơn nữa.
Nên phát triển mạnh các ứng dụng tích hợp để xử lý sự cố, để đem lại hiệu quả cao hơn nhiều cho hệ thống SIEM.
Có thể việc thiết kế & quản lý hệ thống SIEM bạn đã làm xuyên suốt trong các thời gian trước, làm nhiều lần. Nhưng thực sự để thiết kế một hệ thống SIEM tốt sẽ cần quan tâm đến rất nhiều yếu tố, giải quyết nhiều bài toán khó khăn, và quan trọng hơn cả là phải tính đến việc mở rộng hệ thống, chuẩn bị sẵn các kế hoạch, tính năng sẽ sử dụng khi hệ thống được mở rộng, tránh việc phải đập đi xây lại toàn bộ hay phần lớn hệ thống. Thực sự điều đó rất quan trọng và cần kinh nghiệm đủ nhiều để có kế hoạch cụ thể.
Việc tìm kiếm các lỗ hổng, phát hiện các rủi ro, hành vi bất thường bằng luật đã trở nên khó khăn hơn với các vấn đề về dữ liệu lớn, realtime hay độ chính xác,… Và để không lạc hậu, hãy học hỏi thêm các kiến thức về Big Data, Machine Learning, Deep learning để xử lý các bài toán này. Việc quan trọng là phải hiểu về công nghệ, thuật toán và giải pháp SIEM đang dùng có hỗ trợ, làm được những điều đó không? Và sẽ làm như thế nào? Kết quả sẽ tới đâu?
Ngoài ra cũng nên học hỏi các công nghệ, giải pháp khác như Firewall, IDPS, Anti Virus, Threat Intelligence,… Để xem thực sự các giải pháp này đang xử lý dữ liệu như nào? Sử dụng những nguồn dữ liệu bên ngoài như nào? Từ đó sẽ đưa tới các biện pháp cải tiến trong việc vận hành luồng phân tích dữ liệu log trong SIEM.
Khi đã tích lũy đủ nhiều, nên đi học thêm các chứng chỉ, nó sẽ giúp bạn con đường sự nghiệp thuận lợi hơn và có thể bạn sẽ hoàn thiện hơn, bổ sung một số thiếu sót về các vấn đề Security, SIEM.
Một số chứng chỉ cho SIEM như SANS SEC555, các chứng chỉ của từng giải pháp.
Công việc về SIEM thì có rất nhiều, ngày càng được quan tâm và tuyển dụng nhiều hơn với các vị trí, mục đích khác nhau.
Tổng thể công việc với SIEM thì gồm các việc như sau:
– Xây dựng cơ bản hệ thống SIEM
– Định nghĩa, xử lý và quản lý dữ liệu log
– Phân tích & thống kê & cảnh báo đối với dữ liệu log
– Xây dựng các plugin, ứng dụng hỗ trợ cho việc vận hành hệ thống SIEM như authen người dùng, cảnh báo tới các mạng xã hội, call gọi tới webhook xử lý sự cố,…
– Ứng dụng các công nghệ để nâng cao hiệu quả phân tích dữ liệu log như Data model, workflow, machine learning,…
– Xây dựng sơ đồ hệ thống SIEM theo các mô hình standalone, cluster với SIEM, giải quyết các bài toán như storage, cloud, authen, role, routing data, kết hợp với các giải pháp bảo mật khác,…
Tương ứng với nó cũng có các vị trí với nhiều cơ hội như SIEM engineer, admin, developer, analyst, manager, architect. Và xa hơn sẽ không chỉ SIEM mà cả Security và Technical.
Lời khuyên của mình là các bạn nên chọn các công ty vừa và lớn, có hệ thống lớn để thực tập và làm việc, vì những công ty này mới có đủ dữ liệu log lớn cho các bạn học hỏi. Thêm nữa, các công ty lớn sẽ quan tâm tới trải nghiệm người dùng nhiều, nên thường sẽ ít sử dụng các giải pháp bảo mật cứng nhắc như firewall,…mà sẽ phát triển về việc giám sát hệ thống log để vừa đảm bảo trải nghiệm người dùng, vừa kiểm soát được các rủi ro trong hệ thống. Khi đó các bạn sẽ có môi trường với nhiều bài toán khó dưới nhiều góc độ khác nhau để có thể thử nghiệm và tìm tòi các giải pháp, ứng dụng hay công nghệ mới.
Hãy cứ học hỏi, là học và hỏi thật nhiều, rồi bạn sẽ nhìn ra được con đường của bản thân bạn.
Có thắc mắc gì thì vui lòng liên hệ page Hackemall.
Longnh.
Elasticsearch cứ mỗi lần lifecycle tạo index mới là nó lại 429 với timeout buồn quá :((