Tôi bắt đầu quen thuộc với lịch trình thường nhật ở Denver. Tôi làm việc ở hãng luật từ 9 giờ sáng đến 6 giờ tối. Sau đó, tôi dành vài giờ ở phòng gym, ăn tối ở một nhà hàng địa phương rồi về nhà hoặc quay trở lại công ty. Tới giờ đi ngủ, tôi làm gì hẳn các bạn cũng đoán được.
Hacking là thú vui của tôi. Bạn có thể nói rằng đây là một phương thức để tôi trốn tránh hiện thực luân phiên[1] – giống như chơi trò chơi điện tử vậy. Nhưng để chơi trò chơi mà tôi đã chọn, bạn phải luôn cảnh giác. Chỉ một chút xao nhãng hay một sai lầm tùy tiện nào đó, cảnh sát liên bang có thể sẽ xuất hiện ngay trước cửa nhà bạn. Không phải là dạng mô phỏng kiểu G-men[2], cũng không phải là những pháp sư hắc ám trong Dungeons and Dragon[3], mà là những tay cớm hàng thật giá thật, những kẻ sẽ khóa-bạn-lại-và-ném-phắt-chìa-đi.
Lúc này, tôi đang dành nhiều thời gian để tìm hiểu hệ thống mới nhằm tìm kiếm các phương thức đấu trí với những chuyên gia bảo mật, quản trị viên mạng lưới và hệ thống cũng như các tay lập trình viên tài giỏi mà tôi gặp trong hiện thực luân phiên. Tôi làm vậy đơn thuần chỉ vì niềm vui sướng.
Không có ai cùng tôi chia sẻ thành công, tôi dồn tâm trí vào việc thu thập mã nguồn cho những gì mình thực sự hứng thú, ví dụ như hệ điều hành và điện thoại di động. Các mã nguồn có được sẽ là chiến tích của tôi. Tôi dần trở nên thành thạo tới mức đôi khi mọi chuyện thật quá dễ dàng.
Giờ đây, khi đã hoàn toàn cắt đứt liên hệ với cuộc sống cũ, tôi không còn gì để mất. Tôi đã sẵn sàng. Làm sao để chơi lớn hơn nữa đây? Tôi phải làm gì để những cuộc hacking trong quá khứ chỉ còn là mấy trò trẻ con?
Các công ty công nghệ hàng đầu thường có hệ thống bảo mật tốt nhất thế giới. Nếu tôi thực sự muốn đạt được chiến tích gì đó có ý nghĩa, tôi cần phải thử tấn công vào đây và có được mã nguồn của họ.
Tôi đã khá thành công với Sun. Giờ tôi sẽ nhắm tới Novell, công ty mà tôi phát hiện có dùng máy chủ chạy hệ điều hành SunOS làm gateway[4] tường lửa của họ. Tôi tận dụng một lỗi trong chương trình gọi là “sendmail” do chương trình này thường được dùng để nhận e-mail từ bên ngoài. Mục tiêu của tôi là lấy được mã nguồn của một trong những hệ điều hành mạng lưới hàng đầu thế giới, NetWare của Novell.
Tôi có thể tạo bất kỳ tập tin nào với nội dung mong muốn nhờ tận dụng lỗi bảo mật chưa vá trong chương trình sendmail. Qua hệ thống, tôi kết nối với chương trình sendmail và gõ vào vài dòng lệnh kiểu như sau:
mail from: bin rcpt to: /bin/.rhosts
[text omitted]
mail from: bin rcpt to: /bin/.rhosts
data + +
Quit
Những dòng lệnh này chỉ thị chương trình sendmail tạo một tập tin “.rhosts” (đọc là dot-R-hosts”), cho phép đăng nhập mà không cần mật khẩu.
(Dành cho độc giả có kiến thức chuyên ngành: Tôi có thể tạo ra một tập tin .rhosts trong tài khoản bin nhằm cho phép mình đăng nhập mà không cần nhập mật khẩu. Tệp .rhosts là tệp cấu hình dùng kèm các chương trình hệ thống cũ nhất định gọi là “R-services”, được dùng để đăng nhập hay chạy lệnh từ xa. Ví dụ, tệp .rhosts có thể được cài đặt để cho phép người dùng “kevin” từ máy có hostname “condor” đăng nhập mà không cần cung cấp mật khẩu. Trong ví dụ kể trên, hai dấu cộng cách nhau một dấu cách tạo thành ký tự đại diện cho cả user và hostname – tức là bất kỳ user nào cũng có thể đăng nhập vào tài khoản và chạy lệnh. Bởi tài khoản bin có quyền chỉnh sửa trong thư mục “/etc”, nên tôi có thể thay thế mật khẩu của tập tin bằng mật khẩu của riêng mình, cho phép tôi chiếm quyền quản trị root access.)
Kế tiếp, tôi cài một phiên bản bị hack của “telnetd” có nhiệm vụ thu thập và lưu giữ mật khẩu của bất kỳ ai đăng nhập vào thiết bị gateway. Khi đã yên vị trong mạng lưới của Novell, tôi thấy có hai user khác cũng đăng nhập và đang hoạt động. Nếu họ vô tình phát hiện ra có người đăng nhập vào hệ thống từ xa, họ sẽ ngay lập tức biết rằng công ty mình đã bị tấn công. Do đó, tôi cần thực hiện thêm vài bước để ẩn thân: Nếu bất kỳ quản trị viên hệ thống nào mở danh sách người dùng hiện đang có mặt trên hệ thống, họ sẽ không thấy tên tôi.
Tôi tiếp tục quan sát cho tới khi một trong những quản trị viên đăng nhập vào gateway; lúc này tôi có thể lấy được mật khẩu của anh ta cho tài khoản quản trị toàn quyền. Mật khẩu là “4kids=$$”. Thật dễ thương!
Không mất quá nhiều thời gian để đột nhập vào một hệ thống khác gọi là “ithaca”, một trong những hệ thống của Nhóm Kỹ thuật ở Sandy, Utah. Một khi tấn công được vào hệ thống này, tôi có thể thu được tập tin mã hóa chứa mật khẩu của toàn bộ Nhóm Kỹ thuật và khôi phục được một lượng lớn các mật khẩu của user thông thường.
Tôi tìm kiếm trong e-mail của các quản trị viên hệ thống theo từ khóa “modem”, “dial-up” và “dial-in” ở các dạng khác nhau – số nhiều, số ít, có và không có dấu gạch ngang ở sau chữ “dial”, vv... Nhờ vậy, tôi đã tìm được các tin nhắn trả lời câu hỏi của nhân viên công ty kiểu như: “Tôi cần gọi theo số nào để kết nối?” Rất thuận tiện.
Sau khi tìm ra số điện thoại, tôi dùng nó làm điểm truy nhập thay vì kết nối qua Internet gateway của Novell như trước.
Để bắt đầu, tôi muốn tìm hệ thống có chứa mã nguồn của hệ điều hành NetWare. Tôi bắt đầu tìm trong hòm thư lưu trữ của các nhà phát triển, tra những cụm từ có thể giúp tôi tìm được quy trình cập nhật thay đổi lên kho mã nguồn. Cuối cùng, tôi tìm ra một hostname của kho lưu trữ mã nguồn: “ATM”. Đây đương nhiên không phải là một máy rút tiền, nhưng với tôi nó đáng giá hơn thế. Tôi quay lại tìm kiếm trong hòm thư bằng từ khóa “ATM” và tìm ra tên của vài nhân viên hỗ trợ hệ thống.
Tôi dành ra hàng giờ cố gắng đăng nhập vào ATM bằng các tài khoản đã hack được trên Unix nhưng đều không thành công. Cuối cùng, tôi tìm được một tài khoản hợp lệ, nhưng lại không có quyền truy cập vào kho lưu trữ mã nguồn. Đã đến lúc dùng tới đòn tấn công bằng kỹ thuật xã hội. Tôi gọi tới số của một phụ nữ làm công việc hỗ trợ trên ATM. Giả danh là tay kỹ sư mà tôi đã ăn trộm được mật khẩu, tôi nói với cô ta rằng mình đang thực hiện một dự án và cần quyền truy cập vào mã nguồn khách hàng Netware 3.12. Tôi linh cảm có điều gì đó không ổn nhưng người phụ nữ này lại không có vẻ gì nghi ngại.
Khi cô ta nhấc máy lên lần nữa và nói rằng tôi đã có đủ quyền truy cập mình yêu cầu, tôi cảm thấy dòng adrenaline quen thuộc lại trào dâng. Nhưng chỉ sau 15 phút, tôi đã bị ngắt kết nối và không thể kết nối lại – tôi bị đá văng ra ngoài. Vài phút sau, tay kỹ sư kia thay đổi mật khẩu. Không mất nhiều thời gian để hiểu được lý do tại sao. Sau này tôi mới biết người phụ nữ đó đã từng nói chuyện với tay kỹ sư mà tôi mượn tên và nhận ra giọng tôi không hề giống. Cô ta biết tôi là kẻ mạo danh.
Chết tiệt! Cái được cái mất.
Tôi lại gọi cho một quản trị viên khác cũng hỗ trợ ATM và thuyết phục anh ta cho tôi quyền đăng nhập vào một trong những tài khoản khác mà tôi chiếm được, để rồi tôi lại bị khóa trái một lần nữa. Tôi cài thêm phần mềm gián điệp trên nhiều hệ thống để ăn cắp các tài khoản đã đăng nhập.
Tính tới thời điểm này, tôi đã mất vài ngày cho phi vụ này. Tìm kiếm e-mail là cách nhanh chóng nhất để khám phá ra nguồn thông tin hấp dẫn, cho tôi biết cách đăng nhập vào hệ thống, các lỗi phần mềm hay các mã nguồn tôi yêu thích.
Giờ thì tôi biết họ đang giám sát hệ thống gắt gao và sẽ không đời nào để bị lừa một lần nữa, vậy nên tôi thay đổi chiến thuật. Nếu nhắm vào một nhà phát triển có toàn quyền đăng nhập và lừa anh ta sao chép mọi thứ cho mình thì sao? Tôi thậm chí còn chẳng tìm cách đăng nhập vào ATM để có được những gì mình muốn nữa.
Sau khi tìm hiểu hệ thống nội bộ của Novell trong vài ngày, tôi phát hiện ra một công cụ thú vị mà bất kỳ nhân viên Novell nào cũng có thể sử dụng. Đó là chương trình “411”, liệt kê toàn bộ tên, số điện thoại, tên đăng nhập và phòng ban của từng nhân viên. Vận may đã tới. Tôi chuyển toàn bộ danh sách nhân viên vào một tập tin để phân tích. Nhìn lướt qua danh sách, rõ ràng là tất cả các nhà phát triển đều làm việc trong một nhóm gọi là “ENG SFT”. Các dự án phát triển Netware thường được giao cho trụ sở chính của công ty ở Provo, Utah.
Tìm kiếm trong thư mục theo hai điều kiện này, tôi lấy ngẫu nhiên một cái tên:
Nevarez, Art:801 429-3172:anevarez:ENG SFT
Có mục tiêu trước mắt rồi, giờ tôi cần phải giả danh một nhân viên chính thức của Novell. Tôi muốn chọn một nhân viên hợp đồng hay ai đó mà đối tượng của tôi khó có thể quen biết. Trong danh bạ có bộ phận Univel, có lẽ được thành lập khi Novell và Phòng Nghiên cứu Hệ thống Unix của AT&T bắt đầu liên doanh vào năm 1991. Thêm nữa, tôi cần phải tìm một nhân viên hiện không làm việc tại văn phòng. Lựa chọn đầu tiên của tôi là:
Nault, Gabe:801 568-8726:gabe:UNIVEL
Tôi gọi tới văn phòng và nghe lời chào của hộp thư thoại, thông báo rằng anh ta sẽ không có mặt ở công ty trong vài ngày tới, không thể sử dụng e-mail và hộp thư thoại. Từ danh mục nhân viên, tôi chọn ra một người phụ nữ làm việc ở Phòng Viễn thông và quay số gọi cho cô ta:
“Xin chào Karen,” tôi nói. “Tôi là Gabe Nault gọi từ Midvale. Tối qua, tôi thay đổi mật khẩu hộp thư thoại mà không được. Cô có thể reset nó được không?”
“Được. Số của anh là gì?” Tôi cho cô ta số của Gabe.
“Được rồi, mật khẩu mới của anh là 5 số cuối điện thoại nhé.”
Tôi lịch sự cảm ơn cô ta, sau đó quay số gọi cho Gabe ngay lập tức, nhập mã mật khẩu mới và ghi âm giọng chào mới bằng giọng của mình, thêm vào một đoạn. “Tôi có vài cuộc gọi hôm nay, nên tốt nhất là bạn hãy vui lòng để lại tin nhắn thoại. Xin cảm ơn.” Giờ thì tôi đã là một nhân viên hợp lệ với số điện thoại nội bộ của riêng mình.
Tôi gọi cho Art Nevarez, nói với anh ta rằng tôi là Gabe Nault ở Phòng Kỹ thuật và hỏi: “Anh có làm trên NetWare không? Tôi ở Univel.”
“Có,” anh ta đáp.
“Tốt quá. Anh có thể giúp tôi được không? Tôi đang dùng NetWare cho một dự án Unix và tôi cần chuyển bản sao mã nguồn khách hàng NetWare 3.12 tới đây, ở Sandy. Tôi sẽ lập một tài khoản của anh trên máy chủ ‘enchilada’ để anh có thể chuyển mã giúp tôi nhé.”
“Được. Số của anh là gì? Tôi sẽ gọi khi xong việc,” anh ta nói.
Sau khi dập máy, tôi thấy vô cùng phấn chấn. Không cần phải chiếm quyền đăng nhập vào ATM – chỉ cần thuyết phục ai đó có quyền là được.
Tôi tới phòng gym, kiểm tra hộp thư thoại của Gabe lúc nghỉ giải lao và phát hiện ra một tin nhắn từ Art nói rằng anh ta đã làm xong. Tuyệt vời! Giờ thì tôi đã có được sự tín nhiệm, tại sao không đi xa hơn một chút để nhờ thêm một sự hỗ trợ nhỏ nữa? Tôi gọi lại cho Nevarez ngay tại phòng tập và nói: “Cảm ơn anh, Art. À xin lỗi, nhưng tôi mới phát hiện ra mình cần cả client utility 4.0 nữa.”
Anh ta có vẻ hơi khó chịu: “Có rất nhiều tập tin trên máy chủ đó, không còn chỗ chứa nữa.”
“À được, để tôi chuyển chúng ra khỏi ‘enchilada’ để có thêm chỗ chứa. Tôi sẽ gọi lại cho anh.”
Sau khi tập gym xong, tôi về nhà, đăng nhập và chuyển các tập tin vào một tài khoản mà tôi đã tạo cho mình ở Colorado Supernet, nhà cung cấp dịch vụ Internet lớn nhất ở Denver. Ngày hôm sau, Nevarez chuyển toàn bộ số tập tin còn lại cho tôi, việc này mất rất nhiều thời gian bởi có quá nhiều mã.
Khi tôi nhờ Nevarez chuyển mã nguồn máy chủ, anh ta đã bắt đầu nghi ngờ và lẩn tránh. Ngay lúc đó, tôi gọi vào hộp thư thoại của Gabe và cài đặt lại lời chào thoại tiêu chuẩn để xóa đi giọng mình. Hiển nhiên, tôi không muốn lưu nó lại để dành cho một phiên tòa trong tương lai rồi.
Không nản lòng, tôi thầm nghĩ: Sẽ luôn có thứ gì đó còn thử thách và thú vị hơn để mình hack.
Dạo ấy, điện thoại di động có kích thước nhỏ hơn rất nhiều so với loại to như chiếc cặp ca táp thuở ban đầu. Nhưng chúng vẫn to bằng một chiếc giày nam giới và nặng gấp vài lần. Sau đó, hãng Motorola đã thực hiện một cú nhảy vọt đi trước mọi hãng điện thoại khác nhờ chiếc MicroTAC Ultra Lite nhỏ, nhẹ và thiết kế đẹp mắt. Trông nó giống như một chiếc máy điện đàm trong loạt phim Star Trek, thiết bị mà Captain Kirk vẫn dùng để ra lệnh: “Đưa tôi ra khỏi đây, Scotty!” Ngoài hình thức bên ngoài vô cùng khác biệt, phần mềm chạy trong điện thoại cũng có cải tiến đáng kể.
Tôi vẫn đang dùng chiếc Novatel PTR-825, chính là chiếc điện thoại tôi đã lừa Novatel gửi cho mình con chip đặc biệt để có thể thay đổi ESN bằng phím bấm. Nó không thể sánh với kiểu dáng cuốn hút của chiếc MicroTAC Ultra Lite. Có lẽ đã đến lúc tôi cần đổi một chiếc điện thoại mới – nếu tôi có thể tìm ra cách để có những tính năng tương tự như chiếc Novatel. Vậy tức là bằng cách nào đó tôi phải có được mã nguồn của Motorola. Việc này khó biết chừng nào? Đây hẳn là một thử thách thú vị.
Quá háo hức với ý tưởng mới, tôi đã hỏi Elaine, sếp của tôi ở hãng luật, xem mình có thể rời sở sớm để giải quyết vấn đề cá nhân hay không và cô ta đồng ý. Tôi ra khỏi công ty lúc 3 giờ chiều. Trong khoảng thời gian dài trên thang máy đi xuống qua 50 tầng, hai nhân viên cộng tác với hãng có lời bông đùa về một vụ lớn họ đang làm: Hãng luật đại diện cho Michael Jackson. Tôi cười thầm, nhớ đến thời tôi từng làm ở Fromin’s Delicatessen. Gia đình Jackson có một tòa nhà lớn ngay dưới đường, ở Hayvenhurst, thi thoảng họ vẫn dừng chân tại chỗ tôi làm để dùng bữa trưa hay bữa tối. Giờ thì tôi ở đây, trong một thang máy cách xa cả nghìn cây số, lẩn trốn khỏi FBI và Sở Cảnh sát Tư pháp, làm việc ở một hãng luật danh tiếng đang đại diện cho một trong những nhạc sĩ nổi tiếng nhất thế giới.
Khi bắt đầu đi bộ về nhà trong cơn mưa tuyết, tôi thực hiện một cuộc gọi miễn phí đến tổng đài để hỏi số của Motorola. Sau đó, tôi gọi đến số của hãng và nói với người trực máy thân thiện rằng mình muốn tìm gặp quản lý dự án MicroTAC Ultra Lite.
“Ồ, bộ phận thuê bao di động của chúng tôi đặt tại Schaumburg, Illinois. Anh có cần số của họ không?” cô ta hỏi. Đương nhiên là tôi cần.
Tôi gọi tới Schaumburg và nói: “Xin chào, tôi là Rick ở Motorola Arlington Heights. Tôi muốn gặp quản lý dự án MicroTAC Ultra Lite.” Sau khi được chuyển máy qua vài người khác nhau, cuối cùng tôi đã gặp được vị phó Giám đốc Phòng Nghiên cứu và Phát triển. Tôi nhắc lại nội dung về Arlington Heights và việc muốn liên lạc với quản lý dự án MicroTAC.
Tôi khá lo rằng vị lãnh đạo này có thể dấy lên nghi ngờ bởi tiếng xe cộ qua lại trên đường và đôi khi là còi xe ầm ĩ từ mấy gã tài xế thiếu kiên nhẫn muốn về nhà sớm trước khi tuyết bắt đầu dồn đống. Nhưng không. Ông ta chỉ nói: “Đó là Pam, cô ấy làm việc cho tôi” rồi cho tôi số máy lẻ của cô ấy. Tin nhắn trên hộp thư thoại của Pam thông báo rằng cô đang đi nghỉ hai tuần và rằng: “Nếu bạn cần bất kỳ sự giúp đỡ nào, hãy gọi cho Alisa,” rồi thông báo số máy lẻ của Alisa.
Tôi gọi tới số này và nói: “Chào Alisa. Tôi là Rick ở Phòng Nghiên cứu và Phát triển ở Arlington Heights. Tôi đã nói chuyện với Pam tuần trước và được biết cô ấy sẽ đi nghỉ. Pam đã đi chưa nhỉ?”
Đương nhiên Alisa nói: “Cô ấy đi rồi.”
“À,” tôi nói tiếp, “Pam lẽ ra phải gửi mã nguồn của MicroTAC Ultra Lite cho tôi. Nhưng cô ấy nói nếu không kịp thì tôi nên gọi điện cho cô để nhờ giúp đỡ.” Đáp lại đề nghị của tôi là: “Anh cần phiên bản nào?” Tôi mỉm cười.
Tuyệt – cô ấy không buồn dò xét thân phận của tôi và còn sẵn lòng giúp đỡ. Nhưng dĩ nhiên, tôi không có chút ý niệm nào về phiên bản hiện tại, thậm chí là hệ số nào được dùng để đặt tên. Do vậy, tôi chỉ nói một cách hời hợt: “Bản mới nhất và tốt nhất thì sao?”
“Ok, để tôi kiểm tra,” cô ấy nói.
Tôi mệt mỏi lê từng bước. Tuyết bắt đầu dính cả tảng ở chân. Tôi kéo mũ trùm xuống một bên tai và bên còn lại là chiếc điện thoại cồng kềnh, không thành công lắm trong nỗ lực giữ ấm bằng cách áp thật chặt điện thoại vào tai. Trong khi Lisa đang bận rộn gõ bàn phím, tôi ngó quanh tìm một tòa nhà để trốn tiếng xe cộ ồn ào, phòng trường hợp bị nghi ngờ, nhưng không có chỗ nào để đi. Vài phút trôi qua.
Cuối cùng, cô ấy nói: “Tôi tìm thấy một văn bản trong thư mục của Pam cho phép tôi lấy được bất kỳ phiên bản phần mềm nào của Ultra Lite. Anh cần định dạng ‘doc’ hay ‘doc2’?”
“doc2,” tôi trả lời, đoán rằng nó hẳn là phiên bản mới hơn.
“Đợi một chút. Tôi đang giải nén nó ra một thư mục tạm,” cô nói. Và rồi, “Rick, có chút vấn đề.” Số nhọ rồi.“Có rất nhiều tập tin trong vô số thư mục. Tôi phải làm sao đây?”
Nghe có vẻ như đã đến lúc phải gom và nén các tập tin lại. “Cô có biết dùng ‘tar’ và ‘gzip’ thế nào không?” Cô ấy nói không biết. Tôi hỏi thêm, “Cô có muốn học không?”
Cô ấy nói rất thích học thêm kiến thức mới, do vậy tôi trở thành người hướng dẫn để cô ấy có thể từng bước tổng hợp và nén tất cả tập tin mã nguồn vào một tập tin duy nhất.
Lúc này, ô tô như đang trượt trên con đường trơn tuyết, càng thêm nhiều tiếng còi xe vang lên. Tôi không ngừng nghĩ trong đầu: Cô ấy có thể nhận ra tiếng còi và bắt đầu đặt câu hỏi bất kỳ lúc nào. Nhưng nếu Alisa nghe thấy, cô ấy hẳn phải cho rằng đó là tiếng xe cộ bên ngoài cửa sổ văn phòng của tôi; cô ấy không thắc mắc gì về chuyện đó. Cuối bài hướng dẫn, chúng tôi đã có một tập tin nặng 3 megabyte không chỉ chứa mã nguồn mới nhất mà còn cả bản sao thư mục “/etc” của máy chủ, trong này lại chứa bản sao tập tin mã băm mật khẩu của tất cả người dùng cùng nhiều thứ khác. Tôi hỏi Alisa có biết dùng “FTP” không.
“Chương trình chuyển tập tin (File Transfer Program) ấy hả? Đương nhiên,” cô ấy đáp.
Như vậy, cô ấy đã biết rằng FTP cho phép chuyển tập tin giữa các hệ máy tính.
Lúc này, tôi chỉ muốn tự đá cho mình một cái vì đã không chuẩn bị kỹ hơn. Tôi không thể ngờ mình sẽ đi tới bước này chỉ trong một khoảng thời gian ngắn. Khi Alisa tìm được phiên bản mới nhất của các mã nguồn, nén chúng thành một tập tin đơn, tôi cần phải hướng dẫn cô ấy các bước cần thiết để gửi chúng cho tôi. Nhưng tôi không thể cho cô ấy một trong các hostname mà tôi đang dùng, và hiển nhiên tôi không có hostname có đuôi “motcom” của Motorola. Tôi nghĩ ra một cách giải quyết: Nhờ vào sở trường nhớ số của mình, tôi biết địa chỉ IP của một trong những máy chủ của Colorado Supernet, có tên “teal”. (Mỗi máy tính và thiết bị trên hệ thống TCPIP đều có địa chỉ riêng của mình, ví dụ như 128.138.213.21.)
Tôi nhờ cô ấy gõ vào “FTP”, kế đó là địa chỉ IP. Như vậy lẽ ra đã có thể kết nối vào Colorado Supernet, nhưng không hiểu sao mỗi lần cô ấy thử đều bị dừng lại.
Alisa nói: “Tôi nghĩ có vấn đề bảo mật. Để tôi hỏi quản lý bảo mật về việc này.”
“Không, khoan đã…,” tôi nói đầy tuyệt vọng. Quá muộn rồi: Tôi đã bị chuyển sang chế độ chờ.
Sau vài phút, tôi cảm thấy bồn chồn. Chuyện gì sẽ xảy ra nếu họ đặt máy ghi âm và thu lại giọng của tôi? Cho tới khi Alisa quay trở lại đường dây sau đó vài phút, cánh tay tôi đã bắt đầu tê cứng vì phải giữ điện thoại.
“Rick, tôi mới nói chuyện với quản lý bảo mật. Địa chỉ IP anh cho tôi nằm ngoài trụ sở của Motorola,” cô ta nói.
Tôi không muốn nói thêm nhiều trừ những gì thực sự cần thiết, để phòng xa.
“Ừm,” tôi trả lời.
“Nhưng quản lý bảo mật nói tôi có thể dùng một proxy server (máy chủ ủy nhiệm) để gửi tập tin cho anh, vì các lý do bảo mật.”
Tôi bắt đầu cảm thấy thất vọng lớn, thầm nghĩ: Vậy là trò hacking nho nhỏ đã kết thúc.
Thế rồi cô ấy lại nói tiếp: “Tin tốt là anh ấy đã cho tôi username và mật khẩu của proxy server nên tôi có thể gửi tập tin cho anh.” Quá tuyệt vời! Không thể tin nổi. Tôi cảm ơn cô ấy thật nhiều và nói rằng tôi có thể sẽ gọi lại sau nếu còn cần sự giúp đỡ.
Khi về tới nhà, toàn bộ mã nguồn cho sản phẩm mới nhất của Motorola đã chờ sẵn. Chỉ bằng khoảng thời gian lê bước về nhà trong trận mưa tuyết, tôi đã dụ được Alisa trao cho mình một trong những bí mật thương mại được lưu giữ cẩn mật nhất của công ty cô ấy.
Tôi gọi lại cho cô ấy thêm vài lần nữa trong những ngày tiếp theo để lấy các phiên bản khác nhau của mã nguồn MicroTAC Lite. Việc này giống như thể Cơ quan Tình báo Trung Ương (CIA) đang cài cắm một điệp viên ở đại sứ quán Iran, người thậm chí còn không nhận ra mình đã chuyển thông tin cho kẻ thù của đất nước vậy.
Nếu việc lấy mã nguồn của một chiếc điện thoại di động dễ như vậy, có khi tôi có thể bằng cách nào đó đột nhập vào máy chủ của nhóm phát triển Motorola và sao chép mọi mã nguồn mình cần mà không cần nhờ tới sự giúp đỡ của Alisa hay các nhân viên khác. Alisa có nhắc tới hostname của một máy chủ nơi chứa tất cả các mã nguồn là “lc16”.
Thử vận may của mình, tôi kiểm tra thời tiết ở Schaumburg, Illinois, nơi Nhóm Thuê bao Di động đặt ở đó. Và tình hình là: “Cơn bão tuyết bắt đầu từ hôm qua sẽ còn tiếp diễn tới tận sáng ngày mai, với sức gió 50kmgiờ.”
Hoàn hảo.
Tôi lấy được số điện thoại tới Trung tâm Vận hành Mạng lưới (NOC) của họ. Theo những gì tôi tìm hiểu được, chính sách bảo mật của Motorola yêu cầu những nhân viên muốn quay số kết nối từ xa phải cung cấp thêm thông tin ngoài tên đăng nhập và mật khẩu.
Họ đòi hỏi phải xác minh bằng hai loại mã số bảo mật – trong đó có một SecurID đã nhắc tới ở trên, đây là sản phẩm của một công ty có tên là Security Dynamics. Tất cả các nhân viên muốn kết nối từ xa sẽ được cấp một mã PIN bí mật và nhận được một thiết bị nhỏ cỡ chiếc thẻ tín dụng. Thiết bị này sẽ hiển thị một mật khẩu gồm sáu ký tự ở màn hình. Mã bảo mật này sẽ thay đổi 60 giây một lần. Việc đoán mã có vẻ bất khả thi đối với người không phận sự. Bất kỳ khi nào người dùng muốn đăng nhập từ xa vào hệ thống nằm trong trụ sở của Motorola, họ phải nhập mã PIN và sau đó là mã bảo mật hiện trên thiết bị SecurID của mình.
Tôi gọi tới trung tâm vận hành mạng lưới và gặp một gã mà tôi sẽ gọi là Ed Walsh. “Chào anh,” tôi nói. “Tôi là Earl Roberts ở Nhóm Thuê bao Di động” – đây là tên và nơi làm việc của một nhân viên có thực.
Ed hỏi tôi công việc thế nào và tôi nói: “Ừm, không ổn lắm. Tôi không thể đến văn phòng vì bão tuyết. Vấn đề là tôi cần kết nối với máy tính từ nhà nhưng lại để quên SecurID trên bàn làm việc. Anh có thể qua lấy nó giúp tôi không? Hoặc là ai đó cũng được? Rồi đọc giúp tôi mã số? Dự án của nhóm tôi sắp đến kỳ hạn rất quan trọng mà tôi thì chưa thể làm xong. Tôi không làm sao đến văn phòng được, đường phố nguy hiểm quá.”
Anh ta nói: “Tôi không thể rời NOC được.”
Tôi tiếp lời ngay: “Vậy anh có SecurID cho Nhóm Vận hành không?”
“Có một cái ở NOC đây,” anh ta nói. “Chúng tôi giữ để đề phòng trường hợp khẩn cấp.”
“Nghe này,” tôi nói, “anh có thể giúp tôi được không? Khi tôi cần đăng nhập vào hệ thống, anh có thể đọc cho tôi mã bảo mật trên SecurID của anh không? Chỉ cần chờ tới khi tôi có thể lái xe tới văn phòng.”
“Anh là ai đấy nhỉ?” anh ta hỏi.
“Earl Roberts.”
“Anh làm việc cho ai?”
“Pam Dillard.”
“À, vâng, tôi biết cô ấy.”
Vì luôn phải đối mặt với những tình huống khó khăn có thể xảy đến, nên một hacker tấn công bằng kỹ thuật xã hội giỏi cần tìm hiểu thông tin nhiều hơn mức bình thường. “Tôi ở tầng hai,” tôi tiếp tục. “Ngồi gần Steve Littig.”
Anh ta biết rất rõ cái tên đó. Giờ thì tôi tiếp tục thúc đẩy. “Tới bàn làm việc của tôi lấy SecurID có lẽ tiện hơn.”
Walsh không muốn từ chối một người đang rất cần giúp đỡ, nhưng anh ta cũng không muốn đồng ý. Do vậy, anh ta tránh né việc phải đưa ra quyết định: “Để tôi hỏi sếp đã. Đợi chút.” Anh ta đặt máy xuống và tôi có thể nghe thấy tiếng Walsh nhấc một chiếc điện thoại khác lên, thực hiện cuộc gọi và giải thích yêu cầu của tôi vào đầu dây. Sau đó, anh ta lại làm một việc không thể hiểu nổi: Walsh nói với sếp mình: “Tôi biết anh ấy. Anh ấy làm việc cho Pam Dillard. Chúng ta có thể cho anh ta dùng tạm SecurID không? Tôi sẽ báo mã bảo mật cho anh ấy qua điện thoại.” Walsh đứng ra đảm bảo cho tôi – thật kinh ngạc!
Một lúc sau, Walsh quay trở lại đường dây và nói với tôi: “Quản lý của tôi muốn trực tiếp nói chuyện với anh” và cho tôi tên cũng như số di động của ông ta.
Tôi gọi cho quản lý của Walsh và nói lại toàn bộ tình huống một lần nữa, thêm một chút chi tiết về dự án mà tôi đang làm việc, đồng thời nhấn mạnh rằng nhóm sản phẩm của tôi đang phải chạy một kỳ hạn quan trọng. “Sẽ dễ hơn rất nhiều nếu có ai đó đi lấy SecurID giúp tôi,” tôi nói. “Bàn của tôi không khóa, nó ở ngay ngăn kéo trên phía bên tay trái.”
“Ừm,” vị quản lý nói, “chỉ cuối tuần này thôi, tôi nghĩ anh có thể dùng tạm cái ở NOC cũng được. Tôi sẽ báo nhân viên trực máy đọc giúp anh mã bảo mật khi anh gọi” và ông ta cho tôi số PIN để dùng.
Trong suốt cuối tuần đó, mỗi khi cần kết nối vào mạng nội bộ của Motorola, tất cả những gì tôi cần làm là gọi tới Trung tâm Vận hành Mạng lưới và đề nghị ai đó ở đầu dây bên kia đọc giúp tôi sáu ký tự hiện trên màn hình SecurID.
Nhưng đó vẫn chưa phải là thắng lợi. Khi tôi gọi tới dial-up máy chủ đầu cuối[5] của Motorola thì các hệ thống mà tôi cố tiếp cận ở Nhóm Thuê bao Di động vẫn chưa sẵn sàng. Tôi phải tìm cách khác để thâm nhập.
Cần cả gan để làm bước tiếp theo: Tôi gọi lại cho Walsh ở NOC và giải thích: “Dial-up của máy chủ đầu cuối không thể đăng nhập được vào các hệ thống, tôi không thể kết nối được. Anh có thể giúp tôi lập một tài khoản trên máy của NOC để tôi có thể kết nối với máy tính của mình không?”
Quản lý của Walsh đã đồng ý đọc cho tôi mã bảo mật trên SecurID, như vậy yêu cầu này cũng không quá phận. Walsh tạm thời thay đổi mật khẩu tài khoản của chính mình trên máy tính của NOC và cho tôi thông tin để đăng nhập, sau đó nói: “Hãy gọi cho tôi khi xong việc để tôi đổi lại mật khẩu nhé.”
Tôi thử kết nối với một hệ thống bất kỳ trong Nhóm Thuê bao Di động nhưng liên tục bị chặn; hiển nhiên là chúng đều đã được tường lửa bảo vệ. Dò dẫm quanh mạng lưới của Motorola, cuối cùng tôi đã tìm ra được một hệ thống cho phép tài khoản “khách mời” (guest) – đồng nghĩa với việc cổng vào để mở và tôi có thể đăng nhập được. (Tôi khá ngạc nhiên khi phát hiện ra hệ thống này là một máy tính của NeXT, được sản xuất bởi công ty yểu mệnh do Steve Jobs lập ra trước khi quay trở lại Apple.) Tôi tải về tập tin mật khẩu và cố giải mã của người có quyền đăng nhập vào máy tính đó, một gã có tên là Steve Urbanski. Tôi không mất quá nhiều thời gian: Tên đăng nhập trên máy tính NeXT của anh ta là “steveu” và mật khẩu “mary”.
Từ máy tính NeXT, tôi thử đăng nhập vào host “lc16” trong Nhóm Thuê bao Di động ngay lập tức nhưng mật khẩu không đúng. Trở ngại lớn đây rồi.
Được thôi. Thông tin tài khoản của Urbanski sẽ có ích sau này. Giờ cái tôi cần không phải là tài khoản NeXT của anh ta mà là mật khẩu để anh ta đăng nhập vào máy chủ của Nhóm Thuê bao Di động, nơi chứa tất cả mã nguồn mà tôi muốn.
Tôi dò theo số điện thoại nhà riêng của Urbanski và gọi cho anh ta. Giả danh là nhân viên từ NOC, tôi thông báo: “Chúng tôi gặp một vấn đề lớn về đĩa cứng. Anh có bất kỳ tập tin dữ liệu nào cần phục hồi không?”
Tất nhiên là anh ta cần.
“Chúng tôi có thể phục hồi vào thứ Năm,” tôi nói. Thứ Năm tức là anh ta sẽ không có tập tin làm việc trong suốt ba ngày. Tôi kéo ống nghe ra xa tai khi anh ta nổi điên lên như dự tính.
“Vâng, tôi hiểu,” tôi tỏ vẻ đồng cảm. “Tôi nghĩ mình có thể tạo một ngoại lệ để phục hồi dữ liệu của anh trước tiên, nhưng anh phải giữ kín chuyện này. Chúng tôi đang cài đặt máy chủ trên một máy mới tinh và tôi cần phải tái lập tài khoản của anh trên hệ thống mới. Tên đăng nhập của anh là ‘steveu’ đúng không?”
“Đúng,” anh ta đáp.
“Được rồi, Steve, chọn một mật khẩu mới mà anh thích đi.” Sau đó, như thể mới nảy ra ý tưởng hay hơn, tôi nói tiếp: “À, không cần đâu, anh chỉ cần nói mật khẩu cũ của mình, tôi lập theo đó là được.”
Việc này đương nhiên sẽ khiến anh ta nghi ngờ. “Anh là ai cơ?” anh ta muốn biết. “Anh nói anh làm việc cho ai?”
Tôi lặp lại những gì mình đã nói, rất bình tĩnh, coi như một chuyện thường ngày.
Tôi hỏi anh ta có SecurID không. Đúng như dự đoán, câu trả lời là có, do vậy tôi bèn nói: “Để tôi xem đơn đăng ký SecurID của anh.” Đây chỉ là trò đánh cược. Tôi biết anh ta có lẽ đã điền đơn từ cả thế kỷ trước và hẳn sẽ không nhớ xem trên đó có hỏi mật khẩu hay không. Và vì đã biết mật khẩu anh ta dùng là ‘mary’, tôi cho rằng anh ta sẽ thấy nó quen thuộc và nghĩ rằng mình cũng dùng mật khẩu đó trên đơn SecurID.
Tôi bỏ đi, mở một ngăn kéo, đóng sập nó lại và quay trở lại điện thoại, bắt đầu xáo lật đống giấy.
“Ok, đây rồi… anh dùng mật khẩu là ‘mary’ nhỉ?”
“Đúng rồi,” anh ta nói, giọng thỏa mãn. Sau một chút ngần ngại, anh ta buột miệng: “Được rồi, mật khẩu của tôi là ‘bebop1.’”
Được cả chì lẫn chài rồi.
Tôi kết nối với máy chủ mà Alisa đã nhắc tới, lc16, ngay lập tức. Sau đó, tôi đăng nhập bằng tài khoản “steveu” với mật khẩu là “bebop1”. Xong!
Không mất nhiều thời gian để tìm được vài phiên bản mã nguồn của MicroTAC Ultra Lite; tôi gom lại và nén bằng tar và gzip, sau đó chuyển tới Colorado Supernet. Tôi dành thêm chút thời gian xóa tập tin cũ mà tôi đã nhờ Alisa lập. Xóa bỏ dấu vết luôn là việc nên làm.
Tôi dành thời gian cuối tuần còn lại để nghịch ngợm. Vào sáng thứ Hai, tôi dừng việc gọi điện cho NOC để lấy mã bảo mật SecurID. Quả là một cuộc hacking thú vị, nhưng chẳng có lý gì phải liều mình thêm nữa.
Tôi không thể ngừng cười trong suốt thời gian đó. Thêm một lần nữa, tôi không thể tin nổi mọi chuyện lại dễ dàng đến thế, không có trở ngại nào xuất hiện trước mắt tôi. Tôi có cảm giác mình đã đạt được một thành tựu lớn và cả sự thỏa mãn như đã từng có khi còn chơi bóng chày ở Liên đoàn Bóng chày Nhí và đánh được một cú home run[6].
Nhưng rồi sau đó, chết tiệt, tôi nhận ra mình không hề nghĩ tới việc lấy cả trình biên dịch (compiler) – chương trình dịch mã nguồn do lập trình viên viết sang loại mã mà máy tính có thể đọc, loại mã này gồm các dãy số 1 và 0 mà máy tính hay bộ xử lý trong điện thoại di động có thể hiểu được.
Như vậy, đây sẽ là thử thách kế tiếp. Liệu Motorola có phát triển trình biên dịch của riêng họ cho bộ xử lý 68HC11 dùng trong MicroTAC không, hay họ sẽ mua nó từ một nhà sản xuất phần mềm khác? Và làm sao để tôi có thể lấy được nó đây?
Tới cuối tháng Mười, quy trình rà soát thường lệ của tôi trên Westlaw và LexisNexis đã giúp tìm ra một bài báo viết về cuộc phiêu lưu mới nhất của Justin Petersen. Đôi khi FBI thường nhắm mắt cho qua khi người đưa tin mật của họ phạm pháp, nhưng cũng có giới hạn. Hóa ra, một cộng sự của Kevin Poulsen, Ron Austin, người đã bị Justin Peterson gài bẫy, hiện đang tiến hành một chiến dịch cá nhân nhằm ăn miếng trả miếng với gã chỉ điểm và tống gã vào tù. Austin đã tìm ra nơi Justin sống – cùng địa chỉ ở Đại lộ Laurel Canyon mà tôi đã lần ra được theo số điện thoại của McGuire. Justin đã quá sơ ý: Hắn quên mất không hủy những ghi chép cá nhân trước khi ném chúng vào sọt rác. Austin đã lục-thùng-rác trước nhà và phát hiện ra chứng cứ cho thấy Justin vẫn đang giả mạo thẻ tín dụng. Hắn báo ngay cho FBI về việc này.
Khi đã có đủ chứng cứ trong tay, trợ lý công tố, David Schindler, đã triệu tập Justin và luật sư của hắn tới Tòa án Liên bang ở Los Angeles. Đứng trước vị đặc vụ FBI và tay luật sư công tố, Justin biết rằng những ngày tháng tự do của hắn sắp kết thúc.
Trong buổi điều trần, Justin đề nghị được nói chuyện riêng với luật sư bào chữa của mình. Hai người họ bước ra khỏi phòng. Vài phút sau, tay luật sư quay lại và ngập ngừng nói rằng thân chủ của hắn đã biến mất. Tòa án ra lệnh bắt giữ không-được-bảo-lãnh đối với Justin.
Như vậy, tên khốn chỉ điểm cố đẩy tôi vào tù cũng đã rơi vào tình trạng tương tự như tôi. Hắn đang đi trên con đường của tôi. Hoặc có thể nói là chạy.
Tôi cười toét miệng. Vậy là kẻ đưa tin cho chính phủ đã biến mất. Dù họ có tìm được hắn một lần nữa, thì giá trị của hắn cũng bằng 0. Chính phủ sẽ không bao giờ có thể dùng hắn để làm chứng cứ chống lại tôi được nữa.
Sau này, tôi nghe nói rằng Justin đã từng thử cướp nhà băng trong lúc lẩn trốn. Hắn tấn công vào máy tính của Heller Financial và lấy được các mã cần thiết nhằm thực hiện hành động chuyển tiền từ ngân hàng đó tới một tài khoản ngân hàng khác. Sau đó, hắn gọi điện tới Heller Financial đe dọa đã gài bom. Trong lúc cả tòa nhà sơ tán, hắn tranh thủ chuyển 150.000 đô-la từ Heller Financial vào Union Bank thông qua Mellon Bank. Rất may cho Heller Financial, vụ việc đã được phát hiện trước khi Peterson kịp rút tiền từ Union.
Tôi lấy làm thích thú khi biết hắn đã bị bắt, đồng thời cũng ngạc nhiên khi thấy hắn thực hiện trò lừa đảo này. Điều đó cho thấy hắn thực sự là một tên xấu xa, thậm chí còn khốn kiếp hơn tôi tưởng.
❀ ❀ ❀
[1] 71* Hiện thực luân phiên (Alternate reality): Những trò chơi điện tử buộc người chơi phải liên tục sống trong cả thế giới thật lẫn môi trường số. (ND)
[2] 72* Tên của một nhân vật trong loạt game Half-Life. G-man là nhân vật bí ẩn nhất trong game, mọi danh tính và hành động của ông ta đều không thể giải thích nổi. (BTV)
[3] 73* Tên của một trò chơi nhập vai kỳ ảo. (BTV)
[4] 74* Gateway: Thiết bị cho phép chuyển đổi tín hiệu giữa các mạng với nhau. Qua gateway, các máy tính trong các mạng sử dụng các giao thức khác nhau có thể dễ dàng “nói chuyện” được với nhau. (BTV).
[5] 75* Dial-up máy chủ đầu cuối (dial-up terminal server): Máy chủ có vai trò trung gian giúp một máy tính nào đó có thể kết nối với các hệ thống khác qua đường dây điện thoại thay vì mạng Internet. (ND)
[6] 76* Home run: Cú đánh cho phép người đánh chạy quanh ghi điểm mà không phải dừng lại. (BTV)