Cách để trở thành một hacker

Những hacker với chiếc áo hoodie đen bí ẩn chưa bao giờ hết ngầu trong mắt chúng ta. Đó cũng là mơ ước và mục tiêu của không ít người. Vậy con đường đó bắt đầu từ đâu, chúng ta hãy cùng tìm hiểu

Hacker mũ trắng là gì?

Để kiểm tra tính an toàn của một hệ thống, cần có những chuyên gia bảo mật kiểm tra. Một hacker mũ trắng là người trực tiếp tấn công hệ thống với mục đích kiểm tra tính bảo mật của nó, hành động này không có mục đích phá hoại hoặc đánh cắp dữ liệu. Khác với Hacker mũ trắng, Hacker mũ đen tấn công vào các lỗ hổng không được sự cho phép để nhằm trục lợi cá nhân.

Kiến thức bắt buộc phải học để trở thành một Hacker

Để tham gia vào lĩnh vực bảo mật CNTT với tư cách là một chiếc mũ trắng, bạn nên thông thạo các lĩnh vực sau:

  • Mạng
  • Lập trình
  • Cơ sở dữ liệu
  • Hệ điều hành (Linux và Windows) Khi đảm bảo khi đã nắm đủ tốt kiến thức trên, bạn có thể bắt đầu học về hack. Hacker khác với một lập trình viên thông thường, họ không đi sâu vào mảng lập trình nhất định (Nhưng trải dài ở nhiều mảng). Vì vậy, bạn không nhất thiết phải học lập trình, hiểu cách chúng hoạt động là đủ. Tuy nhiên, nếu hiểu rõ nó là một lợi thế lớn. Khi bạn đã có kiến thức về các nguyên tắc cơ bản của CNTT, bạn có thể học cách phá vỡ một số lỗ hổng cơ bản trong kiến trúc máy tính.

Những lĩnh vực nào cần tập trung để xây dựng nền tảng

  • Mạng - Các khóa học của Cisco thực sự tốt. Có rất nhiều khóa học CCNA mà bạn có thể đăng ký học.
  • Lập trình - Học các ngôn ngữ như C++, Python và PHP.
  • Cơ sở dữ liệu - Làm việc với MySQL và tạo cơ sở dữ liệu của riêng bạn để biết nó hoạt động như thế nào.
  • Hệ điều hành. Ngoài ra, cần tìm hiểu những lĩnh vực khó hiểu hơn của Windows như registry.

Tìm hiểu UNIX / LINUX

Hầu hết tất cả các hệ điều hành hỗ trợ hacker tốt nhất đều dựa trên nhân Linux, vì vậy hệ điều hành yêu thích của các hacker luôn luôn là Linux. UNIX / LINUX là hệ điều hành mã nguồn mở cung cấp khả năng bảo mật tốt hơn cho hệ thống máy tính. Nó được AT&T phát triển lần đầu tiên trong phòng thí nghiệm Bell và đóng góp rất nhiều vào thế giới bảo mật.Bạn nên cài đặt LINUX, các phiên bản nguồn mở có sẵn miễn phí trên máy tính vì:

"Nếu không học UNIX / LINUX, bạn KHÔNG THỂ TRỞ THÀNH HACKER!" Tiếp theo, bạn nên học thêm về các hệ điều hành:

  • Kali Linux
  • Parrot Security OS
  • BackBox
  • BlackArch Linux

Học mật mã / mã hóa

Để có thể thành công trong lĩnh vực bảo mật, bạn cần nắm vững kiến thức về mã hoá mật mã. Có thể nói mã hoá và giải mã là những kỹ năng quan trọng trong việc hack. Mã hoá được thực hiện rộng rãi trong việc bảo mật hệ thống thông tin và toàn vẹn dữ liệu. Những thông tin quan trọng thường được mã hoá như mật khẩu, trong quá trình hack hệ thống những mã hoá này cần được bẻ gãy , quá trình đó được gọi là giải mã

Một số cuốn sách mà Hacker nào cũng nên đọc

  • Linux Basics for Hackers
  • The Hackers Playbook 2 & 3
  • The Web Application Hacker’s Handbook: Finding and Exploiting Security Flaws
  • Hacking: The Art of Exploitation, 2nd Edition
  • Penetration Testing: A Hands-On Introduction to Hacking
  • Metasploit: The Penetration Tester’s Guide

Biết về các công cụ phần cứng mới nhất

Khi đã có đủ kỹ năng và kinh nghiệm, bạn cần có nhiều công cụ để có thể hoàn thành tốt nhiệm vụ:

  • Hackerwarehouse
  • Hack5
  • Hacker Equipment
  • HackaDay
  • SPY Goodies

Tham gia các khóa học trực tuyến được công nhận trên toàn thế giới

Tất cả các khóa học này đều là những khóa học có trả phí và được các chuyên gia trong ngành công nhận. Khóa học sẽ giúp bạn có nền tảng vững chắc để làm việc trong lĩnh vực bảo mật CNTT.

  • CEH — (Certified Ethical Hacker)
  • CHFI — (Computer Hacking and Forensic investigator)
  • OSCP — (Offensive Security Certified Professional)
  • OSCE — (Offensive Security CertifiedCertified Expert)

Tải xuống môi trường thực hành để thực hành và rèn luyện các kỹ năng Hack mới học.

Bạn không thể chỉ đọc mà thành thạo được những kiến thức mới học, việc quan trọng nhất của một người bảo mật viên là không ngừng thực hành, học hỏi những cái mới:

Trong quá trình làm việc cũng như tham gia giảng dạy các khóa học, mình thưỡng xuyên nhận được những câu hỏi của các bạn như: Làm sao bắt đầu học bảo mật vậy anh? Hay làm hacker thì cần bắt học cái gì vậy anh? Làm bảo mật là làm công việc gì vậy anh? Làm bảo mật có khó không vậy?.. Rất nhiều câu hỏi được đặt ra và trong thời gian ngắn thì mình cũng chỉ có thể đưa ra những câu trả lời đại khái theo kiểu định hướng và chung chung chứ khó có thể mô tả chi tiết được. Vì đơn giản để làm được một công việc nào đó không hề dễ, và để làm việc đó giỏi, trở thành chuyên gia trong lĩnh vực đó lại càng khó. Mỗi chúng ta cần có quá trình học hỏi, rèn luyện và kiên trì để có thể đạt được thành quả. Vì vậy, mình mong muốn các bạn đọc bài viết này có được cái nhìn tổng quan cũng như hiểu rõ hơn về công việc của một hacker mũ trắng (pentester) là gì và làm sao để có thể trở thành một pentester trong tương lai.

Bài viết này hướng tới đối tượng là những bạn mới vào nghề hoặc những bạn có định hướng vào nghề. Những bạn đã trong nghề lâu năm hay những "chiên gia đầu ngành" mình mong muốn có những góp ý hay đóng góp để bài viết hoàn thiện hơn. Bài viết hoàn toàn trên những chia sẻ cá nhân nên có thể có những kinh nghiệm hay định hướng chưa thực sự phù hợp với tất cả. Bài vết của mình chỉ với mong muốn giúp các bạn có định hướng vào nghề có thêm thông tin và vững bước hơn. Giờ thì chúng ta vào việc thôi!

Làm pentester là làm gì?

Điều đầu tiên chúng ta cần quan tâm là nếu làm nghề này thì chúng ta sẽ làm gì? Pentest là thuật ngữ chuyên môn dùng để miêu ta hành động kiểm thử xâm nhập (giả lập các cuộc tấn công như một kẻ tấn công thực sự) vào phần mềm (web, ứng dụng mobile, thiết bị phần cứng, server, network... để tìm ra những lỗ hổng bảo mật của đối tượng. Từ những cuộc tấn công giả lập, nhà phát triển có thể đánh giá được phần mềm của mình có đang an toàn và từ đó đưa ra giải pháp phù hợp để giúp hệ thống trở nên an toàn hơn trước những kẻ tấn công. Vì đó pentester có thể coi như là hacker mũ trắng giúp bảo vệ phần mềm, ngược lại là hacker mũ đen là những kẻ tấn công phá hoại hay thực hiện các hành vi xấu tổn hại tới hệ thống. Mình đã có một bài viết làm rõ hơn về khái niệm penetration test tại Hiểu hơn về penetration test các bạn có thể đọc để hiểu hơn về công việc này.

Các pentester sẽ làm việc ở đâu?

Chúng ta có thể làm việc tại các công ty cung cấp dịch vụ kiểm thử bảo mật (Ví dụ ở Việt Nam: Viettel, CMC, FPT..), những công ty chuyên về CNTT hay phần mềm, những tổ chức tài chính - ngân hàng (Ví dụ: Vietcombank, Techcombank..), những công ty viễn thông (Viettel, VNPT..), các ban ngành thuộc nhà nước (Ban cơ yếu chính phủ, Trung tâm Giám sát an toàn không gian mạng quốc gia).v.v. Nói chung là rất nhiều các công ty có các lĩnh vực có liên quan đến CNTT.

Một hướng khác mà các bạn có thể giành thời gian làm part-time hay full-time là làm những bug bounty hunter (Tìm kiếm lỗ hổng bảo mật có trả tiền trên các nền tảng bugbounty). Các bạn có thể lên các nền tảng chuyên về bug bounty để kiếm thêm thu nhập (hackerone, bugcrowd, safevuln, whitehub..). Đây là công việc đòi hỏi các bạn có kỹ năng khá và giành thời gian kha khác để có thể đạt được kết quả. Có khi là 1 tháng, 3 tháng thậm chí là 1 năm. Mình cũng khá vất vả để có thể đạt được quả ngọt đầu tiên. Nên những bạn có hướng theo cái này phải xác định rõ từ đầu và thật kiên trì.

Ngoài hai hướng chính trên chúng ta có thể đi theo hướng khác như: Tham gia tư vấn về an toàn thông tin, tham gia đào tạo giảng dạy về an toàn thông tin nếu các bạn có kiến thức đủ tốt.

Chúng ta cần bắt đầu như thế nào?

Tiếp theo, chúng ta cần quan tâm tới việc chúng ta cần học những gì, làm những gì để có thể làm tốt công việc trên.

Học tập tại các trường đào tạo về An toàn thông tin:

Đây là một trong những bước đầu tiên giúp chúng ta có hành trang tốt cho con đường sau này. Những trường này thường có các chuyên nghành về An toàn thông tin để đào tạo chuyên sâu, trang bị cho sinh viên những kiến thức căn bản để có thể bước đầu bước chân vào nghề này. Ở Việt Nam có thể kể đến một số trường như: Học viện Kỹ thuật Mật mã, Đại học bách khoa Hà Nội, Học viện Công nghệ Bưu chính Viễn thông,... Vậy nếu chúng ta không học ở những trường có chuyên nghành vê An toàn thông tin thì sao? Đương nhiên là các bạn vẫn hoàn toàn có thể chọn con đường này để đi tiếp. Các bạn theo học một trường về công nghệ thông tin thì các bạn cũng sẽ được trang bị những kiến thức căn bản giúp ích cho các bạn có thể tiến xa hơn trong lĩnh vực này. Lời khuyên của mình là các bạn có thể theo học một trường không phải chuyên về an toàn thông tin và tranh thủ tìm hiểu thêm kiến thức trong thời gian là sinh viên, việc đó sẽ giúp các bạn đỡ bỡ ngỡ hơn trong con đường dài sau này.

Lập trình:

Lập trình là một kiến thức quan trọng mà các pentester cần có. Chúng ta cần hiểu cơ bản về logic hoạt động của chương trình, những mô hình thiết kế cơ bản, cách hoạt động và giao tiếp của các ứng dụng để từ đó có thể thực hiện kiểm tra nó một cách dễ dàng. Chắc hẳn việc học trong các trường đại học - cao đẳng thì các bạn đã được trang bị căn bản về kiến thức lập trình nên việc phát triển thêm nó là hoàn toàn có thể. Các bạn có thể chọn cho mình một ngôn ngữ lập trình và học nó (Python, php, java...) là những ngôn ngữ mà các bạn có thể chọn. Đương nhiên các bạn có thể học những ngôn ngữ khác. Nhưng theo mình hiểu căn bản về web, ứng dụng mobile và network là cần thiết để có thể đi sâu trong lĩnh vự này

Học và thực hành khai thác lỗ hổng bảo mật:

Học đi đôi với hành, muốn kiến thức nhớ được lâu và áp dụng được vào thực tế chúng ta cần thực hành thường xuyên. Học 4 phần thì thực hành phải chiếm 6 phần để có thể vào việc một cách nhanh nhất. Thực hành lập trình những chương trình, tool đơn giản để luyện tập kiến thức lập trình. Mình sẽ giới thiệu một số trang thực hành online kiến thức bảo mật giúp ích cho các bạn vừa học vừa thực hành khi mới bắt đầu"

OWASP: https://owasp.org/: Đây là một Project giúp các bạn tìm hiểu các kiến thức căn bản về lỗ hổng bảo mật web, mobile..

PortSwigger Web Security Academy: https://portswigger.net/: Một website vừa học kiến thức mới kết hợp thực hành các bài lab về lỗ hổng bảo mật hay thích hợp cho các bạn bắt đầu

Root-me: https://www.root-me.org/ Học kiến thức về bảo mật: Web, reverse, exploit server..

Try hack me: https://tryhackme.com/: Trang đào tạo về khai thác lỗ hổng bảo mật..

Tham gia các khóa học về bảo mật:

Tham gia các khóa học offline hoặc online về bảo mật để giúp quá trình học của chúng ta được như và căn bản hơn. Một số trang cung cấp khóa học online mà các bạn có thể tham khảo:

Udemy: https://www.udemy.com/

Coursera: https://www.coursera.org/

Học kiến thức căn bản về network, hệ thống:

Các bạn cần tìm hiểu kiến thức cơ bản về network, ứng dụng, hệ thống: Mô hình OSI, network, TCP. Việc hiểu các mô hình mạng, cách hoạt động giao thức giúp chúng ta có thể dễ dàng hiểu về cách thức trao đổi thông tin giữa các thành phần trong hệ thống từ đó có thể tìm ra các lỗ hổng bảo mật

Liên tục học và cập nhật kiến thức mới

Đọc bào, bài viết, báo cáo về lỗ hổng bảo mật hoặc những nghiên cứu về kiến thức bảo mật: Đây là cách giúp chứng ta có thể học thêm được nhiều kiến thức mới từ những người đi trước cũng như giúp chứng ta tự bổ sung kiến thức cho mình. Đọc các bài báo, báo cáo lỗ hổng giúp chúng ta hiểu và biết cách khai thác các lỗ hổng, giúp ích cho công việc của chúng ta. Thường xuyên follow những hacker, chuyên gia bảo mật để có thêm những cập nhật mới nhất về lỗ hổng hay tin tức bảo mật. Chúng ta cần xác định phải luôn tự học và cập nhật kiến thức mới để không bị bỏ lại.

Thi chứng chỉ về bảo mật:

Sau khi có những kiến thức cũng như kinh nghiệm trong lĩnh vực này, việc thi một chứng chỉ bảo mật là nên vì nó giúp các bạn có cơ hội thăng tiến trong công việc cũng như sự nghiệp. Chúng ta có thể bắt đầu với các chứng chỉ của EC-Council (CEH, ECSA), chứng chỉ của Offensive (OSCP, OSWE..) hay cao cấp hơn là chứng chỉ CISSP của ISC2, hoặc các chứng chỉ của GIAC Certifications..

Chia sẻ kiến thức:

Sau khi có được những kiến thức, việc chia sẻ kiến thức đó cho người khác giúp mình một lần nữa củng cố kiến thức và nhớ lâu. Bên cạnh đó còn giúp chúng ta nhận về được nhiều những kiến thức thiếu sót qua việc đóng góp hay góp ý của người khác. Giúp chúng ta có tiếng nói hơn trong cộng đồng.

Lời kết

Những chia sẻ trên của mình có thể còn chưa đầy đủ và hay nhưng mình mong các bạn trẻ khi có đam mê và yêu thích lĩnh vực an toàn thông tin có thể chọn cho mình con đường đi đúng đắn và ngày càng tiến xa trong sự nghiệp của mình. Chúc các bạn thành công