1. NHỮNG ĐIỀU CƠ BẢN NHẤT VỀ KIỂM TRA THÂM NHẬP
Kiểm tra thâm nhập là một cách để bạn mô phỏng các phương pháp mà kẻ tấn công có thể sử dụng để vượt qua các biện pháp kiểm soát bảo mật và giành quyền truy cập vào hệ thống của tổ chức. Nó bao gồm nhiều thứ hơn là chỉ chạy các trình quét và công cụ tự động rồi viết báo cáo. Và bạn sẽ không trở thành một chuyên gia kiểm tra thâm nhập chỉ sau một đêm; phải mất nhiều năm thực hành và kinh nghiệm thực tế để trở nên thành thạo.
Qua nhiều năm, Tiêu chuẩn Thực hiện Kiểm tra Thâm nhập (PTES) đã định nghĩa lại ngành bảo mật bằng cách chuẩn hóa các thuật ngữ và phương pháp, và một số thành viên hàng đầu của cộng đồng bảo mật đã áp dụng nó để thiết lập một tiêu chuẩn cơ bản cho các bài kiểm tra của họ. Chương này phác thảo các nguyên tắc cơ bản của PTES.
CÁC GIAI ĐOẠN CỦA PTES
Các giai đoạn của PTES xác định một bài kiểm tra thâm nhập. Chúng cũng đảm bảo với tổ chức khách hàng rằng bất kỳ ai thực hiện loại đánh giá này sẽ dành một mức độ nỗ lực nhất quán. Tiêu chuẩn được chia thành bảy loại, với các mức độ công việc khác nhau được yêu cầu cho mỗi loại, tùy thuộc vào tổ chức bị tấn công.
Tương tác trước khi tham gia (Pre-engagement interaction)
Tương tác trước khi tham gia thường xảy ra khi thảo luận về phạm vi và các điều khoản của bài kiểm tra thâm nhập với khách hàng của bạn. Trong giai đoạn này, điều quan trọng là bạn phải truyền tải các mục tiêu của hoạt động. Giai đoạn này cũng đóng vai trò là cơ hội để trình bày cho khách hàng của bạn về những gì họ nên mong đợi từ một bài kiểm tra thâm nhập toàn diện, đầy đủ phạm vi: bài kiểm tra không có giới hạn nào về những gì có thể và sẽ được kiểm tra trong quá trình hoạt động.
Thu thập thông tin tình báo (Preengagement interaction)
Trong giai đoạn thu thập thông tin tình báo, bạn sẽ sử dụng mạng xã hội, Google hacking, footprinting và các phương pháp khác để thu thập bất kỳ thông tin nào bạn có thể về tổ chức mà bạn đang tấn công. Một trong những kỹ năng quan trọng nhất mà một chuyên gia kiểm tra thâm nhập có thể có là khả năng tìm hiểu về mục tiêu, bao gồm cách nó hoạt động, cách nó vận hành và cuối cùng là cách nó có thể bị tấn công.
Trong quá trình thu thập thông tin tình báo, bạn cố gắng xác định các cơ chế bảo vệ nào được đặt trên mục tiêu bằng cách từ từ bắt đầu thăm dò các hệ thống của nó. Ví dụ: một tổ chức thường chỉ cho phép lưu lượng truy cập trên một tập hợp con nhất định của các cổng trên các thiết bị hướng ra bên ngoài và nếu bạn truy vấn tổ chức trên bất kỳ thứ gì khác ngoài cổng được cho phép, bạn sẽ bị chặn. Nói chung, nên kiểm tra hành vi chặn này bằng cách ban đầu thăm dò từ một địa chỉ IP có thể bị chặn hoặc phát hiện. Điều tương tự cũng xảy ra khi bạn đang kiểm tra các ứng dụng web. Sau một ngưỡng nhất định, tường lửa ứng dụng web sẽ chặn bạn thực hiện các yêu cầu tiếp theo.
Để không bị phát hiện, bạn có thể thực hiện các lần quét ban đầu của mình từ các dải địa chỉ IP không thể liên kết trở lại bạn và nhóm của bạn. Thông thường, các tổ chức có sự hiện diện bên ngoài trên internet sẽ gặp phải các cuộc tấn công mỗi ngày và việc thăm dò ban đầu của bạn có thể là một phần không bị phát hiện của tiếng ồn nền.
Trong một số trường hợp, có thể hợp lý khi chạy các lần quét rất ồn ào từ một dải IP hoàn toàn khác với dải bạn sẽ sử dụng cho cuộc tấn công chính. Điều này sẽ giúp bạn xác định mức độ phản hồi của tổ chức đối với các công cụ bạn đang sử dụng.
Mô hình hóa mối đe dọa (Threat modeling)
Mô hình hóa mối đe dọa sử dụng thông tin bạn thu thập được trong giai đoạn thu thập thông tin tình báo để xác định bất kỳ lỗ hổng hiện có nào trên hệ thống mục tiêu. Khi thực hiện mô hình hóa mối đe dọa, bạn sẽ xác định phương pháp tấn công hiệu quả nhất, loại thông tin bạn đang theo đuổi và cách tổ chức có thể bị tấn công. Mô hình hóa mối đe dọa bao gồm việc xem xét một tổ chức như một “kẻ thù” hay mục tiêu và cố gắng khai thác điểm yếu như một kẻ tấn công sẽ làm.
Phân tích lỗ hổng (vulnerability analysis)
Sau khi xác định được các phương pháp tấn công khả thi nhất, bước tiếp theo là xem xét cách bạn sẽ truy cập mục tiêu. Trong quá trình phân tích lỗ hổng, bạn kết hợp thông tin học được từ các giai đoạn trước và sử dụng nó để hiểu những cuộc tấn công nào có thể khả thi. Trong số những thứ khác, phân tích lỗ hổng đánh giá các lần quét cổng và lỗ hổng, dữ liệu thu thập được bằng cách lấy banner và thông tin thu thập được trong quá trình thu thập thông tin tình báo.
Khai thác (Exploitation)
Khai thác có lẽ là một trong những phần hấp dẫn nhất của bài kiểm tra thâm nhập, nhưng nó thường được thực hiện bằng brute force hơn là độ chính xác. Nên thực hiện khai thác chỉ khi bạn biết gần như chắc chắn rằng nó sẽ thành công. Tất nhiên, các biện pháp bảo vệ không lường trước được có thể được đặt trên mục tiêu để ngăn chặn một khai thác cụ thể hoạt động. Ngoài ra, việc bắn một cách mù quáng hàng loạt các khai thác và cầu nguyện cho một shell không hiệu quả; nó ồn ào và mang lại ít giá trị cho bạn và khách hàng của bạn. Hãy làm bài tập về nhà của bạn trước, và sau đó khởi chạy các khai thác được nghiên cứu kỹ lưỡng có khả năng thành công.
Khai thác sau (post attack đó mấy bạn)
Giai đoạn khai thác sau bắt đầu sau khi bạn đã xâm nhập một hoặc nhiều hệ thống. Nhưng, ngay cả khi đó, bạn vẫn chưa hoàn thành.
Khai thác sau là một thành phần quan trọng trong bất kỳ bài kiểm tra thâm nhập nào. Đây là nơi bạn phân biệt mình với tin tặc thông thường bằng cách truy cập thông tin có giá trị. Khai thác sau nhắm mục tiêu các hệ thống cụ thể, xác định cơ sở hạ tầng quan trọng và tập trung vào thông tin hoặc dữ liệu mà công ty coi trọng nhất và đã cố gắng bảo mật. Khi bạn khai thác hệ thống này đến hệ thống khác, bạn đang cố gắng chứng minh các cuộc tấn công sẽ có tác động lớn nhất đến doanh nghiệp.
Khi tấn công các hệ thống trong khai thác sau, bạn nên dành thời gian để xác định các hệ thống khác nhau làm gì, cũng như các vai trò người dùng khác nhau của chúng. Ví dụ: giả sử bạn xâm nhập hệ thống cơ sở hạ tầng miền và đang chạy với tư cách quản trị viên doanh nghiệp hoặc có quyền quản trị cấp độ miền. Bạn có thể là vua của miền, nhưng còn các hệ thống giao tiếp với Active Directory thì sao? Còn ứng dụng tài chính chính được sử dụng để trả lương cho nhân viên thì sao? Bạn có thể xâm nhập hệ thống đó và sau đó, vào chu kỳ trả lương tiếp theo, chuyển tất cả số tiền ra khỏi công ty và vào một tài khoản nước ngoài không? Còn tài sản trí tuệ của mục tiêu thì sao?
Giả sử, khách hàng của bạn là một cửa hàng phát triển phần mềm lớn, cung cấp các ứng dụng được mã hóa tùy chỉnh cho khách hàng để sử dụng trong môi trường sản xuất. Bạn có thể cửa sau mã nguồn của nó và về cơ bản xâm nhập tất cả khách hàng của nó không? Điều đó sẽ gây hại như thế nào cho uy tín thương hiệu của nó?
Khai thác sau là một trong những kịch bản khó khăn mà bạn phải dành thời gian để tìm hiểu thông tin nào có sẵn cho bạn và sau đó sử dụng thông tin đó để mang lại lợi ích cho mình. Một kẻ tấn công thực sự thường sẽ dành một lượng thời gian đáng kể trong một hệ thống bị xâm nhập để làm điều tương tự. Hãy suy nghĩ như một tác nhân độc hại: hãy sáng tạo, thích ứng nhanh chóng và dựa vào trí thông minh của bạn thay vì các công cụ tự động.
Báo cáo (report)
Báo cáo cho đến nay là yếu tố quan trọng nhất của bài kiểm tra thâm nhập. Bạn sẽ sử dụng báo cáo để truyền đạt những gì bạn đã làm, cách bạn đã làm và quan trọng nhất là cách tổ chức nên khắc phục các lỗ hổng được phát hiện trong quá trình kiểm tra thâm nhập.
Khi thực hiện kiểm tra thâm nhập, bạn đang làm việc từ quan điểm của kẻ tấn công, điều mà các tổ chức hiếm khi thấy. Thông tin bạn thu thập được trong quá trình kiểm tra rất quan trọng đối với sự thành công của chương trình bảo mật thông tin của tổ chức và trong việc ngăn chặn các cuộc tấn công trong tương lai. Khi bạn biên soạn và báo cáo kết quả của mình, hãy nghĩ về cách tổ chức có thể sử dụng chúng để nâng cao nhận thức, khắc phục các vấn đề được phát hiện và cải thiện bảo mật tổng thể thay vì chỉ vá các lỗ hổng kỹ thuật.
Ở mức tối thiểu, hãy chia báo cáo của bạn thành tóm tắt điều hành, thuyết trình điều hành và kết quả kỹ thuật, mà khách hàng sẽ sử dụng để khắc phục các lỗ hổng bảo mật. Ví dụ: nếu bạn tìm thấy lỗ hổng SQL injection trong các ứng dụng dựa trên web của khách hàng, bạn có thể khuyên khách hàng của mình vệ sinh tất cả dữ liệu đầu vào của người dùng, tận dụng các truy vấn SQL tham số hóa, chạy SQL với tư cách là tài khoản người dùng bị hạn chế và bật thông báo lỗi tùy chỉnh.
Sau khi khách hàng thực hiện các khuyến nghị của bạn và khắc phục lỗ hổng SQL injection cụ thể, liệu nó có được bảo vệ khỏi SQL injection không? Không. Một vấn đề cơ bản, chẳng hạn như không đảm bảo rằng các ứng dụng của bên thứ ba được bảo mật, có thể đã gây ra lỗ hổng SQL injection ngay từ đầu. Những vấn đề như vậy cũng sẽ cần được khắc phục.
CÁC LOẠI KIỂM TRA THÂM NHẬP
Bây giờ bạn đã hiểu cơ bản về bảy loại PTES, chúng ta hãy xem xét hai loại kiểm tra thâm nhập chính: công khai và bí mật. Kiểm tra thâm nhập công khai hoặc hộp trắng diễn ra với sự hiểu biết đầy đủ của tổ chức; các bài kiểm tra bí mật được thiết kế để mô phỏng hành động của kẻ tấn công không xác định và không báo trước. Cả hai bài kiểm tra đều cung cấp những ưu điểm và nhược điểm.
Công khai
Sử dụng kiểm tra thâm nhập công khai, bạn làm việc với tổ chức để xác định các mối đe dọa bảo mật tiềm ẩn khi nhóm CNTT hoặc bảo mật của tổ chức hướng dẫn bạn qua các hệ thống của tổ chức. Lợi ích chính của kiểm tra công khai là bạn có quyền truy cập vào kiến thức nội bộ và có thể khởi chạy các cuộc tấn công mà không sợ bị chặn. Một nhược điểm tiềm ẩn của kiểm tra công khai là nó có thể không kiểm tra hiệu quả chương trình ứng phó sự cố của khách hàng hoặc xác định mức độ chương trình bảo mật phát hiện các cuộc tấn công nhất định. Khi thời gian bị hạn chế và các bước PTES như thu thập thông tin tình báo nằm ngoài phạm vi, kiểm tra công khai có thể là lựa chọn tốt nhất của bạn.
Bí mật
Không giống như kiểm tra công khai, kiểm tra thâm nhập bí mật được phê duyệt được thiết kế để mô phỏng hành động của kẻ tấn công và được thực hiện mà không có kiến thức của hầu hết các tổ chức. Các bài kiểm tra bí mật thách thức khả năng phát hiện và ứng phó với cuộc tấn công của nhóm bảo mật nội bộ.
Các bài kiểm tra bí mật có thể tốn kém và tốn thời gian và chúng đòi hỏi kỹ năng nhiều hơn so với các bài kiểm tra công khai. Theo quan điểm của các chuyên gia kiểm tra thâm nhập, kịch bản bí mật thường được ưa chuộng hơn vì nó mô phỏng sát nhất một cuộc tấn công thực sự. Các cuộc tấn công bí mật dựa vào khả năng thu thập thông tin của bạn bằng cách trinh sát. Do đó, với tư cách là người kiểm tra bí mật, bạn thường sẽ không cố gắng tìm ra một số lượng lớn các lỗ hổng trong mục tiêu. Thay vào đó, bạn chỉ cần tìm cách dễ nhất để truy cập hệ thống trong khi vẫn không bị phát hiện.
TRÌNH QUÉT LỖ HỔNG
Trình quét lỗ hổng là các công cụ tự động được sử dụng để xác định các lỗ hổng bảo mật ảnh hưởng đến một hệ thống hoặc ứng dụng nhất định. Trình quét lỗ hổng thường hoạt động bằng cách lấy dấu vân tay của hệ điều hành của mục tiêu (tức là xác định phiên bản và loại của nó) cũng như bất kỳ dịch vụ nào đang chạy. Sau khi bạn đã lấy dấu vân tay của hệ điều hành của mục tiêu, bạn sử dụng trình quét lỗ hổng để thực hiện các kiểm tra cụ thể để xác định xem các lỗ hổng có tồn tại hay không.
Tất nhiên, các kiểm tra này chỉ tốt khi người tạo ra chúng, và như với bất kỳ giải pháp tự động nào, đôi khi chúng có thể bỏ sót hoặc trình bày sai các lỗ hổng trên hệ thống. Tuy nhiên, hầu hết các trình quét lỗ hổng hiện đại đều thực hiện một công việc tuyệt vời trong việc giảm thiểu dương tính giả và nhiều tổ chức sử dụng chúng để xác định các hệ thống lỗi thời hoặc các lỗ hổng tiềm ẩn mới mà kẻ tấn công có thể khai thác.
Trình quét lỗ hổng đóng một vai trò rất quan trọng trong kiểm tra thâm nhập, đặc biệt là trong trường hợp kiểm tra công khai, trong đó bạn có thể khởi chạy nhiều cuộc tấn công mà không phải lo lắng về việc tránh bị phát hiện. Kiến thức thu thập được từ các trình quét lỗ hổng có thể là vô giá, nhưng hãy cẩn thận khi dựa dẫm quá nhiều vào chúng. Trong hầu hết các trường hợp, khi bạn trở thành một chuyên gia kiểm tra thâm nhập giàu kinh nghiệm, bạn sẽ hiếm khi sử dụng trình quét lỗ hổng, thay vào đó dựa vào kiến thức và chuyên môn của bạn để xâm nhập hệ thống.
CÀI ĐẶT KALI, METASPLOIT VÀ METASPLOITABLE
Metasploit được cài đặt sẵn trên các bản phân phối pentest như Kali Linux, Parrot OS, BlackArch và BackBox. Nếu bạn đã chạy một trong những bản phân phối này, Metasploit rất có thể đã được cài đặt.
Security365 có một bài trình bày liên quan chủ đề này mà các bạn có thể tìm hiểu tại đây :
Trong tài liệu này, các ví dụ sẽ giả định rằng bạn đang chạy tất cả các lệnh từ máy ảo Kali, mặc dù bạn cũng có thể cài đặt Metasploit Framework trực tiếp trên hệ điều hành Windows, macOS hoặc Linux của mình. Dự án Metasploit Framework được quản lý bởi một nhóm tại Rapid7, nhóm này cũng duy trì một trang web có hướng dẫn cài đặt chi tiết:
https://docs.rapid7.com/metasploit/installing-the-metasploit-framework/.
Sau khi bạn đã cài đặt Metasploit Framework, bạn có thể thực hành pentest hay hacking Metasploitable 2 như trong video demo ở trên. Rapid7 đã tạo một máy ảo dễ bị tấn công, được gọi là Metasploitable (với phiên bản hay dùng là version 2, cũng có phiên bản v3 nhưng tên này hay dành cho máy ảo Windows dễ bị khai thác chạy trên Windows Server 2008 hơn), chứa một số lỗ hổng mà bạn có thể thực hành khai thác bằng Metasploit. Chúng tôi sẽ tấn công các máy Metasploitable 2 trong suốt cuốn sách này.
Để có hướng dẫn từng bước về cách thiết lập môi trường kiểm tra lab ảo chứa Kali và Metasploitable, và cả Commando hãy xem tại đây.
TỔNG KẾT
Nếu bạn chưa quen với kiểm tra thâm nhập hoặc chưa áp dụng một phương pháp chính thức, hãy nghiên cứu PTES. Như với bất kỳ thử nghiệm nào, khi bạn đang thực hiện kiểm tra thâm nhập, hãy đảm bảo rằng bạn có một quy trình tinh chỉnh và có thể thích ứng cũng có thể lặp lại. Bạn cũng cần hoàn thiện việc thu thập thông tin tình báo và phân tích lỗ hổng của mình. Những kỹ năng này sẽ giúp bạn thích nghi với các tình huống mới.




Bình luận về bài viết này