Thứ Tư, ngày 04 tháng 5 năm 2016

AI ĐÃ HACK VÀO SERVER CỦA FACEBOOK?

Hồi cuối tuần trước, một hacker tên Orange Tsai đã viết về cách mà anh hack vào Facebook trong khuôn khổ chương trình tìm lỗ hổng do chính hãng này phát động (bug bounty). Trong chương trình đó, ai tìm được và khai thác được lỗ hổng bảo mật của Facebook sẽ được thưởng, nhờ vậy mà công ty biết được các mối đe dọa từ bên ngoài chứ không chỉ nhờ vào đội ngũ bảo mật của riêng mình. Nhưng Tsai không chỉ tìm được lỗi mà anh còn thấy là có ai đó đã hack Facebook được 8 tháng trời rồi, đoạn mã độc được nhúng vào có khả năng lấy trộm username, password và có thể là nhiều hơn thế nữa. Đến nay, danh tính của tin tặc đã tấn công Facebook vẫn chưa rõ...

Hack vào server và chiếm quyền điều khiển

Mọi chuyện bắt đầu khi Tsai làm vài nghiên cứu nho nhỏ và phát hiện ra một tên miền thú vị: tfbnw.net. Tên miền này thuộc sở hữu của Facebook, và nhiều khả năng nó viết tắt cho chữ "The Facebook Network". Sau đó, Tsai thấy thêm một sub domain nữa là vpn.tfbnw.net. Khi vào trang web này thì có một giao diện đăng nhập của phần mềm VPN do công ty Juniper phát triển. Phiên bản của phần mềm này khá mới, không có lỗ hổng nào có thể khai thác được.

Quay trở lại với tfbnw.net, Tsai nghĩ rằng tên miền này là để dùng cho nội bộ Facebook chứ không phải là dùng cho mạng xã hội mà công ty đang kiếm được hàng tỉ USD từ đó. Quét thử tên miền, anh phát hiện ra một số server đang chạy:

  • Mail server, dùng Outlook Web App
  • SSL VPN
  • Bộ phần mềm quản lý doanh nghiệp Oracle E-Business
  • Hệ thống quản lý thiết bị di động (MDM) của MobileIron
Dựa vào thông tin từ các server này, Tsai biết tên miền này rất quan trọng với Facebook trong việc hoạt động thường ngày.

Anh lại tiếp tục tìm hiểu thêm và phát hiện một subdomain tên là files.fb.com. Dựa vào logo và dòng footer trên website, có vẻ như đây là hệ thống trao đổi file Secure File Transfer (FTA) của hãng Accellion. FTA là sản phẩm cho phép sẻ file trực tiếp và đồng bộ file cũng như hỗ trợ các cơ chế sigle sign-on (dùng 1 username và password cho nhiều ứng dụng khác nhau).

Login.

Ngay khi thấy được giao diện này, Tsai bắt đầu thử tìm xem có lỗ hổng nào của FTA có thể được khai thác mà người ta đã biết tới hay chưa. Có một lỗ hổng được báo cáo gần đây nhất nhưng nó chỉ chạy với phiên bản 0.18, trong khi Facebook đã cập nhật lên bản 0.20 rồi. Nhưng bằng kinh nghiệm của mình, Tsai biết kiểu lập trình này sẽ vẫn còn để lại lổ hổng ở đâu đó, vậy là anh tiếp tục tìm hiểu để xem có thấy được lỗ hổng zero day nào hay không (zero day là lỗ hổng bảo mật chưa từng được phát hiện).

Nói thêm về FTA, nó sử dụng:
  • Giao diện nền web, chạy chủ yếu bằng ngôn ngữ lập trình PHP và Perl
  • Mã nguồn PHP được mã hóa bằng IonCube
  • Có khá nhiều tiến tình Perl chạy ngầm ở bên dưới
Đầu tiên Tsai thử giải mã mã nguồn. Lý do mà Accellion và nhiều hãng phần mềm khác phải mã hóa như thế này là để tránh hacker soi mói mã nguồn sản phẩm. May mắn là phiên bản IonCube dùng bởi FTA không phải là bản mới nhất và có thể giải mã dễ dàng bằng những công cụ có sẵn. Cuối cùng thì anh phát hiện ra danh sách các lỗ hổng sau:
  • 3 lỗi Cross-Site Scripting (có thể nhúng mã độc từ web khác vào)
  • Lỗi SQL Injection (thêm thắt các câu lệnh để chui vào cơ sở dữ liệu)
  • Secret key có thể dẫn đến việc bị điều khiển từ xa
  • 2 lỗi Local Privilege Escalation có thể dùng để chiếm quyền cao hơn bình thường
Bằng cách lợi dụng những lỗ hổng nói trên, Tsai đã chiếm được quyền kiểm soát server. Anh không công bố chi tiết cách làm, anh sẽ chỉ tiết lộ điều này với Facebook mà thôi.

Có gì đó lạ lạ...

Trong lúc đang nghịch ngợm trên server Facebook, Tsai phát hiện một số thứ lạ thông qua web log, một nơi ghi lại các hoạt động của PHP. Cụ thể hơn, trong đường dẫn “/var/opt/apache/php_error_log” có ghi một số dòng lỗi dường như xuất phát từ việc chỉnh sửa mã nguồn online. Truy vết, anh phát hiện được nhiều file được để lại bởi các "visitor" trước đây với nội dung đáng ngờ. Những file đó chứa các dòng mã nguồn thường dùng để mở backdoor giúp hacker truy cập vào máy. Anh xác định có ai đó đã tạo ra một "proxy" đứng giữa người dùng và server để đánh cắp các thông tin được truyền đi, bao gồm cả username và password.

Ma_nguoc.
Một đoạn mã nguồn bị phát hiện

Những thông tin sau khi bị ghi nhận lại sẽ được chứa trên một thư mục để hacker có thể lên đó lấy xuống. Cụ thể, link của file đó là https://files.fb.com/courier/B3dKe9sQaa0L.log (giờ thì đã bị đóng lại rồi). Trong giai đoạn từ ngày 1/1 đến 7/1 có 300 tài khoản đã bị thu thập thông tin, trong đó phần lớn là email đuôi @fb.com@Facebook.com. Khi nhìn thấy file này, Tsai chắc chắn đây là một vấn đề bảo mật.

Ghi_nhan_credentail_facebook.
Trích đoạn của file dùng để ghi nhận thông tin tài khoản

Nhưng hacker cũng hơi bất cẩn một chút. Các hàm backdoor mà hắn ta để lại có thể phơi bày danh tính của hắn. Và khi hacker đang gửi đi các lệnh thì nhiều dấu vết của hắn bị ghi nhận lại. File access.log cho thấy hacker có vẻ như truy cập vào server Facebook vài ngày một lần, trong ít nhất 8 tháng qua.

Phản hồi của Facebook

Khi bài viết của Tsai bắt đầu thu hút sự chú ý trên một forum bảo mật, một nhân viên của Facebook tên Reginaldo Silva đã vào comment rằng backdoor mà Tsai tìm thấy thực chất là một lỗ hổng được một nhà nghiên cứu khác để lại cũng trong chương trình hack mà Facebook tổ chức. Silva cũng nói thêm rằng server đó đã bị cô lập khỏi phần còn lại của hệ thống mà nhân viên Facebook sử dụng. "Đây là một chiến thắc kép: 2 nhà nghiên cứu đã xâm nhập được vào hệ thống, một trong số họ đã báo cho chúng tôi và nhận được phần thưởng, nhưng không ai có thể đi sâu hơn".

Có vẻ như việc thu thập 300 tài khoản của nhân viên Facebook chưa phải là việc "đi sâu hơn". Ai mà biết được với 300 tài khoản đó "nhà nghiên cứu" kia đã có thể làm gì. Ngay cả khi mọi thứ giống như Silva nói thì Facebook cũng khó lòng mà biết được khi mà tất cả diễn ra ở một phần mềm tách rời với cơ sở hạ tầng của Facebook. Dù sao đi nữa thì việc thu thập thông tin đăng nhập của trái với quy định của chương trình bug bounty của Facebook. Rõ ràng người đột nhập vào được hệ thống không phải là một người tham gia trong chương trình này.

Facebook vẫn thưởng cho Tsai số tiền 10.000$. Tuy nhiên, số tiền này có vẻ như vẫn còn quá ít so với một lỗ hổng có thể giúp hacker chiếm quyền điều khiển server và đánh cắp hàng đống tài khoản đăng nhập của nhân viên. Khi Tsai nói về số tiền này, nhiều nhà nghiên cứu trong cùng lĩnh vực cũng bày tỏ sự bất bình và họ đều cho rằng nó quá ít ỏi so với công của Tsai.

Đây không phải là lần đầu tiên Facebook bị chê vì trả tiền quá ít cho những người đã giúp hãng phát hiện nguy cơ bảo mật trong hệ thống. Hồi tháng 12 năm ngoái, nhà nghiên cứu Wesley Wineberg đã tìm thấy một loạt lỗ hổng trong Instagram cho phép anh chiếm quyền điều khiển gần như mọi thứ, kể cả mã nguồn của mạng xã hội hình ảnh lớn nhất thế giới. Cứ mỗi lỗ hổng tìm thấy, anh đều báo cáo cho Facebook và giữ lại dữ liệu như là một bằng chứng. Facebook chỉ trả anh ấy 2500$ cho lỗ hổng đầu tiên.

Nhưng chưa dừng lại ở đó, Alex Stamos, giám đốc bảo mật thông tin của Facebook, còn không thèm liên hệ với Wineberg để nói về những lỗ hổng vừa được phát hiện và cách thức phát hiện ra chúng. Thay vào đó, Stamos đã gọi cho nhà tuyển dụng của Wineberg và đe dọa sẽ kéo lực lượng chức năng vào cuộc. Đây là lý do vì sao Facebook bị giới bảo mật ghét khi đe dọa những nhà nghiên cứu có công trong việc tìm ra lỗi của chính hãng.

Hiện tại, với Tsai, mọi lỗi mà anh nói cho Facebook đã được khắc phục xong hết. Mãi một tháng sau Tsai mới đăng bài viết của mình, đó cũng là cách mà anh thể hiện trách nhiệm của một nhà nghiên cứu bảo mật và đảm bảo Facebook sẽ không bị hại từ việc công bố. Danh tính của hacker đã gắn script thu thập password vẫn chưa rõ ràng, Tsai cũng chưa có bằng chứng để liên hệ nó với bất kì người nào trên thế giới.

https://tinhte.vn/threads/ai-da-hack-vao-server-cua-facebook.2577914/

Không có nhận xét nào:

Đăng nhận xét