Bạn có phải là người quan tâm và muốn tham gia vào lĩnh vực an ninh mạng và bạn muốn người ta gọi bạn là Hacker. Nhưng bạn chưa biết bắt đầu từ đâu, bài viết này sẽ đưa ra lộ trình để trở thành Hacker thực thụ, bạn có thể tham khảo để biết nên học từ môn nào đầu tiên.
Ethical Hacker – Hacker đạo đức – Hacker Mũ trắng là gì?
Hacker là người có thể truy cập trái phép vào bất kỳ hệ thống máy tính nào mà không được phép, chẳng hạn như dùng phương pháp Social Engineering hoặc có một số tài liệu, file, password, v.v. trước đó và tất nhiên điều này là bất hợp pháp.
Song song với thế lực Hacker bất hợp pháp thì trên thế giới vẫn có lực lượng Hacker Mũ trắng là những người được mời/thuê để có thể kiểm tra bảo mật đối với hệ thống/mạng máy tính, v.v. Do đó các Hacker mũ trắng được chủ công ty cho phép thử nghiệm như: mã độc, lỗ hổng, lỗ hổng bảo mật tiềm ẩn của hệ thống máy tính.
Bây giờ chúng ta sẽ đi sâu vào Lộ trình để trở thành Hacker thì nên học những gì và điều gì giúp bạn trở thành một Hacker giỏi?
Lộ trình để trở thành Hacker thực thụ
Có nhiều lộ trình để bạn thành Hacker, đây chỉ là 1 số những con đường giúp bạn trở thành Hacker thực thụ. Bạn có thể tham khỏa roadmap này, nó cũng tương ứng với lộ trình học đại học
- Lập trình và khoa học máy tính
- Nguyên tắc cơ bản về mạng và hệ điều hành
- Bảo mật ứng dụng
- Chọn chuyên ngành yêu thích của bạn, chẳng hạn như: bảo mật nhị phân, bảo mật ứng dụng web (sau này làm bug hunter – sợ săn kiếm tiền thưởng)
- Mobile forensics, pentesting, bảo mật ứng dụng
- An ninh mạng – Network Security – Học mô hình mạng – Triển khai hệ thống mạng
- Đội đỏ – Red Team
- Đội xanh – Blue Team
Bây giờ chúng ta sẽ đi sâu vào chi tiết từng phần nhé.
Lập trình và khoa học máy tính
Bất cứ Lộ trình để trở thành Hacker đều phải có kiến thức về Code. Hầu hết mọi người không thích lập trình, đa số mọi người bây giờ thường dùng công cụ có sẵn để tấn công hay rà quét lỗ hổng hệ thống (Metasploit, nuclei, Burp Suite) nhưng đừng quên các kỹ năng tốt nhất đến từ các Lập trình và khoa học máy tính
Thật sự một Hacker giỏi nhất thường xuất phát từ nền tảng lập trình viên, họ hiểu cú pháp của đoạn Code đó viết về vấn đề gì, lỗ hổng nằm trong Code chỗ nào. Trong đầu họ đã mường tượng được cách thức hoạt động của phần mềm hoặc có thể tạo công cụ Hack của riêng mình (RAT, Worm, Virus) và điều quan trọng là phải có kiến thức về bất kỳ ngôn ngữ lập trình nào (không bắt buộc). Có rất nhiều khóa học mình đã chia sẻ chỉ cần chọn một ngôn ngữ lập trình và bắt đầu học.
Vậy nên học ngôn ngữ nào để Hack được?
Trong Lộ trình để trở thành Hacker này, mình sẽ giải thích ngôn ngữ nào nó làm gì và mục đích nào có thể được thực hiện?
– – – – – – – – – – – – – – – – – – – – – – – – – – – – – – –
Ngôn ngữ: HTML (không hẵn là ngôn ngữ lập trình)
Mục đích: hack web
Form đăng nhập và các phương thức nhập dữ liệu trên web sử dụng HTML để lấy dữ liệu
— — — — — — — — — — — — — — — — — — — — — — — — — — — — —
Ngôn ngữ: Javascript
Mục đích: Hack web
JavaScript là ngôn ngữ thực sự mạnh mẽ, có thể lấy cookie người dùng khác và nó có thể được thực thi trên trình duyệt của người khác
— — — — — — — — — — — — — — — — — — — — — — — — — — — — —
Ngôn ngữ: SQL
Mục đích: Hack web
Với ngôn ngữ này, bạn có thể truy cập dữ liệu phần mềm, web, biểu mẫu đăng nhập… thông qua lỗi SQL Injection
– – – – – – – – – – – – – – – – – – – – – – – – – – – – – – –
Ngôn ngữ: Python, Ruby, Bash, Perl
Mục đích: tạo phần mềm, tập lệnh
Những ngôn ngữ này là ngôn ngữ yêu thích của mình vì bạn có thể tạo ra những Tool, Code riêng để phù hợp với từng hệ thống khác nhau. Chẵng hạn như tấn công Brute Force, Man-in-the-Middle, v.v. và nó rất hữu ích để hiểu và tùy chỉnh các công cụ và tập lệnh đã được tạo
– – – – – – – – – – – – – – – – – – – – – – – – – – – – – – –
Ngôn ngữ: C/C++
Mục đích: viết tool khai thác, phần mềm độc hại, mã shell
Hai ngôn ngữ này cũng là ngôn ngữ yêu thích của nhiều Hacker lão làng, tuy nhiên khó hơn nhiều so với Python, v.v.. bạn có thể tạo rootkit, khai thác, phần mềm độc hại của riêng mình, v.v.
— — — — — — — — — — — — — — — — — — — — — — — — — — — — —
An ninh mạng
Bạn cũng cần phải tìm hiểu sâu hơn về lĩnh vực này vì mọi hệ thống đều phải hoạt động với internet để giao tiếp với nhau. Tìm hiểu về mô hình OSI, lỗ hổng bảo mật, v.v.. sau phần này, bạn sẽ học được nhiều điều về hack WIFI và Hack Server hoặc PC trong mạng nội bộ.
Bảo mật ứng dụng di động
Trong lĩnh vực này, bạn sẽ tìm hiểu mọi thứ về bảo mật, phần cứng, phần mềm của điện thoại nhằm phục vụ điều tra số.
Trong lĩnh vực này, bạn sẽ tìm hiểu về IOS, Android, v.v., bạn nên tập trung tìm hiểu về các tính năng bảo mật của hệ điều hành di động hiện đại.
Tuy nhiên ở Việt Nam chỉ có một số ít đơn vị đào tạo mảng này và thị trường việc làm chủ yếu là các công ty nước ngoài hoặc cơ quan có chức năng điều tra số.
Hiểu về mật mã – mã hóa
Phần này đặc biệt quan trọng vì hầu hết thông tin bảo mật đều được mã hóa nên nó đề cập và xuất phát từ các khái niệm toán học và nó là loại tính toán dựa trên quy tắc được gọi là thuật toán để chuyển đổi nội dung theo cách khó giải mã.
Bạn sẽ học qua các cách mã hóa và giải mã dữ liệu.
Bảo mật ứng dụng web
Trong phần này, bạn nên tập trung vào các lỗ hổng bảo mật tiềm ẩn thường ảnh hưởng đến ứng dụng web và là kỹ sư bảo mật web, bạn sẽ có thể hiểu CVE, cơ chế hoạt động web, v.v.
Để thành một người Pentester giỏi, bạn nên thực hành nhiều có rất nhiều trang web kiểm tra web miễn phí như: OWASP, DVWA, JUICE, v.v. và để hiểu cơ chế bảo mật web, bạn nên tìm hiểu và hiểu về 10 lỗ hổng hàng đầu của OWASP.
Kỹ năng giao tiếp – Kỹ năng mềm – Kỹ năng viết Report
Trong lộ trình trở thành Hacker thực thụ, bạn cần phải thường xuyên trao đổi kinh nghiệm và đặt câu hỏi thắc mắc với nhóm (Team), đối tác của mình, điều cực kỳ quan trọng để có lĩnh vực này vì là một Hacker, bạn phải viết báo cáo về các lỗ hổng mà bạn đã tìm thấy và phải chia sẻ kiến thức kỹ thuật của mình cho khách hàng có thể hiểu được mức nghiêm trọng của lỗ hổng ở hệ thống.
Nội dung bài viết Report về lỗ hổng bảo mật phải rõ ràng, dễ hiểu và ngắn gọn nhất có thể.
Học cách sử dụng các Tool Hack
Tất nhiên là dùng Tool sẽ nhanh hơn dùng tay, bạn cũng nên tìm hiểu một số Tool Recon, Tool Check lỗ hổng phổ biến để tiết kiệm trong quá trình lấy dấu vết hệ thống hoặc kiểm thử hệ thống.
Tool chỉ giúp ta tiết kiệm thời gian, chứ không giúp bạn nhanh chóng trở thành Hacker. Một Hacker thực thụ là phải biết hệ thống đó bị lỗi ở chỗ nào? Tại sao nó bị lỗi và cách khai thác như thế nào? Và cách sửa lỗi như thế nào?
Làm một số bài tập và ghi lại kinh nghiệm đã làm
Song song với học lý thuyết bạn nên thực hành trên chính hệ thống của mình hoặc các bài Lab của TryHackMe, Hack The Box… Sau đó tự rút ra kinh nghiệm sau mỗi lần hoàn thành xong bài Lab. Như thế kinh nghiệm sẽ được tích lũy dẫn cho đến khi bạn gặp được một hệ thống bị lỗi ở ngoài đời thực và dùng kiến thức đã có thể kiểm thử và tấn công. Hy vọng với Lộ trình để trở thành Hacker trên, bạn sẽ có cái nhìn tổng quan để biết mình nên học gì và làm gì để đi không bị chệch hướng.