Hacker truyền kỳ - Phần 1
Hôm nay mình sẽ cố gắng tổng hợp các bài viết điểm qua bức tranh CNTT ở Việt nam những thời kì đầu, tầm khoảng những năm 1999-2000.
Lúc đó việc vào được internet đã là một vấn đề khó khăn và tốn kém rồi, đừng nói chi tới việc vọc vạch này nọ. Qua đó, mới thấy các bậc tiền bối CNTT của Việt nam đẳng cấp đến mức nào. Dù các kỹ thuật và công nghệ được nhắc đến trong các bài viết này tương đối đã cũ nhưng nó vẫn chứa nhiều kiến thức chúng ta có thể học hỏi được. Nên nhớ rằng bạn đang đọc các bài viết cách đây gần 20 năm.
Phần 1: Cuộc đột nhập lúc nửa đêm
Truy cập vào một địa chỉ website thay vì một giao diện vốn rất ư đã quen thuộc ta lại bắt gặp một màn hình trang chủ đen ngòm với dòng chữ lạnh lùng “Website này đã được hack bởi…”
Rồi một nội dung là hoắc lạ huơ, hết sức kỳ cục chiếm lĩnh toàn bộ website. Đã có bàn tay của hacker nhúng vào? Đó là điều chắc chắn!
1.1 Xâm nhập
Hôm nay là 27 rồi, G. truy cập vào http://online.finternet.vn để xem cước internet tháng này của hắn là bao nhiêu. Hơn 1 triệu như thường lệ. Thông thường G. sẽ đón nhận con số này một cách bình thản, nhưng bây giờ nó đã trở thành một vấn đề lớn: hắn vừa mất việc tháng trước. Tuy mới chân ướt chân ráo vào đại học, nhưng G. đã là một web-developer khá lành nghề, chuyên phát triển các website thương mại từ hơn 1 năm nay. Công việc “out-sourcing” tại gia cũng giúp hắn kiếm được từ $400-$700 mỗi tháng.
G. mất việc tất cả là do FInternet. Hôm đó, hắn hẹn tay chủ 2h sáng sẽ “demo” cái dự án. “Remote Computer didn’t response”, là tất cả những gì hắn nhận được sau hàng trăm lần cố gắng kết nối vào FInternet. Thử mãi không được, cũng hơn 4h sáng rồi, G. quyết định đi ngủ. Ngày hôm sau, hắn nhận được email hủy bỏ cái dự án đang làm, và kể từ đó hắn cũng không còn nhận được bất kì dự án nào khác.
Càng nhìn con số 1.120.789đ, hắn càng tức. Dịch vụ thì tồi, giá cả trên trời, chất lượng không ổn định… Phải chơi tụi này một vố mới được, cũng là tự cứu mình.
G quyết tâm xâm nhập vào FInternet. Mục tiêu chính là hệ thống lưu trữ và tính cước. Sau 30 phút tìm hiểu, G. đã có kha khá thông tin. Website này được đặt trên một máy chủ WIMA(1), có địa chỉ IP(2) là 203.162.xxx.xxx.
Đối với máy chủ WIMA thì cách xâm nhập dễ nhất là đi qua con đường web-application (ứng dụng web) chạy trên đó. Ngoài website http://online.finternet.vn ra, máy chủ 203.162.xxx.xxx còn chứa nhiều website khác, đáng chú ý nhất là http://news.finternet.vn và http://friendclub.finternet.vn.
Nếu không “mần ăn” gì được với http://online.finternet.vn, ít nhất cũng còn có 2 website để “nghiên cứu”.
Nếu dành nhiều thời gian hơn, G. vẫn có thể “táy máy” được với http://online.finternet.vn, nhưng tại sao phải chọn cách khó trong khi có một cách khác dễ dàng hơn rất nhiều và sở trường của hắn lại là web-application. Vả lại http://friendclub.finternet.vn ít phức tạp hơn, mà phức tạp là kẻ thù nguy hiểm nhất của bảo mật. Điều này là hiển nhiên, bảo vệ một tòa lâu đài nhiều lối ra ngõ vào, bao giờ cũng khó hơn rất nhiều so với bảo vệ một căn nhà trệt chỉ có một cửa ra vào duy nhất.
Người làm tốt công tác bảo mật luôn là người tuân thủ theo luật KISS!(3)
Ngay khi truy cập, theo thói quen, G. liền view source(4) của http://friendclub.finternet.vn. Để xem nào, tác giả là khoand@finternet.vn, công cụ dùng để tạo website là Microsoft FrontPage. Các đoạn Javascript trong website này không có thông tin gì hấp dẫn. khoand – “Nguyễn Đăng Khoa chăng?”, ít nhất cũng đã có một cái tên, G. cẩn thận ghi chú lại. Ok! Tiếp theo làm gì? Cứ như một cái máy đã lập trình sẵn, G. bắt đầu dò tìm ngay công cụ quản lí website. 80% các website mà G. biết đều đặt công cụ quản lí website “khơi khơi ngoài mặt tiền” ở các thư mục như admin, quanly, editor, nhaptin…
Truy cập vào http://friendclub.finternet.vn/webmaster/, màn hình hiện lên dòng chữ “Khu vực quản trị, xin vui lòng đăng nhập…” cùng với hai textbox ứng với tên tài khoản và mật khẩu. Như phản xạ có điều kiện, G. nhập ngay vào hai textbox chuỗi 1' or 1="1--"
(5), và nhấn Enter. “Xin chào Webmaster, chúc bạn một ngày làm việc vui vẻ”, không thể tin được, trước mặt G. bây giờ là công cụ quản lí toàn bộ thành viên của website http://friendclub.finternet.vn/.
Như bản năng, G. tìm ngay hồ sơ của tài khoản webmaster và tài khoản khoand với hi vọng lấy được vài thông tin hữu ích. Xem nào, đúng như hắn đoán, tên thật của khoand là Nguyễn Đăng Khoa, lớn hơn hắn 4 tuổi, sống ở TP.HCM. G. kéo lẹ thanh trượt xuống phía dưới, dáo dát tìm cái mà hắn đang chờ đợi. À, đây rồi, mật khẩu.
100% website mà G. “viếng thăm” đều không mã hóa mật khẩu của người dùng, một sơ hở rất đáng trách, lần này cũng không ngoại lệ. Có vẻ như webmaster và khoand là cùng một người, bởi cả hai đặt mật khẩu giống nhau: lotus. Đối với G., đến được đây này thì coi như hắn đã đi được nửa chặng đường, và nếu như may mắn, hắn có thể đi hết nửa chặng còn lại trong tích tắc. Và hắn đã may mắn thật!
1.2 Mật khẩu: Điểm chết của website.
Tạm dừng đôi chút, G. xác định lại cái mục đích của hắn khi xâm nhập vào FInternet là gì. Dùng Internet miễn phí càng lâu càng tốt, “hô biến” cái cục nợ 1 triệu mấy của tháng này đi, và dạy cho tụi FInternet một bài học. Dĩ nhiên, đối với một tay hacker “già đòn” như G., hai mục tiêu đầu là quan trọng nhất. Khi mới bước chân vào thế giới hacking, ai cũng muốn chứng tỏ mình bằng cách deface(6) hết website này đến website khác. Đối với hắn, cái thời deface lung tung đã qua từ lâu, bây giờ G. chỉ ra tay khi việc tấn công đem lại lợi nhuận gì đó cho bản thân hắn, và dĩ nhiên “con chuột” G. cũng không dại gì “bứt dây động rừng” một khi đã vào được “hũ nếp”. Xét cho cùng deface là một hành động ngu xuẩn, không chứng minh được gì, chỉ tổ rước vạ vào thân, lại còn mất nguồn lợi nữa chứ.
Từ khi bắt đầu đến giờ, G. luôn làm theo “best practices”, hắn luôn chọn con đường ngắn nhất, dễ nhất để mà đi đến mục tiêu cuối cùng. Sở dĩ hắn nhanh chóng tìm mật khẩu cùng những thông tin khác của webmaster và khoand (và tất cả nhân viên FInternet mà hắn biết) là bởi vì hắn biết nhân viên FInternet thế nào cũng được sử dụng Internet miễn phí. Và tồn tại một sự thật là con người ta thường trở nên rất ngờ nghệch khi chọn một mật khẩu cho mình. 80% sử dụng tên tuổi, địa chỉ, số nhà, số điện thoại để đặt mật khẩu, và nguy hiểm hơn họ dùng ngay mật khẩu đó cho tất cả tài khoản của mình, từ tài khoản truy cập Internet, đến hộp mail Yahoo! và đôi khi dùng làm số PIN cho thẻ ATM luôn. Một thói quen rất nguy hiểm.
Mật khẩu của G. dài 20 kí tự, bao gồm chữ cái hoa, chữ cái thường, chữ số, cả kí tự đặc biệt như #$%^*…và hắn dùng một mật khẩu khác nhau cho mỗi loại tài khoản khác nhau.
Vậy mà hắn cũng còn chưa an tâm, mỗi 2 tháng là hắn lại đổi tất cả mật khẩu, và không bao giờ sử dụng lại bất kì mật khẩu nào. Tại sao lại có nhiều người thờ ơ với chính sự an toàn của bản thân họ đến thế nhỉ?
Có được mật khẩu của khoand, G. thử dial-up(7) vào FInternet. Bingo! Modem sau một tràng dài “tò te tò te” cuối cùng đã kết nối thành công. Quá đã! Coi như mục tiêu số một “gần như” đã được hoàn thành. Đối với FInternet thì mật khẩu vào internet cũng là mật khẩu tài khoản email, do đó G. liền đăng nhập vào hộp mail khoand@FInternet.vn qua chương trình Webmail của FInternet tại địa chỉ http://mail.FInternet.vn.
Wow! Quá trời email! Chắc hẳn có rất nhiều thông tin bổ ích đây, G. tự nhủ. Tất cả email đều chưa được đọc, có vẻ như khoand không sử dụng chương trình Webmail này, mà thay vào đó dùng dùng một chương trình email như Outlook Express chẳng hạn, lấy mail về nhưng lại chọn chế độ lưu một bản sao trên máy chủ. Tại sao lại lưu một bản sao khi không bao giờ dùng đến chúng? Email trên internet giống như thư từ ngoài đời, có ai lưu lại một bản sao các lá thư của mình để ở thùng thư trước nhà? G. luôn xóa email ngay khi đọc xong, không bao giờ chọn chế độ lưu lại email đã gửi. Đối với email quan trọng, G. luôn mã hóa trước khi gửi đi và yêu cầu người nhận khi trả lời phải mã hóa luôn. Quay trở lại hộp mail của khoand, G. đếm thấy có hơn 100 cái, trong đó có rất nhiều cái có file đính kèm khá lớn (mã nguồn của một chương trình nào đó chăng?). Nhìn sơ qua tiêu đề, hầu hết các email là những cuộc trao đổi, trò chuyện của khoand với những người cùng phòng tại FInternet. Việc đầu tiên G. làm là download hết tất cả email này về máy tính của hắn, không quên chọn chế độ để lại một bản sao trên máy chủ. Công việc này mất khá nhiều thời gian do đường truyền khá chậm, trong thời gian chờ đợi, G. tranh thủ đi tắm và ăn một miếng cơm, từ tối giờ hắn chưa bỏ gì vô bụng. Gần 2 tiếng đồng hồ sau, G. quay lại, tất cả email đã được download xong tự bao giờ.
G bắt đầu duyệt qua các email theo thứ tự từ cũ nhất đến mới nhất. Với mỗi email, chưa cần đọc nội dung, hắn liền lưu lại tất cả địa chỉ người gửi, người nhận, và file đính kèm nếu có. Có rất nhiều thông tin hấp dẫn trong đám email này, nhưng đáng chú ý nhất là một email có nội dung như sau: Một proxy(8) cho phép kết nối từ bên ngoài vào!
Woa! Cánh cửa mà hắn tốn công tìm chìa khoá giờ đã mở. Những công việc còn lại với hắn chỉ như một trò trẻ con. Hắn đã vào được nhà, có thể ra vô từng căn phòng, di chuyển đồ đạc trong phòng thế nào cũng được. “Ngôi nhà thông tin” của Finternet giờ đã thành nhà của hắn…
Vì tính an toàn, chúng tôi không sử dụng những trang web thật. Trang web trong bài chỉ là một ví dụ. Và dưới đây là các giải thích cho các thuật ngữ được sử dụng trong bài:
- WIMA1: máy chủ WIMA là máy chủ chạy hệ điều hành Windows, với hệ cơ sở dữ liệu MS SQL, máy chủ web IIS và ngôn ngữ lập trình web ASP (ASP.NET).
- IP2: mỗi máy tính khi kết nối vào Internet, đều được gán cho một địa chỉ, gọi là địa chỉ IP (IP viết tắt của Internet Protocol) dùng để xác định máy tính đó trên Internet. Thông thường ở Việt Nam thì các IP này là IP động cho mỗi lần kết nối.
- KISS3: = Keep It Simple, Stupid!
- View source4: xem mã HTML của website. Trong Internet Explorer, bạn có thể view source một website bằng cách nhấn chuột phải, chọn View source.
- SQL Injection5: G. đã tấn công vào FInternet sử dụng SQL Injection. SQL Injection là một cách thức tấn công khai tác lỗi trong việc kiểm tra dữ liệu đầu vào của các ứng dụng.
- deface6: thuật ngữ chỉ hành động thay đổi, làm biến dạng một website nào đó để gây chú ý.
- dial-up7: kết nối bằng cách quay số thông qua modem.
- proxy8: giống như firewall (bức tường lửa), được thiết kế để bảo vệ tài nguyên trong các mạng cục bộ khi nối kết các mạng khác như mạng Internet.