Khi nhắc đến hacker có lẽ hầu hết chúng ta đều liên tưởng đến các trang web bị tấn công và thay đổi giao diện, việc sử dụng trái phép thẻ tín dụng hay hình ảnh của một nhóm người mang mặt nạ là các thành viên thuộc nhóm hacker Anonymous, xa hơn nữa là những thông tin mật bị đánh cắp và đăng tải trên trang web Wikileak mà chương trình truyền hình đã đưa tin. Như vậy, một cách không chính thức mọi người đều cho rằng hacker là những kẻ xấu chuyên phá hoại và ăn trộm định danh, thông tin bí mật trên mạng internet, và điều này hoàn toàn sai đặc biệt là trong lĩnh vực Pentest hay còn được gọi là kiểm thử xâm nhập hệ thống.

Các Thuật Ngữ Về An Toàn Thông Tin

  • Để có thể nhận thức được các mối nguy hiểm chúng ta cần hiểu một số thuật ngữ sau trong lĩnh vực an toàn thông tin, đó là threat, remote exploit, local exploit, vulnerability, target of evaluation, attack.
  • Threat là các mối đe dọa đối với sự an toàn của thông tin bao gồm hacker, virus, sự cố máy tính như hư hỏng phần cứng, lỗi phần mềm cho đến những nguyên nhân do thiên tai, hỏa hoạn cũng là các threat.
  • Vulnerability là những điểm yếu về bảo mật của hệ thống như thiếu các bản vá lỗi bảo mật, sử dụng chính sách mật khẩu yếu … đều là các điểm nhạy cảm có khả năng bị các threat khai thác gây mất an toàn thông tin. Exploit là quá trình khai thác các điểm yếu bảo mật để đánh cắp thông tin, tiến trình này có thể được thực hiện bởi những tác nhân bên trong hay bên ngoài hệ thống.
  • Remote exploit là quá trình khai thác các lổ hỗng bảo mật từ xa ở trên máy tính khác hay từ internet.
  • Local exploit là quá trình khai thác những điểm yếu bảo mật ngay trên hệ thống để tiến hành leo thang nâng quyền hạn của một tài khoản, hay bẻ khóa mật khẩu của ứng dụng.
  • Target of evaluation là những mục tiêu có khả năng chứa các lổ hỗng bảo mật có thể bị tấn công. Các mục tiêu nay có thể là một máy chủ, máy trạm,những ứng dụng hay các trang web.
  • Attack là thuật ngữ chỉ tiến trình tấn công vào mục tiêu.

Những Kỹ Thuật Tấn Công

Có nhiều công cụ và phương pháp để tìm kiếm các lổ hỗng bảo mật, tiến hành khai thác, tấn công hệ thống. Những kỹ thuật này bao gồm trojan, backdoor, sniffer, rootkit, khai thác lỗi tràn bộ đệm Buffer Overflow hay SQL Injection … mà chúng ta sẽ thảo luận trong các phần sau. Thông thường hacker sẽ tập trung tìm kiếm các lổ hỗng bảo mật của những thành phần :

  • Hệ Điều Hành : Nhiều hệ thống được cài đặt và cấu hình mặc định, nghĩa là không có sự thay đổi hay tùy biến để nâng cao tính an toàn. Ngoài ra, những máy tính không được cập nhật các bản vá hay cài đặt các chương trình sữa lỗi bảo mật cũng là mồi ngon của các kẻ tấn công.
  • Ứng Dụng : Mỗi máy tính có nhiều ứng dụng được cài đặt, nếu những chương trình này có lổ hỗng bảo mật cũng có thể bị hacker tấn công chiếm quyền điều khiển từ xa.
  • Shrink-wrap Code : Đây là các thành phần mở rộng của ứng dụng mà nhiều người dùng không hề hay biết, nhưng hacker sẽ biết rất rõ các thành phần này ví dụ như chức năng macro trong ứng dụng MS Word cho phép các hacker chạy những chương trình độc hại trong ứng dụng xử lý văn bản này. Hay các lỗi Active X cho phép hacker chạy lệnh từ xa thông qua trình duyệt của nạn nhân.
  • Lỗi Cấu Hình : Việc cấu hình sai là một trong những nguyên nhân chính khiến hệ thống bị tấn công, ví dụ các lỗi liên quan đến việc gán quyền không chặt chẽ có thể cho phép hacker hay người dùng bất kì sao chép và chạy những chương trình trái phép.

Bên cạnh các kỹ thuật trên, những cuộc tấn công được chia làm hai trạng thái hoạt động là passvie (bị động) và active (chủ động). Những cuộc tấn công bị động thường khó dò tìm hơn vì không tương tác trực tiếp vào hệ thống hay đường truyền mà chỉ âm thầm thu thập các thông tin, dữ liệu. Nghe lén hay sniffing là dạng tấn công thuộc loại này, những hacker nghe lén dữ liệu được gọi là sniffer và thường tập trung vào tính riêng tư của thông tin.

Trong khi đó dạng tấn công chủ động có sự tương tác trực tiếp vào hệ thống xác thực hay đường truyền làm thay đổi tính toàn vẹn, ảnh hưởng đến khả năng đáp ứng của dữ liệu. Những dạng tấn công thuộc loại này như DDoS, Scan Port …

Bên cạnh sự phân loại tấn công dựa trên trạng thái hoạt động thì chúng ta còn xác định chúng theo vị trí địa lý là ở phía bên trong hay bên ngoài hệ thống tương ứng với các thuật ngữ là insise hay outside. Những kẻ tấn công inside là các insider thường là nhân viên hay những người có mối liên quan trực tiếp đối với tổ chức, vì vậy tác động của dạng tấn công này rất lớn và nguy hiểm. Theo một số thông kê thì có tới 80 % tác nhân gây mất mát thông tin là những thành viên bên trong của hệ thống. Tuy nhiên, những thành viên bên ngoài lại có những mối nguy hiểm khác vì họ thường đông đảo hơn, có trình độ kỹ thuật cao và mục tiêu tấn công của họ thường nhắm vào những hệ thống ít được bảo vệ hay có sự giao tiếp với môi trường công cộng (còn được gọi là môi trường không tin cậy) như các máy chủ cơ sở dữ liệu, trang web.

Các Giai Đoạn Tấn Công

Một cuộc tấn công được chia làm năm giai đoạn là Reconnaissance, Scaning, Gaining Access, Maintaining Access, và Covering Track một số tài liệu còn gọi là Clear Track như hình dưới đây:

  • Phase 1 : Passive và Active Reconnaissance

Reconnaissance là giai đoạn thu thập thông tin. Và passive reconnaissance là quá trình thu thập dữ liệu của một mục tiêu hay tổ chức mà không biết thông tin gì về tổ chức trên. Quá trình passive reconnaissance có thể chỉ đơn giãn là theo dõi thông tin hoạt động của một tòa nhà công sở để ghi nhận lại giờ giấc làm việc của nhân viên, tuy nhiên quá trình này thường được thực hiện thông qua các chương trình tìm kiếm như Google hay cơ sở dữ liệu Whois. Công đoạn này còn được gọi là information gathering hay thu thập thông tin trong toàn bộ tiến trình tấn công của hacker. Một trong các phương pháp thu thập thông tin một cách bị động như social engineering và dumpster diving mà chúng ta sẽ trình bày ở các chương sau.

Hình thức tấn công sniffing hay nghe lén là một trong những ví dụ điển hình nhất cho passive reconnaissance, với phương pháp này hacker có thể thu thập được nhiều thông tin giá trị như dãy địa chỉ IP, tên miền của tổ chức, các máy chủ ẩn danh hay những dịch vụ đang hoạt động trên mạng. Nghe lén thông tin tương tự như các hệ thống giám sát trong tòa nhà hoặc các thiết bị thu âm chuyên dùng để đánh cắp thông tin cuộc gọi, các cuộc nói chuyện của mục tiêu mà chúng ta thường thấy trên phim ảnh.

Ngược lại, active reconnaissance là quá trình thu thập thông tin của mục tiêu theo hình thức chủ động, lúc này hacker sẽ tác động trực tiếp lên đối tượng để ghi nhận các dữ liệu phản hồi. Một ví dụ của tình huống active reconnaissance là khi kẻ tấn công tiến hành dò quét mạng để xác định các máy đang hoạt động hay những dịch vụ đang chạy trên một hệ thống nào đó thông qua các công cụ như Nessus, Supperscan. Vì mang tính chất chủ động nên kết quả thu thập được sẽ nhanh chóng và khả quan hơn so với passive reconnaissance nhưng acvtive reconnaissance dễ bị phát hiện, dò tìm hơn.

Cả hai hình thức passive reconnaissance và active reconnaissance thường được các kẻ tấn công sử dụng để tìm kiếm thông tin hữu ích về máy chủ web hay hệ điều hành đang sử dụng. Reconnaissance cũng được thực hiện bởi các chuyên gia bảo mật trong tiến trình tấn công thử nghiệm gọi là penetration test hay pentest. Tuy nhiên, pentest là hành động hợp pháp nên người thực hiện là penetration tester thường sử dụng active reconnaissance để nhanh chóng thu nhận kết quả.

  • Phase 2 : Scanning

Scanning là quá trình thuộc giai đoạn thu thập thông tin reconnaissance . Các hacker tiến hành scanning bằng các chương trình quét lỗi hệ thống, quét địa chỉ IP hay các cổng đang mở bằng ứng dụng Nmap, là Acunetix Web Vulnerability Scanner, hay Angry Ip Scan.

  • Phase 3 : Gaining Access

Gaining access là quá trình thâm nhập mục tiêu khi quá trình khai thác và tấn công thành công. Lúc này hacker sẽ xâm nhập vào hệ thống và tiến hành các hành động đánh cắp tập tin mật khẩu hay phá hủy dữ liệu, chạy những chương trình nguy hiểm, leo thang đặc quyền để có thể truy cập vào các khu vực thông tin bí mật. Muốn thâm nhập thành công hacker cần sử dụng thông tin mà tiến trình reconnaissance và scanning thu thập được, dựa trên các thông tin này hacker sẽ xác định phương án tấn công hợp lý như sử dụng mã khai thác lỗi tràn bộ đệm (buffer overflow), hay chiếm quyền sử dụng của phiên làm việc của người dùng (session hijacking) mà chúng ta sẽ trình bày trong các Module 11 Session Hijacking và Module 17 Buffer Overflow của giáo trình.

  • Phase 4: Maintaining Access

Một khi đa xâm nhập hệ thống thành công hacker thường cài đặt chương trình gián điệp để có thể duy tri sự kiểm soát, nghe lén thông tin người dùng nhập vào từ bàn phím hay mơ các công hậu để có thể quay lại vào các lần sau, công đoạn này được gọi là maintaining access. Những mã độc nguy hiểm các hacker dùng để cấp vào máy tính bị tấn công được gọi là trojan hay backdoor.

  • Phase 5: Covering Track

Covering track hay clear track là hành động xóa dấu vết của các hacker để tránh bị phát hiện. Các hành động này có thể là xóa tập tin nhật kí của ứng dụng hay hệ thống, xóa các chương trình đã được cài đặt, ẩn các tiến trình nguy hiểm.