Những cuộc đối thoại với rookie
Những cuộc đối thoại với rookie - Phần 1
Tập hợp các bài viết rất hay của bác Conmale trên diễn đàn HVAONLINE.NET Những cuộc đối thoại với rookie (Tác giả: conmale - HVA Moderator)
Những cuộc đối thoại với rookie-1-. (Tác giả: conmale)
1. Mở đầu: Tôi không nhớ rõ bao nhiêu lần tôi nhận được thông điệp với dạng "Anh chỉ cho em cách hack với". Những thông điệp này đến từ e-mail, offline message của Yahoo, personal message trên diễn đàn..v..v.. Điều lý thú là những người gởi thông điệp này có khả năng và kinh nghiệm về CNTT ở mức độ khác nhau (sau khi tôi thử tìm hiểu và tiếp xúc để biết được điều này). Lý do tại sao những câu hỏi như trên được đặt ra quá nhiều? Họ hiểu thế nào là "hack"? Họ muốn "hack" để làm gì? Họ tìm tòi những gì về "hack"? Lúc bắt đầu tiếp cận với các câu hỏi thế này, tôi cố gắng giải thích ít nhiều (trong phạm vi cho phép) nhưng dần dà, tôi đâm ra... nản vì biết chắc những điều tôi trả lời không có kết quả hoặc tác dụng gì cả. Tuy vậy, những cuộc trao đổi này dẫn tôi đến chỗ thích thú khai phá, tìm tòi tâm lý của những người đặt câu hỏi. Tôi nhận ra vài điều lý thú: - những lối mòn của cách suy tư (nếu có suy tư) - khả năng tiếp cận và hình thành giải pháp cho vấn đề - ý muốn đào sâu và rèn luyện
Đây là những điểm cốt lõi tôi muốn chia xẻ với bạn trong loạt bài "những cuộc đối thoại với rookie". Loạt bài này không có dụng đích phân tích kỹ thuật (mặc dù để hình thành nội dung bài viết chắc chắn không thể thiếu những chi tiết về kỹ thuật). Nó được khai triển ở dạng trò chuyện, trao đổi giữa hai (hoặc nhiều nhân vật) xen vào những chi tiết kỹ thuật. Những nhân vật này là tổng hợp từ tính cách của nhiều nhân vật có thật. Tuy nhiên, ngôn từ trao đổi trong bài viết đã được điều chỉnh và xây dựng lại cho thích hợp với tình tiết của các mẩu chuyện.
Xin lưu ý rằng, những vấn đề được đưa ra trong chuỗi bài này nhằm thúc đẩy kỹ năng tiếp cận vấn đề, nghiên cứu và giải quyết vấn đề. Bởi thế, mọi giải đáp cho thắc mắc (nếu có) đều tìm thấy từ việc đọc và suy nghĩ kỹ lưỡng.
2. Gặp gỡ: Chiều nay, một buổi chiều Chủ Nhật, rảnh rỗi và yên tĩnh. Tôi mở máy và log vào Yahoo Instance Messenger (đã gần một tuần lễ tôi không vào YIM). Chà, có vài cái "thỉnh cầu" đưa tên tôi vào danh sách YIM của ai đó. Thử xem nào... ngoại trừ một "thỉnh cầu" khá ngổ ngáo, tôi tiếp nhận các thỉnh cầu còn lại. Trong số "thỉnh cầu" này, có một cái làm tôi chú ý. Người thỉnh cầu có cái "nick" khá ngộ nghĩnh là "cuti" và thông điệp thỉnh cầu như sau: "nếu không phiền, xin phép anh add em với. Em có một số thắc mắc muốn nhờ anh chỉ dẫn, Nghe nói anh khó tính lắm nhưng em cũng liều một phen.".
Tôi mỉm cười và nhấn nút "accept" và sau đó gởi đi thông điệp "Được, anh khó tính lắm. Thử xem!. Và đây là điểm khởi đầu của những cuộc trò chuyện giữa tôi và "cuti".
Tôi chuyển trạng thái YIM của mình sang "invisible" vì không muốn trò chuyện lúc này. Tôi muốn kiểm tra mail và duyệt web để tìm một số thông tin cần thiết. Chừng năm phút sau, tôi nhận được một thông điệp nhấp nháy. Tôi mở ra và thấy rằng "cuti" vừa trả lời: "Cám ơn anh đã add em, khi nào anh online, cho em biết với!".
Tôi muốn "thử" anh chàng một phát, bèn trả lời như sau: "Anh đã online, nhưng anh chưa nói chuyện được, em chờ được không?.
"cuti" hồi đáp: Ồ may quá, may quá... dạ được chứ. Trưa Chủ Nhật em chẳng có chuyện gì đâu. Khi nào rảnh cho em biết với"
Tôi yên lặng, thâu gọn cửa sổ của YIM và tiếp tục kiểm tra mail, trả lời mail. Gần nữa giờ trôi qua, tôi quên bẵng có "cuti" đang chờ. Tôi mở cửa sổ YIM lên xem và thấy "cuti" vẫn còn online. Tôi gởi cho anh chàng một thông điệp: "Chà, nãy giờ chat đã đời rồi hả? Anh rảnh rồi, em cần hỏi gì?".
Tôi không ngờ trong tích tắt "cuti" đã trả lời tôi ngay. Điều này chứng tỏ cu cậu không bận rộn và quả thật... đang chờ. Nó cũng chứng tỏ cu cậu là một "cao thủ" gõ chữ vì trong tích tắc tôi đã nhận được thông điệp như sau: "Dạ, em đâu có chat, chỉ đang duyệt mấy trang web thôi. Em có vài thắc mắc là nếu mình muốn học hỏi, tham khảo tài liệu, cứ cho là mình đã có một mớ sách, cách nào để giúp mình nhớ được mọi thứ trong đống sách đó? À mà, anh cho phép em hỏi thăm anh bao nhiêu tuổi để tiện xưng hô. Nếu anh không muốn nói cũng không sao".
Tôi mỉm cười thầm nghĩ "cu cậu này liếng lắm, muốn nói chuyện phương pháp và rào trước, đón sau". Tôi trả lời: "Anh nghĩ là anh lớn hơn em đó, em thấy xưng hô thế nào tiện thì xưng hô nhưng có lẽ nên xưng anh em thì hay nhất vì anh đoán em nhỏ tuổi hơn anh.".
"cuti" nằng nặc muốn rõ chuyện tuổi tác: "Nhưng em muốn biết mà, lỡ xưng hô không phải đạo thì... kẹt lắm!"
Tôi trả lời: "Được rồi, nếu em muốn biết thì anh mem mém tứ tuần."
"cuti" im lặng một chặp, có lẽ cu cậu nghĩ ngợi gì đây. Sau đó, một thông điệp khác đến từ "cuti" như sau: "Ùm... thôi, để cháu gọi chú bằng chú đi, chú chỉ kém ba cháu có vài tuổi, gọi bằng anh kỳ cục sao đó!".
À, hoá ra cu cậu im lặng một chặp là vì lý do này. Tôi mỉm cười trả lời: "Thôi đi, chú với chả cháu. Xưng anh em vui hơn!"
3. Khai mở: Tôi tiếp tục giải đáp thắc mắc của "cuti": "Về việc đọc và nhớ những gì mình đọc thì như thế này. Để có thể đọc và nhớ, em phải tập cho mình thói quen tổng kết những gì mình đọc được ở dạng ngắn gọn và có hệ thống nhất có thể được (trong khả năng của em). Đây là một kỹ năng hẳn hòi và nó cần sự rèn luyện liên tục. Ví dụ, đọc xong một chương, thử tóm tắt lại chương này đề cập những chuyện gì? những điểm cốt lõi của nó nằm ở đâu? Nếu chưa có thói quen tổng kết trong não thì thử tổng kết trên giấy. Ghi lại những điểm mình nắm được. Đừng ngại sai đúng, đủ thiếu gì cả. Sau đó so sánh lại với thông tin trong sách xem thử mình thu thập được bao nhiêu sau lần đọc thứ nhất. Sau một thời gian, chắc chắn khả năng này sẽ thay đổi."
"cuti" trả lời ngay: "Ôi trời! sao mà khó vậy?"
Tôi phá lên cười và hỏi tiếp: "Em đã thử chưa mà thấy khó? Em tự xét xem em có đủ kiên nhẫn để đạt được điều mình muốn không?"
Lần này "cuti" im lặng khá lâu, chứng tỏ cu cậu đắn đo lắm trước khi trả lời. Tôi biết cu cậu không chat với ai khác bằng YIM bởi vì thanh "status" của YIM không hiển thị thông điệp "cuti is typing a message". Tôi thong thả đốt điếu thuốc và chờ. Gần hai phút sau, "cuti" mới hồi đáp một câu: "Cho em nói thật cái này nha? Em thấy là anh không khó tánh như người ta nói nhưng nói chuyện với anh em bị cảm giác căng thẳng vì phát biểu không cẩn thận sẽ bị anh "bẻ" ngay."
Tôi cười phá lên và đáp: "Em sắc sảo đấy. Anh chả khó tính tí nào. Có lẽ em bị 'chạm' vì anh hỏi vặn lại 'em thử chưa mà thấy khó?' chứ gì? Câu hỏi đơn giản này của anh hàm chứa một điều như sau: đừng xét vấn đề dựa trên cảm tính mà hãy xét nó một cách khoa học. Hãy cân nhắc, thử nghiệm, rút tỉa rồi mới hình thành ý kiến của mình về một vấn đề nếu như vấn đề ấy mình chưa bao giờ kinh qua. Rõ ràng là em chưa hề thử qua cách đọc, suy nghĩ và tổng kết bao giờ thì làm sao em có thể kết luận ngay 'sao mà khó vậy?'. Cho nên câu phát biểu này theo anh thấy, nó đầy cảm tính. Đây là một trở ngại đầu tiên và thường thấy, nó sẽ làm em chùn bước trước những cái còn 'khó' hơn nhiều. À mà em vẫn chưa trả lời câu hỏi của anh là em có đủ kiên nhẫn hay không?"
"cuti" trả lời: "Có lẽ em suy nghĩ quá đơn giản. Thông thường nếu em nói là 'cái đó khó quá' thì người đối diện hay trả lời là 'khó thì thôi' chớ ít ai hỏi ngược lại 'chưa thử mà biết khó hay sao?'. Cái này làm em chột dạ, nhưng không sao, em phải làm quen với lối suy nghĩ và cân nhắc vấn đề này. Còn chuyện kiên nhẫn hay không thì... hy vọng em có đủ kiên nhẫn."
Tôi đáp: "Vậy thì tốt. Thử dùng cái kiên nhẫn của em, tìm ngay một cuốn sách nào đó, về vấn đề gì đó em rất thích. Đọc và thử nghiệm cách tổng kết rồi cho anh biết kết quả ra sao nha?"
4. 'hack' là gì? "cuti" vui vẻ trả lời: "hi hi, nhất định rồi. Để tối nay em 'thử nghiệm' xem sao. À mà đúng ra em muốn hỏi anh câu này ngay từ đầu nhưng hơi ngại. Anh có thể chỉ em cách hack được không? Em mê 'hack' lắm á, em muốn học mà chẳng biết bắt đầu từ đâu.
Tôi có phần cụt hứng khi nhận được câu hỏi này, không phải là vì "cuti" đề cập đến chuyện hack mà cách "cuti" hỏi về chuyện hack trong một câu ngắn gọn đến thế. Tôi hỏi thêm: "Em hiểu thế nào là 'hack' vậy? May mà em không hỏi câu này ngay từ đầu không thì anh lại 'bẻ' cho hụt hơi".
"cuti" trả lời ngay: "Ồ, hack hả anh? anh hỏi theo kiểu mẹo hay hỏi thiệt vậy? Hack là gì ai mà không biết?"
Tôi gõ ngay câu trả lời: "Ừa, vậy mà anh vẫn muốn biết em hiểu thế nào là 'hack'. Em thử trả lời anh xem?"
"cuti" tỏ vẻ đắn đo vì cu cậu im lặng vài chục giây rồi mới trả lời: "Ùm... em nghĩ rằng hack là thâm nhập vào một máy nào đó... phải không anh?"
Tôi phá lên cười vì tính thành thật và đơn giản của "cuti" trong khi gõ thông điệp trả lời cho cu cậu: "Em lầm rồi, 'hack' không phải và không chỉ đơn giản là 'thâm nhập vào một máy nào đó'!"
Cu cậu hồi báo ngay: "Anh lại trêu em rồi. Thôi đi, bày cho em cách hack đi mà."
Tôi trả lời: "Không đâu, anh nói thật. Em hiểu sai về 'hack' rồi đó!"
Lần này "cuti" thật sự sửng sốt: "Vậy.... theo anh 'hack' là gì? Em hy vọng là anh không trêu em tội nghiệp."
Tôi mỉm cười trả lời: "theo anh? Vậy ý em theo anh nghĩ thì khác, theo em nghĩ thì khác và theo ai đó nghĩ thì khác về khái niệm 'hack' là gì phải không? Nếu vậy thì theo anh, chỉ có hai khả năng: hiểu đúng về cái gọi là 'hack' hoặc hiểu chưa đúng về cái gọi là 'hack', thế thôi.
Theo anh (hiểu), 'hack' là sự sửa đổi nào đó có dụng đích rõ ràng trên hệ thống (trên nền tảng của hệ thống, trên cơ chế làm việc của hệ thống...) và sửa đổi này làm thay đổi 'thái độ' làm việc của hệ thống ấy. 'Sửa đổi' này là một trong những biểu thị của việc 'hack'. 'Thái độ' này đúng hay sai, thiện hay ác, ngắn hay dài... là chuyện khác. "
"cuti" im lặng khá lâu. Có lẽ cu cậu đang "tiêu hoá" đoạn định nghĩa lỏng chỏng của tôi. Sau một hồi, "cuti" trả lời: "Chà, phức tạp quá vậy? nhưng việc thâm nhập vào một máy nào đó cũng là 'hack' theo định nghĩa của anh cơ mà?"
Tôi cười đáp: "Không đâu em, nếu em phân tích kỹ hơn một tí thì sẽ thấy điểm khác biệt ở đây. a. 'hack' là sự thay đổi nào đó đến hệ thống. Điều này có nghĩa em phải có quyền truy cập, sử dụng rồi mới có thể thực hiện sự thay đổi. Ít nhất em phải có một chủ quyền nào đó, dù nhỏ bé nhất, mong manh nhất thì mới có thể 'hành động' được. b. thâm nhập vào một máy nào đó có nghĩa là em ở trong giai đoạn trước khi xác định được chủ quyền cần thiết để thực hiện 'hành động' hack."
Nói một cách khác, phải có a thì mới có b.
Lần này "cuti" im lặng khá lâu. Tôi để yên cho cu cậu nghĩ ngợi thoả thích. Sau một hồi, "cuti" hỏi tiếp: "Nếu thế thì việc thâm nhập vào một máy nào đó bao gồm 'hành động' hack chớ chính nó không phải là 'hack'? Mình gọi chung chung tất cả là 'hack' không được sao?"
Tôi đáp: "Đúng vậy, nếu như em muốn xét vấn đề trên phương diện hiện tượng thay vì phương diện thứ tự thời gian. Việc gọi như thế nào không quan trọng bằng việc hiểu thực chất vấn đề là ở đâu."
"cuti" hồi đáp ngay: "Hình như anh đang chỉ cho em chỉ phần lý thuyết mà thôi? Em cố gắng hình dung việc áp dụng lý thuyết này vào thực tiễn nhưng sao thấy mù mờ quá."
Tôi trả lời: "Được rồi, hãy xét xem một vài trường hợp anh nghĩ thuộc dạng 'hack'.
a. nếu em thay đổi một giá trị trong Windows registry để đạt được mục đích nào đó hoặc 'mở' ra thêm một chức năng nào đó mà Windows không có ở chế độ mặc định. Đây chính là 'hack'. Để có thể thực hiện chuyện này, em phải được phép (có quyền) khởi động lệnh regedit. Nếu không, hành động 'hack' này không thể xảy ra.
b. tương tự cho hệ thống *nix, nếu những giá trị mặc định nào đó trong /proc system của Linux không ứng hiệu theo ý em, khi em thay đổi chúng có nghĩa là em đã 'hack'. Để làm được chuyện này, em phải có chủ quyền nhất định.
c. em có thể duyệt một trang web nào đó nhưng không thể thay đổi 'thái độ' của nó (cách hiển thị, giá trị hiển thị....). Tuy nhiên, để ứng dụng web (của trang web này) hiển thị những thứ khác hơn (đáng lẽ ra nó không được hiển thị như thế), em phải tác động đến nó bằng cách này hoặc cách khác (dùng telnet, dùng netcat, dùng string ngay trên chính trình duyệt....). Để làm được chuyện này, em phải có chủ quyền nào đó.
Trong phạm vi truy cập, nếu em có thể duyệt trang này, ít nhất em đã có chủ quyền như một guest và ít nhất, em đã truy cập được vào trang web trước khi có thể thực thi một 'hành động' nào đó. Làm guest có giá trị chủ quyền nhất định.
Nói một cách tổng quát, giả sử dịch vụ cho phép truy cập nhưng lại đòi hỏi tên người dùng và mật khẩu hẳn hòi, em hoàn toàn không có chủ quyền nếu như em duyệt trang web này với tư cách guest. Nói một cách khác, cơ hội để em 'hack' (hay tạo một tác động nào đó) trên web server này là rất thấp (hoặc giả không có). Tuy nhiên, nếu em phân tích tỉ mỉ thì thấy rằng, khi em truy cập vào một trang web đòi hỏi xác thực danh tánh, sẽ có giai đoạn em vẫn là guest và vẫn có thể tác động đến web server (để thực thi giai đoạn xác thực danh tánh). Giai đoạn ngắn ngủi này là chổ trống (có thể) để em tạo một tác động gì đó đến máy chủ (hay còn gọi là 'hack').
"cuti" trả lời (kèm theo một emotion icon biểu thị cho sự 'buồn bã'): "Chà, càng lúc càng rối bòng bong cả lên. Nếu vậy, em muốn thâm nhập vào một máy con nào đó trên Internet thì có nghĩa em phải có chủ quyền gì đó trên máy kia?"
Tôi cười đáp: "Tất nhiên. Nếu không em không thể 'hack' được. Anh nhắc lại: 'hack' là một hành động chỉ có thể xảy ra khi có được chủ quyền, có thể truy cập đến mục tiêu mình muốn thâm nhập. Đây mới chỉ là khái niệm tổng quát. Nếu em muốn thâm nhập vào một máy nào đó trên Internet, em phải biết rõ máy đó là máy gì? nó chạy trên hệ điều hành nào? Kế tiếp em mới tìm hiểu xem em có thể truy cập nó vào vị trí nào và xem thử em có được chủ quyền gì? Nói trên bình diện thâm nhập xuyên qua mạng và dùng phương tiện truyền tải TCP/IP, lối vào duy nhất và hiển nhiên nhất là cổng dịch vụ. Nếu dịch vụ không chạy --> không có cổng. Nếu không có cổng --> không thể vào."
"cuti" nhăn nhó: "Gì mà khó khăn, rắc rối vậy? Bộ không có một phần mềm nào đó, mình chỉ cần gõ tên hoặc địa chỉ của máy mình muốn thâm nhập và mình .... "chui' vào máy đó?"
Tôi phá lên cười và có phần thất vọng (sau khi cố gắng giải thích một cách có đầu đũa, có nguyên tắc với cu cậu). Tuy nhiên, tôi vẫn trả lời: "Tất nhiên là có phần mềm làm những chuyện này ở mức độ nào đó. Tuy nhiên, dựa vào phần mềm để làm chuyện này có lẽ không còn là 'hack' nữa nói theo khái niệm nãy giờ anh cố gắng trao đổi với em."
"cuti" cãi lại: "Nhưng.... mục tiêu cuối cùng là thâm nhập. Không cần biết mình dùng công cụ nào, miễn sao thâm nhập được là... xong. Nếu anh nói cần phải có chủ quyền rồi mới có thể tạo tác động, thì phần mềm này sẽ xác định mục tiêu thâm nhập có phải là hệ điều hành mình muốn, sau đó nó thử truy cập và dùng quyền guest chẳng hạn rồi... thực thi một lệnh nào đó và thâm nhập vào máy. Những bước này hoàn toàn phù hợp với khái niệm anh đưa ra. Chỉ có cái khác là em không làm 'bằng tay' mà dùng một công cụ."
Tôi cười và nói: "Nếu thế thì lẽ ra em phải hỏi anh thế này: 'anh có biết công cụ nào dùng để rà và thâm nhập vào máy nào đó hoàn toàn tự động mà mình không cần làm gì hết?', thay vì: 'Anh có thể chỉ em cách hack được không?'. Nãy giờ anh thử 'chỉ' em cách 'hack' đó nhưng có lẽ em không đủ kiên nhẫn để tiếp thu những điều anh 'chỉ' mà chỉ muốn tìm một cách nào đó, một công cụ nào đó giản tiện và đạt được mục đích ngay lập tức. Thật tình mà nói, anh có thấy một số công cụ ở dạng này và đã có thử qua cho biết nhưng chỉ một lần rồi anh không bao giờ đụng đến chúng nữa. Em muốn biết lý do tại sao không?"
"cuti" hăm hở: "Thật sao? thật có phần mềm nào tuyệt diệu đến thế sao? anh chỉ cho em chỗ nào để down nó về đi. Năn nỉ đó!"
Tôi chắc lưỡi than thầm "lại thêm một anh chàng newbie thích ăn xổi, ở thì". Tôi cố kiên nhẫn tiếp tục trả lời: "Link để download thì có thể tìm ra nhưng anh không nhớ ngay lúc này vì anh không còn đụng đến chúng nhiều năm rồi. Tuy nhiên, điều anh muốn nói ở đây là thế này: - 'hack' với dụng đích nào đó (tốt hay xấu) có sự lý thú của nó. Lý thú ở chỗ nó là một sự thách thức (challenge) để mình phải suy nghĩ, phân tích, tìm tòi và giải quyết. Thiếu mất điều này, 'hack' chẳng còn gì là thú vị nữa. - công cụ nào cũng vậy, nó có giới hạn nhất định. Công cụ được viết ra nhằm thâm nhập một hệ điều hành cho khoảng thời gian nào đó. Sau khi hệ điều hành này vá lỗi, các công cụ này trở nên vô dụng. Đó là chưa kể trường hợp các công cụ ở dạng này không hiếm bị đính một con trojan. Người dùng nó chưa thâm nhập được thì lại bị thâm nhập. - kiến thức và kinh nghiệm 'hack' theo đúng nghĩa của nó được trả giá bằng thời gian, bằng sự kiên nhẫn và niềm đam mê của người muốn tìm tòi và khai phá những điều mình thắc mắc.
Thật sự anh chỉ thích trao đổi với những ai thật sự kiên nhẫn và muốn tìm tòi theo đúng nghĩa của nó. Nhưng, cho anh biết lý do tại sao em thích thâm nhập theo lối dùng một công cụ và phó mặc công cụ ấy vậy?"
"cuti" trả lời kém hăm hở hơn trước: "Thật sự em chỉ tò mò xem thử 'chui' vào máy ai đó thế nào thôi. Xem thử nó ra sao, vậy thôi. Nếu em có được phần mềm này, chắc em chỉ thử một lần cho biết xem 'hack' là cái gì."
Tôi trầm ngâm vài giây rồi trả lời cu cậu: "Có lẽ anh nhận định sai về cái em gọi là 'em muốn học mà chẳng biết bắt đầu từ đâu' như em đã nói. Dùng một công cụ nào đó để 'chui' vào máy của người khác chỉ có thể nằm ở mức độ giải quyết sự tò mò chớ không thể thuộc diện tìm tòi và học hỏi vì việc làm này chẳng mang tí gì tính học hỏi một cách đúng nghĩa cả. Em thử tưởng tượng máy của một người dùng bình thường khác với máy của em thế nào? Anh nghĩ nếu như nó là một máy chạy Windows (anh nghĩ em thạo Windows) thì cũng C: rồi D: và bấy nhiêu software mà ai cũng dùng. Có gì đáng để 'thoả' cái tò mò đâu nhỉ? Đừng nói là em muốn tìm xem trong máy nào đó có CC và những thông tin 'lý thú' khác để... phá bởi vì anh không ủng hộ những chuyện này đâu. Không những thế mà anh cảm thấy.... mất hứng khi trao đổi."
"cuti" đáp: "Dạ không, em chẳng dám nghĩ đến chuyện kiếm CC hay gì đâu. Cùng lắm là thâm nhập vào máy nào đó, cài một .bat file để doạ chủ nhân của máy chơi cho vui. Ví dụ như, khi chủ nhân mở máy, nó hiện ra thông điệp 'you are hacked' rồi chờ vài giây, nó lại hiện ra thông điệp 'just kidding!. Em nghĩ mấy trò này vô hại mà."
Tôi phá lên cười vì tính trẻ con của "cuti" và trả lời: "Ừa, anh thấy mấy trò này quả vô hại nhưng cũng vô... ích luôn. Em thử nghĩ xem, em phải mất thời gian tìm tòi, hỏi han cho ra một software có thể dùng để 'chui' vào máy của ai đó chỉ để tạo ra hai thông điệp 'doạ' khổ chủ cho vui thôi thì khá phí thời gian. Mấy việc làm tinh quái này càng không dính dự gì đến chuyện em nói ngay từ đầu là 'em muốn học hỏi'. Có thể chính em không làm gì phương hại cho khổ chủ của cái máy kia nhưng những cậu bé khác chắc gì có suy nghĩ như em? Cho anh hỏi, em đang làm gì hay còn đi học?"
"cuti" trả lời ngay: "Dạ em đang còn đi học mà, em học tin năm thứ hai. Bộ hồi nhỏ anh không có thử qua những trò tinh quái của tuổi học trò sao? Chắc anh cũng biết 'nhất quỷ, nhì ma, thứ ba học trò' phải không?"
Tôi chậm rãi đáp lại, cố gắng thuyết phục "cuti" từ bỏ ý định làm một việc vô ích: "Không may (hay có thể là may) cho anh là thời anh còn bé, mọi chuyện thời ấy khó khăn lắm, nó làm cho con người trưởng thành hơi sớm và bị mất đi rất nhiều những trò tinh quái kia. Đến lúc anh bắt đầu làm quen với computer thì lúc ấy anh cũng đã qua tuổi 'rookie' rồi cho nên quả thật anh chưa hề kinh qua những trò tinh quái như em nói. Anh thật sự không chống đối những trò chơi vặt và vô hại kia, anh chỉ tiếc cho thời gian và công sức mình bỏ ra chỉ để tạo những thoả mãn rất mơ hồ. Nếu em thật sự muốn học hỏi về 'hacking' đúng nghĩa của nó, thỉnh thoảng (khi rảnh) anh có thể góp ý cho em để đỡ vất vả trong chuyện định hướng và tìm tòi. Còn nếu em muốn anh 'bày' em những tiểu xảo để thực hiện những việc làm buồn cười và tinh quái kia thì... có lẽ anh không có hứng thú đâu. Vả lại em đang học năm thứ hai thì có lẽ khối lượng công việc, bài vở bắt đầu nhiều rồi đó. Thay vì phí thời gian với những chuyện này, sao em không dùng nó để 'đầu tư' vào chuyện học hành? Anh dám chắc những kiến thức em đã học qua vẫn còn những chỗ lổng chổng trong đó, sao không dùng thời gian để đào sâu và nắm rõ ngọn ngành?"
"cuti" cười đáp: "hi hi, anh nói giống ông bác của em nói quá. Đúng là mấy ông già thường có khẩu khí giống nhau. Em thấy anh có lý lắm. Mặc dù em vẫn còn ấm ức chuyện 'thâm nhập' nhưng quả thật em không cãi lại anh. Đối với em, 'hack' là cái gì đó hết sức mù mờ nhưng biết 'hack' và 'hack' được gì đó quả là phê. Nếu bạn bè em biết em biết cách 'hack' thì bọn nó sẽ phục em lăn quay. Làm 'cao thủ' hack hơi bị... hay đó. Chắc em phải theo anh để 'tầm sư học đạo' quá, được không anh?"
Tôi chợt nhận ra một khía cạnh mới trong suy nghĩ của "cuti": 'hack' để được bạn bè nể trọng. Quả là khái niệm lý thú về mặt tâm lý. Tôi trả lời cu cậu: "Vậy, em muốn 'hack' là vì một lý do khác nữa: 'hack' để được bạn bè nể trọng? Ở mức độ nào đó, bọn nó nể trọng em cũng phải vì em biết được điều bọn nó chưa biết. Nói trên bình diện khả năng thì cái 'nể' ở đây chính là kiến thức bởi vì em có kiến thức 'hack' còn đám bạn của em không có kiến thức này. Cho đến lúc này, em lại quay về chuyện 'kiến thức' và 'học hỏi'. Tuy nhiên, suy nghĩ 'hack' để được bạn bè nể trọng khá sai lạc nếu như 'hack' đồng nghĩa với tấn công và phá hoại. Người được 'nể' vì chuyện này đã sai mà người nể khả năng này cũng sai nốt.
Anh tạo điều kiện cho em suy nghĩ và trả lời anh lần tới nếu mình có cơ hội nói chuyện tiếp:
a. em thực sự muốn trau dồi kiến thức hay không? b. em thực sự có đủ kiên nhẫn để thực hiện việc 'trau dồi' này không? c. em thực sự hiểu 'hack' là gì không?
Nếu em có thể trả lời ba câu này, mình có cơ hội trao đổi nhiều hơn."
"cuti" đáp không chút đắn đo: "Em trả lời ba câu trên được ngay mà. Khỏi cần đợi lần tới."
Tôi cười đáp: "Không, anh muốn em suy gẫm lại những gì mình trao đổi hôm nay thật kỹ rồi trả lời anh sau. Anh tin rằng có nhiều thông tin em cần thời gian để 'tiêu hoá'. Nếu cần, em nên save lại trọn bộ nội dung anh em mình chat ngày hôm nay để khi nào rảnh, đọc lại cho kỹ. Đối với anh, mình chat vậy là phá kỷ lục rồi đó."
"cuti" có vẻ hơi cằn nhằn: "Mình chat cũng lâu nhưng anh toàn nói chuyện lý thuyết không thôi. Em thích động tay, động chân hơn. Em thích làm cái gì có kết quả liền."
Tôi đáp: "Chuyện thực hành không khó nếu như mình nắm được nguyên tắc, nắm được cốt lõi của vấn đề. Nếu bây giờ mình bàn về một 'lệnh' nào đó, có thể nó vô ích và vô nghĩa nếu như anh em mình chưa thống nhất ý kiến cái gọi là 'hack'. Bởi vậy, em nên xem lại những gì mình chat đi, đừng nóng vội vì nếu mình còn... 'duyên' trao đổi thì thời gian còn dài. Anh phải đi chuẩn bị một số chuyện để ngày mai còn đi làm nữa. Thôi, mình gặp lại sau hả? Chào 'cuti'."
Tôi không quên save lại nội dung chat hôm nay để tham khảo và tiếp nối cho lần sau (nếu còn dịp chat với "cuti") rồi logoff.
Sau bốn mươi phút chat với một cậu bé đang học đại học năm thứ hai, có kiến thức về tin học, tôi rút ra được vài điều như sau: - hiểu chưa đúng về cái gọi là 'hack' - vẫn còn thích phá phách một cách tinh quái - chưa bình tĩnh để xét đoán một vấn đề - thiếu kiên nhẫn để nhận ra những điểm cốt lõi mà chỉ thích thấy ngay kết quả - bị cám dỗ bởi cái danh tiếng rất mơ hồ là 'cao thủ hacker'
Tôi không chắc "cuti" có đủ kiên nhẫn để đi qua "con đường chông gai" hay không, nhưng đây là chuyện của lần tới. Tôi xếp máy lại.
16/06/2005
Chú thích: -1- rookie chỉ cho những người trẻ tuổi, bồng bột và thiếu kinh nghiệm.
Những cuộc đối thoại với rookie - Phần 2 FRIDAY, 25. MAY 2007, 11:23:09 Gần một tuần lễ trôi qua, tôi quá bận bịu và không có chút thời gian để log vào YIM. Chiều hôm nay, một chiều thứ Năm yên tĩnh một cách hiếm hoi, "thủ trưởng" thì nghỉ bệnh, mấy tay làm việc trong nhóm thì đi tham dự khóa huấn luyện. Chỉ còn mỗi mình tôi ở lại "trụ". Hơn một giờ nữa mới đến giờ tan sở nhưng tôi không thể làm gì hơn với mớ công việc dang dở (vì phải đợi thông tin từ một số phần hành khác). Chợt nhớ đến "cuti" và lần chuyện trò với cu cậu gần một tuần lễ trước đây, tôi quyết định log vào YIM.
5. Nền tảng Gần một tuần lễ trôi qua, tôi quá bận bịu và không có chút thời gian để log vào YIM. Chiều hôm nay, một chiều thứ Năm yên tĩnh một cách hiếm hoi, "thủ trưởng" thì nghỉ bệnh, mấy tay làm việc trong nhóm thì đi tham dự khóa huấn luyện. Chỉ còn mỗi mình tôi ở lại "trụ". Hơn một giờ nữa mới đến giờ tan sở nhưng tôi không thể làm gì hơn với mớ công việc dang dở (vì phải đợi thông tin từ một số phần hành khác). Chợt nhớ đến "cuti" và lần chuyện trò với cu cậu gần một tuần lễ trước đây, tôi quyết định log vào YIM.
Chà, có hàng đống offline messages và quả thật, trong mớ này có đến năm sáu cái của "cuti". Tôi xem xét từng message và thong thả hồi âm cho từng người. Khi đọc đến các messages của "cuti" tôi phá lên cười nhiều lần vì chúng có nội dung rất ngô nghê như sau: "Anh 'già khó tánh' có đó không? Em đã nghe theo anh và in ra phần nội dung chat để 'ngâm kíu' nhưng em thấy sao mà khó quá. Anh có đó không?
Chắc hẳn "cuti" nghĩ rằng tôi cố tình "núp" ở tình trạng "invisible" và cu cậu đã xác nhận tôi là "anh già khó tánh". Tôi lẩm bẩm: "Hừ, lại 'khó quá' mà chẳng có thêm một dòng giải thích tại sao khó", nhưng lại cười một mình vì nghĩ rằng tôi hơi ngớ ngẩn khi cho rằng "cuti" đã bắt đầu có thói quen trình bày có "đầu đũa" sau một lần chat ngắn ngủi với tôi.
Một thông điệp khác cũng không kém phần "hài hước" từ "cuti": "Anh 'già khó tánh' ơi? vậy 'hack' là một hành động xảy ra sau khi thâm nhập được? Nếu vậy em không cần biết 'hack' mà chỉ cần biết cách thâm nhập là đủ. Bày em cách thâm nhập đi anh già khó tánh ơi".
Ngay sau thông điệp trên là thông điệp như sau (tính theo thời gian gởi) của "cuti": "Anh già khó tánh núp đâu kỹ vậy? Cho em hỏi cái này một tí đi. Nếu em muốn 'hack' vào một máy khác, em phải thâm nhập nó trước rồi mới 'hack' nó? Nếu em đã thâm nhập nó được rồi có nghĩa là là đã 'hack' thành công rồi còn gì nữa mà... hack trời? Chết em rồi, bị tẩu hoả rồi, hu hu hu."
Lần này tôi bật cười thật to vì tính ngộ nghĩnh của "cuti". Quả thật cu cậu đang đi vào con đường "tẩu hoả" bởi vì cứ bị "ám" mãi cái khái niệm sai lạc về 'hack'. Tôi quyết định gởi "cuti" một thông điệp thế này: "Hello cuti, anh không trốn mà ít vào YIM thôi. Em bắt đầu có chiều hướng 'tẩu hoả' thật rồi đó. Anh đã bảo thâm nhập không phải là 'hack' cơ mà. Thâm nhập là bước xảy ra trước khi 'hack'. Em cứ bị ám ảnh mãi khái niệm 'thâm nhập' là 'hack'. Đừng cố quá mà hỏng hết."
Vài phút sau, "cuti" dội cho tôi hàng loạt thông điệp trên YIM, toàn là những chuyện cu cậu xuýt xoa về cái khái niệm 'hack' tôi đưa ra làm cậu mất ăn, mất ngủ. Tôi đáp bằng một thông điệp ngắn gọn: "Thong thả nào cuti. Anh em mình thử 'bàn' một ví dụ cụ thể nào đó có lẽ dễ chịu hơn hả?".
Không đợi "cuti" trả lời, tôi gởi tiếp một thông điệp khác: "Này, ví dụ ở nhà em có hai máy chạy Windows chẳng hạn. Bằng cách nào đó, em truy cập máy B từ máy A (là máy của em). Tuy nhiên, sau khi truy cập vào máy B, em chỉ duyệt máy này mà không thay đổi gì cả, không tạo thêm file mới, cũng chẳng delete file cũ... Như thế có gọi là 'hack' không?"
"cuti" trả lời nhanh như điện: "Anh ăn gian quá, làm như thế thì chỉ là truy cập thôi chớ hack hiếc gì anh. Em biết tên người dùng và mật khẩu của máy B thì em vào chớ đâu có gì vất vả đâu mà gọi là 'hack'?"
Tôi thấy thêm một nhìn nhận mới về cái gọi là 'hack' theo suy nghĩ của "cuti", nên tôi hỏi lại: "À, ra thế. Vậy, nếu em biết tên người dùng và mật khẩu của một máy nào đó và dùng chúng để truy cập vào máy này thì chỉ là... truy cập? Nếu em không hề biết tên người dùng và mật khẩu nhưng bằng cách nào đó em có thể truy cập nó thì gọi là... 'hack'?"
"cuti" cười hớn hở: "Hi hi, đúng vậy đó anh! Chỉ đơn giản như thế thôi. Còn cái khái niệm quỷ quái của anh làm em điên đầu chớ chẳng đi tới đâu cả."
Tôi cười, hỏi tiếp: "Thế, điểm khác nhau giữa việc:
a. ai đó cho em tên người dùng và mật khẩu để truy cập đến máy X nào đó. Người này không phải là chủ nhân của máy.
b. em tự dùng cách nào đó (đoán mò, brute force...) để rốt cuộc tìm ra được tên người dùng và mật khẩu cũng để truy cập đến máy X này.
a và b khác nhau chỗ nào?"
"cuti" im lặng hồi lâu rồi rụt rè trả lời: "Hình như anh lại hỏi mẹo em nữa hay sao đó phải không? Em thấy rõ điểm khác nhau duy nhất là trường hợp b cực hơn trường hợp a và đôi khi không đạt được trường hợp b nữa là đằng khác."
Tôi trấn an "cuti": "Không, anh chưa hề 'hỏi mẹo' em bao giờ, câu nào anh hỏi cũng đều là hỏi thật cả. Vậy, cả a và b ở trên có được gọi là 'hack' hay không?"
"cuti" đáp ngay, không suy nghĩ: "Tất nhiên b là 'hack', a là 'truy cập'."
Tôi cười phá lên và hỏi thêm: "Tại sao a là 'truy cập' mà b là 'hack' vậy cuti?"
"cuti" có vẻ giận dỗi, đáp: "Anh hứa là mình sẽ bàn một ví dụ cụ thể mà lại đi hỏi em lăng nhăng như thế này thì... oải quá . Tất nhiên b là 'hack' vì mình phải mò mẫm, chịu khó, mất thời gian để tìm ra tên người dùng và mật khẩu để vào được máy X chớ sao nữa anh?"
Tôi vẫn kiên trì "khai thác" suy nghĩ của "cuti": "Vậy nếu một tên đạo chích muốn 'thâm nhập' vào dinh cơ của ông phú ông chẳng hạn. Có hai trường hợp xảy ra vời tên đạo chích này:
a. hắn có chìa khoá mở cửa vào.
b. hắn dùng cọng dây thép để ngoáy lỗ khoá.
Cả hai trường hợp đều tạo ra điều kiện cho tên đạo chích vào được nhà ông phú ông. Chỉ có cách b khó khổ hơn cách a. Tuy nhiên, sau khi tay đạo chích vào được trong nhà nhưng hắn chưa 'mó tay' vào món nào của phú ông mà chỉ 'nghía' xung quanh thì hắn 'hack' chưa? "
"cuti" reo lên: "Á à, em hiểu rồi. Ý anh 'thâm nhập' bằng cách này hay cách khác chỉ là 'thâm nhập'. Còn 'hack' thì phải động đến cái gì đó bên trong môi trường mình đã thâm nhập, phải không anh già khó tánh? ."
Tôi cười đáp: "Đúng vậy. Ngay cả trường hợp trên thay tên đạo chích bằng thằng cháu của phú ông và phú ông đưa hẳn chìa khoá cho nó vào dinh thự. Nếu nó đã vào được dinh thự (bằng chìa khoá hẳn hòi) và chỉ quan sát mà không 'mó' tay vào bất cứ thứ đồ đạt gì trong nhà thì có nghĩa nó chưa 'hack' ông phú ông vậy . Nói một cách khác, 'thâm nhập' một cách hợp lệ hay bất hợp lệ vẫn là 'thâm nhập'; sau khi 'thâm nhập' rồi, 'hack' hay không là một hành động khác. Anh muốn mình thông qua khái niệm này."
"cuti" cảm thán: "Trời đất, trước giờ em cứ tin tưởng rằng hễ mình thâm nhập được vào một hệ thống thì có nghĩa là mình đã 'hack'. Nhưng nói theo 'định nghĩa' của anh thì quả thật 'hack' là một hành động thay đổi thái độ làm việc của hệ thống. Mình không 'mó' gì cả thì chẳng có gì thay đổi --> no hack. Thú vị thật, thú vị thật."
"cuti" dường như nhận ra điều gì đó bèn nói tiếp: "A, em biết ý anh rồi. Anh đáo để thật. Anh nói là anh sẽ bày em cách 'hack' có nghĩa là anh không động đến chuyện 'thâm nhập', có nghĩa là mặc em muốn 'thâm nhập' ra sao thì tuỳ rồi 'hack' thế nào thì anh chỉ vẽ sau, phải không?"
Tôi cười phá lên: "Ha ha ha, đó là em tự suy diễn đó nha. Em thích như vậy thì cũng tốt!"
"cuti" phụng phịu: "Trời ơi, em bị lừa một quả đau thật . 'thâm nhập' mới khó chớ, đã 'thâm nhập' được rồi muốn 'hack' sao lại không được?"
Tôi nghiêm giọng: "Em thật sự tin rằng 'thâm nhập' khó hơn 'hack' sao? anh em mình thử đánh cuộc một phát xem?"
"cuti" thận trọng hơn trước nhưng câu trả lời của cu cậu không dấu được sự tự tin với ý kiến của mình: "Ùm... em tin rằng 'thâm nhập' mới thật là khó, 'hack' cũng khó nhưng không 'thâm nhập' được thì làm sao mà 'hack'?, phải vậy không anh? Nếu anh chứng minh được 'hack' khó hơn 'thâm nhập' hoặc khó bằng 'thâm nhập' thì anh nói gì em cũng nghe hết!"
Tôi cười, đáp lời "cuti": "Được rồi, hứa đó nha 'anh nói gì em cũng nghe hết!'. Anh cho em IP của một Linux server, anh cho em biết luôn đó là Linux gì, chạy kernel nào, dùng filesystem nào. Anh cho em luôn tên người dùng, mật khẩu và cổng SSH để log vào. Em khỏi lo chuyện 'thâm nhập' đi. Bây giờ anh cho em một ngày để 'hack' cái server đó để làm sao trang chủ index.html có dòng "cuti was here and won the bet to the grumpy old man!". Anh không cho em biết web server này chạy bằng chương trình nào, hồ sơ cấu hình nó nằm ở đâu... Tùy em phải tìm hiểu. Em thử 'hack' xem dễ hay khó!"
"cuti" rú lên và tuôn ra hàng tràng ca cẩm: "Tiêu em rồi anh già khó tánh ơi! Anh biết em không rành Linux mà lại mang Linux ra bắt em 'hack' thì em thua là cái chắc . Lúc trước em có nghe mấy đứa bạn tán kháo là Linux mạnh lắm. Em cũng cài thử. Mất mấy ngày trời bầm dập mới xong. Rốt cuộc cũng vào được Linux nhưng chỉ thấy màn hình đen thùi với dòng chữ màu trắng, y như mấy cái cửa sổ DOS cổ lỗ sĩ, chán như con gián. Em chả thấy mạnh ở đâu mà chỉ thấy chán thôi. Sau đó chỉ tháo bỏ Linux thôi mà vất vả quá trời, thiếu điều mất luôn cái partition Windows của em. Thôi thôi, em chịu thua độ rồi đó."
Tôi nhận thấy cái tính thiếu kiên trì, thiếu ngọn ngành của 'cuti' một lần nữa thể hiện rõ trong câu trả lời trên. Trầm ngâm vài giây, tôi đáp: "Anh thật sự không biết là em không rành Linux bởi vì anh thấy rằng, muốn 'hack' mà không thạo các hệ điều hành hiện thời thì không thể 'hack' được. Hơn nữa, Linux là môi trường sản sinh từ 'hack' mà ra và nó có một kho tàng công cụ để 'hack' theo đúng nghĩa của nó. Qua phần trả lời của em ở trên, anh có nhận xét như sau:
- em chỉ nghe bạn tán kháo là Linux mạnh, em thấy đủ hấp dẫn để bắt tay vào việc cài Linux. Đây là một điều tốt. Tuy nhiên, em bị mất hẳn bước tham khảo (chính em tham khảo chớ không nghe tán kháo) xem Linux mạnh ở chỗ nào. Bởi thế em bị mất định hướng ngay khi vào được Linux và thấy màn hình đen, chữ trắng.
- Em chưa tự ép mình hơn mức bình thường để tìm hiểu xem đằng sau màn hình đen và dòng chữ trắng ấy có những gì lý thú. Anh thừa biết với khả năng của em và sự thông minh sẵn có của em, em có thể 'vén' được màn hình màu đen đó để đi vào bên trong và thấy được những điều lý thú và bổ ích. Nhưng tiếc là em đã không đủ 'can đảm' và 'kiên nhẫn' để thực hiện.
Quay về với chuyện 'thâm nhập' và 'hack' em có thấy rằng, để 'hack' được server mà anh đánh cá với em, em phải hiểu rõ Linux không? Vậy, theo em nghĩ, 'hack' khó hay 'thâm nhập' khó? 'thâm nhập' có khó hơn 'hack' không?"
"cuti" trở nên buồn bã: " Anh nói đúng lắm và những lời anh nói còn đau hơn ong chích. Bây giờ em mới thấy 'thâm nhập' không dễ mà 'hack' cũng mênh mông quá. Nếu em hiểu không sai thì anh muốn nói rằng: muốn 'hack' thì phải hiểu rõ mục tiêu mình dự định 'hack', phải không ạ?"
Tôi trả lời: "Chính xác!"
"cuti" trả lời với vẻ thiếu phấn khích thấy rõ: "Vậy có nghĩa là trước khi em muốn 'hack' Linux em phải thành thạo Linux, muốn 'hack' Windows em phải thành thạo Windows. Nếu chưa thành thạo thì em phải học từ đầu đến cuối. Hu hu, vậy đến đời nào, kiếp nào em mới 'hack' được bây giờ?"
Tôi đáp lại một cách ngắn gọn: "Cho đến khi nào em có thể!"
"cuti" than thở: "Anh không có cách nào khác sao? Em thấy trên các diễn đàn bày cách 'hack' đủ kiểu, đủ cỡ. Có những trường hợp làm được, có những trường hợp thử hoài chẳng có kết quả. Nhưng ít ra những trường hợp thành công thì cũng là cách 'hack' có kết quả vậy? Những cách này em đọc vào thấy ù ù, cạc cạc nhưng làm vẫn được mà em cũng đâu cần phải học cho có ngọn ngành như anh nói đâu?"
Tôi cười đáp: "Em nói như thế là một lần nữa muốn sa vào cõi 'tẩu hoả'. Anh hỏi lại, em muốn 'hack' hay em muốn 'thâm nhập'? em muốn thật sự học hỏi hay em chỉ muốn thấy kết quả ngay lập tức? Những dạng bày cách 'hack' mà em thường thấy trên các diễn đàn cũng giống như tin tức trên báo chí hàng ngày vậy. Nó nóng hổi, mới toanh sáng nay nhưng sáng mai nó sẽ cũ kỹ, lỗi thời. Thật sự anh nói hơi quá nhưng dùng hình ảnh nhật báo để so sánh với các 'chiêu' hack trên các diễn đàn không khác nhau mấy. Thử nghĩ xem, em thâu thập và trang bị mọi thứ từ một bài bày cách 'hack' nào đó. Em sẽ có 2 lựa chọn:
- thử 'thâm nhập' và 'hack' vào chính máy chủ nào bị lổ hổng (và được dùng làm mục tiêu trong nội dung bài chỉ cách 'hack') --> cách này chán phèo vì máy chủ đó đã bị nát như tương. Em 'thâm nhập' để xem 'rác' chớ chẳng còn gì lý thú.
- thử tìm và 'thâm nhập' một máy chủ nào đó bị lổ hổng tương tự. Em bị kẹt. Kẹt chỗ nào? Kẹt ở chỗ em không biết cách nào để tìm ra một máy chủ bị lổ hổng tương tự bởi vì em thiếu mất những kỹ năng căn bản. Cho đến khi em tìm ra được một máy chủ nào đó ưng ý, có thể máy này đã vá lỗi mất rồi.
Chẳng những thế, có lắm trường hợp em đọc các bài hướng dẫn 'hack' và hoàn toàn mất phương hướng bởi vì hầu hết những người viết các bài này không phải viết theo tinh thần truyền đạt cặn kẽ cho người muốn biết mà dừng lại ở dạng 'tóm lượt' lại những gì họ trải qua. Đó là chưa kể những trường hợp 'tam sao thất bổn', người thứ nhất đọc, thử và làm rồi diễn dịch thành một thứ khác. Người thứ nhì tiếp nối tinh thần này... đến lượt em, em chẳng còn hiểu được bao nhiêu. Điều này cũng phải bởi vì chẳng ai có thể viết một bài hướng dẫn đi từ chuyện căn bản nhất đến chuyện cao cấp nhất cả. Những kiến thức căn bản cần có để 'hành động' là do bản thân mình tạo dựng nên.
Anh thường thấy các bài hướng dẫn ngầm phỏng định là người đọc phải hiểu rất nhiều chi tiết căn bản và tự mình hình dung ra môi trường của máy chủ bị 'thâm nhập'. Thiếu nền tảng này, người đọc chỉ nhắm mắt mà làm theo bước một, bước hai, bước ba rồi kêu oai oái là... không được."
"cuti" đâm liều lĩnh: "Chà, anh làm em không còn bụng dạ nào cho chuyện hack hiếc gì nữa. Anh làm cho em cảm thấy mình ngu ngốc kinh khủng. Kỳ này chắc em bỏ hết, không thèm học tin nữa."
Tôi đoán chắc "cuti" nói dỗi, bèn hỏi tới: "Vậy lý do gì làm em quyết định theo học ngành tin vậy?"
"cuti" hăm hở: "Anh cũng trong ngành, anh biết mà. Ai theo ngành tin, giỏi ngành tin thì chắc chắn sẽ 'cơm no, bò cưỡi', ra đường mấy 'ẻm' chen nhau chạy theo ".
À, ra thế, lại thêm một điểm 'nhức nhối' trong suy nghĩ của "cuti", một lý do mạnh mẽ để "cuti" chọn ngành tin. Tôi đáp: "Cứ cho ngành tin có 'phép mầu' như thế đi. Em thử tính sơ qua xem mỗi năm có bao nhiêu sinh viên tốt nghiệp ngành tin và có bao nhiêu người được nhận làm trong ngành tin, có bao nhiêu người được ở vị thế 'cơm no, bò cưỡi'? Hẵng khoan tính số lượng người hiện đã và đang làm trong ngành tin và có kinh nghiệm hơn nhiều. Từ con số này, em thử ước tính xem, với kết quả 'bình bình, chẳng hơn ai' thì em có được bao nhiêu phần trăm cơ hội đạt được cái gọi là 'cơm no, bò cưỡi', ra đường mấy 'ẻm' chen nhau chạy theo'?"
"cuti" im lặng rất lâu, phải đến gần hai phút. Tôi cứ nghĩ cu cậu bị 'rớt mạng' nhưng thật sự không phải thế. Cu cậu vẫn còn online và có lẽ đang nghĩ mông lung. Sau đó, "cuti" mới trả lời: "Trời ơi, anh làm em thật sự lo ngại và nhụt chí rồi đó. Vậy em phải làm sao bây giờ?".
Hẳn nhiên là hồi nãy "cuti" đã nói liều "không thèm học tin nữa". Tôi đoán chắc cu cậu đã hình dung được "con đường chông gai" trước mắt. Đến lúc này tôi mới góp ý "cuti" cú chót một cách nghiêm túc: "Nếu em thật sự muốn hỏi ý kiến anh thì thế này. Hãy tạm dẹp sang một bên những trò 'thâm nhập' vô ích kia đi. Chuyên chú vào chuyện học là chính. Chẳng những em cần hiểu những điều mình học được mà còn phải tìm tòi thêm để hiểu rộng và hiểu sâu mỗi vấn đề. Nếu em đạt được kết quả trên 90%, chắc chắn em có nhiều cơ hội thành công hơn.
Ngay cả nếu em có định hướng theo ngành bảo mật, em phải nắm rất vững những hệ thống máy em cần bảo vệ hoặc cần 'khai thác'. Một khi em nắm vững những cái này, tự nhiên chuyện 'bảo vệ' hay 'khai thác' (thâm nhập và 'hack') trở nên rõ ràng. Nếu em dành thời gian để mày mò những tiểu xảo nho nhỏ, kết quả sẽ đi về đâu? chẳng đi về đâu cả vì chúng chỉ là những tiểu xảo không hơn, không kém. Cho dù em rành rẽ các tiểu xảo này nhưng khi đặt em vào một môi trường có những thay đổi khác, em sẽ không 'khai thác' được vì em bị thiếu mất căn bản, không nắm vững các nguyên tắc cần thiết."
"cuti" trả lời một cách buồn bã: "Đúng là trước giờ em phí thời gian quá. Chắc em phải chấn chỉnh lại. Nhưng em có một thắc mắc. Anh nói là 'muốn thâm nhập và hack thì phải nắm vững hệ thống mình cần thâm nhập và hack', điều này có nghĩa là em phải sử dụng các hệ thống này thành thạo?"
Tôi đáp: "Tất nhiên rồi. Theo anh, 'hacker' là một 'user' có kiến thức rất quảng bác. Không những anh ta (hoặc cô ta) nắm vững cách sử dụng hệ thống (trên bình diện một user) mà còn có khả năng phân tích và thấu hiểu cơ chế làm việc của hệ thống. Nói một cách nôm na, 'user' chỉ cần biết nhấn một nút thì có kết quả gì đó còn 'hacker' thì chẳng những phải biết như thế mà còn biết được hành động nhấn nút ấy đã tạo ra biến cố gì, biến cố này tác động thế nào đến hệ thống, những tác động này tại sao hợp lệ, những tác động này sẽ không được xem là hợp lệ trong những tình trạng nào.... và hơn hết, làm sao để điều chỉnh cho tác động đến nút này luôn luôn hợp lệ (trên quan điểm bảo mật) hoặc điều chỉnh làm sao cho tác động trở nên bất hợp lệ (trên quan điểm khai thác).
Ví dụ ai đó hỏi em 'làm sao dùng NET USE để truy cập vào một máy khác? (một cách hợp lệ hay bất hợp lệ)' thì tất nhiên để có thể trả lời câu này, em phải nắm rất vững cách dùng NET USE, sau đó em phải hiểu rõ NET USE tác động đến hệ thống thế nào và nếu cần dùng NET USE để 'thâm nhập' thì em phải biết xác định điểm yếu của hệ thống từ các tác động này nằm ở đâu. Để làm được việc này, em phải là một 'user' giỏi và thành thạo Windows.
Nếu em chỉ vẽ cho ai đó một dòng lệnh NET USE để thâm nhập vào hệ thống chạy Windows chẳng hạn, nhưng lệnh này không tạo kết quả gì cả. Em phải ước đoán được các lý do làm cho lệnh này không thực hiện được. Như vậy, 'thâm nhập' ở đây chỉ dừng lại ở chỗ gõ dòng lệnh nhưng 'hack' ở đây thì đi xa hơn: hiểu rõ dòng lệnh làm những gì đằng sau đó."
"cuti" gật gù, trả lời với loại ngôn từ rất thịnh hành (với hai chữ "hơi bị" được dùng khá sai lạc về mặt ngữ pháp): "Anh lấy ví dụ này... hơi bị hay đó. Vậy, một người thuộc dạng 'script kiddie' như người ta thường nhắc đến thì thuộc dạng 'user' hay 'hacker'?"
Tôi mỉm cười, trả lời: "Dạng 'script kiddie' theo anh là một 'user' nhưng không phải là một 'user' bình thường. 'script kiddie' có thể rành một số tiểu xảo nào đó hơn 'user' bình thường nhưng lại kém kiến thức hơn 'user' bình thường nhiều mặt khác. Chắc chắn 'script kiddie' không phải là 'hacker' vì 'hacker' thật sự là một người không quản ngại khó khăn để tìm cho mình giải đáp, tìm cho mình sự thoả mãn một cách vững chắc thay vì muốn thấy ngay kết quả (mà không chịu khó khổ) như 'script kiddie'. Nói một cách nôm na: 'hacker' tìm ra và thay đổi thái độ làm việc của một nút bấm nào đó, 'script kiddie' chỉ cần bấm nút, chờ kết quả và không cần quan tâm chuyện gì xảy ra sau khi bấm nút."
"cuti" rên rỉ: "Oái, anh đang chửi xéo em đó phải không? . Sao em thấy em giống 'script kiddie' quá. Chắc em đúng là 'script kiddie' rồi . Hu hu, nhưng làm sao để tránh không trở thành một 'script kiddie' vậy anh?"
Tôi đáp: "Em hỏi câu này hơi thừa rồi đó. Anh tin rằng qua hai lần chat với nhau, em đã hiểu cần phải làm thế nào để không trở thành một 'script kiddie'. Có lẽ anh không cần phải tổng kết lại hả? Thử rèn luyện khả năng tổng kết đi em . À mà này, lần trước mình có bàn về chuyện đọc sách và rèn luyện kỹ năng tổng kết, em đã thử nghiệm chưa và thấy thế nào?"
"cuti" cười gượng gạo: "Ùm... em có thử lôi một cuốn e-book ra nghiền ngẫm như chỉ được mấy trang đầu là thấy choáng váng cả mặt mày . Em tự nhủ là để mai xem tiếp nhưng rồi hết chuyện này đến chuyện khác, em vẫn chưa đọc quá ba trang."
Tôi cười phá lên: "Hà hà, đúng là điển hình rookie . Vậy em đọc cuốn gì mà thấy choáng váng cả mặt mày?"
"cuti" phụng phịu: "Thì em nghe theo lời anh nói trên diễn đàn HVA là cuốn TCP/IP Illustrated của Richard Stevens là cuốn để đầu giường nên em tóm ngay cuốn đó thôi. Đâu ngờ nó khó nuốt đến như vậy "
Tôi không ngạc nhiên khi "cuti" nhận định như thế, tôi đáp: "Ừa, đọc những cuốn 'thuần' như cỡ TCP/IP Illustrated của Richard Stevens thì em phải cần một ít kỹ năng và phải thật sự muốn tìm hiểu thì mới tiêu hoá nổi. Còn không thì nó 'khô như rơm' thì làm sao mà nuốt cho vô? Cuốn này của Richard Stevens dùng để bổ túc, đối chiếu và đào sâu những gì em học ở trường thì rất hay, nếu em nhảy ngang vào và cố đọc thì chỉ dẫn đến chuyện chán nản mà thôi. Ở trường em đã đụng đến TCP/IP chưa?"
"cuti" trả lời không ngần ngừ: "Ở trường hả anh? ở trường có gì mà học? Cái gì cũng đại cương với khái niệm, chán như con gián. Học như vậy biết chừng nào mà thành?"
Tôi mắng "cuti" ngay": "Em đầy mâu thuẩn. Em xem thường mấy thứ 'đại cương' với 'khái niệm' nhưng không có chúng thì làm sao em có nền tảng để đi sâu hơn? Từ những thứ 'đại cương' và 'khái niệm' này, em có thể tham khảo sách vở, tài liệu và trau dồi cho mình thêm kiến thức. Không những đây là chuyện bổ ích cho bản thân em mà đây cũng là điểm để đo cái khác biệt giữa một sinh viên 'thường thường bậc trung' và một sinh viên 'xuất sắc' đó. Hèm, con đường đi tới chỗ 'cơm no, bò cưỡi' e hơi chông gai đó em!"
"cuti" nhăn nhó: "Trời, hôm nay đúng là xuất hành không coi ngày hay sao đó. Từ nãy giờ em bị sao quả tạ của anh 'chiếu' liên hồi luôn "
Tôi cười đáp: "Vậy em muốn 'sao quả tạ' không chiếu chớ gì? dễ ợt thôi mà. Bây giờ mình bàn chuyện 'hack gunbound' hay 'chôm Yahoo password' là hết 'sao quả tạ' "
"cuti" cuốn quýt: "Không, không, em chỉ đùa tí thôi mà. Thật tình nói chuyện với anh, em thông được nhiều điều lắm. Chỉ có điều 'cái đầu khổ sở' của em nó làm việc chậm như bộ vi xử lý 486 cũ kỹ nên chắc em cần phải có thời gian để từ từ mà 'xử lý'. Nói chuyện với anh, em bị nhiều cú đau đầu lắm á nhưng không hiểu sao nó... hơi bị phê, hì hì."
Tôi cười: "Lại cái kiểu nói 'hơi bị...' dùng từ gì kỳ cục vậy? 'hơi bị' là dạng thụ động dùng để chỉ cho điều gì đó không được hay mà sao lại đi trước một từ như 'phê', 'hay' vậy? 'hơi bị hay' rồi 'hơi bị phê' nghe nó trái tai làm sao đó!"
"cuti" cười nhanh nhẩu: "Thôi anh ơi, anh quá cổ lổ sĩ rồi, thời nay mọi người dùng từ kiểu này không anh à. Nhưng mà đừng nói là anh lại chuẩn bị cho em một bài về 'ngữ pháp' đó nha. Hì hì, em bị 'quả tạ' gần trúng thực rồi đây."
Tôi đáp: "Thôi, anh chỉ nhận xét vậy thôi, dính vô mấy chuyện ngữ pháp tiếng Việt, tiếng Việt trong sáng... coi chừng 'tẩu hoả' dạng khác bây giờ. Thế này, em hiện đang học cái gì ở trường và em nghĩ là hiện thời em thích tham khảo chuyện gì nhất. Có cần e-book hay tài liệu gì, anh cố tìm cho mà đọc. Nhưng quan trọng là phải khởi đầu bằng cái gì đó vừa sức em và đừng 'khô như rơm' thì mới nuốt nổi."
"cuti" trả lời ngay: "e-book hả anh? em có hàng... tấn. Nghe ở đâu có e-book là em hì hụi down về cho được. Em có chừng 2 gig e-book để mục miễu trong máy á. Có cái em chưa bao giờ ngó qua, có cái xem có vẻ hay hay nhưng có lẽ nội công còn non nớt quá nên chưa bao giờ luyện qua hết tầng một (chương một) của bộ bí kíp nào hết. Anh muốn em đọc cuốn nào, em lục cuốn ấy mà đọc thôi."
Tôi cười một mình, lắc đầu và trả lời "cuti": "Lại thêm một điển hình khác của 'rookie'. Nghe thấy ở đâu có e-book thì cố mà download về rồi bỏ đó. Anh không thể 'muốn' em đọc cuốn nào mà phải chính em quyết định em 'muốn' đọc cuốn nào. Chuyện quan trọng lúc này là cách làm quen với sách kỹ thuật chớ chưa cần nội dung cao siêu cỡ nào hết. Miễn sao em thích đề tài nào thì chọn một trong mấy cuốn em có mà thử thôi. Cái quan trọng là phải tự kỷ luật, đừng hứa hẹn cho ngày mai. Chắc cũng gần đến giờ anh dzọt rồi. Để khi khác mình tiếp tục vậy hả?"
"cuti" nằn nì: "Khoan đã anh, cho em hỏi thêm một tí nữa thôi. Anh 'bắt' em đọc sách nhưng anh chẳng chịu cho em một tí 'khẩu quyết' gì để 'đả thông' hết làm sao em nuốt vô cho nổi? . Anh bày em cách đọc và tổng hợp như anh nói đi. Hồi đó đi học, anh có phương pháp gì vậy?"
Tôi chậm rãi đáp: "Cái thời 'hồi đó' của anh có lẽ khác cái thời 'hồi nay' của em nhiều lắm. Thời đó chưa có cái gọi là 'google', Internet cũng chưa có luôn. Modem thời đó lúc anh mới làm quen computer là 4800 bauds còn sách và tài liệu thì quý như... vàng. Muốn mua một cuốn sách phải tằng tiện cả tháng trời hoặc hơn cho nên có một cuốn sách trong tay là 'nghiến' từng dòng, từng chữ. Bởi hai 'thời' khác nhau quá, anh chỉ có thể góp ý với em thế này:
- sách vở, tài liệu có hai dạng chính: sách giáo khoa và sách tham khảo. Cách đọc và 'tiêu hoá' hai loại này khác nhau. - sách giáo khoa là để học các kiến thức em gọi là 'đại cương và khái niệm'. Loại sách này em phải học, hiểu và tiếp nhận nó như một thứ kiến thức căn bản và cần thiết. - sách tham khảo là để đối chiếu, mở rộng, đào sâu những thứ em đã học được từ sách giáo khoa. Các e-book của em có chắc hầu hết là sách tham khảo. - vậy, để đọc được sách tham khảo em phải có căn bản trước không thì em bị 'bọng' và sẽ thấy 'khó nuốt' bởi vì loại sách này viết với ngầm định là em đã nắm kiến thức căn bản.
Riêng phần 'khẩu quyết' thì đại loại là thế này: để làm quen với việc 'đào sâu', em nên tự đặt cho mình các câu hỏi rồi tìm cách tự trả lời. Nếu em chưa quen 'tự đặt câu hỏi' thì em có thể dùng vô số các câu hỏi được đặt ra xung quanh em. Thời nay diễn đàn CNTT mọc lên như nấm, có bao nhiêu là câu hỏi từ dạng đơn giản nhất đến dạng phức tạp nhất. Em thử chọn một vài câu hỏi rồi hình thành cho mình câu trả lời sao cho đầy đủ nhất, hữu lý nhất. Câu trả lời tìm ở đâu? từ các sách tham khảo em có, từ 'google', từ các search engines.... Ví dụ, ai đó phát biểu một câu như sau: giao thức TCP là một giao thức stateful và UDP là một giao thức stateless. Em thử tìm hiểu xem lý do tại sao câu này được phát biểu như thế? có những lý do nào làm cho TCP thuộc dạng stateful và UDP thuộc dạng stateless? Tham gia sinh hoạt trên một diễn đàn một cách nghiêm túc cũng là một phương pháp hay cho việc 'hỏi' và 'trả lời'. Nếu em cần một câu trả lời thấu đáo cho chính mình thì chính câu trả lời này sẽ là câu trả lời rất giá trị cho người khác."
"cuti" có vẻ không lấy làm hào hứng: "Chà, xem có vẻ căng đây. Nhưng để em cố xem sao. Đúng là em có cái tật qua quít cho xong nên chẳng có cái gì cho ra cái gì cả. Em biết anh đang truyền đạt cho em một lối suy nghĩ khác? Em thấy con đường 'tu luyện' có vẻ đầy chông gai như anh đã nói. Nhưng em có thắc mắc là làm sao mình có thể nhớ một trăm thứ, một ngàn thứ được?"
Tôi đáp: "Ừa, chữ 'truyền đạt' hơi quá, anh nghĩ là 'góp ý' thì đúng hơn. Anh đang 'góp ý' em để hình thành cái gọi là nền tảng. Phải có nền tảng rồi thì mới đi tiếp được.
Riêng chuyện nhớ thì em không thể nhớ một trăm, một ngàn thứ ngay lập tức được nhưng nếu em thật sự hiểu một thứ nào đó, nó sẽ vĩnh viễn là của em vì nó đã thuộc về kiến thức của em. Lý do 'cần phải ngọn ngành' cũng đi từ đây ra thôi, nó giúp em 'thật sự hiểu'. Còn chuyện nhớ nhanh, nhớ chậm, nhớ lâu hay nhớ mau thì có phần nào phụ thuộc vào khả năng tự nhiên của mỗi người nhưng không có nghĩa là không thể rèn luyện để nâng cao khả năng này cho mình. Em thử đi rồi lần sau cho anh biết cách em đọc thông tin của một chương ra sao, cách em hiểu nó như thế nào, cách em tóm lược nó (để nhớ) ra làm sao... rồi anh sẽ góp ý cho. Bây giờ anh phải đi, nếu tiện mình sẽ liên lạc sau hả? Chào cuti."
"cuti" không quên hóm hỉnh: "Chào anh già khó tánh "
Và tôi logoff.
Những cuộc đối thoại với rookie - Phần 3 FRIDAY, 25. MAY 2007, 11:25:32 6. "Vật vã": Điều lạ đã xảy ra. Suốt tuần lễ này tôi không hề nhận được một thông điệp nào từ "cuti". Tôi không thể đoán nổi "cuti" bận học hành, thi cử hay cu cậu đã chán nản "con đường chông gai". Dù gì đi chăng nữa, tôi đã có ít nhiều cảm mến "cuti" ở cái tính thật thà và hóm hỉnh của cu cậu. Một phần nào đó thầm kín trong lòng, tôi mong "cuti" đừng bỏ cuộc.
6. "Vật vã": Điều lạ đã xảy ra. Suốt tuần lễ này tôi không hề nhận được một thông điệp nào từ "cuti". Tôi không thể đoán nổi "cuti" bận học hành, thi cử hay cu cậu đã chán nản "con đường chông gai". Dù gì đi chăng nữa, tôi đã có ít nhiều cảm mến "cuti" ở cái tính thật thà và hóm hỉnh của cu cậu. Một phần nào đó thầm kín trong lòng, tôi mong "cuti" đừng bỏ cuộc.
Thế rồi, sang tuần lễ thứ hai, tôi nhận được một thông điệp ngắn gọn và bí hiểm từ "cuti": "Chào anh già khó tánh. Em đang vật vã đây nhưng cũng chưa đến nỗi 'lực cùng, sức tận'. Em sẽ cho anh biết kết quả thử nghiệm của em". Tôi lẩm bẩm "chà, có gì mà bí hiểm quá vậy? 'thử nghiệm'? chắc cu cậu đã táy máy cái gì đây.". Tôi thấy vui vì thông điệp này chứng tỏ cu cậu chưa bỏ cuộc nhưng lại thắc mắc không hiểu lý do tại sao "cuti" lại trở nên tiết kiệm ngôn từ đến thế.
Tôi tiếp tục lao vào công việc suốt những ngày còn lại của tuần lễ. Mãi đến chiều thứ Bảy, rảnh rỗi một tí, tôi log vào YIM để xem các "offline message". Như thường lệ, tôi nhận hàng đống thông điệp và thong thả trả lời từng cái một. Quả nhiên có vài cái thông điệp của "cuti". Lần này "cuti" có vẻ rất khẩn trương: "Ui, anh già khó tánh co đó không? Em bó tay rồi á. Anh có online cho em biết với"
Một thông điệp khác: "Cuối tuần chắc anh rảnh hả? Lúc nào tiện, cho em biết. Em sẽ online cuối tuần để nhờ anh chỉ cho em thêm vài 'khẩu quyết'.".
Tôi chậc lưỡi: "Chà, cuti này làm gì mà có vẻ bí hiểm thật." Tôi đoán chắc cu cậu đang táy máy cái gì đây như bị tắc tị. Tôi bèn gởi cho "cuti" một thông điệp: "Hello cuti, anh hiện đang online. Có cần gì thì vào mà hỏi. Anh sẽ online từ 2 giờ chiều đến tối đa là 3 giờ."
Không đầy một phút, tôi nhận được thông điệp của "cuti": "Dạ, em đây. Em ngồi chờ từ sáng đến giờ á."
Tôi cười, đáp: "Hì hì, rảnh rỗi quá hả? 'nằm' trên Internet thường trực? Mà này, em cũng chơi trò 'invisible' như anh hả? Có chuyện gì mà có vẻ khẩn trương vậy?"
"cuti" rối rít: "Dạ, em chuyển sang 'invisible' để khỏi bị quấy rầy. Cả hai tuần qua em chả chat với ai cả mà gầm đầu vào để tìm hiểu lời thử thách của anh."
Tôi ngạc nhiên: "Ủa, 'lời thử thách' nào của anh vậy?"
"cuti" nhanh nhẩu: "Trời, mới có hai tuần mà anh quên béng hết rồi sao? Cái thử thách anh nói là anh cho em IP, account của một Linux box để em vào hack đó. Anh còn nhớ không?"
Tôi bật cười nhưng không kém phần ngạc nhiên. Quả tôi có 'thách' "cuti" thật nhưng đó chỉ là một chi tiết trong cuộc đàm thoại để làm rõ quan điểm của tôi mà thôi. Không ngờ "cuti" tiếp nhận vấn đề một cách nghiêm túc và nghiêm trọng. Tôi đáp: "À, tất nhiên là anh nhớ chớ. Nhưng đó đâu phải là điều anh thách thức một cách chính thức đâu? Đó chỉ là một cách làm rõ quan điểm thôi mà em. Hơn nữa, anh nhớ là em chịu thua rồi mà? "
Không ngờ "cuti" trả lời như sau: "Dạ, em thua thật nhưng sau khi nói chuyện với anh lần thứ nhất, rồi đến lần thứ hai. Mọi điều anh em mình trao đổi em đều ghi nhớ và cố gắng suy gẫm. Có những điều em suy không ra, nhưng cũng có nhiều điều em thấy thấm lắm. Cho nên, những điều anh nói em đều cho rằng phải có một ẩn ý nào đó. Hơn nữa, quả thật anh đã 'thách thức' em mà. Em đã chịu thua nhưng sau đó nghĩ ngợi lại em thấy ấm ức chịu không nổi. Thế là em bắt tay vào thử nghiệm."
Hơi ngạc nhiên, tôi hỏi tiếp: "Rồi sao nữa?"
"cuti" tiếp tục: "Dạ. Em chỉ có một con Pentium 3 mà thôi. Lần trước em học đòi cài đặt Linux, xém chút nữa là tiêu cái Windows của em. Bây giờ em muốn học Linux nên em... vòi mẹ em tiền để sắm một con Pentium 4. Em viện lý do là em phải học mạng, cần hai máy nên rốt cuộc mẹ cho tiền sắm thêm một con P4. Thật là thích. Con này mạnh nên em mang cái đĩa chạy Windows qua và dùng con cũ để cài Linux."
"cuti" đưa tôi đi từ ngạc nhiên này đến ngạc nhiên khác, tôi hỏi tiếp: "Thế rồi sao?
"cuti" hớn hở đáp: "Em tậu con P4 chỉ trong vòng 2 ngày là có và đến ngày thứ 3 thì em đã có con P3 cũ để vọc quậy với Linux. Em mua một bộ đĩa RedHat 9 và tham khảo đống e-book của em để cài lại con Linux này. Ròng rã mấy ngày trời, em hoàn tất con Linux. Có hôm em thức đến mấy giờ sáng, ngủ chập chờn một tí rồi thức dậy đi học."
Tôi thầm cảm phục cái "bướng bỉnh" và quyết tâm của "cuti". Không ngờ cu cậu quá nghiêm trọng với chi tiết "thách thức" kia. Tôi hỏi tiếp: "Vậy, cài xong con Linux kia, em dự định làm những gì?"
"cuti" đáp tỉnh khô: "Trời, vậy mà anh không biết sao? Em định tạo dịch vụ web trên con Linux này rồi tự 'hack' nó để thay đổi trang chủ y hệt như lời anh thách thức em đó. Nhưng cài xong em chẳng biết thằng apache làm việc ra sao nữa. Khi cài, em chọn cài tất cả nên có tùm lum tá lả dịch vụ trên máy chủ này. Em lại lọ mọ tham khảo cuốn e-book nói về apache để xem nó làm việc ra sao. Anh cũng biết là tiếng Anh của em dỏm số một nên nhiều lúc tham khảo mấy tài liệu kia choáng váng cả mặt mày. Nhưng rốt cuộc em cũng đã hoàn tất được thằng apache rồi. Mất của em ròng rã mấy ngày trời á."
Tôi cười rộ vì lối suy nghĩ "thẳng ruột ngựa" của "cuti" nhưng đồng thời cảm thấy mến cu cậu nhiều hơn. Mến ở chỗ cu cậu không chỉ "nói miệng" mà dám gát qua hết mọi chuyện để tạo ra một môi trường để tự thử nghiệm và kiểm chứng. Tôi đáp: "Tốt lắm đó 'cuti'. Em dám hy sinh thời gian và những 'trò chơi' thông thường để tự hình thành cho mình một cái Linux server trong khoảng thời gian ngắn như vậy thì quả thật xuất sắc. Anh thật lòng hoan nghênh em đó "
"cuti" hồ hởi: "Anh nói thật sao? ặc ặc, hu hu, sướng quá đi mất. Em cứ tưởng anh sẽ mắng cho em một chặp vì tội phí thời gian cài một con Linux để chứng minh một chuyện chẳng là cái gì hết. Ặc, ặc... em tưởng anh thật sự là 'anh già khó tánh' nhưng không ngờ anh cũng biết khen đó chớ, hì hì."
Tôi đáp: "Trời, sao không khen được "cuti"? Nếu em làm một chuyện gì đúng và có giá trị thì phải được khen mới phải chớ? Anh khen vì anh thấy em không chỉ 'nói miệng' cho xong chuyện nhưng em đã thật sự bắt tay vào làm một việc cụ thể. Chưa biết kết quả công việc đó như thế nào nhưng ở giai đoạn tìm hiểu với một người như em, theo anh, em đã đạt một bước đầu hết sức quan trọng: học đi đôi với hành. Cái này cũng chứng tỏ là em có đủ ham muốn để tìm hiểu và làm sáng tỏ điều mình thắc mắc. Thật sự, anh thấy rất vui khi nghe chuyện này."
"cuti" rên rỉ: "Hic hic, hơn một tuần qua em 'phờ phạc' với con Linux này. Giờ được khen tự nhiên bao nhiêu mệt nhọc biến đi đâu hết. Anh là một người rất 'nguy hiểm'! hì hì. Lý do em muốn gặp anh là vì em thấy muốn đổi thông tin trên trang chủ của website quá đơn giản. Em nghĩ là anh đố 'mẹo' em gì đây. Em nghĩ nát óc mà không ra lý do. Anh chỉ cho em với."
Tôi cười, hỏi lại: "Thứ nhất, tại sao nghĩ anh là người nguy hiểm? Thứ hai, em điều chỉnh thông tin trên trang chủ của website em tạo ra bằng account nào và bằng công cụ nào vậy?"
"cuti" nhanh nhảu: "Thứ nhất, anh là người 'nguy hiểm' vì anh có khả năng 'hành hạ' bộ não của em rồi sau đó mới khen một tiếng. Cú khen này thấy 'phê' hơn các cú khen thông thường. Theo em, như vậy là... 'nguy hiểm' ;-). Thứ nhì, ý anh account nào là sao? khi em cài con RH9 này nó cho phép em chọn mật mã của account root cho nên em chỉ dùng root từ bữa giờ thôi. Đâu có account nào khác đâu? Còn công cụ thì em thấy có cái Gnu Text Editor gì đó nên em dùng vậy thôi."
Tôi đáp: "À ra vậy. Thứ nhất, nếu em nghiệm ra được anh là người 'nguy hiểm' thì không chừng em còn 'nguy hiểm' hơn anh. Thứ hai, em nghĩ lần trước anh đánh cuộc với em chuyện sửa nội dung một trang web trên Linux server, anh sẽ cho em root account sao? ;-). Nếu vậy còn gì vui nữa. Anh chỉ cho em một account như một người dùng bình thường trên server này thôi. Còn chuyện em dùng Text Editor gì đó thì có nghĩa là em chạy trên môi trường GUI hả?".
"cuti" thắc mắc: "Vậy root account với account của người dùng bình thường khác nhau thế nào anh? Và anh nói chuyện GUI, có phải ý anh là làm việc trên giao diện đồ hoạ phải không?"
Thấy rõ "cuti" còn hổng nhiều điểm căn bản, tôi ngẫm nghĩ cách tốt nhất để giải thích cho cu cậu. Sau đó tôi trả lời: "Anh nghĩ em rành Windows nên anh tạm dùng Windows để em dễ liên tưởng. Thế này, trên Windows, Administrator có chủ quyền cao nhất, có nghĩa là ai dùng account này có thể làm bất cứ chuyện gì trên máy. Trên *nix nói chung, root chính là Administrator vậy. Thông thường ít có ai (kinh nghiệm với *nix) mà dùng root account để làm việc bởi vì quá nguy hiểm. Nguy hiểm ở chỗ nếu 'lỡ tay' thì không cứu vãn được vì root có uy quyền tuyệt đối. Bởi thế, admin của server thường tạo các account thông thường cho người dùng thông thường. Chỉ có những trường hợp cần thiết thì mới chuyển sang su (super user mode - hay còn gọi là root mode). Trong trường hợp của em, em phải tạo thêm một account bình thường cho người dùng rồi mới dùng account này để 'hack' thì mới gần với hoàn cảnh chuyện anh đánh cuộc với em.
Riêng chuyện GUI thì thế này. GUI giúp cho những người mới làm quen *nix thấy dễ dàng và nó rất tốt nếu em có thể dùng nó như một dạng desktop để làm việc. Tuy nhiên, trong trường hợp anh cho em một account trên một Linux server nào đó để 'hack' thử, em thử nghĩ xem, em sẽ login server này bằng cách nào?"
"cuti" đáp ngay: "Em nghĩ là phải dùng một dạng 'pcanywhere' hay 'terminal service' để log vào chớ sao nữa anh?"
Tôi cười đáp: "Hì hì, trên *nix làm gì có 'pcanywhere' hay 'terminal service'? Thông thường, để bảo mật, những dạng dịch vụ cung cấp khả năng truy cập theo dạng GUI (trên *nix còn gọi là X) hoàn toàn bị loại bỏ vì rất dễ bị 'khai thác'. Nếu vậy, theo em thì mình log vào bằng cách nào?"
"cuti" ngẫm nghĩ rồi đáp: "Bằng telnet phải không anh?"
Tôi đáp: "Gần đúng! ngày trước dịch vụ telnet được dùng rất phổ biến nhưng ngày nay rất hiếm thấy máy chủ cung cấp phương tiện truy cập đến dịch vụ telnet vì lý do thông tin trao đổi giữa telnet client và telnet server hoàn toàn là 'cleartext' nên dễ bị 'sniff' (kể cả password). Thay vào đó, ngày nay người ta dùng ssh là chính."
"cuti" hớn hở: "A, em có nghe đến SSH rồi nhưng chưa hề mó qua nó. Vậy mình truy cập vào bằng đường SSH có nghĩa là mình chỉ có một cửa sổ đen ngòm để làm việc phải hông anh?"
Tôi xác nhận: "Đúng thế, em sáng dạ lắm . Mình chỉ có một cửa sổ 'đen ngòm' để làm việc. Muốn có nhiều cửa sổ thì mình phải login nhiều lần. Rồi, nếu mình login qua ssh và có cửa sổ 'đen ngòm', vậy liệu em có thể dùng "Notepad" gì để để điều chỉnh hồ sơ trên website không?"
"cuti" liến thoắn: "Hi hi, anh ghẹo em hoài. Lúc này không có GUI thì làm sao mà 'Notepad'? Vậy mình phải dùng cái gì để thực hiện chuyện điều chỉnh đây anh?"
Tôi cảm thấy phải đi chầm chậm với "cuti" không thì cu cậu choáng ngợp thì hỏng hết, bèn đáp: "Ừa, khi làm việc với *nix, một trong những công cụ căn bản và không thể thiếu là vi hoặc emacs. Em phải học cách sử dụng một trong hai công cụ này. vi thì phổ biến và đơn giản hơn, emacs thì có server không dùng nhưng nó cao cấp hơn. Anh nghĩ em nên làm quen với vi trước."
"cuti" reo lên: "Hi hi, vi? cái tên gì ngộ thật Em chưa từng nghe qua, đừng nói chi là đụng đến nó. Vậy mình có cần cài gói vi không anh?"
Tôi đáp: "Không em, vi có sẵn khi em cài Linux rồi đó vì nó là một trong những gói căn bản nhất. Em xem thử trong mớ e-book của em có cuốn sách nào nói về vi không? anh nhớ mang máng là O'Rilley có một cuốn chuyên chú về vi đó. Nếu không có, cho anh biết để anh tìm vài cái link trên Internet chỉ cách học và thực tập vi cho."
"cuti" trả lời ngay: "Dạ, chờ em một tí thôi, con Windows của em ngay trên bàn, để em xem liền thử có cuốn e-book này không."
Tôi ngồi chờ "cuti" và cố hình thành một phương án ngắn gọn để 'đưa' "cuti" đi từ chỗ thiếu lớp lang đến chỗ có lớp lang hơn. Cái khó là vấn đề thời gian và phương tiện liên lạc. Tôi thì rất ít có thời gian để vào YIM. Ngay cả vào YIM và chat bằng text thì chẳng 'hiệu xuất' vì chậm quá. Tôi thầm nhủ "thôi thì cứ từng bước mà mần, xem thử cuti kéo dài được bao lâu rồi tính tiếp". Sau vài phút, "cuti" gởi cho tôi một thông điệp khác: "Anh già khó tánh ơi, còn đó hông? Em đã tìm ra được cuốn e-book của O'Rilley anh nói rồi đó. Em nghĩ đúng là nó vì trong đống e-book của em chỉ có một cuốn nói về vi. Hi hi, bây giờ em mới thấy quý cái 'kho' ebook của em. Trước giờ cứ để nó một góc mà chẳng biết tận dụng nó."
Tôi đáp: "Tốt lắm. Sẵn có hai máy, em mở cái ebook đó trên Windows và dợt vi trên Linux đi. Nhưng nhớ đừng tự dồn ép quá mà không tốt và dễ bị nản. Thức ăn dành cho não bộ cũng như thức ăn dành cho... bộ lòng . Em phải ăn uống điều độ thì nó mới tiêu hoá và tiếp thu được. Ráng dồn cho nhiều vào thế nào cũng bội thực cho mà xem. À mà này, em đã nắm khái niệm 'root' account và account cho người dùng bình thường chưa?"
"cuti" hóm hỉnh: "Đơn giản quá mà anh. Anh cứ dùng Windows giúp em liên tưởng Linux thì em hiểu liền liền thôi. Còn chuyện dồn ép thì anh đừng lo. Hễ em thích thì bao nhiêu cũng được hết. Anh thấy không, gần hai tuần qua em vật lộn với con Linux, vừa đọc tài liệu vừa ráng hiểu vậy mà cũng cài được con Linux mà. Em chẳng thấy mệt gì cả mà lại thấy thích vì lần đầu tiên em cài nó vì có mục đích rõ ràng "
Tôi cười và đáp: "Thôi đi, đúng ra anh không nên dùng Windows để giúp em liên hệ với Linux bởi vì chúng khác nhau rất nhiều. Khi làm việc với Linux nên tránh liên hệ và so sánh đến Windows vì nó có thể dẫn đến những sai lạc căn bản. Lần sau anh không liên hệ kiểu này nữa đâu. Còn chuyện cài được con Linux thì anh thấy tốt lắm. Em đã vượt qua được một bước rất quan trọng cho những bước về sau. Tuy nhiên, anh góp ý với em chuyện điều độ là vì anh không muốn em lao vào thật nhanh rồi rút lui thật nhanh vì bị choáng ngợp. Nếu lâm vào tình trạng này không những uổng phí mà còn nguy hại nữa bởi vì lần sau em sẽ e ngại vì có ấn tượng không tốt từ lần trước và bởi thế em sẽ rất khó quay lại mức bền bỉ và quyết tâm cần thiết để thành công."
"cuti" trả lời: "Vậy thì em nghe theo lời anh. Em chỉ sợ tự nhiên giảm 'tốc độ' lại một cách đột ngột sẽ làm em mất trớn thôi. Vậy em phải bắt tay vào học vi phải không anh? Anh nghĩ bao lâu thì em sẽ thành thạo với công cụ này?"
Tôi đáp: "Anh nghĩ không lâu đâu. Căn bản thì vi chỉ có vài chục lệnh để di chuyển và sửa đổi nội dung hồ sơ. Phần khó là phần dùng regex để tìm 'pattern' và thay thế 'pattern'. Tuy nhiên, em có thể 'nâng cấp' từ từ. Cái quan trọng là phải chịu khó 'dợt' vi bằng cách làm việc thử trên các hồ sơ; đọc sách 'khan' mà không thử thì không cách gì mà nhớ hết và thông thạo được.
À, có một chi tiết anh muốn nhắc em về chuyện em muốn thực hiện vụ đánh cuộc của mình. Em nên nhớ là em phải thực hiện các thao tác từ xa và chỉ dùng một cửa sổ 'đen ngòm, chữ trắng'. Em phải thử login máy Linux server của từ một máy khác. Trong trường hợp của em thì nên logon từ máy Windows và nên dùng Putty, một ssh client rất hay và miễn phí. Thử vào google và tìm 'Putty' thì sẽ thấy đường dẫn để download công cụ này. Nếu em đã chọn chế độ 'cài tất cả' khi cài Linux, anh nghĩ là em đã có sẵn dịch vụ SSH trên máy Linux rồi đó."
"cuti" cười, đáp: "Hì hì, anh cẩn thận quá. Em biết em phải làm gì mà."
Tôi vẫn kiên trì: "ok, nếu em biết em phải làm gì, em tóm tắt những điểm em phải làm gì anh xem thử? "
"cuti" trả lời ngay: "Đơn giản như... đang giỡn. Nè, em phải: - download thằng Putty về máy Windows - dùng nó để truy cập vào máy chủ Linux - thử thay đổi nội dung trang web đang có trên máy chủ Linux"
Tôi đáp: "Còn thiếu! dùng Putty để truy cập vào máy chủ Linux bằng một account bình thường. Điểm này cực kỳ quan trọng."
"cuti" rú lên: "Oái, chuyện đơn giản vậy mà em vẫn sót một chi tiết quan trọng. Không sao, để em save nội dung anh em mình chat và đọc lại thì chắc ăn, không sót gì đâu. Ơ, nhưng mà muốn truy cập và máy chủ Linux bằng một account bình thường thì phải có một account bình thường phải không anh? Nếu vậy mình phải tạo thêm account bình thường. Tạo account bình thường là làm sao vậy anh?"
Tôi cười: "Sao hỏi anh? Cuốn cẩm nang Linux của em đâu? Tạo account trên *nix cũng được xem là một trong những thao tác 'hack' đó và không có cuốn sách chỉ dẫn dùng Linux nào lại không nói đến chuyện này cả. Em thử tìm cách 'hack' hợp lệ bằng cách tạo 'user account' đi ."
"cuti" rên rỉ: "Ặc ặc, em muốn anh chỉ liền để đỡ mất công đọc sách và có ngay một account để mà quậy. Vậy mà anh cũng không chịu chỉ dùm."
Tôi tìm cách khuyến khích "cuti" và đáp: "Hì hì, anh chẳng hẹp hòi với cái lệnh thêm user account vào máy đâu. Tuy nhiên, anh không chỉ em ngay lập tức bởi vì em phải làm quen với những thao thác đơn giản và căn bản này thì về sau em mới có thể 'hack' được. Cái đơn giản và căn bản luôn luôn có giềng mối sâu xa với cái phức tạp và nâng cao. Cho nên em cần chịu khó bước đầu."
"cuti" vui vẻ trả lời: "Không có gì đâu anh, em tìm hiểu nó được mà. Em chỉ có thắc mắc là tại sao anh rất kiên trì với chuyện bắt em phải làm quen với việc tạo account thôi. Chắc anh phải lý do gì đó phải hông?"
Tôi đáp: "Ừa, em tinh ý lắm. Chắc chắn là anh có lý do. Lý do khá rõ ràng như sau nếu em thắc mắc. Bởi lẽ em phải đọc phần hướng dẫn cách tạo user account, chắc chắn nó sẽ kèm thông tin về tài khoản và quyền hạn của account. Nó lại trực tiếp dính đến nhóm người dùng (group) và cả password, thư mục nhà (home directory), shell ấn định cho người dùng và chủ quyền truy cập trên filesystem.... Đây là những kiến thức căn bản không thể thiếu được. Nếu em là người có 'máu' system admin thì em sẽ tò mò tìm hiểu thêm cơ chế lưu trữ password của Linux thế nào, cơ chế xác thực người dùng (authentication) ra làm sao. Nếu em là người có 'máu' coder thì em sẽ tò mò tìm hiểu xem khi tài khoản được tạo ra, nó sẽ dính líu đến các system calls nào, khi người dùng xác thực để login thì có những system calls nào cần dùng? thuật toán nào dùng để băm (hash) password?.... Những kiến thức này là những kiến thức sẽ làm em "vật vã" trong giai đoạn đầu nhưng không thể thiếu được nếu như em muốn làm 'hacker' đúng nghĩa."
"cuti" cảm thán: "Chà chà, nghe mà phát khiếp. Thôi anh chậm chậm lại một chút hông thì em 'nuốt' không kịp. Ý anh là em phải nhìn vấn đề từ nhiều phương diện? nhìn vấn đề như một system admin cũng như một coder? Và tại sao mình cần phải hiểu rõ một cách tinh tế như vậy anh?"
Tôi cười đáp: "Anh đoán trước thế nào em cũng thắc mắc những điểm này. Để anh giải thích thêm một tí nữa. Hãy thử dùng một ví dụ 'hiện thực' hơn một tí: em vào được một dinh thự, trong dinh thự có một cái két sắt chứa bản đồ dẫn đến một kho tàng khổng lồ. Việc em cần làm là lấy cho được tấm bản đồ này. Có hai lựa chọn: 1) dùng thuốc nổ để phá tan cái két sắt (có thể làm hỏng cả cái bản đồ và tạo tiếng ồn, để lại dấu tích) 2) nghiên cứu cách mở ổ khoá của cái két sắt này (để mở nó ra một cách nhẹ nhàng, êm thấm, không có vết tích, không có tiếng ồn). Tất nhiên cách thứ nhất nhanh hơn và có nhiều hiểm hoạ hơn cách thứ nhì. Trong khi đó, cách thứ nhì khó khổ hơn, mất thời gian hơn nhưng ít hiểm hoạ hơn. Hơn nữa, sau khi nghiên cứu kỹ lưỡng cách mở khoá két sắt, tự nhiên các két sắt khác trở nên không còn khó khăn đối với em nữa. Vậy để thực hiện cách thứ nhì, em cần nghiên cứu cẩn thận cấu trúc của các loại khoá từ đơn giản đến phức tạp, cách làm việc của chúng, điểm mạnh, điểm yếu của chúng.... Nếu nhìn về hướng thiện, sau khi nghiên cứu chúng, em có thể khắc chế chúng và cũng có thể tạo ra những loại khoá khác vững vàng hơn chẳng hạn. Nếu nhìn về hướng ác, sau khi nghiên cứu chúng, em có thể khắc chế các loại khoá một cách dễ dàng để mở két.... Ý anh không phải khuyến khích bẻ khoá, đột nhập ở đây. Ý anh chỉ muốn nói rằng, để khắc chế hoặc cải thiện một việc gì đó, em phải thông hiểu nó và những giềng mối xung quanh nó. Hay nói một cách khác, kỹ năng và kiến thức là những thứ không thể thiếu được. Chắc em cũng hiểu là anh không khuyến khích dùng cách thứ nhất.
Quay về với chuyện tài khoản người dùng của anh em mình. Nếu em không nắm rõ cơ chế làm việc này, không có cách gì em có thể 'hack' nó được. Nó cũng tương tự như ổ khoá của két sắt ở trên thôi. Em thoả mãn rồi chứ? "
"cuti" trầm ngâm hồi lâu, có lẽ cu cậu đang nghĩ ngợi. Sau đó, "cuti" trả lời: "Chà... dạ, em đang đọc lại thông điệp của anh, đang cố gắng hình dung những gì nằm sau màn 'kiến thức' mà anh nói ở đây. Em cảm thấy dường như những điều em hiểu về 'hack' trước giờ không giống những điều anh nói. Em lờ mờ hình dung những điều anh nói ở đây có lẽ là nguyên tắc để thử khắc chế 'các loại khoá' chớ không riêng gì 'một loại khoá'. Phải không anh?"
Tôi đáp một cách vui vẻ: "Em thông minh lắm. Nếu 'hack' đưọc một loại khoá thì không nên 'hack' làm gì. một loại khoá ở đây theo nghĩa đen là một trường hợp. Đến khi gặp trường hợp thứ hai: bế tắc vì không hiểu rõ nguyên tắc. Bởi vậy, ngay từ đầu anh đã nói: "con đường chông gai" mà "
"cuti" dè dặt: "Như vậy trước mắt, em không những phải học vi mà còn phải biết cách làm cái gì với cửa sổ 'đen ngòm có chữ trắng' kia nữa. Thật sự ngay lúc này em không thể hình dung nổi sau khi login Linux server bằng 'Putty' gì đó, em sẽ thao tác những gì. Ui cha, thấy vậy mà gay thiệt. Vậy khi em bí cái gì đó, em gởi message cho anh trên YIM nha?"
Tôi trả lời: "Xong ngay thôi em. Cứ hỏi. Anh sẽ cố gắng login YIM đều đặn hơn để giúp em một tay. Nên xem trò 'đánh cuộc' này của anh em mình là một chuyện dùng để tạo điều kiện khai phá. Kết quả quan trọng nhất chính là kiến thức mình gặt hái trên các bước mình đi qua."
"cuti" lởi xởi trả lời: "Dạ em biết mà. Em có một thắc mắc nữa là em thấy rất lạ là anh chưa bao giờ dùng một lệnh nào đó để làm ví dụ trong khi mình nói chuyện cả. Em thấy ở đâu cũng dùng lệnh để minh hoạ hết, tại sao vậy anh?"
Tôi cười, đáp: "Lệnh? lệnh nào? lệnh của cái gì? lệnh để làm gì? Hì hì, anh đùa đó. Anh nghĩ, hễ nói đến lệnh là nói đến 'thực hành' mà để 'thực hành' thì phải có căn bản 'lý thuyết' mà để 'nuốt trôi' được 'lý thuyết' thì phải nắm được nền tảng và kỹ năng tiếp cận vấn đề. Nó giống như mình xây một ngôi nhà vậy, 'lệnh' tương tự như thao tác ráp cửa sổ vào bức tường nhưng trong trường hợp của mình, mình chưa hề có ngôi nhà, chẳng có cái nền, chưa có bức tường thì làm sao mà gắn cửa sổ vào? Việc trước tiên mình xác định rõ là mình có muốn xây nhà không? có đủ kiên trì để xây nhà không? sau đó mới tìm hiểu xây cái nhà thì cần những gì? rồi từ đó mới lên plan và thực hiện từng nền nhà đi lên. Ngay bây giờ mình nói chuyện ráp cửa sổ thì hơi sớm và hơi chưa cần thiết . Đây, để thỏa mãn nỗi bức xúc của em, xem thử một lệnh: Code:
find / -depth -type f -perm -0202 | xargs file | cut -f1 -d: | while read file; do printf "cuti is insane
" >> $file; done
Em thử xem nó có nghĩa là gì? Tác dụng của nó làm gì?"
"cuti" vội vã tránh: "Thôi thôi anh già khó tánh ơi. Anh 'kẹp' như cua kẹp thế này thì làm sao em cãi nổi. Anh dùng ví dụ ngôi nhà là em đã hiểu rồi. Thêm cái dòng lệnh kỳ quái ở trên chỉ tổ làm cho em lùng bùng thêm thôi. "
Tôi vui vẻ đáp lại: "Hì hì, vậy thì tốt rồi. Nhớ đừng chạy cái lệnh trên và nhất là không được chạy nó bằng root không thì em phải cài lại con Linux của em đó. Anh hy vọng bây giờ em đã hiểu thế nào là 'ngọn ngành'."
"cuti" tiếp tục tò mò: "Ui trời, cái lệnh kỳ quái của anh làm gì mà kinh vậy?"
Không muốn đào sâu với cái lệnh, tôi gạt phăng: "Thôi em, coi chừng lạc đề và lâm vào tình trạng 'tẩu hỏa' bây giờ. Anh bảo đảm nếu em đi đúng đường lối, đúng thứ tự lớp lang thì một ngày kia em sẽ rõ dòng lệnh trên như đọc tiểu thuyết vậy . Anh muốn hỏi em thêm một điểm trước khi anh sign off. Nếu dựa trên tinh thần 'cái nhà' ở trên, em nghĩ mình đang ở giai đoạn nào?"
"cuti" trở lại với cái tính hóm hỉnh cố hữu: "Dạ, mình đang ở giai đoạn..... vật vã ;-). Hông có, em đùa đó. Em nghĩ mình ở trong giai đoạn tìm hiểu cách xây cái nền cho cái nhà. Phải hông anh?"
Tôi đáp, cố động viên "cuti": "Đúng đó cuti. Mình đang trong giai đoạn 'vật vã tìm hiểu cách xây cái nền nhà'. Điều này có nghĩa mình đã quyết tâm xây cái nhà. Anh hy vọng quyết tâm này sẽ bền bỉ cho đến khi căn nhà được xây xong và anh tin em có đủ 'lửa' để hoàn tất. Thôi, anh phải đi đây. Cần gì cứ YIM cho anh. Chào cuti"
"cuti" đáp: "Dạ, vật vã trong 'lửa' ;-). Chào anh."
30/6/2005
Những cuộc đối thoại với rookie - Phần 4 SATURDAY, 26. MAY 2007, 09:40:34 Như tôi đoán trước, lần này quả thật "cuti" im ắng. Suốt hai tuần lễ, tôi không nhận được một thông điệp nào từ "cuti" nhưng lần này tôi không còn ngại "cuti" bỏ cuộc mà tin rằng "cuti" đang 'vật lộn' với mớ khái niệm mới, với môi trường hệ điều hành mới. Tôi biết đây là một đoạn dốc khá cao và căng thẳng với "cuti" vì cu cậu gần như phải bắt đầu lại từ đầu với một hệ điều hành mới mẻ.
7. Giềng mối: Như tôi đoán trước, lần này quả thật "cuti" im ắng. Suốt hai tuần lễ, tôi không nhận được một thông điệp nào từ "cuti" nhưng lần này tôi không còn ngại "cuti" bỏ cuộc mà tin rằng "cuti" đang 'vật lộn' với mớ khái niệm mới, với môi trường hệ điều hành mới. Tôi biết đây là một đoạn dốc khá cao và căng thẳng với "cuti" vì cu cậu gần như phải bắt đầu lại từ đầu với một hệ điều hành mới mẻ.
Có sẵn kinh nghiệm dùng máy tính và sử dụng hệ điều hành Windows cộng với dăm ba mẹo vặt không tạo điều kiện thuận lợi cho "cuti" 'vượt dốc' mà ngược lại có thể tạo những khó khăn nặng nề hơn vì chắc chắc cu cậu sẽ không ngừng liên hệ đến những thói quen và kiến thức có sẵn về hệ điều hành Windows. Điều đáng nói là "cuti" không hề gởi một thông điệp nào để than vãn hoặc cầu cứu. Tôi không biết cu cậu có tham gia diễn đàn nào khác và đang tung lên hàng loạt câu hỏi. Dù "cuti" có thử giải quyết cách này, cu cậu chắc chắn sẽ mất một khoảng thời gian dài để đi đến giai đoạn hiểu được mình đang ở đâu.
Sau hai tuần, tôi nhận được một bức e-mail từ "cuti". Nó có nội dung rất dí dỏm như sau (tôi đã lượt bỏ những chi tiết riêng tư và không phù hợp với tinh thần chủ đề, tôi cũng đã điều chỉnh lại cho ngôn từ nghiêm túc và chuyên nghiệp hơn):
"Anh già khó tánh kính mến,
Hai tuần qua em bị con chim cánh cụt 'đè' gần ngất xỉu nhiều lần. Em nhiều lần rất muốn gởi anh một vài thông điệp để cầu cứu nhưng lời anh nói cứ ám trong đầu: "Sao hỏi anh? Cuốn cẩm nang Linux của em đâu?" làm em ngần ngại. Lúc này em không khác gì người đi trong rừng Amazon, chẳng còn biết phương hướng ở đâu nữa. Bây giờ em mới thật sự thấy chuyện đánh cuộc của anh em mình khó đến mức nào.
Anh già biết hông? sau bao nhiêu là mò mẫm, em mới hiểu ra chỉ có root mới có thể tạo account cho người dùng và mới tìm ra được lệnh dùng để tạo account. Nhìn lại thì thấy những chuyện này không khác gì bên Windows mấy. Tuy nhiên, để khai mở những điểm anh đưa ra về chuyện 'nhìn sự việc như một system admin hay một coder' thì em quả lạc lối mất rồi. Cuốn 'cẩm nang Linux' của em không đề cập bao nhiêu về những điểm này. Vậy em tìm hiểu những thông tin này ở đâu anh? Thật kỳ lạ anh ạ, trước đây hễ thấy cuốn e-book nào dày vài trăm trang là em hết muốn đụng tới. Giờ đây, em lại mong cuốn e-book Linux của em dày hơn, nhiều hơn. Em nghĩ anh là con người nguy hiểm là một điều không sai bởi vì không hiểu tại sao anh có thể biến em từ một đứa không buồn đụng đến cuốn e-book mà bây giờ lại mong nó dày hơn. Hì hì, em nói đùa đó thôi. Có nhiều lúc em muốn bỏ dở để đi bắn Gunbound cho khoẻ nhưng nghĩ lại thì thấy hơi... ê vì thế nào cũng bị anh chửi cho một chặp, nên thôi.
Em đã tạo được account dành cho người dùng bình thường và có thể login bằng account đó rồi. Tuy nhiên, em đang ở trong giai đoạn 'dậm chân tại chỗ' bởi vì khi dùng account này và thử 'vi' trang index.html của web server trên máy chủ Linux thì nó luôn luôn báo lỗi 'changing read-only file'. Câu hỏi của em là: bằng cách nào mình có thể 'viết' vào nó để thay đổi nội dung hở anh?
Nếu rảnh anh sớm hồi âm dùm em nhe? Em biết anh chắc bận rộn lắm nhưng không hỏi anh thì hỏi ai bây giờ? Nếu anh quá bận rộn thì chắc em phải đành cho con chim cánh cụt 'đè' thêm ít hôm nữa, chắc cũng không sao đâu.
Chúc anh và gia đình vui khoẻ.
Em,
Cuti."
Tôi đọc e-mail của "cuti", ngẫm nghĩ tìm cách trả lời cho cu cậu. Câu hỏi cu cậu đưa ra "bằng cách nào mình có thể 'viết' vào nó để thay đổi nội dung hở anh?" là một câu hỏi ở dạng có thể có vô số các câu trả lời. Tôi sẽ chọn câu trả lời nào đây?
Mấy ngày kế tiếp, tôi vô cùng bận rộn nên vẫn chưa trả lời cho "cuti" nhưng thỉnh thoảng tôi ghi xuống dăm ba điểm quan trọng để dùng chúng mà khai triển câu trả lời. Chiều nay, trên đường đi làm về, ngồi trên tàu lửa, tôi mở laptop ra và quyết định thảo một bức e-mail cho "cuti" như sau:
"Cuti thân mến,
Anh đã nhận được mail của em vài ngày trước đây nhưng lu bu công việc quá nên chưa hồi âm ngay cho em được. Mong em thông cảm. Anh sẽ trả lời các thắc mắc của em theo thứ tự như sau:
1. Em nên ngần ngại khi hỏi anh nếu như: - em chưa đọc kỹ cuốn "cẩm nang" của em - em đọc rồi nhưng chưa hiểu rõ và không muốn đọc lại lần nữa để hiểu rõ hơn
Nói cách khác, nếu em hỏi có cái gì dính dáng với "what" và "how" thì cứ nhớ đến câu: "Sao hỏi anh? Cuốn cẩm nang Linux của em đâu?" . Nếu em hỏi có cái gì dính với "why" thì anh sẽ trả lời thắc mắc của em.
Lý do anh khuyến khích em đọc và suy nghĩ vì quá trình 'hành xác' này sẽ biến những thứ em đọc và suy nghĩ thành 'tài sản' của em. Anh có thể tổng kết, rút gọn lại những điều em cần đọc và giải thích cho em. Tuy nhiên, mình không nên đi theo hướng này vì nó làm... hư người đi . Em cần tự mình hình thành một lối suy nghĩ, tiếp cận và giải quyết vấn đề riêng cho mình.
2. Chuyện đánh cuộc của anh em mình sẽ rất khó đối với những ai không hiểu được chiều rộng và bề sâu của điều cần phải làm. Nó sẽ khó với những ai đã hình dung được chiều rộng và bề sâu này và nó sẽ không khó với những ai đã 'thử' đi xuống bề sâu và đi ngang qua chiều rộng này. Đọc mail của em, anh hình dung là em đã bắt đầu hình dung được chiều rộng và bề sâu của vấn đề. Thật tình mà nói, em rất sáng dạ và chịu khó vì em đã đi qua một đoạn đường khá 'chông gai' trong một khoảng thời gian ngắn ngủi như thế. Anh không gặp bao nhiêu người có thể làm như em đâu. Cho nên gắng lên em và nên kiên nhẫn hơn.
3. Câu hỏi "bằng cách nào mình có thể 'viết' vào nó để thay đổi nội dung hở anh?" thì anh có thể tóm gọn như sau:
Không riêng gì root làm chủ một (hoặc nhiều) hồ sơ, thư mục... mà bất cứ tài khoản nào cũng vậy, nếu chủ nhân của các hồ sơ này ấn định một số giới hạn đến những thứ họ tạo ra thì tổng quát mà nói, em không thể thay đổi được nó một cách chính diện bằng chính tài khoản của em ngoại trừ... em 'hack' (và ngoại trừ em có 'root' account). Hành động 'hack' ở đây được tiếp cận và phân tích ra sao thì tùy vào mức độ am hiểu hệ thống của người muốn 'hack'. Tuy nhiên có hai trường hợp tổng quát để có thể làm nền tảng cho việc 'thay đổi nội dung hồ sơ' ấy: - 'mượn tay' root để thay đổi nội dung vì chỉ có root mới có thể làm chuyện này. - 'biến' mình thành root để thay đổi nội dung cũng vì lý do ở trên.
Ngoài ra, có thể có khả năng khác. Ví dụ như hồ sơ này cho phép những ai trong nhóm (group) điều chỉnh (nếu như attribute của hồ sơ này ấn định như thế).
Vậy, điều em cần tìm hiểu ở đây là gì? Đây: - tìm chủ quyền và giá trị ấn định chủ quyền hồ sơ mình cần thay đổi (cho owner, group và others) xem thử nó là gì? - 'mượn tay' root là sao? do đâu có khái niệm 'mượn tay' root? - 'biến' mình thành root là sao? do đâu có khái niệm 'biến' mình thành root?
Đây là cốt lõi của các điểm yếu thường gặp trên hệ thống *nix nếu chế độ mặc định bị lỗi hoặc system admin thiếu kinh nghiệm, thiếu cẩn thận trong quá trình điều chỉnh hoặc chính software trên hệ thống này bị lỗi. Từ ba điểm yếu này mở ra muôn vàn khả năng, biến thái, kết hợp, điều chế, thử nghiệm.... và đây chính là 'hack': hành động tìm kiếm và đi đến tác động để thay đổi thái độ làm việc của hệ thống. Không riêng gì trên *nix mà bất cứ hệ điều hành nào cũng vậy, bất cứ cơ chế xác thực người dùng (authentication) và ấn định chủ quyền người dùng (authorisation) nào đều có cơ hội bị 'xoáy thủng' dựa trên ba điểm trên.
Anh chỉ có thể trả lời chi tiết hơn khi nào em đã nắm vững cơ chế ấn định chủ quyền của tài nguyên trên một máy chủ. Em còn nhớ đoạn lệnh anh gởi cho em lần trước làm em 'lùng bùng' không? Nó có liên quan trực tiếp đến cái gọi là giá trị ấn định chủ quyền đó. Anh giới thiệu thêm vài từ khoá: ls, umask, chmod, chown, chgrp để em đỡ phải lan man. Sau khi đã hiểu rõ những gì thuộc về mấy từ khoá trên và những giềng mối xung quanh nó, thắc mắc của em sẽ trở nên rõ ràng hơn.
Thứ năm tới đây anh có ngày nghỉ. Có lẽ anh sẽ bận buổi sáng nhưng buổi chiều thì rảnh. Nếu muốn 'bổ' thêm vài 'thang' thì cho anh biết. Từ đây đến đó còn ba ngày cho nên em nên tham khảo qua mấy từ khoá ở trên trước đi. Em cũng nên chuẩn bị sẵn những điều mình thắc mắc thì anh em mình 'chat' mới có chất lượng. Nên nhớ: ask me why, don't ask me what
Chúc em một ngày vui.
Chào cuti."
Tối hôm ấy tôi gởi "cuti" bức e-mail trên. Sáng ngày hôm sau tôi nhận được hồi âm của "cuti": "Hello anh già khó tánh
Cứ mỗi lần nhận được một thông điệp của anh, bộ não của em lại chạy ro ro. Em lại sinh ra một cái tật mới là miệng hay lẩm bẩm ;-), chắc anh biết lý do tại sao.
Chiều thứ Năm em cũng rảnh nhưng phải sau một giờ trưa lận bởi vì em phải vào trường. Như vậy khoảng sau 4 giờ chiều nơi anh ở. Vậy có tiện không anh?
Em sẽ 'lên danh sách' những điều em thắc mắc để được anh 'châm' cho vài phát. Em đang lùng thêm vài cuốn e-book Linux, không biết anh có cuốn nào khác không?
Vậy anh nhé? Hẹn gặp lại chiều thứ Năm.
Chúc anh một tuần làm việc vui vẻ.
Cuti."
Suốt mấy ngày tiếp theo, tôi vùi đầu vào công việc và ba ngày đi qua nhanh chóng. Chiều thứ Năm ấy tôi quên bẵng mình có 'hẹn' với "cuti", vẫn đi chơi với gia đình. Mãi đến sau 4 giờ chiều mới sực nhớ. Khi tôi về nhà và logon, "cuti" vẫn chưa online. Tôi cười, thầm nghĩ "Chà, tưởng đâu mình cho cuti leo cây, không ngờ lại bị cuti cho mình leo cây". Tôi gởi "cuti" một offline message: "Cuti, anh đã online. Khi nào em vào, hú một tiếng cho anh biết."
Mãi mười lăm phút sau tôi mới nhận được thông điệp hồi báo của "cuti". Cu cậu có vẻ "hớt hãi" lắm: "Dạ em đây, em đây. Trên đường đi học về bị xẹp lốp anh à cho nên trễ nãi hết. Cho em xin lỗi nhe. May mà không có anh ở đây chớ không thì chắc cũng bị ăn vài cái 'kí' trên đầu rồi. Hi hi."
Tôi trả lời: "Không sao em, anh cũng mới online chừng 15 phút thôi. Em ăn cơm chưa? cứ thong thả đi."
"cuti" lại hóm hỉnh: "Dạ em đang vừa 'đớp', vừa 'chat' đây. Hông phải vừa đốp, vừa chát đâu nghe? Ai mà dám đốp chát với anh ;-)."
Tôi cười, đáp: "Vậy em thong thả ăn cơm đi rồi mình nói chuyện sau. Anh duyệt web, trả lời e-mail cũng được."
"cuti" rối rít: "Dạ không, được mà anh. Bụng đớp kệ bụng, não đớp kệ não. Em ăn hai thứ một lượt cũng được mà."
Phì cười vì tính dí dỏm cố hữu của cu cậu, tôi cũng hóm hỉnh với cu cậu: "Vậy thì được thôi, anh chỉ sợ cơm thì lên não mà chữ thì xuống ruột... già thì công toi thôi, hì hì. Vậy em đã 'lên danh sách' những điều em muốn hỏi chưa?"
"cuti" nhanh nhẩu: "Ha ha, anh cũng biết nói chuyện tếu lâm nữa sao? Em cứ tưởng anh là một lão đạo mạo chỉ có số với chữ không chớ! Còn chuyện danh sách thì có rồi chớ anh. Lúc máy mó trên con Linux thì bao nhiêu là câu hỏi. Lúc đọc mail của anh lại thêm cả đống câu hỏi. Vậy mà khi ngồi xuống liệt kê lại thì chẳng còn được bao nhiêu câu hết. Lạ thật."
Tôi đáp: "Vậy em cứ hỏi rồi tự nhiên câu hỏi này sẽ dẫn đến câu hỏi kia thôi. Còn chuyện em nghĩ anh đạo mạo thì em lầm to rồi đó ."
"cuti" trịnh trọng: "Em hỏi nhe? Anh sẵn sàng chưa?"
Tôi bật cười, trả lời: "Shoot!"
"cuti" chộp ngay câu trả lời của tôi và hỏi liền: "shoot là gì vậy anh? đá banh hả?"
Tôi không nén nổi, bật cười xoà vì tính con nít và năng động (và có phần thiếu tập trung) của "cuti". Tôi đáp: "Thôi đi ông thần. Ráng tập trung vào vấn đề, đừng thấy gì hỏi đó. Em chỉ cần biết 'shoot' là 'hỏi đi' là đủ. Đó chỉ là một cách nói."
"cuti" ra vẻ nghiêm trang: "Câu 1: tại sao anh nói: "ask me why, don't ask me what" vậy? Em hiểu nghĩa tiếng Anh là hỏi tại sao, đừng hỏi cái gì. Vậy ý anh là thế nào?"
Tôi đáp: "Rất đơn giản. - 'What' là 'cái gì', 'cái gì' có thể tìm thấy trong sách giáo khoa và sách tham khảo. Công việc của em là tìm ra câu trả lời cho các cái 'cái gì' bởi vì anh không thể trả lời hết cái 'cái gì' được. 'cái gì' là kiến thức căn bản.
- 'Why' là 'tại sao', 'tại sao' cũng có trong sách giáo khoa và sách tham khảo nhưng cần phải được đúc kết, rút tỉa. Một người thể chưa đủ 'cái gì' để hình thành 'tại sao', có thể chưa đủ kinh nghiệm để hình thành 'tại sao' và cũng có thể chưa đủ suy luận để hình thành 'tại sao'. 'tại sao' là kiến thức mở rộng.
Cho nên anh có thể giúp em những cái 'why' mà không thể giúp em những cái 'what'. Nên nhớ, sau khi có 'what' rồi thì mới có 'why'.
Rồi, câu kế tiếp."
"cuti" thảng thốt: "Trời! anh giải thích y như kiểu suy luận toán học hông bằng. Ùm... để em xem lại một phát nữa cái. Ùm... hình như lần trước anh đề cập đến sách giáo khoa và sách tham khảo cũng có giềng mối với chuyện này phải hông anh?"
Tôi cười và trả lời cu cậu: "Ái chà, em cũng dùng chữ 'giềng mối' sao? Đúng vậy, sở dĩ anh đưa ra chuyện đọc sách, phân loại sách và phương pháp tổng hợp, thâu thập từ sách là vì anh có ý muốn em phải đi qua cái 'what' trước sau đó mới có thể khai triển đến cái 'why'. Rồi, câu thứ hai?"
"cuti" liếng thoắn: "Ái chà, chữ 'giềng mối' là chữ em copy anh đó thôi. Chữ này ít thấy dùng nhưng em thấy hay hay. Chắc mình phải đi sâu vào chi tiết kỹ thuật đọc sách và rút tỉa từ sách quá anh à, tại vì em vẫn thấy những thứ trong sách muôn trùng. Điều mình cần tìm hiểu thì ít ỏi, điều mình không cần tìm hiểu thì quá nhiều. Cái khó là tìm ra được những phần mình cần trong một cuốn sách. Nhưng thôi, để mình bàn chuyện này sau. Câu thứ hai của em là: anh có thể cho em vài ví dụ kỹ thuật về cái 'giềng mối' mà anh nói ở đây không?"
"cuti" quả không đơn giản tí nào. Tôi trầm ngâm vài giây rồi trả lời: "Được rồi. Cái gọi là 'giềng mối' chính là những mắc xích từ phần này đến phần kia một cách logic trong một chuỗi sự việc, hiện tượng, thể trạng. Trên bình diện kỹ thuật và nhất là trong khuôn khổ những gì mình đang đi qua, 'giềng mối' nói một cách tổng quát, là những bước dẫn mình đi đến mục đích cuối. Ví dụ:
- em đọc sách đúng phương pháp để hình thành cái 'what', rồi từ 'what' đi đến 'why, thiếu 'what' không thể hình thành 'why', thiếu 'why' không thể đi đến đích: đây là 'giềng mối' sự việc.
- em không thể điều chỉnh nội dung index.html kia: đây là hiện tượng. Nếu phân tích hiện tượng này thì em thấy rằng, để có thể thực hiện việc điều chỉnh này em phải có đủ chủ quyền, để có đủ chủ quyền em phải là 'root', để biến em thành 'root' hoặc mượn tay 'root' thì em phải hiểu rõ những điểm nào trong hệ thống có thể cho phép cho em thực hiện: đây là 'giềng mối' hiện tượng.
- em cần phải tham khảo và hiểu rõ ls, umask, chmod, chown và chgrp là vì ls cho phép em liệt kê tính chất và thể trạng của các hồ sơ và thư mục, umask ấn định các thể trạng này cho tình trạng mặc định và chmod, chown và chgrp thay đổi hoặc ấn định lại thể trạng hiện có sang thể trạng mới: đây là 'giềng mối' thể trạng.
Em đọc ba ví dụ trên rồi suy gẫm đi "
"cuti" lặng thinh hồi lâu rồi đáp, có phần gay cấn: "grừ... anh nói chuyện độc thiệt, nhưng anh dùng nhiều từ làm em lùng bùng rồi . Em chưa hề thấy có sách giáo khoa nào về IT mà đề cập những điểm: sự việc, hiện tượng và thể trạng như anh. Một lệnh là một lệnh, một quyển sách là một quyển sách.... em chưa hề thấy qua lối diễn giải sự việc như anh. Thật tình em hơi bị lùng bùng đây anh ạ. Em không hiểu tại sao em phải hiểu rõ giềng mối thể trạng của các lệnh. Bộ muốn trở thành một người rành rẽ về IT thì phải hiểu rõ các 'giềng mối' mà anh đưa ra sao?"
Tự nhủ là mình nên kiên nhẫn vì "cuti" đã 'lỡ' ám ảnh với lối suy nghĩ cục bộ, tôi tiếp tục trả lời: "Những ví dụ về 'giềng mối' trên là đúc kết logic của những trường hợp anh em mình đang đi qua. Nếu em chỉ hiểu ở mức độ 'một lệnh là một lệnh', em chỉ cần biết gõ lệnh nào đó còn chuyện gì gì xảy ra đằng sau là chuyện em không muốn biết thì em chỉ dừng lại ở mức độ người dùng bình thường. Em còn nhớ chi tiết chuyện 'nhấn nút' trước đây không? Người dùng bình thường chỉ... nhấn nút và chờ kết quả. script kiddie cũng nhấn nút và chờ kết quả. Tuy nhiên, hacker nhấn nút và biết rõ ngay sau khi nút được nhấn, chuyện gì đã và đang xảy ra. Bởi vì hacker đã khiến cho cái 'nút' kia thực thi những điều cụ thể mà anh ta muốn. 'Lệnh' cũng như 'nút' vậy, chúng đều là phương tiện để tác động đến hệ thống. 'hacker' không những biết những phương tiện tác động căn bản, hiểu rõ cơ chế và giềng mối làm việc của chúng mà còn phải có khả năng tạo 'nút' và 'lệnh' để thoả mãn đòi hỏi của mình. Nếu chưa nắm được 'nút' và 'lệnh' làm những gì đến hệ thống thì việc tạo thêm 'nút' và 'lệnh' là chuyện không thể xảy ra. Đây chính là vấn đề thuộc về giềng mối.
Riêng chuyện ngôn từ anh dùng thì... em thông cảm hả? anh quen dùng những từ ấy rồi. Vả lại anh không biết em dùng những từ nào tương đương nên đành phải dùng những từ anh quen thuộc, hì hì."
"cuti" tiếp tục vặn: "Vậy anh có thể nói rõ hơn cái 'giềng mối' giữa ls, umask và chmod được không anh? Tại sao anh đơn cử mấy lệnh này? Em thấy vấn đề 'giềng mối' anh đưa ra ở đây chưa tỏ lắm. Hay là em lù khù quá nên chưa nắm được ý anh."
Tôi đáp: "Anh nghĩ anh đã giải thích khá rõ trong e-mail và trong câu trả lời trên rồi mà? Em nên xem lại. Có lẽ mình đi xuyên qua vấn đề hơi nhanh nên em chưa có đủ thời gian để suy gẫm đó thôi. Rồi, câu hỏi tiếp theo là gì?"
"cuti" vẫn kiên trì: "Đúng là anh đã giải thích về chuyện 'giềng mối' rồi nhưng em vẫn thắc mắc là làm sao mình biết khi nào mình cần dùng lệnh ls, khi nào mình cần dùng lệnh chmod chẳng hạn? Em cần được đả thông khúc mắc này trước khi em có thể hỏi câu tiếp theo."
Tôi trả lời "cuti": "Chà, điều em cần đả thông ở đây là sự nhuần nhuyễn một hệ điều hành và những phương tiện tác động đến nó để thực hiện điều mình muốn. Để đạt được chuyện này, em phải dùng nó, phải thử nghiệm, phải biến 'lạ' thành 'quen'. Nói một cách khác, em phải là một 'user' thật sự trên hệ điều hành này trước khi em trở thành một 'hacker'. Nếu em dùng hệ điều hành đến mức nhuần nhuyễn, tự nhiên em biết được khi nào em cần dùng lệnh nào để thực hiện chuyện gì. Đây là cái 'what' mà em phải thực hiện."
"cuti" trở nên gàn bướng: "Nhưng đợi đến khi em thành thạo hết những 'lệnh' kia thì biết cho đến bao giờ hở anh? Điều em thắc mắc là có một quy trình gì đó để thao tác những lệnh đó không anh?"
Tôi hơi thất vọng vì lại phải quay lại giai đoạn này. Tôi đáp: "Hèm, anh nghĩ mình đã thống nhất với nhau là: em phải hiểu rõ hệ thống trước khi có thể 'hack' hệ thống rồi mà? Việc em dành thời gian cài một cái Linux server và cố gắng làm quen với nó chính là quá trình hiểu hệ thống đó. Ở đây anh giúp em một điều: giới hạn lại những điểm cần tìm hiểu cho việc điều chỉnh nội dung index.html kia thì cần tham khảo những lệnh nào. Anh không khuyến khích học 'lệnh' mà anh chỉ khuyến khích học 'system'. Tuy nhiên để em đỡ mất thời gian, anh giới thiệu vài 'lệnh' để em tập trung vào một phần nào đó của system. Còn chuyện quy trình thì anh nghĩ là không có quy trình gì cả. Các bước thẩm định, dò xét để chọn lựa hướng giải quyết của mỗi người đều khác nhau.
Đến một mức nào đó, quá trình hình thành hướng giải quyết và cách giải quyết cụ thể chỉ thuần tuý phụ thuộc vào khả năng sáng tạo của mỗi cá nhân mà thôi. Những lệnh căn bản như ls, umask là những lệnh không thể thiếu để thẩm định. Thẩm định còn có thể mở rộng ra bằng cách phối hợp một số 'lệnh' để mang lại kết quả nhanh chóng và trung thực hơn. Anh cho rằng không có một công thức hay quy trình nào cả. Cùng lắm là mọi người đều chọn chung một hướng giải quyết là đi từ dễ đến khó, từ đơn giản đến phức tạp."
"cuti" reo lên: "Vậy thế nào là đơn giản, thế nào là phức tạp? thế nào là dễ và thế nào là khó hở anh?"
Tôi cười, đáp: "Em không đùa đấy chứ? Em không biết thế nào là đơn giản, phức tạp, dễ và khó hay sao? Hay ý em muốn nói trong khuôn khổ điều chỉnh nội dung index.html ở đây mà thôi?"
"cuti" đáp một cách thoả mãn: "Đúng rồi anh, có vậy mới được chớ? hì hì. Em chỉ muốn biết cách nào là cách đơn giản, dễ để điều chỉnh nội dung index.html kia. Cách nào là cách khó và phức tạp. Anh nói qua chuyện này đi?"
Tôi đáp: "Hì hì, em vẫn chưa thoát khỏi con ma 'thiếu kiên nhẫn', nó cứ đi theo em và 'ám' em mãi vậy? ;-). Em chỉ muốn thấy kết quả liền liền thôi. Anh có thể nói đến các thao tác để em nghe nhưng làm như vậy bị hỏng hết kế hoạch của anh em mình. Làm như vậy em không còn có chuyện để tìm hiểu và thâu thập nữa."
"cuti" chống chế: "Hì hì, dạ đúng rồi. Em đúng là muốn thấy ngay kết quả. Nhưng anh thông cảm cho em tí đi. Dù gì em cũng còn nhỏ dại, thiếu kiên nhẫn mà. Nếu em mà điềm đạm, kiên nhẫn thì em đã thành một ông... già khó tánh như anh rồi ;-). Nếu anh nghĩ rằng mình không nên đốt giai đoạn thì em không tò mò thêm nữa đâu."
Tôi mỉm cười, nghĩ ngợi vài giây rồi trả lời "cuti": "Hèm.... 'nhỏ dại' thì phải làm gì đó mới 'lớn lên' được chớ em? Không nên viện lý do 'nhỏ dại' để làm sai hướng mình đi. Hơn nữa, nếu lúc nào cũng chống chế bằng sự 'nhỏ dại' thì khó mà 'lớn lên' được. Thật ra anh có thể tổng hợp lối giải quyết vấn đề một cách chung chung cho em xem. Tuy nhiên, em nên nhớ đây không phải là một quy trình hay công thức gì cả, đây chỉ là những thẩm định và thực thi mang tính thói quen và kinh nghiệm mà thôi. Giả sử em đánh cuộc với anh là làm sao anh có thể đổi nội dung index.html thì anh sẽ làm như sau, không nhất thiết phải theo đúng thứ tự: - trước tiên, dùng ls để xem chủ quyền ấn định đến hồ sơ này. Nếu nó cho phép mọi người 'viết' và 'đọc' --> game's over. - nếu nó cho người tạo ra hồ sơ này và một nhóm người dùng nào đó (group) được phép 'viết' và 'đọc', anh xem thử umask ấn định chế độ chủ quyền theo mặc định ra sao để đánh giá mức cẩn thận của người làm chủ server này --> anh tìm cách đưa tài khoản của anh vào group này --> nếu được, game's over. - nếu nó chỉ cho người tạo ra hồ sơ này muốn làm gì thì làm, ngoài ra mọi người chỉ được phép 'đọc' --> cái này dẫn đến nhiều chọn lựa.
a. anh xem thử sudo được ấn định thế nào. Nếu sudo ấn định lỏng lẻo và cho phép anh thay đổi một script nào đó hoặc mượn tay root để làm gì đó --> game's over
b. nếu sudo quá chặt chẽ, em mới dò tìm xem trên system này có 'world-writeable' script nào không. script cần cho root thực thi thì càng tốt. Nếu có --> game's over
c. nếu không tìm ra được gì hết, anh mới chuyển qua tìm xem có binary nào trên system có SUID và bị lỗi. Nếu có --> game's over.
d. nếu tìm không ra SUID có lỗi, anh mới nghĩ đến chuyện tìm những chương trình hay dịch vụ nào chạy với chủ quyền super user và cần tạo hồ sơ tạm thời ở /tmp. Nếu các chương trình này thiếu sanity check trước khi tạo temp file thì anh dùng symlink để mượn tay 'su' đổi chủ quyền một file nào đó anh chọn trước để khai thác password hoặc những thứ tương tự --> game's over
e. nếu system này... chiến quá, không có chương trình nào hoặc dịch vụ nào thiếu sót trong phần sanity check trước khi tạo temp file thì anh mới nghĩ đến shellcoding. Tìm cách dò ra một vị trí nào đó trên memory đang được 'su' dùng và bắt nó thực thi một chuyện gì đó tiện lợi cho anh để biến anh thành 'root' --> game's over.
Nếu đi xuyên qua các dạng thẩm định trên (cộng với các phối hợp) mà vẫn không tìm ra kẻ hở --> bó tay.
Nếu xét về mặt khó hay dễ, đơn giản hay phức tạp thì a -> e tạm xem là thứ tự. Tuy vậy, mỗi dạng thăm dò và quyết định phương hướng có thể mở ra nhiều khả năng khác nhau, mức đơn giản và phức tạp sẽ thay đổi. Bởi vậy, trình tự cụ thể và rõ ràng là chuyện không thể có được."
"cuti" khoái chí đáp: "Thấy chưa? em 'moi' một chặp cũng ra thôi. Anh đưa ra a -> e không đơn giản và dễ hiểu hơn sao?"
Tôi đáp: "Tất nhiên là 'đơn giản và dễ hiểu' nếu như em vẫn còn đeo cứng lối khai triển và thực hiện theo kiểu 'step-by-step'. Nếu em hiểu rõ việc ứng dụng các cơ chế làm việc trên máy chủ, tự nhiên em hiểu rõ vấn đề và hiểu rất sâu về nó. Nếu em không hiểu rõ việc ứng dụng các cơ chế mà chỉ làm theo các 'steps' thì sự thất bại chiếm trên 90% vì khi gặp trở ngại, em không biết cách đổi hướng hay vận dụng thêm các chọn lựa khác để thay đổi tình hình. Nên nhớ, anh không 'chỉ vẽ' chuyện 'khai thác' ở đây. Anh chỉ đưa ra ví dụ và phân tích cái gọi là 'giềng mối' cho em thấy rõ 'giềng mối' là thế nào mà thôi. Nếu em hỏi anh SUID là gì, làm sao khai thác nó thì anh sẽ không trả lời vì anh không biết phải trả lời thế nào. Cho đến khi em tìm ra SUID là gì, nó có tác dụng gì, tại sao có nó thì tự nhiên em sẽ có câu trả lời 'làm sao để khai thác nó' mà thôi ."
"cuti" bức xúc thấy rõ: "Trời, anh lúc nào cũng úp úp, mở mở . Anh đúng là làm khó em."
Tôi cười phá lên vì "cuti" bị lạc đề và đi đến việc ngộ nhận vấn đề một cách trầm trọng. Tôi nói tiếp: "Này ông thần nước mặn, anh em mình đang nói chuyện 'giềng mối' hay anh em mình đang bàn chuyện 'exploit' ở đây vậy? Em đừng nóng nảy như thế. Liệu trước giờ em đã 'chat' với ai ở cấp độ anh em mình đang 'chat' chưa? Nếu chưa thì em không nên cho là anh 'úp úp, mở mở' ."
"cuti" chống chế và phụng phịu: "Hông phải, hông phải. Ý em trách móc gì anh hết. Em thấy 'giềng mối' được thể hiện qua quy trình exploit là dễ thấy và dễ hiểu nhất. Anh dùng ví dụ a -> e tự nhiên em thấy thông hẳn ra. Thế nhưng anh lại quay về chuyện khái niệm. Để em tiêu hoá được mớ khái niệm này chắc chết mất."
Tôi quyết định trở nên cứng rắn với "cuti" không thì hỏng bét. Tôi đáp: "Nếu em không tiêu hoá nổi mớ 'khái niệm' kia thì em sẽ không bao giờ có thể 'hack' được. Anh phải nhấn mạnh điều này bởi vì có ba điểm quan trọng như sau: - những cái em gọi là 'khái niệm' kia chính là kỹ năng lập luận và định hướng. Không có nó, em không làm gì được (và chỉ có thể ngồi đó chờ được mách nước). Kỹ năng này giúp cho em không chỉ mở một 'ổ khoá' mà nhiều 'ổ khoá'. Em chọn lựa lối tiếp thu 'step-by-step' thì chắc chắn em chỉ có thể mở được một 'ổ khoá' mà thôi. - từ những thứ gọi là 'khái niệm' kia, nó tạo điều kiện cho em tìm hiểu và hiểu những kiến thức cần thiết để hình thành những 'giềng mối' của cả một hệ thống làm việc. - nếu em chỉ 'nhắm mắt' mà thực thi các 'lệnh', em vướng vào một thế giới cực kỳ mơ hồ và nguy hiểm."
"cuti" cố chống chọi: "Trời, có gì mà nguy hiểm anh? Cùng lắm là làm không được thôi mà ."
Tôi cười, đáp: "Nếu anh cho em một đoạn script hoặc một đoạn mã nguồn và anh nói rằng: 'chạy nó đi, nó sẽ thực hiện điều em muốn' nhưng bên trong đoạn script hoặc đoạn mã nguồn này tàng chứa những 'thứ' nguy hiểm khác mà em không biết. Liệu em có chạy nó không?"
"cuti" cười giã lã: "Chẳng lẽ anh mà lại 'chơi' em sao? Tất nhiên là em chạy nó liền mà chẳng ngần ngại."
Tôi đáp: "Đó chính là điểm nguy hiểm mà em không nhận ra. Cứ cho là anh không làm chuyện đó nhưng làm sao em dám chắc là một chương trình nào đó em download từ Internet về hoàn toàn đáng tin cậy nếu em không soi xét nó kỹ lưỡng? Và để soi xét kỹ lưỡng nhất định em phải có đủ kiến thức cần thiết. Em dùng một thứ công cụ, một đoạn script, một đoạn mã nguồn với mục đích 'exploit' mà bị 'exploit' bởi chính công cụ mình dùng thì... hack hiếc cái nỗi gì?"
"cuti" đáp: "Trời, em chưa bao giờ nghĩ đến điểm này. Có lẽ em chưa có đủ kinh nghiệm 'chiến trường' mà thôi."
Tôi trả lời: "Ừa, chưa đủ kinh nghiệm 'chiến trường' thì quá rõ nhưng vấn đề mình đang bàn ở đây là mình phải có đủ kiến thức để xem thử mình đang 'chơi' với cái gì và chắc chắn lối khai triển 'step-by-step' sẽ không giúp được em. Hơn nữa, nếu hiểu rõ, mình có thể dùng nó để 'cải thiện' cho mục đích cụ thể của mình. Nhưng thôi, anh nghĩ mình đi hơi xa chủ đề rồi đó. Em nên lưu lại trọn bộ nội dung cuộc nói chuyện của anh em mình hôm nay và về đọc kỹ lại đi. Nếu được, lần sau em làm một bản 'tổng kết' những gì mình bàn cãi cho đến lúc này. Được không 'cuti'?"
"cuti" nhanh nhảu: "Dạ được chớ anh, chuyện nhỏ như con thỏ thôi mà. Anh phải đi à?"
Tôi đáp: "Ừa, anh phải đi. Anh dính chặt vào cái máy cả tiếng đồng hồ rồi. Anh phải đi có công chuyện. Cần gì cứ YIM cho anh nha. Chào cuti."
"cuti" vẫn hóm hỉnh: "Chào anh già... dễ tánh".
Và tôi logoff.
12/7/2005
Bạn đang đọc truyện trên: Truyen247.Pro