Thứ Hai, 15 tháng 11, 2010

Những cuộc đối thoại với rookie - Phần 5

8. "Hai mặt" của vấn đề:
Trái hẳn với hai tuần lễ trước, vài tuần nay "cuti" liên tục 'dội' YIM và mail box của tôi với hàng loạt câu hỏi. Phần lớn là những câu hỏi thuộc dạng 'what'. Tôi cố gắn trả lời hầu hết các thắc mắc của "cuti" mặc dù vấn đề thời gian của tôi rất giới hạn. Có những e-mail hồi âm của tôi chỉ vỏn vẹn có một câu: cái này thuộc dạng 'what', em thử tìm hiểu xem. "cuti" tỏ vẻ khá bực dọc với những e-mail này của tôi. Tuy nhiên, tôi vẫn... phớt lờ và duy trì giới hạn những câu trả lời nhằm mục đích 'đẩy' "cuti" vào chỗ thật sự làm quen và hình thành kỹ năng tìm kiếm, tổng hợp và thu thập thông tin. Có lần tôi nhận một thông điệp của "cuti" trên YIM như thế này:
"Anh già ui, hình như càng học em thấy em càng ngu hay sao đó. Hu hu hu smilie. Cứ mỗi điểm cần tìm hiểu lại nảy ra hàng sa số những điểm xung quanh. Em đọc sách muốn khùng luôn nhưng càng đào sâu, càng thấy mình ngu si đi. Hay là em bị 'tẩu hoả' thật sự rồi?"

Tôi thầm nghĩ, hiện tượng "cuti" đang đối chọi có lẽ do cu cậu cố dồn ép quá mà ra. Tôi gởi "cuti" một offline message:
"cuti ơi, trưa Chủ Nhật tuần này anh rảnh đó. Có muốn 'giải bày' thì 'bay' vô YIM hả?"

Hai ngày sau, tôi nhận được một e-mail từ "cuti" như sau:
"Anh già ơi, mấy ngày vừa qua em chả thèm động đến máy. Em xách xe đi chơi vòng vòng cho bớt căng thẳng. Chiều nay em nhớ đến việc anh yêu cầu lần trước là hình thành một 'bản tổng kết' những gì anh em mình thảo luận cho đến giai đoạn này. Tự nhiên trong quá trình hình thành 'bản tổng kết' em thấy rất nhiều sự việc trở nên rõ ràng. Đây, 'bảng tổng kết' em có thể rút tỉa được:

1. 'hack' là hành động điều chỉnh máy tính ở nhiều tầng khác nhau nhằm thay đổi thái độ làm việc của nó.
2. muốn 'hack' phải hiểu rõ mục tiêu mình sắp sửa 'hack' là gì.
3. 'hacker' là một 'user' rất thấu đáo môi trường làm việc của mình. 'hacker' không những nắm vững 'nút' bấm (hoặc lệnh) để làm gì mà còn biết rõ những gì xảy ra khi 'nút' được bấm (hoặc lệnh được chạy) và có thể tạo ra 'nút' để bấm (hoặc lệnh để chạy) để đáp ứng đòi hỏi cụ thể.
4. mọi vấn đề trong thế giới 'hack' đều có giềng mối của chúng. Nắm được những 'giềng mối' này mới có thể làm thay đổi được thái độ làm việc của hệ thống.
5. đọc đi đôi với 'hành'. Trước khi biết được 'why' phải biết được 'what'.
6. để có thể nắm được 'what' cần phải có kiên nhẫn và có hệ thống. Để có thể nắm được 'why' cần phải có khả năng phân tích và tổng hợp những điểm cốt lõi.

Anh xem thử những điểm em đưa ra còn thiếu sót gì không? Chủ Nhật này em sẽ online đợi anh đó nha.

Chúc anh một tuần làm việc vui vẻ.
cuti."

Nhận được mail của "cuti", tôi đọc phần tổng kết của cu cậu và thấy rằng "cuti" đã tổng kết khá đầy đủ các điểm cốt lõi mà bọn tôi đã trao đổi những lần trước đây. Đây là việc đáng mừng. Tuy nhiên, vận dụng thế nào vẫn còn là một con đường dài dằng dặc và đầy chông gai. Tôi hồi âm "cuti" bằng một e-mail ngắn gọn như sau:
"cuti thân mến, sáu điểm em đưa ra thật tuyệt. Tuy nhiên, anh nghĩ em vẫn còn sót một điểm cuối, điểm thứ bảy. Em thử nghĩ xem điểm này là điểm gì?

Hẹn gặp lại chiều Chủ Nhật khoảng 3 giờ.
Thân."

Chiều Chủ Nhật, đúng 3 giờ chiều tôi logon YIM và "cuti" đã ngồi chễm chệ chờ. Tôi gởi cho "cuti" một thông điệp để báo cho cu cậu là tôi đã online (vì tôi vẫn ở tình trạng invisible). "cuti" hồi đáp gần như ngay lập tức kèm theo là một lời mời tham gia một conference:
"Chào anh, mình mở một cái conference được hông anh?"

Tôi khá thắc mắc, "việc gì phải conference nhỉ? Có lẽ có ai đó muốn tham gia chat chăng?". Tuy vậy tôi vẫn tiếp nhận lời mời. Không ngoài dự đoán, khi tham gia conference này, tôi thấy có thêm hai nhân vật mới với nick name khá.... kiếm hiệp. Một người mang tên là 'docco' (độc cô) và một người mang tên là 'haothu' (hảo thủ). Tôi chào mọi người:
"Chào cuti, chào docco và haothu."

"cuti" nhanh nhảu:
"Dạ, đây là hai đứa bạn học chung với em, bọn em chơi thân với nhau lắm. Sau khi em đưa cho bọn nó xem bản sao cuộc nói chuyện của anh em mình, bọn nó khoái lắm nhưng giữa bọn em nổ ra một trận tranh cãi khá gay gắt là: bảo mật trước hay 'hack' trước?. Bọn nó cho rằng muốn bảo mật cho tốt thì phải biết hack trước. Còn em thì do bị 'tiêm nhiễm' anh nên cho rằng muốn hack giỏi thì phải biết bảo mật, biết bảo mật rồi thì mới biết hack. Bây giờ em muốn anh đứng ra phân giải dùm bọn em. Hy vọng anh không phiền vì em đã mời thêm hai ông tướng này vào nói chuyện mà không báo trước cho anh biết."

"docco" và "haothu" chào tôi sau khi "cuti" giới thiệu và giải bày sự thể. Tôi vui vẻ đáp:
"Không sao đâu em, có nhiều người nói chuyện thì càng vui chớ sao đâu? Mấy anh em mình nói chuyện một cách thoải mái, đừng cứng nhắc quá mà mất vui. docco', 'haothu' cũng học chung lớp với 'cuti' hả?"

"haothu" đáp:
"Dạ, em học cùng trường với 'cuti' đó anh. Em cũng biết anh lâu rồi nhưng em ngại, không dám liên lạc trực tiếp với anh. Kỳ này bọn em cãi nhau rôm rả, âu cũng là dịp tốt để em làm quen với anh."

"docco" thêm vào:
"Hì hì, chỉ có thằng khỉ 'cuti' này mới bạo gan add tên anh vào YIM của nó chớ em thì hông dám. Lỡ anh 'đì nai' thì quê chết. 'cuti' nói là anh dễ tính, vui vẻ lắm, bây giờ em mới thấy."

Tôi cười đáp:
"Hì hì, em mà thấy cái danh sách người trên YIM của anh thì em không té xỉu là dở, mặc dù anh rất ít vào YIM nhưng có nhiều người cứ 'add' và anh cứ 'accept'. Riết hồi anh chẳng còn biết ai là ai nữa. Chắc bữa nào phải dọn dẹp một lần."

"cuti" lên tiếng:
"Tụi mày thấy chưa? tao đã nói là ổng dễ tính, vui vẻ mà. Bọn em xưng mày tao búa xua, anh già 'dễ tính' chắc không phiền hả?"

Tôi đáp:
"Ừa, cứ thoải mái đi em. Còn chuyện bọn em cãi nhau như "cuti" nói hồi nãy, bọn em đã cãi những gì, lược sơ qua dùm anh tí coi? smilie"

"docco" nhanh nhảu đáp:
"Dạ, em với thằng Khoa, ý quên, thằng 'haothu' có cùng quan điểm là muốn bảo mật cho giỏi thì phải biết hack trước. Em thấy có rất nhiều chuyên gia bảo mật nói một câu có ý đại khái là: muốn bảo mật tốt thì phải suy nghĩ như một hacker. Nghiệm tới, nghiệm lui em thấy quả là đúng nhưng thằng khỉ Hưng, ý quên, thằng 'cuti' thì khăng khăng cho rằng phải có kiến thức từ căn bản lên đến nâng cao, phải nắm rõ hệ thống mình cần bảo vệ thì mới kiện toàn chuyện bảo mật, từ đó mới nắm được 'hack' là gì. Anh nghĩ sao?"

"cuti" xen ngay vào:
"Thằng khỉ kia, ai biểu mày khai tên thiệt ra hết vậy trời? Hì hì, anh già đừng trách nha, trước giờ nói chuyện với anh, em chưa bao giờ tiết lộ tên thiệt của em, thằng khỉ Duy này khai hết. Chuyện bọn em tranh cãi chẳng đi tới đâu cả. Em tin rằng muốn 'hack' thì phải giỏi bảo mật trước. Vậy thôi."

"haothu" chêm vào:
"Em cũng đồng quan điểm với thằng Duy luôn đó anh."

Tôi cười, và đáp:
"Từ từ cái đã. Để anh hỏi cu Hưng một câu để đúc kết phần anh và nó trao đổi mấy lần trước đây đã nha? Vậy anh gọi 'cuti' là Hưng, 'haothu' là Khoa và 'docco' là Duy được không?"

"cuti" đáp lời ngay:
"À, ý anh muốn hỏi em điểm thứ bảy là gì đó phải không anh? Thật tình em đã đọc kỹ lại mấy đoạn anh em mình trao đổi nhưng em tìm không ra điểm nào có thể là điểm thứ bảy. Còn chuyện gọi bọn em bằng tên nào cũng được hết anh. Bọn em gọi nhau bằng tên thật quen rồi nên vào chat vẫn quen thói gọi tên thật."

Tôi đáp:
"Vậy tốt, thống nhất cách gọi như vậy đi. Còn điểm thứ bảy mà em tìm không ra là "4 đê" đó em: đều đặn và điều độ. Đây là điểm cực kỳ quan trọng bởi vì 'ăn' không giờ giấc, không điều độ thì thế nào cũng bội thực smilie."

"cuti" liếng thoắng:
"Ái chà, đây là điểm thứ bảy sao? Em không hề nghĩ đến nó, đừng nói chi là thấy nó quan trọng ngang hàng với những điểm kia. Em thấy hễ mình hứng lên thì ngồi táy máy bao nhiêu tiếng cũng được nhưng không hứng thì vô phương thôi anh."

Tôi vẫn kiên nhẫn trả lời:
"Không đâu em. Muốn tìm tòi lâu dài và có kết quả thì cần phải có kế hoạch hẳn hòi. Không thể dựa trên cái 'hứng' được. Nếu em may mắn, ngày nào cũng 'hứng' thì em có thể gặt hái vài điều. Lỡ may cả tháng em... mất 'hứng' thì coi như đi tong tháng ấy sao? Sự điều độ tạo cho não bộ của em một thứ 'phản xạ có điều kiện'. Đến giờ đó trong ngày, nó sẵn sàng làm việc và lúc ấy mới mang lại kết quả tốt được. Có thể lúc đầu khi chưa quen, em chưa thấy tác dụng đó. Tuy nhiên, sau một thời gian, em sẽ thấy sự đều đặn có tác dụng như thế nào."

"cuti" đáp:
"Quả thật em chưa hình dung được điểm này. Để em chiêm nghiệm thử xem. Bây giờ mấy anh em mình thử bàn chuyện 'hack trước hay bảo mật trước' nha anh?"

Tôi cười, đáp:
"Được thôi. Trước hết anh muốn nghe các lý do tại sao một bên tin rằng 'muốn bảo mật tốt phải biết hack trước' và bên đối lập lại cho rằng 'muốn hack giỏi thì phải biết bảo mật trước'. Để khỏi bị hiểu sai và khai triển sai, anh đề nghị xác định lại cụ thể vấn đề ở đây. Có lẽ 'hack' và 'bảo mật' ở đây đồng nghĩa với tấn côngphòng thủ phải không?"

"docco" reo lên:
"Đúng rồi đó anh. Lúc tụi em cãi với nhau toàn là dùng hai chữ 'hack' và 'security' nhưng em nghĩ là tấn côngphòng thủ là chính xác tinh thần rồi đó."

Tôi đáp:
"Hì hì, nếu quả thật là như vậy thì 'attack' là công và 'defend' là thủ. Anh nghĩ là dùng hai chữ 'hack' và 'security' ở đây sai tinh thần rồi. 'hack' không hẳn chỉ là tấn công mà còn có thể là hành động đóng góp cho việc phòng thủ. 'security' chỉ chung cho sự bảo mật và chưa hẳn nó loại trừ 'hack' ra khỏi các hành động, thao tác để đạt được tính 'bảo mật'. Mình nên dùng đúng 'term' và xác định rõ ý nghĩa của chúng để loại trừ những ngộ nhận có thể có thì mới bàn cãi sâu sát và chính xác được."

"haothu" phát biểu một cách hết sức thật thà:
"Ái chà, mới vào đầu câu chuyện đã thấy 'anh già' quá kinh rồi. Thôi đi Duy ơi, hai thằng mình thua non đi cho rồi. Tao biết ảnh bảo kê cho thằng Hưng là cái chắc. Mới vào đã thấy ảnh 'bẻ' sơ sơ thấy phát ớn."

Tôi xen vào ngay:
"Khoa, đừng nghĩ vậy em. Anh chẳng 'bảo kê' ai cả. Anh chỉ 'bảo kê' cái đúng mà thôi. Cứ xem như anh là trọng tài của cuộc đấu khẩu này thôi. Sở dĩ anh phải xác định rõ mỗi phía bởi vì mình cần phải tránh sự hiểu lầm ngay từ đầu không thì có bàn cãi cũng chẳng đi tới đâu hết. Hì hì, đối với anh không có chuyện ăn thua ở đây đó nha. Rồi hả? Ai muốn bắt đầu?"

"cuti" lăn xả vào trận chiến:
"Em muốn, em nói trước được hông anh?"

Tôi chưa kịp trả lời thì "docco" đã đáp lời:
"Chấp luôn. Thằng khỉ Hưng này lúc nào cũng tranh tiên hết. Nó thì lúc nào chả vậy!"

"cuti" cũng không phải tay vừa:
"Tao nói trước hay nói sau gì mày cũng thua một mức mày ạ smilie bởi vì lẽ phải thì lúc nào cũng phải, không phân biệt trước sau."

Tôi xen vào:
"Thôi đi ông thần, ba hoa lắm vậy? Bắt đầu đi."

"cuti" có ý kiến như sau:
"Em không biết có phải em bị anh tiêm nhiễm hay không chớ em thấy rõ một điều: nếu tay quản lý máy chủ không nắm rõ server của mình có cái gì, điều hành nó ra làm sao, quản lý nó ra làm sao thì không cách gì có thể bảo mật được. Tương tự như vậy, tay tin tặc nào đó muốn tấn công một server thì phải hiểu server đó có những gì, làm việc ra sao. Nếu không, hắn không có cách gì mà tấn công hoặc thâm nhập được. Giả sử em thiết lập một cái server và em dấu hết 'footprint', tay tin tặc không thể xác định được server này chạy trên hệ điều hành nào cả. Cùng lắm là hắn dò ra được các dịch vụ đang chạy trên máy chủ này nhưng để thâm nhập là một chuyện cực khó."

Tôi cười, khơi mào cho "docco" phản bác:
"Em nghĩ sao Duy? Những điều cu Hưng nói có những điểm yếu nào?"

"docco" im lặng khá lâu. "haothu" bèn lên tiếng:
"Dạ, thằng Duy có cái tật đắn đo vòng vo tam quốc dữ lắm anh. Thôi để em trả lời trước cho. Em thấy là khi tay tin tặc ấy xác định được các dịch vụ đang chạy trên một máy chủ, hắn chỉ cần 'thử' hết những lỗi thường thấy và đã được công bố, trước sau gì cũng phá thủng hàng phòng thủ mà thôi. Hắn đâu cần biết dịch vụ đó chạy trên Linux hay AIX, hay Solaris hay Windows làm chi? Trên Internet có hàng 'tấn' công cụ, scripts... để thực hiện chuyện này. Hắn chỉ cần download hết về máy rồi ngồi đó mà thử từng cái một. Em tin rằng, đến lúc nào đó cũng đột nhập được thôi."

Tôi hỏi tiếp "docco":
"Em nghĩ sao Duy?"

Lúc này "docco" mới lên tiếng:
"Em thấy cả hai đứa Hưng và Khoa đều có những điểm không ổn. Hưng thì dừng lại ở bình diện kiến thức khả dĩ để hình thành một server. Khoa thì vận dụng phép... mò. Cả hai chưa đi đến ngọn ngành. Theo em thấy, nếu cả hai tay quản lý server và tay tin tặc có kiến thức và kinh nghiệm ngang nhau, chưa biết ai phòng thủ giỏi hay tấn công giỏi. Em không thể biện minh rõ ràng và rành mạch được nhưng vì lý do gì đó, em tin rằng tay tin tặc dễ đạt mục đích hơn vì hắn vốn thích táy máy, mày mò. Còn tay quản lý server thì thường làm theo tài liệu hướng dẫn."

"cuti" phản công ngay lập tức:
"Thôi đi 'pa'. Nếu 'pa' không biết server đó có cái gì, cấu trúc nó ra làm sao thì làm sao mà thâm nhập? Cho dù thâm nhập rồi mà không biết đường đi nước bước thì có nước đứng đó... ngẩn tò te thôi. Như cái vụ 'anh già' và tao đánh cuộc đây này, ảnh cho tao luôn cả account name và password để vào máy chủ luôn đó nhưng sau đó thì... bó tay vì không biết làm gì hết."

"haothu" reo lên thích thú:
"Á à, vậy mày chịu thua rồi hả Hưng? Mày đóng vai là tay phòng thủ mà lại ngẩn tò te thì thua non đi cho rồi con ơi."

Tôi xen ngay vào để 'nắn' câu chuyện khỏi lạc đề:
"Anh thấy Duy có những nhận xét rất cẩn thận và lý thú. Hưng và Khoa cũng có lý đứng trên quan điểm của mỗi phía. Tuy nhiên, điểm cần xác định thêm ở đây là trình độ của cả 'kẻ công' chọi với 'người thủ' là thế nào? Nếu 'kẻ công' là một tay cực kỳ kinh nghiệm và 'người thủ' là một tay mơ thì cán cân sẽ khác rõ. Ngược lại 'người thủ' là một tay từng trải và 'kẻ công' là một tay ứng dụng phương thức... mò thì kết quả cũng quá hiển nhiên. Có lẽ mình nên xác định lại một cách cụ thể trình độ và kinh nghiệm của hai tay này cho thoả đáng."

"cuti" nhảy ngay vào:
"Dạ, nếu vậy thì cứ cho là cả hai tay đều rành Linux như nhau, có 5 năm kinh nghiệm như nhau, có khả năng thiết lập máy chủ như nhau. Vậy thì 'phòng thủ' sẽ thủng hay, 'tấn công' sẽ bó tay?"

"docco" lên tiếng:
"Em thấy cách xác định hai tay này có trình độ ngang nhau để so sánh hai phía công / thủ là công bình nhất. Ở cỡ tụi em, nếu thằng Hưng mà thiết lập một server và thằng Khoa thì dùng mấy thứ đồ nghề khai thác có sẵn trên Internet thì em tin rằng thằng Hưng sẽ bị thủng vì nó chưa nắm được cách phòng thủ cho đúng mức. Trong khi đó, thằng Khoa không cần biết nhiều về Linux, nó chỉ thử hết cái này đến cái kia thì rốt cuộc cũng vào được máy chủ kia mà thôi."

"haothu" chêm vào:
"Hẳn nhiên rồi."

"cuti" cay cú:
"Mấy thằng này đầu xi măng hay sao mà nói mãi không lay nhỉ? Tao nói là cỡ thằng Khoa có cho account để vào cũng chống mắt mà nhìn chớ biết làm khỉ gì."

Tôi vội vàng xen vào:
"Hưng làm gì mà cay cú vậy em? smilie. Vậy thì mình phải thêm một yếu tố để so sánh: tay 'tấn công' phải thâm nhập và thay đổi cách làm việc của hệ thống, nếu vào được rồi mà ngồi đó... ngó thì không thể gọi là 'tấn công'. Còn tay 'phòng thủ' phải làm sao không cho chuyện thâm nhập xảy ra. Ngay cả có thâm nhập được rồi cũng 'ngồi đó mà ngó' thì phía phòng thủ thắng chớ gì?"

"cuti" nhanh nhảu:
"Hì hì, chắc anh hơi ngạc nhiên với cách nói chuyện của bọn em hả? Bọn em ăn nói bất kể lắm nhưng không có ý gì đâu anh. Chắc anh không khó chịu chớ? Còn yếu tố anh đưa ra thêm em thấy hoàn toàn có lý."

"docco" đáp lời:
"Nếu theo đúng các yếu tố anh đưa ra để có thể so sánh thì em nghĩ bọn em không đủ sức so sánh cho xác thực. Bởi vì thật tình mà nói, thâm nhập cũng như bảo vệ có quá nhiều trường hợp, có quá nhiều tầng. Nhìn hai mặt của vấn đề đều thấy sự phức tạp của chúng."

Một lần nữa, tôi thầm cảm mến tính chững chạc và cẩn thận của "docco". Rõ ràng những nhận định của "docco" đánh đổ trọn bộ những nhận xét và ý kiến mang nặng cảm tính. Tôi đáp:
"Em nhận xét tinh tế và cẩn thận lắm Duy. Nếu so sánh, mình cần phải nhìn cả hai mặt của vấn đề. Nếu thiên vị mặt nào thì mặt ấy sẽ nặng hơn và nhận xét trở nên thiếu chính xác. Như vậy làm sao mình đánh giá thật sự cần biết 'công' trước hay biết 'thủ' trước thì mới bảo mật tốt theo đúng tin thần của cuộc bàn cãi?"

"cuti" vẫn khăng khăng:
"Thủ trước. Em vẫn nghĩ là thủ trước."

"haothu" không nhường bước:
"Công trước. Em vẫn tin là công trước."

"docco" vẫn trung hoà:
"Em không xác định được. Anh có ý kiến gì không vậy?"

Tôi đáp:
"Hãy tóm lược lại 'bài toán' của chúng ta: có hai nhân vật, một kẻ chuyên 'công', một người chuyên 'thủ'. Cả hai có kinh nghiệm tương đương nhau, đều nắm rõ hệ thống như nhau nhưng đào luyện với tinh thần khác nhau. Kẻ 'công' thì nhìn vấn đề từ phía 'công', có nghĩa là hắn ta phải nắm rõ hệ thống để có thể tìm ra những điểm yếu cho việc thâm nhập và tấn công. Trong khi đó, người 'thủ' thì nhìn vấn đề từ hướng 'thủ', có nghĩa là hắn nắm rất rõ hệ thống mình thiết kế, biết chọn lọc những dịch vụ cần thiết, biết thắt chặt những điểm hở. Trong 'cuộc đấu' này, nếu kẻ 'công' có thể thâm nhập và thay đổi được hệ thống làm việc, hắn nắm phần thắng. Nếu kẻ thủ 'phòng thủ' quá chặt kiến cho kẻ công không thể thâm nhập và thay đổi hệ thống, 'kẻ thủ' thắng. Liệu anh tóm lược như vậy đủ chưa?"

Bộ ba Hưng, Khoa và Duy đều im lặng hồi lâu. "haothu" Khoa là người lên tiếng trước:
"Em thật tình không biết phải so sánh thế nào."

"cuti" Hưng tiếp theo:
"Em nghĩ rằng không thể so sánh được."

"docco" Duy đá lời sau chót:
"Theo em, nếu mình phân tích từng trường hợp thâm nhập và phòng thủ một cách tỉ mỉ thì may ra có thể đi đến một kết luận nào đó. Ngoài ra, em bắt đầu tin rằng không thể xác định được nên biết 'công' trước hay nên biết 'thủ' trước. Nói một cách khác, định đề muốn bảo mật cho tốt thì phải biết thâm nhập trước và ngược lại đều thiếu cơ sở."

Tôi gật gù trước nhận định chặt chẽ của "docco". Chỉ qua vài chục dòng chat, cá tính của mỗi người trong bộ ba này thể hiện thật rõ. "cuti" Hưng nhanh nhảu, thông minh. "haothu" Khoa nóng nảy, trực tính. "docco" Duy chậm chạp nhưng sâu sắc. Vậy mà ba cu cậu chơi rất thân với nhau. Có thể ba cá tính bổ khuyết cho nhau nên chúng thân với nhau chăng? Tôi khơi mào:
"Vậy, mấy anh em mình có nên 'khai phá' vài trường hợp để xem thử hai định đề muốn bảo mật cho tốt thì phải biết thâm nhập trước hoặc muốn thâm nhập cho giỏi thì phải biết bảo mật trước không?"

Cả ba cùng reo lên:
"Dạ."

"Chơi luôn."

"Chắc anh là người 'khai phá' chớ bọn em thì không đủ sức rồi smilie"

Tôi ngẫm nghĩ rồi đáp:
"Thế này, anh nghĩ để tạo ra một buổi bàn thảo lý thú, mấy anh em mình nên chuẩn bị kỹ lưỡng trước các điểm cần bàn. Hãy hình thành một số trường hợp cụ thể. Đặt tên cho kẻ tấn công, người phòng thủ. Phải quy định xem nên thiết lập một máy chủ ra sao, có những dịch vụ nào. Sau đó mình sẽ phân tích từng 'thử nghiệm' cụ thể cả hai phía. Ví dụ như:
'kẻ công' = A
'người thủ' = B
server của B thiết lập = Z
dịch vụ của Z = z1, z2, z3...


Sau đó mới khai triển:

A xác định footprint Z như thế nào, B ngăn chặn việc này ra làm sao.
A dò tìm z1, z2, z3 như thế nào, B kiện toàn các dịch vụ này ra làm sao.
A exploit z1, z2, z3 như thế nào, B thắt chặt các dịch vụ này ra làm sao...


Mấy anh em mình chat đã khá lâu, anh phải đi. Mình có một tuần để suy nghĩ xem: nếu mình là A thì mình sẽ thăm dò ra sao? thử nghiệm những gì và hành động như thế nào? Nếu mình là B thì mình thiết lập những gì, thắt chặt những gì và đối phó ra sao khi A thâm nhập.

Thấy được không?"

"cuti" reo lên trước:
"Ái chà, được như vậy thì hơi bị... hay. Vậy em sẽ chọn vị trí A hay B?"

"haothu" cũng không kém hào hứng:
"Ui chao, phân tích những thứ này đến đầu, đến đũa thì còn gì bằng? Em chọn mình là A được không anh?"

Như thường lệ, "docco" trả lời sau cùng:
"Em thấy ý kiến này tuyệt diệu. Nó tạo điều kiện cho mình tự đặt mình ở hai phía và tìm giải pháp thích ứng. Sao bọn em không chọn cả A và B để tự lý giải anh nhỉ?"

Tôi đã không sai lầm khi nhận định rằng "docco" Duy là một cậu bé hết sức điềm đạm và cẩn thận. Tôi đáp:
"Hoan hô Duy, em đề nghị rất hay. Khi đưa ra các trường hợp ở trên, ý anh là mọi người đều nên lý giải hai mặt của vấn đề. Có như thế thì mình mới hình thành một cái nhìn toàn diện, không thì bị rơi vào tình trạng thiên vị và bởi thế, không thể khai phá đến nơi, đến chốn."

"cuti" phụng phịu"
"Trời ơi, một tuần làm sao mà đủ thời gian để tìm hiểu hết những chuyện cần tìm hiểu anh?"

Tôi đáp:
"Hì hì, bộ em nghĩ trong một tuần bọn mình nắm được cặn kẽ vấn đề hay sao em? Anh không nghĩ thế đâu. Một tuần để bọn em tự hình dung những điểm tổng thể. Khai triển và 'đào xới' thì không biết chừng nào mới xong. Em chỉ thử hình dung xem một máy chủ thông thường cần có những gì? và một máy chủ như thế nếu 'bị' tấn công thì tấn công vào đâu? Như thế đã là nhiều. Sau đó đám tụi mình mới bàn sâu từng trường hợp. Vậy hả?"

"cuti" lẩm nhẩm:
"Vậy là sắp thêm 'những đêm không ngủ'."

"haothu" phấn khích:
"Ái chà, trúng 'mánh' rồi."

"docco" điềm đạm:
"Quả là một điều kiện để học hỏi và nghiên cứu một cách tuyệt vời!"

Tôi kết thúc:
"Rồi nha, Chủ Nhật tuần sau, cũng vào giờ này. 'cuti' nên nhớ đến '4 đê' nha em? Chào Khoa, chào Duy."

và tôi logoff.
19/7/2005
<còn tiếp>

Những cuộc đối thoại với rookie - Phần 4

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 [i]"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:[/i]

"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?" smilie. 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 smilie. 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 smilie

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 smilie

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 smilie, 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 smilie."

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 đó smilie."

"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, chownchgrp 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, chownchgrp 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 smilie"

"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 smilie. 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, umaskchmod đượ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? smilie. 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 smilie. 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 smilie."

"cuti" bức xúc thấy rõ:
"Trời, anh lúc nào cũng úp úp, mở mở smilie. 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ở' smilie."

"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à smilie."

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
<còn tiếp>

Những cuộc đối thoại với rookie - Phần 3

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à? smilie"

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 đó smilie"

"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' smilie. 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? smilie. 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 smilie. 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 smilie 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 smilie. 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 smilie"

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ử? smilie"

"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 smilie."

"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ứ? smilie"


"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à smilie"

"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 smilie. Đây, để thỏa mãn nỗi bức xúc của em, xem thử một lệnh:

find / -depth -type f -perm -0202 | xargs file | cut -f1 -d: | while read file; do printf "cuti is insane\n" >> $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. smilie"

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 smilie. 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ã smilie. 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' smilie. Chào anh."

30/6/2005
<còn tiếp>

Những cuộc đối thoại với rookie - Phần 2

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á smilie. 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? smilie"


"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? smilie."

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 smilie. 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 smilie. '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 smilie. 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ã:
"smilie 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 smilie".

À, 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? smilie. Sao em thấy em giống 'script kiddie' quá. Chắc em đúng là 'script kiddie' rồi smilie. 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 smilie. À 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 smilie. 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 smilie. 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 smilie "

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 smilie "

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ạ' smilie"

"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? smilie. 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 smilie"

Và tôi logoff.