Pentest và sử dụng Burp Suite vào quá trình pentest
Bài đăng này đã không được cập nhật trong 4 năm
1.Pentest là gì?
- Pentest (Penetration Testing) là hình thức kiểm tra hệ thống CNTT của bạn có thể bị tấn công hay không, bằng cách giả lập các vụ tấn công thử nghiệm tạo ra.
- Là quá trình xem xét lại các dịch vụ và hệ thống để tìm ra các vấn đề an ninh tiềm tàng hoặc dò tìm các dấu vết khi hệ thống bị tổn thương.
- Người thực hiện một thử nghiệm xâm nhập được gọi là kiểm tra xâm nhập hoặc Pentester.
- Hành động này là được cho phép bởi người quản trị HT hoặc người có thẩm quyền trong hệ thống.
- Để thực được công việc pentest- người thực hiện kiểm thử sử dụng các biện pháp nghiệp vụ, tìm mọi cách xâm nhập và hệ thống IT hay website. Mục đích cuối cùng sẽ là kiểm soát được hệ thống , dữ liệu hoặc cao nhất có thể đó là chiếm quyền điều khiển hệ thống.
- Mục đích cuối cùng : lỗ hổng tìm thấy sẽ được báo lại cho quản trị hoặc nhà phát triển ứng dụng để họ khắc phục vá lỗ hổng.
2.Những hạng mục trong pentest
- Đánh giá hệ thống mạng
- Đánh giá cấu trúc mạng ,các tb mạng, hệ thống IPS/IDS
- Đánh giá biện pháp bảo mật được thiết lập
- Đánh giá hệ thống máy chủ
- Máy chủ Windown & ubunutu
- Đánh giá phiên bản , cập nhật cấu hình, vá lỗi , chính sách bảo mật,nhật kí
- Khả năng dự phòng, cân bằng tải, và CSDL
- Đánh giá ứng dụng web
- Dùng các công cụ chuyên dụng tấn công kiểm thử,rò quét lỗ hỏng
- Đánh giá bên trong : KT mã nguồn , quyền hạng xác minh dữ liệu, ql phiên
3.Các phương pháp trong pentest
- Black box
- Cuộc tấn công sẽ được thực hiện mà không có bất kì info nào
- Pentester sẽ đặt mình vào vị trí của những tin tặc mũ đen và cố gắng bằng mọi cách để thâm nhập vào được hệ thống của khách hàng
- Pentester sẽ mô phỏng một cuộc tấn công thực sự vào hệ thống.
- White box
- Là các thông tin về mạng nội bộ và ngoại sẽ được cung cấp bởi khách hàng và Pentester sẽ đánh giá an ninh mạng dựa trên đó.
- Gray box
- Giả định như tin tặc được cung cấp tài khoản một người dùng thông thường và tiến hành tấn công vào hệ thống như một nhân viên của doanh nghiệp.
4.Các giai đoạn trong pentest
Giới thiệu Web Application Penetration Testing 2018 (OWASP)
- Information Gathering
- Configuration and Deployment Mangement Testing
- Identify Management Testing
- Authentication Testing
- Authorization Testing
- Sesstion Management Testing
- Input Validation Testing
- Testing for Error Handing
- Testing for weak Cryptography
- Bussiness Logic Testing
- Client Side Testing
1: Information Gathering
- Phần này pentester sẽ thu thập thông tin về đối tượng cũng như các thông tin về server chạy ứng dụng như phiên bản ứng dụng, framework, webserver, hệ điều hành, …
- Bước này rất quan trọng, khi đã xác định được nhiều thông tin liên quan tới ứng dụng sẽ tạo điều kiện thuận lợi cho việc tấn công và khai thác đưa ra kịch bản phù hợp để tấn công.
- Như xác định được WebServer, phiên bản pentester thể tấn công khai thác những lỗi liên quan tới webserver mà không cần quan tâm tới ứng dụng đang chạy có an toàn hay không.
2: Configuration and Deployment Mangement Testing
- Đánh giá về hệ thống máy chủ,những nền tảng đang chạy trên nó. Có thể ứng dụng web hoàn toàn không có lỗ nhưng nền tảng chạy ứng dụng lại có lỗi .
- ví dụ : như hệ điều hành, webServer có bug, điều này hoàn toàn có thể làm nguy hại không chỉ ứng dụng web mà toàn bộ server.
- Cần kiểm tra phần cấu hình cho ứng dụng, chủ yếu phần này do người phát triển kiểm tra. Hình thức kiểm tra là whitebox và graybox.
3: Identify Management Testing
- Nhận định khả năng có lỗi nằm ở đâu. Xác định những điểm để thực hiện tấn công được.
- Kiểm tra lại cách thức tạo tài khoản trong ứng dụng. Logic trong xử lý và các quyền của User.
4: Authentication Testing
- Chế độ đăng nhập là phổ biến trong các ứng dụng, nếu là người quản trị hệ thống sẽ có quyền điều khiển ứng dụng. Do đó việc kiểm tra bảo mật với chức năng đăng nhập là điều hết sức quan trọng.
- Kiểm tra xác thực đăng nhập, sử dụng các kỹ thuật để bypass xác thực và leo thang đặc quyền. Các chính sách quản lý người dùng của ứng dụng có hoạt động đúng hay không như chức năng logout, hay có yêu cầu mật khẩu mạnh, …
5: Authorization Testing
- Sau khi đăng nhập vào hệ thống. kiểm tra tính logic đã cấp đầy đủ và đúng các chức năng của ứng cho user đã đăng nhập hay chưa. Khả năng vượt qua cơ chế bảo mật để leo thang đặc quyền.
- Ví dụ: Hãy tưởng tượng user1 và user2 là 2 người dùng khác nhau .Nếu người dùng user1 có thể truy cập vào tài nguyên của người dùng user2 trên server đọc được những thông tin riêng tư mang tính bí mật của user2. Điều này là vô cùng nguy hiểm do đó việc phân quyền các tài nguyên cho từng nhóm đối tượng và riêng tường đối tượng là rất quan trọng. Việc kiểm tra
6: Sesstion Management Testing
- Kiểm tra phiên đăng nhập.
- Một trong những thành phần cốt lõi của bất kỳ ứng dụng dựa trên web nào là cơ chế mà nó kiểm soát và duy trì trạng thái cho người dùng tương tác với nó. Điều này được gọi là Quản lý phiên và được định nghĩa là tập hợp tất cả các điều khiển chi phối tương tác toàn trạng thái giữa người dùng và ứng dụng dựa trên web
7: Input Validation Testing
- Thực hiện kiểm tra các biến nhập liệu khả năng inject vào các biến đầu vào này.
- Đối với bước này chúng ta sẽ thử thiêm những câu lệnh SQL Injection, Cross Site Scripting(XSS), File Include, … Đối với những lỗi nguy hiểm có thể làm cho quản trị viên mất quyền kiểm soát website thậm chí là cả Server.
8: Testing for Error Handing
- Kiểm tra cách xử lý lỗi của ứng dụng
- Kiểm tra cách thức xử lý lỗi của ứng dụng là một điều hết sức quan trọng. Không phải lúc nào ứng dụng đều chạy giống với ý muốn của người lập trình, hoặc người dùng không hợp tác cung cấp những dữ liệu không mong muốn.
- Thông tin về lỗi cũng là 1 nguồn thu thập dữ liệu cho pentester có thể tấn công vào website.
- Những lúc đó ứng dụng cần có cơ chế xử lý để không gặp phải hiện tượng tự nhiên lăn đùng ra chết mà quản trị chẳng hay chết khi nào và vì sao lại chết.
9: Testing for weak Cryptography
- Kiểm tra về cách mà ứng dụng mã hóa thông tin trên đường truyền
- Đối với những website thương mại, giao dịch điện tử thì việc bảo vệ dữ liệu trên đường truyền là rất rất quan trọng.
- Từ tài khoản người dùng đến thông tin giao dịch đều cần được giữ bí mật trên đường truyền. Phần này là kiểm tra phần mã hóa và mức độ mã hóa của ứng dụng đã đảm bảo an toàn hay chưa..
10: Bussiness Logic Testing
- Kiểm tra tính logic nghiệp vụ của ứng dụng. ví dụ: website bán hàng có xử lý đúng logic cho các hóa đơn không.
- Mỗi ứng dụng có chức năng riêng do đó Logic mỗi ứng dụng là khác nhau. Kiểm tra này là xác định đúng xử lý của ứng dụng đã hợp với logic và chức năng của ứng dụng hay không.
11: Client Side Testing
- Kiểm tra việc thực thi mã trên máy người dùng.
- Response nhận từ server sẽ được brower hiển thị cho người dùng. Ngoài mã html ra còn có mã JavaScript.
- Nếu có thể inject code đặc biệt là javascript vào response này sẽ làm cho browser thực thi mã làm thay đổi một số tính năng của ứng dụng.
5. Burp Suite
- Burpsuite là gì?
- Burp Suite là một bộ công cụ quét lỗ hổng bảo mật cho ứng dụng web.
- Burp Suite là một nền tảng tích hợp cho việc kiểm tra an ninh các ứng dụng web. Các công cụ đa dạng làm việc với nhau để hỗ trợ toàn bộ quá trình thử nghiệm, từ lập bản đồ ban đầu đến việc tìm kiếm và khai thác lỗ hổng bảo mật.
- Các chức năng chính BurpSuite
- Interception Proxy: Nó hoạt động như một máy chủ proxy web và nằm ở vị trí trung gian giữa trình duyệt và máy chủ web đích. Nó cho phép chặn, kiểm tra và sửa đổi lưu lượng thông đi qua cả hai hướng.
- Scanner (chỉ có trong bản Pro): tự động quét các lỗ hổng trong ứng dụng web (XSS, SQLi, Command Injection, File Inclusion,…).
- Repeater: cho phép sửa đổi nội dung request một cách nhanh chóng.
- Intruder: Công cụ này có thể thực hiện các cuộc tấn công tự động vào các ứng dụng web,tự động hóa việc gửi các payloads lên server.
- Decoder: decode và encode string theo các format khác nhau (URL, Base64, HTML,…).
- Comparer: chỉ ra sự khác nhau giữa các requests/responses
- Extender: API để mở rộng chức năng của Burp Suite. Bạn có thể download các extensions thông qua Bapp Store.
- Spider & Discover Content: crawl link , tự động duyệt web để xác định cấu triusc “site map” của 1 trang web. Interception Proxy: Nó hoạt động như một máy chủ proxy web và nằm ở vị trí trung gian giữa trình duyệt và máy chủ web đích. Nó cho phép chặn, kiểm tra và sửa đổi lưu lượng thông đi qua cả hai hướng. Intruder: Công cụ này có thể thực hiện các cuộc tấn công tự động vào các ứng dụng web,tự động hóa việc gửi các payloads lên server. Scanner (chỉ có trong bản Pro): tự động quét các lỗ hổng trong ứng dụng web (XSS, SQLi, Command Injection, File Inclusion,…).
All rights reserved