Tổng quan về tấn công Brute Force
Tấn công Brute Force là gì
Tấn công Brute Force là phương pháp tấn công phổ biến áp dụng cho mọi loại mã hóa, hoạt động bằng cách thử nghiệm tất cả các chuỗi mật khẩu khả thi để xác định mật khẩu chính xác Mặc dù quá trình này có thể mất nhiều thời gian tùy thuộc vào độ dài của mật khẩu, nhưng khả năng tìm ra mật khẩu là chắc chắn nếu không bị giới hạn về thời gian Phương pháp Brute Force thường chỉ được sử dụng khi các biện pháp tấn công khác không mang lại hiệu quả.
Phương pháp tấn công Brute Force dựa vào toán học, giúp rút ngắn thời gian để bẻ khóa mật khẩu bằng cách sử dụng các ứng dụng thay vì tìm kiếm thủ công Máy tính thực hiện các phép toán nhanh chóng trong vài giây, vượt trội hơn so với khả năng của con người trong việc tạo ra các sự kết hợp, từ đó làm cho phương pháp này trở nên hiệu quả hơn.
Tấn công Brute Force có thể được coi là tốt hay xấu tùy thuộc vào mục đích sử dụng Trong khi tội phạm mạng có thể lợi dụng phương pháp này để xâm nhập vào máy chủ, các quản trị viên mạng lại sử dụng nó để kiểm tra mức độ bảo mật của hệ thống Ngoài ra, một số người dùng máy tính cũng áp dụng các ứng dụng Brute Force để khôi phục mật khẩu đã quên.
Hình 1 1 Một phần bản mạch của Máy bẻ khóa trị giá 250.000 đô la của EFF
Hậu quả
Việc dò mật khẩu có thể dẫn đến việc lộ thông tin đăng nhập, và mức độ nghiêm trọng của hậu quả phụ thuộc vào loại thông tin bị rò rỉ.
Việc dò mật khẩu có thể khiến server hoặc hosting của bạn tiêu tốn một lượng lớn tài nguyên, tương tự như một cuộc tấn công DDoS Nếu server của bạn yếu, nó có thể bị treo do bị tấn công Brute Force với tần suất cao.
Các yếu tố ảnh hưởng đến tấn công Brute Force
Mật khẩu chỉ sử dụng chữ cái thường và không có ký tự đặc biệt hoặc số có thể bị tấn công brute force trong khoảng 2-10 phút Trong khi đó, mật khẩu kết hợp cả chữ hoa, chữ thường và một vài chữ số (ví dụ 8 ký tự) sẽ mất hơn 14-15 năm để bị crack.
Tốc độ của bộ vi xử lý máy tính ảnh hưởng đến thời gian cần thiết để bẻ khóa mật khẩu mạng hoặc đăng nhập vào một máy tính Windows độc lập.
Mật khẩu mạnh là rất quan trọng để bảo vệ thông tin cá nhân Để tạo mật khẩu thực sự an toàn, bạn nên sử dụng các ký tự ASCII, bao gồm tất cả các ký tự trên bàn phím và nhiều ký tự khác Để xem các ký tự ASCII, bạn có thể nhấn ALT + số (từ 0 đến 255) trên Numpad.
Hệ thống mã hóa ASCII bao gồm 255 ký tự, mỗi ký tự được gán một mã số mà máy tính có thể đọc và chuyển đổi thành dạng nhị phân (0 hoặc 1) Ví dụ, mã ASCII cho dấu cách là 32, và khi nhập dấu cách, máy tính chuyển đổi nó thành nhị phân là 100000 Các ký tự nhị phân này được lưu trữ dưới dạng ON, OFF trong bộ nhớ máy tính Việc này không liên quan đến phương pháp Brute Force trừ khi sử dụng toàn bộ ký tự ASCII Nếu mật khẩu chứa các ký tự đặc biệt, thời gian để bẻ khóa có thể tăng lên đáng kể.
Cách phòng chống và bảo vệ để tránh các cuộc tấn công Brute Force
Các cuộc tấn công Brute Force không áp dụng bất kỳ logic phức tạp nào, mà chỉ đơn giản là thử nghiệm các kết hợp khác nhau của các ký tự để tạo ra mật khẩu Do đó, các biện pháp phòng ngừa cho loại tấn công này tương đối cơ bản và dễ thực hiện.
Để bảo vệ an toàn cho hệ thống của bạn, bên cạnh việc sử dụng phần mềm bảo mật và hệ điều hành Windows được cập nhật đầy đủ, việc tạo một mật khẩu mạnh là rất quan trọng Mật khẩu nên có độ dài tối thiểu 12 ký tự, bao gồm cả chữ hoa, chữ thường, số và ký tự đặc biệt Tránh sử dụng thông tin cá nhân dễ đoán như tên, ngày sinh hay các từ phổ biến Hơn nữa, bạn nên thay đổi mật khẩu định kỳ và không sử dụng cùng một mật khẩu cho nhiều tài khoản khác nhau.
• Có ít nhất một chữ hoa
• Có ít nhất một chữ số
• Có ít nhất một ký tự đặc biệt
• Mật khẩu phải có tối thiểu 8-10 ký tự
• Bao gồm ký tự ASCII, nếu bạn muốn
Mật khẩu dài giúp tăng cường bảo mật, vì thời gian để bẻ khóa sẽ lâu hơn Ví dụ, mật khẩu như 'PA$$w0rd' có thể mất hơn 100 năm để bị crack bằng các ứng dụng tấn công brute force hiện có Tuy nhiên, bạn nên tránh sử dụng những mật khẩu dễ đoán, vì chúng rất dễ bị phá vỡ bởi các phần mềm thông minh có khả năng tổng hợp mật khẩu từ các nguồn khác nhau.
Một số công cụ khai thác thông dụng
Việc đoán mật khẩu email hoặc tài khoản mạng xã hội có thể mất nhiều thời gian, nhất là khi mật khẩu đủ mạnh Để làm đơn giản hóa quá trình này, hacker đã phát triển các phần mềm và công cụ hỗ trợ bẻ khóa mật khẩu hiệu quả.
Các công cụ tấn công Brute Force, như ứng dụng bẻ khóa mật khẩu và tổ hợp tên người dùng, giúp người dùng vượt qua các biện pháp bảo mật mà khó có thể thực hiện thủ công Một trong những công cụ phổ biến trong phương pháp tấn công này là Aircrack-ng.
Bộ công cụ đánh giá an ninh mạng Wi-Fi giúp giám sát và xuất dữ liệu, đồng thời tấn công tổ chức thông qua các phương pháp như tạo điểm truy cập giả mạo và chèn gói tin.
Hình 1 2 Công cụ Aircrack-ng
Công cụ khôi phục mật khẩu mã nguồn mở này hỗ trợ hàng trăm loại mật khẩu và hàm băm, bao gồm mật khẩu người dùng cho macOS, Unix và Windows, cũng như mật khẩu cho máy chủ cơ sở dữ liệu, ứng dụng web, lưu lượng truy cập mạng, khóa cá nhân mã hóa và tệp tài liệu.
Hình 1 3 Công cụ John the Ripper c Hydra:
Hydra là một nền tảng mã nguồn mở, được phát triển liên tục bởi cộng đồng bảo mật và các hacker, với khả năng tấn công hơn 50 giao thức trên nhiều hệ điều hành khác nhau.
Một công cụ bẻ khóa mật khẩu Windows Nó sử dụng bảng cầu vồng, từ điển và các thuật toán đa xử lý
Hình 1 5 Công cụ L0phtCrack e Burpsuite:
Burpsuite không phải là công cụ chuyên dụng cho tấn công brute-force, nhưng bạn có thể tùy chỉnh đầu vào bộ mật khẩu để thực hiện một cuộc tấn công brute-force theo ý muốn.
TrueCrypt
Tổng quan về TrueCrypt
TrueCrypt là phần mềm mã hóa miễn phí và mã nguồn mở, cho phép mã hóa nhanh (OTFE) Phần mềm này có khả năng tạo ra một đĩa ảo được mã hóa trong một tệp hoặc mã hóa toàn bộ phân vùng hoặc thiết bị lưu trữ.
Vào ngày 28 tháng 5 năm 2014, trang web TrueCrypt thông báo ngừng duy trì dự án và khuyến nghị người dùng tìm kiếm các giải pháp thay thế Mặc dù TrueCrypt không còn được phát triển, một cuộc kiểm toán độc lập đã được thực hiện để đánh giá tính bảo mật của phần mềm này.
TrueCrypt, được công bố vào tháng 3 năm 2015, đã kết luận rằng không có sai sót đáng kể nào Hiện tại, sự phát triển vẫn tiếp tục với hai phần mềm VeraCrypt và CipherShed.
Các hệ điều hành hỗ trợ
TrueCrypt hỗ trợ các hệ điều hành Windows, OS X và Linux, bao gồm cả phiên bản 32 bit và 64 bit, ngoại trừ Windows IA-64.
64 (không được hỗ trợ) và Mac OS X 10.6 Snow Leopard (chạy dưới dạng quy trình
32 bit) Phiên bản dành cho Windows 7, Windows Vista và Windows XP có thể mã hóa phân vùng khởi động hoặc toàn bộ ổ đĩa khởi động
Hình 2 2 TrueCrypt trên hệ điều hành Windows
Hình 2.4 Hệ điều hành Mac OS X 10.6 Snow Leopard
Hình 2.5 Hệ điều hành OS X
Các thuật toán mã hóa
TrueCrypt hỗ trợ các mật mã riêng lẻ như AES, Serpent và Twofish, cùng với năm tổ hợp thuật toán xếp tầng: AES-Twofish, AES-Twofish-Serpent, Serpent-AES, Serpent-Twofish-AES và Twofish-Serpent Ngoài ra, TrueCrypt cũng cung cấp các hàm băm mật mã như RIPEMD-160, SHA-512 và Whirlpool để sử dụng.
Hình 2 4 TrueCrack hỗ trợ thuật toán AES
Phương thức hoạt động
TrueCrypt hiện sử dụng chế độ hoạt động XTS, được đánh giá an toàn hơn so với chế độ LRW đã được áp dụng trong các phiên bản 4.1 đến 4.3a, cũng như chế độ CBC trong các phiên bản trước đó (4.0 trở về trước) Sự chuyển đổi này nâng cao độ bảo mật cho dữ liệu người dùng.
TrueCrypt chỉ cho phép tạo tập mới ở chế độ XTS, nhưng vẫn tương thích với các tập cũ hơn qua chế độ LRW và CBC Các phiên bản sau này cảnh báo về vấn đề bảo mật khi sử dụng ổ đĩa ở chế độ CBC và khuyến nghị người dùng nên thay thế chúng bằng ổ đĩa mới ở chế độ XTS.
Hiệu suất hoạt động
TrueCrypt hỗ trợ mã hóa song song trên hệ thống đa lõi và hoạt động hiệu quả trong Microsoft Windows thông qua việc sử dụng xử lý đọc/ghi pipelined, giúp giảm tải hiệu suất mã hóa và giải mã Đối với các bộ xử lý mới có hỗ trợ tập lệnh AES-NI, TrueCrypt còn cung cấp khả năng mã hóa AES được tăng tốc phần cứng, nâng cao hiệu suất đáng kể Đặc biệt, tác động hiệu suất của mã hóa đĩa rất rõ rệt trong các hoạt động yêu cầu quyền truy cập bộ nhớ trực tiếp (DMA), vì mọi dữ liệu đều phải qua CPU để giải mã thay vì được sao chép trực tiếp từ đĩa vào RAM.
Trong một thử nghiệm của Tom's Hardware, mặc dù TrueCrypt có tốc độ chậm hơn so với đĩa không mã hóa, nhưng chi phí mã hóa theo thời gian thực được cho là tương tự nhau trên cả phần cứng tầm trung và hiện đại, với tác động "khá chấp nhận được" Một bài báo khác cũng chỉ ra rằng chi phí hiệu suất khi làm việc với "các ứng dụng máy tính để bàn phổ biến" là không đáng kể, tuy nhiên, "người dùng thành thạo có thể phàn nàn" về vấn đề này.
Công nghệ Nvidia Cuda
Tổng quan về công nghệ Nvidia Cuda
CUDA (Compute Unified Device Architecture) là kiến trúc tính toán song song do NVIDIA phát triển, cho phép lập trình viên khai thác sức mạnh của GPU (Đơn vị xử lý đồ họa) thông qua các ngôn ngữ lập trình phổ biến Lập trình viên có thể sử dụng ngôn ngữ C for CUDA và trình biên dịch PathScale Open64 C để triển khai các thuật toán trên GPU Kiến trúc CUDA hỗ trợ đầy đủ các chức năng tính toán qua ngôn ngữ C, và nhiều bên thứ ba cũng đã phát triển hỗ trợ cho CUDA trong các ngôn ngữ như Python, Fortran, Java và MATLAB.
CUDA cho phép các nhà phát triển truy cập vào các chỉ lệnh ảo và bộ nhớ của GPU, giúp thực hiện các tính toán song song hiệu quả Các GPU mới nhất của NVIDIA có khả năng thực hiện các tác vụ tương tự như CPU, nhưng với kiến trúc song song, chúng tối ưu hóa việc xử lý nhiều luồng dữ liệu cùng lúc Phương pháp giải quyết vấn đề chung này trên GPU được gọi là GPGPU.
Trong ngành công nghiệp trò chơi điện tử, GPU không chỉ có nhiệm vụ xử lý hình ảnh mà còn tính toán các hiệu ứng vật lý như mảnh vụn, khói, lửa và dòng chảy, với các phần mềm như PhysX và Bullet Bên cạnh đó, CUDA được sử dụng để tăng tốc các ứng dụng không liên quan đến đồ họa, bao gồm sinh học tính toán, xử lý dữ liệu lớn, mật mã học và nhiều lĩnh vực khác, điển hình là hạ tầng tính toán phân tán BOINC.
Hình 3 1 Công cụ Aircrack-ng
CUDA cung cấp cả giao diện chương trình ứng dụng (API) bậc thấp và bậc cao, với kiến trúc CUDA SDK đầu tiên ra mắt vào ngày 15 tháng 2 năm 2007 cho hệ điều hành Microsoft Windows và Linux, và hỗ trợ Mac OS X từ phiên bản 2.0 vào ngày 14 tháng 2 năm 2008 Tính năng này có sẵn trên mọi GPU NVIDIA từ seri G8X trở đi, bao gồm các dòng sản phẩm GeForce, Quadro và Tesla NVIDIA cam kết rằng các chương trình phát triển cho seri GeForce 8 sẽ tương thích và chạy được trên mọi card đồ họa tương lai mà không cần thay đổi, nhờ vào tính tương thích nhị phân.
Nhân CUDA
CUDA là kiến trúc tính toán độc quyền của NVIDIA, cho phép các thiết bị điện tử xử lý thông tin hiệu quả Nhân CUDA, hay CUDA core, là thành phần quan trọng trong GPU của card đồ họa, chịu trách nhiệm tính toán và kết xuất dữ liệu đồ họa Số lượng nhân CUDA trong GPU càng nhiều, khả năng xử lý đồng thời và độ chính xác trong tính toán càng cao.
Ta có thể xem cấu trúc sắp xếp CUDA Core trên GPU như sau:
Hình 3 2 Cấu trúc sắp xếp CUDA Core trên GPU
Một số đặc điểm về nhân CUDA:
➢ Nhân CUDA trong GPU được xem như lõi của GPU, nhưng có cấu trúc - cách thức tính toán đơn giản hơn
➢ Số lượng nhân CUDA được tích hợp lên đến con số hàng nghìn
➢ Nhân CUDA NVIDIA được thiết kế tối ưu cho nhiều phần mềm - ứng dụng máy tính
➢ Nhân CUDA cho card đồ họa rời khả năng tính toán khối lượng dữ liệu lớn trong cùng một thời điểm nhanh
CUDA Core là thành phần quan trọng trong GPU, ảnh hưởng trực tiếp đến chất lượng hình ảnh khi chơi game và độ chính xác của file đồ họa sau khi render Chúng cũng quyết định tốc độ nghiên cứu các chủ đề khoa học, bao gồm cả việc phát triển vaccine chống virus Corona, nơi mà nhân CUDA đã có những đóng góp đáng kể.
Demo thực nghiệm
Kịch bản
Công cụ TrueCrack cho phép bẻ khóa các file được mã hóa bằng TrueCrypt, một tiện ích tích hợp trên các hệ điều hành TrueCrypt sử dụng các thuật toán mã hóa để bảo vệ mật khẩu của file Để bẻ khóa, người dùng có thể sử dụng TrueCrack, có sẵn trên Kali Linux, để thực hiện tấn công Brute Force nhằm tìm ra mật khẩu của file.
Tiến hành
- Đầu tiên, ta chạy quyền root trên Kali Linux và truy cập đến 1 file trong thư mục tmp:
Hình 4.1 Chạy Kali Linux và khởi chạy mã hóa file bằng TrueCrypt
- Bắt đầu tạo Volume TrueCrypt cho file:
Hình 4.1 Tạo Volume cho file
Hình 4.3 Chọn thuật toán mã hóa cho file
Hình 4.4 Chọn khối lượng mã hóa file
Hình 4.6 Chọn chế độ định dạng
Hình 4.7 Tiến hành mã hóa
Hình 4 8 Kết quả file sau khi mã hóa
Hình 4 9 Kiểm tra file sau khi mã hóa
Hình 4.11 Tìm ra mật khẩu của file
-Nhờ việc chạy dòng lệnh: truecrack –t /tmp/billing.txt –w ‘/tmp/worldlists/passlist’ → ta tìm ra được được mật khẩu của file đã mã hóa.
Kết luận
TrueCrack sử dụng phương pháp tấn công Brute Force để thử nghiệm các mật khẩu từ điển nhằm xâm nhập vào file đã được mã hóa Thời gian cần thiết để crack mật khẩu phụ thuộc vào độ phức tạp của mật khẩu mà người dùng đã thiết lập cho file trên TrueCrypt.
Ta sẽ dùng công cụ TrueCrack để bẻ khóa TrueCrypt cũng giống như bài lab bên trên nhưng ta sẽ dùng tấn công từ điển
Tiến hành
Hình 4 12 Truy cập lệnh truecrack –h
Hình 4 13 Ta tìm ra được mật khẩu của file
- TrueCrack tiến hành bẻ khóa mật khẩu của file bằng việc truy cập câu lệnh: truecrack –t Desktop/Web\ Sites/thehackerswordcup/thehackerworldcup –w
=> File được bẻ khóa thành công và hiện mật khẩu như hình
Ngày nay, sự phát triển công nghệ dẫn đến sự gia tăng các công cụ bẻ khóa, trong đó có TrueCrack Những công cụ này không tự gây hại mà phụ thuộc vào cách con người sử dụng Tấn công Brute Force thử mật khẩu cho đến khi xâm nhập thành công vào hệ thống, do đó, việc bảo vệ thông tin cá nhân và mật khẩu mạnh mẽ là cần thiết để giảm thiểu rủi ro TrueCrack, mặc dù không phổ biến như các công cụ khác, vẫn hỗ trợ các kỹ sư trong bộ công cụ Kali Linux, nhưng chỉ có thể bẻ khóa mật khẩu của các file mã hóa bởi TrueCrypt Tuy nhiên, do TrueCrypt đã ngừng phát triển và không còn được sử dụng rộng rãi, tính ứng dụng của TrueCrack hiện tại còn nhiều hạn chế.