<![CDATA[Latest posts for the topic "Những cuộc đối thoại với rookie - Phần 14"]]> /hvaonline/posts/list/12.html JForum - http://www.jforum.net Những cuộc đối thoại với rookie - Phần 14 17. Những điều xem chừng vụn vặt: Dạo này bọn tôi, 'cuti', 'haothu', 'docco', 'ccxx' và tôi ít có dịp trò chuyện như trước. Có lẽ mấy cô cậu phải vùi đầu vào sách vở và phần tôi cũng không kém phần căng thẳng. Hàng loạt dự án đã được phê chuẩn và ông trưởng dự án nào cũng muốn dự án của mình có ưu tiên cao nhất. Nói thế tôi hy vọng bạn hình dung được nổi thống khổ của một kẻ 'làm công cho thiên hạ'. Đã gần một tháng trôi qua, tôi chỉ nhận được một e-mail từ 'docco' hỏi thăm tình hình công việc một cách chung chung. Tôi quyết định sẽ lấy 1, 2 ngày nghỉ bù (vì đã làm quá nhiều giờ). Nhẩm tính chiều thứ năm tới tôi sẽ rảnh ranh, để hỏi thăm đám 'cuti' có rảnhh không thì tụ lại đà khía một chặp cho vui. Thế là tôi gởi mail đến bốn trự. Mãi chiều hôm kế tiếp tôi mới nhận được thư hồi báo của cả bọn. Thế là chúng tôi hẹn nhau chiều thứ năm. Một giờ hai mươi lăm trưa, tôi log vào YIM. 'docco' đang "vàng khè" online. Tôi không muốn bị "oanh tạc" nên đã cẩn thận logon ở dạng ẩn cho nên 'docco' vẫn không biết tôi đã logon. Tôi gởi cu cậu một thông điệp: "Hù... vào lâu chưa em?" 'docco' không kém phần dí dỏm: "Oái oái, có ma, có ma.... hì hì. Khoẻ không anh? dạo này bọn em phê quá, bài vở nhiều hơn trước. Với lại em ráng tìm hiểu những chi tiết mấy anh em mình đà khía và càng tìm hiểu em càng thấy mênh mông." Tôi đáp: "Ừa, lúc đầu thường bị cảm giác choáng ngợp đó em. Từ từ sẽ dễ dàng hơn thôi. Mấy đứa kia đâu rồi em?" 'docco' trả lời: "Tụi thằng Hưng, con Như nói là tụi nó sẽ vào chặng này nhưng em chưa thấy đâu. Để em gọi di động cho tụi nó thử. Còn thằng quái vật Khoa thì biến mất hút. Em nghe mấy đứa bạn nói là dạo này nó đắm chìm vào game. Kiểu này chắc hết học với hành :((" Tôi chắc lưỡi, đáp: "Ừa, sao dạo này anh thấy game nở rộ, đi đâu cũng game, thậm chí lên báo om sòm. Chơi game không có gì sai hết nhưng chơi quên ngày giờ, quên học hành, quên mọi sinh hoạt khác thì kẹt lắm." Ngay khi đó, 'ccxx' vào. Cô bé nhanh nhảu gởi một thông điệp: "Tụi em đây. Ông Hưng đang ở nhà em, tụi em chat chung hén?" Lần này tôi gởi một request để thảo luận và cả bọn cùng vào conference. 'ccxx' lên tiếng: "Anh ui, em tìm nát nước mà không thấy có thông tin gì về SE hết anh?" Tôi đáp: "SE gì em? Software Engineering đó hả?" 'ccxx' trả lời: "E hèm... anh đúng là già rồi nên lẫn ;)). Thì cái TCP flag SE lần trước em thắc mắc đó?" Tôi cười phì: "Mô phật... làm sao anh nhớ cho xuể em. Mà anh nhớ thằng Hưng thắc mắc vụ này mà? Đâu phải em đâu Như?" 'ccxx' cười: "Hì hì, em đây, Hưng đây. Tụi em chat chung mà :)). Em vừa thắc mắc chớ hổng phải Như đâu." Tôi đáp: "Mèn ơi... vậy thì em nên dùng H: hay N: để anh phân biệt đứa nào là đứa nào không thì lộn tùng phèo lên hết. OK, cái vụ SE nếu em chưa tìm ra thì anh cho cái RFC để mà xem. Thử tìm rfc3168 mà đọc nha em. Nó có một phần nói về SE trong đó." 'cuti' than thở: "H: ặc ặc, anh đúng là ác thiệt là ác :((. Hẹn cho đã rồi thảy cho cái RFC bắt phải đọc nữa." Tôi đáp: "Khì khì, vậy mà ác sao em? anh đưa cho em chính xác RFC để em tìm mà đọc là rút ngắn cho em khối thời gian để tìm rồi đó, vậy mà còn than với thở. Em không cần phải đọc liền, chỉ ghi chú ở đâu đó rồi lúc nào thanh thản hẵng tìm mà đọc không thì bội thực ráng chịu ;))." 'ccxx' xen vào: "N: Ổng lúc nào cũng vậy đó anh. Thấy cái gì cũng ham. Lúc nào cũng ôm đồm đủ thứ rồi nản. Em nói hoài không chịu nghe. Hồi trước thấy thiên hạ đua nhau sưu tầm e-book cũng bắt chước thức khuya thức hôm để download cho được. Mang về cả gi -2- rồi có bao giờ đụng tới đâu? Vô mấy cái forum, thấy người ta kháo cái ngôn ngữ lập trình nào là hăm hở về lục đục cả đêm, Python cũng cài, Ruby cũng đặt, lại còn php, đèo bồng thêm Java rồi khệ nệ bưng cả đống CD mua ngoài tiệm về cho mấy cái .NET gì đó... Vậy mà em chưa thấy ổng code cho ra một cái gì cho rõ ràng hết. Tụi em cãi nhau hoài về chuyện này anh ơi :((." Tôi cười, chậm rãi đáp: "Thế này.... Cu Hưng nó thích táy máy, cái thì thấy, nghe cũng ham là chuyện tốt, có thông minh mới có như thế. Nếu nó thụ động, chẳng ham cái gì thì mới nguy. Việc cần làm là 'đốc' làm sao để nó thực hiện một công trình nho nhỏ nào đó. Khi nó bắt tay vào công trình đó, tự nhiên đống e-book kia sẽ hữu dụng và tự nhiên nó sẽ master một ngôn ngữ lập trình nó chọn. Em nên khuyến khích nó, đừng cãi làm chi cho.... rắc rối thêm ;))." 'ccxx' trả lời: "N: Em đâu muốn cãi với ổng, em chỉ góp ý để tốt cho ổng thôi mà ổng bướng thầy chạy luôn á. Với lại cái gì em cũng phải nhắc ổng, có bao giờ ổng quan sát mà nhắc em cái này cái kia đâu anh? Bữa nay nhân dịp này em muốn anh can thiệp dùm em cái. Hay là anh ra bài gì cho ổng làm đi anh? Ổng chỉ nghe lời anh thôi." Tôi cười phá lên và đáp: "Ha ha, đến giờ này anh đã lấy vợ mười mấy năm mà bà xã anh vẫn nhắc anh đủ chuyện, có bao giờ anh nhắc bà xã anh cái gì đâu em? Đàn ông, con trai vậy là bình thường thôi em. Để anh thử xem cu Hưng nó thích làm cái gì đã." 'ccxx' nguýt: "N: Hứ... mấy ông con trai cứ hở ra là bênh nhau thôi. Em chỉ thấy ổng biết lung tung thứ nhưng hầu hết là những thứ lặt vặt, chắp vá. Mai mốt ra trường, đi kiếm việc người ta hỏi có khả năng gì, biết làm gì? Chả lẽ khai ra mấy cái kinh nghiệm mạng lặt vặt sao anh?" Tôi đáp: "Hì hì, em nói chí lý lắm bé Như. Anh không bênh cu Hưng chuyện này đâu. Để xem cu Hưng nghĩ sao. Nè, ku Hưng, em nghĩ là em muốn làm gì hở?" "cuti" lên tiếng: "H: Đó, bả ỷ có anh ở đây nên ăn hiếp em túi bụi. Tại vì em chỉ muốn tìm hiểu xem mình thích hợp với cái gì rồi mới quyết định thôi mà anh. Em nghĩ là em thích cả quản lý mạng và lập trình. Làm sao mình trau dồi được cả hai hở anh?" Tôi trầm ngâm, tìm cách trả lời 'cuti'. Sau một đỗi, tôi đáp: "Thế này... anh thấy trong mạng có lập trình và trong lập trình có mạng. Tuy nhiên, trong quá trình đi sâu và master mỗi nhánh này, nó đòi hỏi một số điểm chung và điểm riêng. 1) nếu em chọn mạng làm sở trường, em đi sâu vào việc học và làm quen các thiết bị mạng, các ứng dụng software chuyên về mạng, các giao thức mạng và các kỹ năng phân tích + thiết kế môi trường mạng. Chọn lựa này không đòi hỏi kỹ năng lập trình sâu và chuyên như nhánh lập trình. Tuy nhiên, em cần khả năng lập trình để hỗ trợ công việc quản trị mạng này. Ví dụ, em cần thiết lập một hệ thống theo dõi các nodes trong mạng, hoặc thu thập logs của các services để phân tích tình trạng hoạt động của mạng, em không nhất thiết phải lập trình ở mức độ chuyên để tạo ra một software đa năng, mạnh mẽ, ít bugs mà em chỉ cần code bằng ngôn ngữ nào đó dễ học, gọn nhẹ để thực hiện mục đích. Tất nhiên, nếu em có thời gian và khả năng để code một công cụ thật chuyên thì càng tốt hơn. Mạng ở đây là cung cấp phương tiện giao chuyển thông tin một cách hiệu suất, ổn định bằng các thiết bị, môi trường cho phép. 2) nếu em chọn lập trình làm sở trường, em đi sâu vào việc học và làm quen với tính logic, khả năng lập luận, phân tích, cú pháp của ngôn ngữ lập trình, API em dùng và thậm chí cả cơ chế làm việc của một hệ điều hành hoặc một chuỗi hệ thống. Mạng sẽ dính đến lập trình ở một lúc nào đó bởi về không có hệ thống nào ngày nay mà không đụng đến mạng. Tuy nhiên, biên độ mạng ở đây không trực tiếp và cụ thể đến từng thiết bị của từng hãng nào đó mà nó thường nằm ở tầng thấp hơn (socket) hoặc tầng cao hơn (application xuyên qua API). 'docco' xen vào: "Em cũng đã hình dung lờ mờ những điểm ở trên và cảm thấy những ham muốn 'cả hai' là những ham muốn hơi quá trớn bởi vì không thể thực hiện một cách vẹn toàn được. Cái gì cũng muốn, cái gì cũng quơ quào thì một hồi sẽ lõng bõng thôi." Tôi đáp: "Đúng đó em. Anh nghĩ, khởi đầu nên đi vào chiều sâu. Khi đã vững thì tự nhiên nó sẽ mở ra chiều rộng. Nếu sâu không đủ mà rộng không tới thì chắc chắn sẽ bị 'lõng bõng' như em nói." 'cuti' chống chế: "H: Em không đồng ý. Chớ anh thì sao? Anh cũng làm về mạng, cũng lập trình được vậy? Em muốn làm theo kiểu anh làm thôi." Tôi đáp: "Thật sự mà nói, nói về mạng, anh không phải là tay thật chuyên về mạng, nói về lập trình, anh cũng chẳng phải là một tay chuyên chú lập trình. Bởi thế, anh vẫn học thêm vào đào sâu từng mảng kiến thức mỗi ngày đó thôi. Anh đi vào ngành này không được chính quy, có trường lớp như bọn em nên sự thể như thế cũng không đáng ngạc nhiên. Nếu em muốn làm theo 'kiểu anh làm' thì cực nhọc lắm đó vì em phải chuyên cần và kiên nhẫn." 'cuti' nhấm nhẵng: "H: Được rồi, được rồi, em nhất định sẽ chuyên cần và kiên nhẫn." 'ccxx' châm thêm: "N: Ừa, thì làm đi rồi hẵng nói. Lần nào cũng 'em sẽ thế này, em sẽ thế kia' nhưng được ba bữa là đâu lại vào đấy thôi." 'cuti' nói: "H: Em thấy mấy anh em mình bàn càng lúc càng xa khỏi biên độ hacking và security hay sao đó. Mình nói chuyện cụ thể hơn được không anh?" Tôi cười, đáp: "Cụ thể thế nào em? Anh nhớ có lần mình đã đồng ý với nhau rằng, hacker là một user có kiến thức sâu dày, hiểu rõ và nắm rõ những gì anh ta muốn hack và cần hack rồi mà. Cho đến chừng nào em thật sự có kiến thức sâu dày, hiểu rõ và nắm rõ những gì em muốn hack và cần hack thì tự nhiên em thấy nó hết sức cụ thể. Những kiến thức bao quanh cái gọi là 'sâu dày', cho đến nay em vẫn chưa đạt tới thì làm sao mình nói chuyện cụ thể?" 'cuti' cụt hứng: "H: Ờ hén... em cứ bị vướng víu chuyện này mãi. Ý em nói là sau khi mình xác định được foot print đầy đủ hết rồi, mình sẽ làm gì nữa anh?" Tôi đáp: "Em muốn đóng vai trò em là tester hay đóng vai trò em là perpetrator?" 'cuti' đáp: "H: Em không biết nữa anh. Miễn sao em hiểu được các bước thâm nhập gồm có cái gì để thoả mãn cái tò mò là được." Tôi đáp: "E hèm... vắng mặt mới có một tháng mà nó đã quên hết ráo. Không có các bước thâm nhập nào hết đâu em. Một ngàn hệ thống có một ngàn tính chất khác nhau. Ngay cả cũng chính hệ thống đó, ngày hôm trước có thể khác ngày hôm sau. Bởi thế, không thể có 'các bước' cụ thể nào cả. Vả lại, trước giờ mình bàn về cái nhìn từ hai phiá bảo mật + thâm nhập chớ chưa bao giờ mình nói đến chuyện 'các bước' nào hết." 'cuti' tiếp tục: "Ùm... nhưng em ức ở chỗ sao nhiều người có thể dạo một vòng, làm cái gì đó là có ngay 'hacked by xyz...', rồi nào là hack local, nào là up shell... Em hỏi mà chả có ai thèm trả lời em hết." Tôi đáp: "À, ra thế. Nếu em thắc mắc những chuyện đó thì anh sẽ cố gắng giải thích trong giới hạn cho phép. Tuy nhiên, em cần xác định rõ là những gì mình trao đổi bấy lâu nay không phải để hướng về những chuyện như thế." 'cuti' hớn hở: "Dạ em biết mà. Anh giải thích dùm em mấy cái đó là cái gì đi?" Tôi đáp: "Sở dĩ một ai đó có thể vào site của một ai khác để trưng lên dòng 'hacked by...' là vì hắn có đủ chủ quyền để thay đổi nội dung một trang nào đó trên web site này. Em còn nhớ lần anh em mình cá độ và em chịu thua không? Nguồn gốc vấn đề nằm ở chỗ thư mục có chứa file mang nội dung 'hacked by... " kia cho phép một ai đó có chủ quyền thích ứng thay đổi nội dung file như thế." 'cuti' đáp: "Em biết rồi, nhưng làm sao có thể đổi ngang xương như vậy anh? Em thử ngay chính con Linux của em rồi mà không được. Ví dụ thư mục đó chứa index.html và do B làm chủ, em là A, em chỉ có quyền đọc nó thôi, không có quyền chỉnh nó." Tôi đáp: "Anh nghĩ em nên nhớ lại những gì mình trao đổi trước đây, có lẽ em quên khá nhiều rồi đó. Nếu em là A, em không thể thay đổi nội dung file do B làm chủ. Để có thể thực hiện hành động thay đổi nội dung đó, em có thể: - biến mình thành B - biến mình thành C nếu C thuộc nhóm với B và có cùng chủ quyền - biến mình thành X nếu X có chủ quyền hơn cả B Em nghĩ xem, trên Linux server của em đó, em là A, B là chủ của thư mục, vậy C là ai và X là ai?" 'cuti' ngần ngừ: "H: Em chẳng biết nữa :((.... để em coi lại thử." Tôi nói thêm: "Trên *nix, tổng quát mà nói, một thư mục có A làm chủ, có nhóm users gán cho thư mục ấy và có chủ quyền rwx. Một file trong thư mục cũng tương tự. Nếu A là owner thì A có thể làm bất cứ điều gì mình muốn đến thư mục và file trong thư mục ấy. Nếu thư mục và files có ấn định là nhóm users gán cho nó có cùng chủ quyền thì mọi người trong nhóm đều có thể thực hiện công việc y hệt như A. Ngoài ra, root cũng có thể làm tương tự. Đây là kiến thức căn bản không thể thiếu được." 'cuti' cãi lại: "H: Em không tin là mấy đứa trên mạng có đầy đủ các kiến thức như vậy đâu anh. Hổm bữa em chat với một thằng, nó biểu diễn cho em coi nhưng em hỏi nó về Linux thì nó nói là nó không biết gì nhiều về Linux hết. Vậy sao nó vẫn làm được?" Tôi hỏi: "Nó làm những gì, nó có cho em biết không?" 'cuti' đáp: "Dạ, nó dấu nghề mà anh. Làm gì cho em biết. Nó chỉ nói thao thao nào là up shell, rồi đổi index... cái gì, cái gì đó... Em rối tung, rối mù lên." Tôi cười đáp: "À, anh hiểu rồi. Mấy cái 'shell' mà em nói ở đây không phải OS's shell thông thường -3- mà chỉ là những script được viết bằng Perl hay Python hay thậm chí php. Nó có khả năng thực thi một số công việc định sẵn và nó chạy ở trên web service được tạo bằng Apache chẳng hạn. Tất nhiên là những cái shell này chỉ có thể làm việc nếu cấu hình của Apache cho phép và tất nhiên chúng chỉ có thể chạy với chủ quyền tối đa là chủ quyền admin đã ấn định cho Apache. Anh nghĩ nếu em thích thì em nên xem cách những cái shell này được viết thế nào để hiểu chúng làm việc thế nào thì mới lý thú và đáng thời gian bỏ ra. Còn nếu chỉ dùng một cái 'shell' do ai đó viết để xem files, delete files hay làm những chuyện khác trong giới hạn có thể được thì em chỉ dừng lại ở mức độ người dùng mà thôi, thậm chí còn kém hơn người dùng bởi vì người dùng cần shell để quản lý hệ thống, còn em cần 'shell' để phá hệ thống." 'cuti' rên rỉ: "H: đó đó, ông thầy ổng lại lên lớp rồi đó. Em chỉ muốn biết thôi mà :((." Tôi đáp: "Thì anh đã nói, em muốn biết thì nên sưu tầm vài cái 'shell', chúng có đầy trên web đó. Tải về và xem chúng được viết thế nào. Nếu muốn biết chúng làm việc thế nào thì cài lên cái Linux server của em mà vọc. Anh đâu có cản gì đâu? Anh chỉ muốn nhắc em là đừng sa đà vào những trò vớ vẩn bởi vì upload một cái shell lên server của người khác rồi delete files, rồi thay thế index.html có nội dụng 'hacked by cuti' thì chẳng có gì vui và sáng tạo cả. Mấy cái trò này dành cho những đừa 'teen' -4- dư thời gian và thiếu định hướng mà thôi. Em đã qua cái thời này rồi thì đừng nên đi thụt lùi lại." 'docco' xen vào: "Em có một thắc mắc với câu ở trên của anh. Anh nói là Tất nhiên là những cái shell này chỉ có thể làm việc nếu cấu hình của Apache cho phép và tất nhiên chúng chỉ có thể chạy với chủ quyền tối đa là chủ quyền admin đã ấn định cho Apache là sao anh?" Tôi cười và trả lời: "À... có lẽ em chưa dùng Apache nhiều nên thắc mắc. Câu ở trên có hai phần riêng biệt trong đó. - phần một: Apache có một directive gọi là AddType dùng để phủ định một loại MIME nào đó đã được ấn định trong file "mime.types". Nếu trong file "mime.types" không có ấn định nào cho php chẳng hạn và cũng không có ấn định nào từ directive AddType trong cấu hình của Apache thì một file php nào đó, khi được access trên trình duyệt, nó sẽ được hiển thị như một text file bởi vì Apache cho rằng nó là một text file và cung cấp nó đến trình duyệt như một text file. Ở tình trạng này, cái 'shell' php đó không thể thực thi gì cả. - phần hai: Nếu php được ấn định cụ thể ở một AddType directive nào đó, khi người dùng access nó bằng trình duyệt, nó sẽ thực thi các function có trong file này và nó chạy bằng chủ quyền y hệt như chủ quyền đã ấn định cho Apache." 'docco' ậm ừ: "Ùm... à... em hơi hiểu hiểu rồi đó. Chỉ có phần chủ quyền ấn định cho Apache em chưa hiểu." Tôi cười và đáp: "Khì khì, lại có màn 'hơi hiểu hiểu' nữa hả? Em thắc mắc phần chủ quyền ấn định cho Apache là một thắc mắc rất lý thú. Nó gắn liền với những cơ chế sâu xa trên hệ điều hành đó. Điều em cần nắm là nguyên tắc tạo ra một process trên hệ điều hành. Ở đây mình giới hạn trên Linux để tránh lan man. Ở những phiên bản sơ khai của Apache, khi em khởi động Apache, nó tạo ra một process do root làm chủ. Sở dĩ em phải khởi động Apache ở chế độ là root là vì Apache sẽ tạo một LISTENING port 80. Port 80 là port nằm trong chuỗi "low ports" (dưới 1024) và để tạo một port trong chuỗi này em phải là root thì mới tạo được. Sau này Apache hình thành cơ chế 'chuyển quyền' sau khi khởi động. Nói một cách nôm na là sau khi khởi động và tạo xong port 80 ở tình trạng LISTEN, nó hạ chủ quyền từ root xuống thành chủ quyền của một account nào đó em gán trong cấu hình của Apache. Em biết lý do tại sao không?" 'ccxx' reo lên: "N: Em biết, em biết. Có phải đây là lý do an toàn không anh? Nếu Apache chạy ở chủ quyền root và ai đó load một con 'shell' nào đó lên thì con shell này cũng sẽ chạy với chủ quyền root, phải không anh?" Tôi đáp: "Em thông minh lắm. Lý do chính xác là như thế. Trên *nix, root là account có quyền hạn tuyệt đối và nếu một dịch vụ nào đó cho phép một script nào đó... 'chạy ké' như mấy con 'shell' mà cu Hưng thắc mắc ở đây ở quyền hạn tuyệt đối như thế thì bảo mật coi như là con zero to tướng. Này Duy, nếu em thích đào sâu, em có thể tìm thông tin về 'process forking' trên *nix để nghiên cứu thêm. Riêng với phần 'hạ chủ quyền' thì em có thể tìm thông tin về setuid mà đọc." 'cuti' xuýt xoa: "E hèm... em hỏi rùa rùa mấy con shell vậy mà cũng có chuyện thật là lý thú. Cũng không phí anh nhỉ? ;))" Tôi đáp: "Ừa, bất cứ điểm nhỏ bé nào đi chăng nữa, khi mình nhìn nó một cách cẩn thận và ngọn ngành để có thể hiểu rõ về nó thì anh tin rằng lúc nào cũng có chuyện lý thú cả." 'ccxx' trầm ngâm: "Có ai ngờ mấy cái 'directive' nhỏ bé và đơn giản của Apache mà lại quan trọng đến thế." Tôi đáp: "Tất cả các chức năng, ấn định trên một ứng dụng đều có vai trò của chúng. Nếu không, chúng không tồn tại và những gì không cần thiết hoặc không đúng chức năng thì từ từ sẽ bị biến mất. Đối với những chương trình cung cấp dịch vụ, người quản lý cần biết lý do tại sao chúng tồn tại và chúng làm việc thế nào, người bảo mật hay tấn công chẳng những nắm vững những điều người quản lý nắm mà còn đi sâu hơn để biết mặt yếu của chúng." 'cuti' lên tiếng: "Quay trở lại mấy cái shell, anh nói là mấy cái đó không có gì đáng để học sao?" Tôi trả lời: "Em dùng thanh trượt để kéo lên phía trên xem lại đi em. Những 'con' script đó có điểm đáng để học là nội dung của nó, cách nó được code chớ không phải là cách cài nó và dùng nó. Mục đích nó được code ra để làm việc tốt hay việc xấu mình không bàn nhưng nó được code như thế nào thì đáng để học hỏi. Anh thấy đọc code cũng là một cách học rất hay bởi vì xuyên qua code, mình không những học được những góc độ kỹ thuật trong đó mà còn học được cách tư duy, logic, sắp xếp của người đã code." 'cuti' gỡ gạc: "H: Nhưng mình cài nó lên rồi quậy quậy tí tí cũng vui mà anh. Em biết ý anh nói gì rồi. Ý anh là tụi em học thêm Perl, Python hay cái gì gì nữa phải không? ;))" Tôi đáp: "Ừa, để em có thể đọc được code do ai đó viết và nhất là 'cảm' được cái hay của nó, em phải thông thạo ngôn ngữ được dùng để viết nó ra." 'docco' hỏi tiếp: "Anh có thể cho em một đoạn code minh hoạ được không anh?" Tôi đáp: "Code minh hoạ thì có đầy dẫy trên mạng mà em. Nhưng được rồi, chờ anh một tí. Tôi lục lọi trong mớ "disclosed exploit" nhận được từ newsgroup và trả lời: "Hãy thử xem một đoạn cho vui, đoạn này anh lấy từ newsgroup do Matthew Murphy viết: Code:
$f = IO::Socket::INET->new(Proto=>"tcp", PeerAddr=>"127.0.0.1");
print STDOUT "Exploiting a proxy server \[Y/N\]? ";
$line = <STDIN>;
$char = mychomp($line);
if ($char == "Y" || $char == "y") {
	print $f "GET / HTTP/1.1\x0d\x0a";

	for ($i = 0; $i < 10; $i++) {
		print $f "Host: ".("A"x2000)."\r\n";
	}
	if (defined($base64)) {
		print $f "Proxy-Authorization: Basic ".$base64."\r\n";
	}
	print $f "\r\n";
} else {
	print STDOUT "What resource should be probed: ";
.........
}
" Tôi hỏi tiếp: "Nếu quen với Perl, em sẽ thấy đoạn code trên hết sức đơn giản nhưng cái lý thú là Perl được dùng để exploit một chỗ hở của Apache một cách dễ dàng và gọn gàng. Em xem cho biết." Cả ba im lặng hồi lâu. Rốt cuộc 'docco' lên tiếng: "Em thì bó tay rồi đó anh vì em chẳng biết perl. Chắc hai đứa kia cũng vậy thôi :((. Anh giải thích một tí được không anh?" Tôi đáp: "Đại khái là thế này. Exploit trên nhằm qua mặt cơ chế giới hạn số lượng và kích thước của HTTP header mà Apache (giả định đã) kiểm soát. Nó in ra 9 dòng ($i = 0; $i < 10; $i++) "Host: AAAAA...." mỗi dòng có 2000 chữ A. Với kích thước này, phiên bản Apache bị lỗi sẽ crash vì giới hạn header chỉ là 8190 bytes." 'cuti' xuýt xoa: "H: Ái chà, chỉ có vài dòng đơn giản như thế mà crash được cả apache server thì quả là đỉnh :)), nhưng làm sao người viết đoạn script này biết được ngay cái chỗ để ngoáy vào cho nó chết vậy anh?" Tôi đáp: "Tay Matt này không trình bày quá trình test cụ thể của mình nhưng anh đoán có ít nhất hai hướng để test và tìm lỗi: 1) thử dạng 'blackbox': bằng cách chọc ngoáy vào cái HTTP header cho đến khi Apache có "thái độ" khác thường. Cách này thì lâu và càng lâu hơn nếu không nắm được giao thức HTTP và cách làm việc của nó. 2) thử dạng rà code: mã nguồn của Apache là mã nguồn mở. Nếu muốn máy mó thì download nó về mà soi. Tuy nhiên để làm được chuyện này, ngoài việc nắm vững giao thức HTTP, em còn phải rất rành C thì mới rà được." 'ccxx' hỏi tiếp: "Ùm... em hơi bị lơ mơ rồi đây :((. Làm sao mình có thể xác định khu vực hoặc thu hẹp khu vực có tiềm năng bị hở mà khai thác anh? Em nghĩ một soft như Apache chắc phải có vài trăm nghìn dòng code là ý. Dò như vậy chắc chết." Tôi cười, đáp: "Em nói đúng. Không mấy ai dò từng dòng một, ngoại trừ người dò đó là tay lo về quality assurance cho code của Apache ;)). Dẫu tay ấy có rà kiểu như vậy, cơ hội bị sót hoặc không nhận ra chiều sâu của lỗ hổng bảo mật rất cao. Theo kinh nghiệm anh rút tỉa được, những điểm nhận INPUT và kiểm soát, xác thực, giới hạn giá trị INPUT của một software là điểm đầu tiên nên được xét bởi vì ở những điểm này, dữ liệu có tính chất và kích thước nằm ngoài giới hạn dự tưởng nhất định sẽ tạo 'thái độ' bất bình thường cho software đó. Đối với một ứng dụng cung cấp dịch vụ web như Apache, điểm nhận INPUT quan trọng là mớ HTTP header. RFC cho giao thức HTTP có những quy định tổng quát nhưng bỏ ngỏ nhiều điểm tùy vào người ứng dụng. Bởi thế, điển hình là Apache quyết định giới hạn tối đa của header field có kích thước là 8190 bytes mặc dù RFC tiêu chuẩn không ép buộc giới hạn này." Tôi ngừng lại một chút rồi hỏi tiếp: "Em theo kịp không Như?" 'ccxx' đáp: "Dạ kịp anh. Có gì em lưu lại nội dung chat này để về đọc offline thêm. Anh an tâm :))." Tôi nói tiếp: "Giả sử anh là người lo về việc kiểm tra tính bảo mật và chất lượng cho code của Apache, hoặc anh có ý định thử nghiệm để exploit Apache, anh bèn lôi tài liệu kỹ thuật của Apache ra mà ngâm, so sánh các ứng dụng của nó với RFC, tìm và rà những đoạn code liên quan đến những điểm INPUT, liên quan đến HTTP header. Sau đó xoáy sâu và cụ thể vào từng điểm một của cơ chế quản lý và kiểm soát dữ liệu nhập. Ví dụ, Apache ấn định mỗi header field chỉ tối đa là 8190 bytes, cái này thì đã rõ nhưng.... cơ chế nào kiểm soát chuyện này và nó kiểm soát như thế nào? có cách nào lừa nó để đi quá giới hạn đã ấn định hay không?.... Sau đó mới thử nghiệm bằng tay để xác định." Ngừng lại một giây, tôi nói tiếp: "Khả năng exploit các HTTP headers trên một ứng dụng tạo dịch vụ web rất rộng bởi vì có một mớ headers và mỗi header mình có thể thử nhiều thứ khác nhau. Ví dụ như tạo một loạt header fields như nhau, kích thước header fields khác nhau, chèn code vào header field, thử nghiệm các dạng encode khác nhau trên header field.... Nói chung, làm những cái này phải kiên nhẫn và có hệ thống để liệt kê những gì đã thử và chưa thử. Hình thành cả một cái test plan hẳn hòi càng tốt :))" 'cuti' lên tiếng: "Trời, nghe thấy cực quá vậy anh? Em không ngờ hack lại mất thời gian và phức tạp như vậy." Tôi đáp: "Hì hì, nếu lấy sẵn script của ai viết để mà 'hack' thì dễ nhưng tự tìm tòi xuyên qua việc nghiên cứu, thử nghiệm để rồi viết code exploit không dễ tí nào. Những điều mình bàn bây giờ thật ra cũng còn đơn giản đó. Đi đến mức độ exploit một dịch vụ bằng shellcode để chiếm chủ quyền chẳng hạn thì còn phức tạp hơn rất nhiều. Bởi thế, 'hack' không phải là dùng code của người khác để mà chạy rồi xem kết quả mà 'hack' là một quá trình tìm tòi, nghiên cứu, thử nghiệm dai dẳng." 'docco' xen vào: "Em muốn hỏi là mỗi script dùng để exploit thường hướng về một phiên bản nào đó của software mà mình muốn exploit thôi phải không anh? Em hỏi câu này là vì em liên tưởng đến vấn đề footprint mà mình đã 'đà khía' trước đây." Tôi đáp: "Hay lắm, em liên hệ đến footprint và phiên bản có nghĩa là em đã thấm cái gọi là 'giềng mối' rồi đó :)). Đúng vậy. Hầu hết các exploit đều nhắm vào một phiên bản hoặc vài phiên bản gần nhau mà thôi bởi vì phiên bản cách xa thì code đã (hoặc chưa) thay đổi và bị dính những cái lỗi đáng bị exploit kia. Nếu em soi kỹ mấy cái exploit scripts / tools, em sẽ thấy rằng, càng nhiều test được thực hiện trong đó, giá trị và cơ hội thành công của chúng càng cao. Lý do là vì chúng loại bỏ những trường hợp không thích hợp và thoát ra nếu thấy kết quả test không thoả mãn đòi hỏi exploit. Điểm lý thú có thể học từ các scripts / tools đó là cách tư duy và cách kết nối, ứng dụng thông tin tìm được từ RFC, từ tài liệu kỹ thuật cụ thể của software đó vào khung exploit." 'docco' gật gù: "Thật tình em chưa bao giờ hình dung những thứ bé nhỏ như mấy cái directive của Apache, mấy cái HTTP header của HTTP mà có thể dẫn đến những tìm tòi, exploit phức tạp và công phu đến thế." Tôi đáp: "Ừa, và chính vì vậy mà 'hacking' thật sự mới lý thú. Những thứ dường như bé nhỏ, vụn vặt nhưng chúng đều có vai trò riêng. Bất cứ sụp đổ của mỗi điểm 'vụn vặt' đó đều có thể dẫn đến sự sụp đổ trọn bộ của một cơ chế. Nếu phản chiếu giữa hai phía bảo mật và tấn công, em sẽ thấy rằng: cùng một điểm 'vụn vặt' người chống đỡ, kẻ tấn công khai thác cho mục đích khác nhau. Theo anh, diểm lý thú nằm trên con đường tìm tòi và ứng dụng những điều đã được tìm thấy thay vì dùng ứng dụng để thấy kết quả nếu như em muốn trở thành dân bảo mật." Nhìn đồng hồ, thấy đã đến giờ phải đi. Tôi chào bộ ba: "Thôi, anh phải đi công chuyện. Mấy đứa có rảnh và thích thì hãy tìm hiểu về những cái 'xem chừng như vụn vặt' kia nha. Có gì mình liên lạc sau." 27/08/2007 <còn tiếp> Chú thích: -2- 'gi' là cách nói tắt của Gigabyte. -3- các shell trên UNIX là phương tiện để thao tác trực tiếp với hệ thống và kernel của hệ thống. Những shell thường thấy là bash, c và bourne. -4- lứa tuổi mười mấy, lấy từ chữ 'teen' trong tiếng Anh (từ thirteen là 13 đến nineteen là 19).]]>
/hvaonline/posts/list/13754.html#82240 /hvaonline/posts/list/13754.html#82240 GMT
Những cuộc đối thoại với rookie - Phần 14 /hvaonline/posts/list/13754.html#82286 /hvaonline/posts/list/13754.html#82286 GMT Những cuộc đối thoại với rookie - Phần 14 /hvaonline/posts/list/13754.html#82287 /hvaonline/posts/list/13754.html#82287 GMT Những cuộc đối thoại với rookie - Phần 14

sratch wrote:
Anh conmale cho em hỏi chút là đến thời điểm anh chat với anh cuti,anh cuti đã nắm được chắc các kiến thức căn bản chủa linux chưa?Em thấy các phần đầu như là 1,2.3,4 nó có sự liên kết với nhau,đầu tiên anh cuti cài đặt linux sau đó tìm lệnh tạo account.Đến phần 4 em thấy anh nhắc anh cuti nghiên cứu những lệnh như chmod,chgrp,chown ,.....Nhưng sang đến các phần 5 ,6,7.... em thấy hình như anh cuti bị lạc sang phần mạng.Em muốn hỏi là các vấn đề về linux như là việc biên dịch kernel,quá trình khởi động,các thư mục trong linux,các lệnh hay như việc anh bảo anh cuti nghiên cứu việc"mượn tay root" or "biến mình thành root",các vấn đề này anh cuti có nghiên cứu không? vì em thấy các phần sau không thấy nhắc đến việc này. 
Nếu em đọc kỹ thì thấy cuti ở thời điểm đó mới bắt đầu làm quen với Linux (bắt đầu cài và vật lộn với Linux). Nếu em đọc kỹ thì thấy loạt bài này không nhằm mục đích "bày" cuti từng bước cụ thể làm cái gì mà chỉ giúp cuti định hướng. Những chi tiết sử dụng chỉ nhằm mục đích cho cuti biết rằng, muốn 'hack' thì phải biết rõ mình 'hack' cái gì chớ không nhằm mục đích hướng dẫn cuti cách sử dụng. Bởi thế, nếu em đọc loạt bài này và nghiêng về hướng làm cái gì một cách cụ thể thì em chưa nắm được tinh thần cốt lõi của nó rồi :)). Thân mến.]]>
/hvaonline/posts/list/13754.html#82291 /hvaonline/posts/list/13754.html#82291 GMT
Re: Những cuộc đối thoại với rookie - Phần 14

conmale wrote:
"Đúng đó em. Anh nghĩ, khởi đầu nên đi vào chiều sâu. Khi đã vững thì tự nhiên nó sẽ mở ra chiều rộng. Nếu sâu không đủ mà rộng không tới thì chắc chắn sẽ bị 'lõng bõng' như em nói."  
Đoạn này làm em nhớ lại một hình ảnh trái ngược: Nếu muốn đào một cái hố sâu, truớc tiên bạn nên đào nó rộng ra đã, như thế sẽ dễ dàng hơn. Tất nhiên mỗi quan điểm đều có ý đúng của nó. Trên quan điểm của anh, em có thể hiểu với một ví dụ đơn giản là: Khi mình nắm thật vững một ngôn ngữ lập trình nào đó, việc học những ngôn ngữ khác sẽ không khó Còn quan điểm ngược lại có thể hiểu là: Nếu muốn đào sâu một "vấn đề" nào đó, hãy tìm hiểu tất cả các thứ liên quan đến nó cho có ngọn ngành Vài lời chia sẻ]]>
/hvaonline/posts/list/13754.html#82368 /hvaonline/posts/list/13754.html#82368 GMT
Re: Những cuộc đối thoại với rookie - Phần 14

quanta wrote:

conmale wrote:
"Đúng đó em. Anh nghĩ, khởi đầu nên đi vào chiều sâu. Khi đã vững thì tự nhiên nó sẽ mở ra chiều rộng. Nếu sâu không đủ mà rộng không tới thì chắc chắn sẽ bị 'lõng bõng' như em nói."  
Đoạn này làm em nhớ lại một hình ảnh trái ngược: Nếu muốn đào một cái hố sâu, truớc tiên bạn nên đào nó rộng ra đã, như thế sẽ dễ dàng hơn. Tất nhiên mỗi quan điểm đều có ý đúng của nó. Trên quan điểm của anh, em có thể hiểu với một ví dụ đơn giản là: Khi mình nắm thật vững một ngôn ngữ lập trình nào đó, việc học những ngôn ngữ khác sẽ không khó Còn quan điểm ngược lại có thể hiểu là: Nếu muốn đào sâu một "vấn đề" nào đó, hãy tìm hiểu tất cả các thứ liên quan đến nó cho có ngọn ngành Vài lời chia sẻ 
:)). Đào hố anh nghĩ khác rất xa... đào kiến thức. Thêm vào ý kiến em đã đưa ra, học ngôn ngữ lúc đầu thường xoáy quanh cú pháp sau đó đi sâu vào cấu trúc dữ liệu, thuật toán, rồi mở rộng ra đến những vấn đề xung quanh như crypto, networking... và từ những cái này, nó lan rộng càng lúc càng xa. Bởi thế, với kiến thức, nó hợp lý hơn để đi từ cạn xuống sâu rồi mới trải rộng ra. Thân mến.]]>
/hvaonline/posts/list/13754.html#82452 /hvaonline/posts/list/13754.html#82452 GMT
Những cuộc đối thoại với rookie - Phần 14 /hvaonline/posts/list/13754.html#82453 /hvaonline/posts/list/13754.html#82453 GMT Re: Những cuộc đối thoại với rookie - Phần 14 /hvaonline/posts/list/13754.html#85617 /hvaonline/posts/list/13754.html#85617 GMT Re: Những cuộc đối thoại với rookie - Phần 14 /hvaonline/posts/list/13754.html#87296 /hvaonline/posts/list/13754.html#87296 GMT Re: Những cuộc đối thoại với rookie - Phần 14

slnavn2000 wrote:
cảm ơn anh conmale; qua bài này e cũng đã định hướng được rất nhiều; khi nghiên cứu 1 vấn đề gì đó thì fải tìm những điểm nhạy cảm của nó; ví dụ như muốn tìm lỗi của Apache thì fải tìm các lỗi INPUT của nó giới hạn Header của HTTP; rồi làm theo phương pháp "thử và sai" cho đến khi gặp được giới hạn của nó thì nó sẽ có "thái độ" khác thường và ta nhận ra giới hạn của nó... Tiện thể anh có thể tập hợp tất cả các đường link các bài viết "Đối thoại với rokie" để mọi người đỡ mất công tìm kiếm ko anh? Một lần nữa cảm ơn anh. 
Có nhiều người đã đóng gói loạt bài viết này thành ebook rồi! Bạn thử tìm trên các forum về ebook ấy!]]>
/hvaonline/posts/list/13754.html#87362 /hvaonline/posts/list/13754.html#87362 GMT
Re: Những cuộc đối thoại với rookie - Phần 14 /hvaonline/posts/list/13754.html#89252 /hvaonline/posts/list/13754.html#89252 GMT Re: Những cuộc đối thoại với rookie - Phần 14 /hvaonline/posts/list/13754.html#92183 /hvaonline/posts/list/13754.html#92183 GMT Re: Những cuộc đối thoại với rookie - Phần 14 /hvaonline/posts/list/13754.html#92554 /hvaonline/posts/list/13754.html#92554 GMT Re: Những cuộc đối thoại với rookie - Phần 14 /hvaonline/posts/list/13754.html#93576 /hvaonline/posts/list/13754.html#93576 GMT Re: Những cuộc đối thoại với rookie - Phần 14 /hvaonline/posts/list/13754.html#93590 /hvaonline/posts/list/13754.html#93590 GMT Re: Những cuộc đối thoại với rookie - Phần 14 /hvaonline/posts/list/13754.html#99183 /hvaonline/posts/list/13754.html#99183 GMT Re: Những cuộc đối thoại với rookie - Phần 14 /hvaonline/posts/list/13754.html#101464 /hvaonline/posts/list/13754.html#101464 GMT Re: Những cuộc đối thoại với rookie - Phần 14 /hvaonline/posts/list/13754.html#101465 /hvaonline/posts/list/13754.html#101465 GMT Re: Những cuộc đối thoại với rookie - Phần 14 /hvaonline/posts/list/13754.html#103478 /hvaonline/posts/list/13754.html#103478 GMT Re: Những cuộc đối thoại với rookie - Phần 14

alone_angle wrote:
bài viêt này hay lắm nhưng em chỉ có phần một ai có thể gửi cho em đầy dủ được không em rất cảm ơn ! Gửi cho em the email:computer_angle113@yahoo.com xin cảm ơn nhiều! 
Vào mục /hvaonline/forums/show/14.html mà tìm đọc.]]>
/hvaonline/posts/list/13754.html#103507 /hvaonline/posts/list/13754.html#103507 GMT
Re: Những cuộc đối thoại với rookie - Phần 14

quanta wrote:
Đoạn này làm em nhớ lại một hình ảnh trái ngược: Nếu muốn đào một cái hố sâu, truớc tiên bạn nên đào nó rộng ra đã, như thế sẽ dễ dàng hơn.  
Anh quanta lấy ví dụ nó "nghĩa đen" quá :evil: ! Sao không ví như là luyện võ trong truyện kiếm hiệp anh ơi, luyện sâu một môn võ rồi thì mình sẽ có nội công thâm hậu, từ đo luyện gì cũng nhanh!]]>
/hvaonline/posts/list/13754.html#103654 /hvaonline/posts/list/13754.html#103654 GMT
Re: Những cuộc đối thoại với rookie - Phần 14 /hvaonline/posts/list/13754.html#103714 /hvaonline/posts/list/13754.html#103714 GMT Re: Những cuộc đối thoại với rookie - Phần 14

conmale wrote:

alone_angle wrote:
bài viêt này hay lắm nhưng em chỉ có phần một ai có thể gửi cho em đầy dủ được không em rất cảm ơn ! Gửi cho em the email:computer_angle113@yahoo.com xin cảm ơn nhiều! 
Vào mục /hvaonline/forums/show/14.html mà tìm đọc. 
Tại sao không chịu xem kỹ nhỉ? Đã có trả lời cũng không buồn xem mà tiếp tục hỏi là sao?]]>
/hvaonline/posts/list/13754.html#103717 /hvaonline/posts/list/13754.html#103717 GMT
Re: Những cuộc đối thoại với rookie - Phần 14 /hvaonline/posts/list/13754.html#114383 /hvaonline/posts/list/13754.html#114383 GMT Những cuộc đối thoại với rookie - Phần 14

conmale wrote:
"cuti" lên tiếng: "H: Đó, bả ỷ có anh ở đây nên ăn hiếp em túi bụi. Tại vì em chỉ muốn tìm hiểu xem mình thích hợp với cái gì rồi mới quyết định thôi mà anh. Em nghĩ là em thích cả quản lý mạng và lập trình. Làm sao mình trau dồi được cả hai hở anh?" Tôi trầm ngâm, tìm cách trả lời 'cuti'. Sau một đỗi, tôi đáp: "Thế này... anh thấy trong mạng có lập trình và trong lập trình có mạng. Tuy nhiên, trong quá trình đi sâu và master mỗi nhánh này, nó đòi hỏi một số điểm chung và điểm riêng. 1) nếu em chọn mạng làm sở trường, em đi sâu vào việc học và làm quen các thiết bị mạng, các ứng dụng software chuyên về mạng, các giao thức mạng và các kỹ năng phân tích + thiết kế môi trường mạng. Chọn lựa này không đòi hỏi kỹ năng lập trình sâu và chuyên như nhánh lập trình. Tuy nhiên, em cần khả năng lập trình để hỗ trợ công việc quản trị mạng này. Ví dụ, em cần thiết lập một hệ thống theo dõi các nodes trong mạng, hoặc thu thập logs của các services để phân tích tình trạng hoạt động của mạng, em không nhất thiết phải lập trình ở mức độ chuyên để tạo ra một software đa năng, mạnh mẽ, ít bugs mà em chỉ cần code bằng ngôn ngữ nào đó dễ học, gọn nhẹ để thực hiện mục đích. Tất nhiên, nếu em có thời gian và khả năng để code một công cụ thật chuyên thì càng tốt hơn. Mạng ở đây là cung cấp phương tiện giao chuyển thông tin một cách hiệu suất, ổn định bằng các thiết bị, môi trường cho phép. 2) nếu em chọn lập trình làm sở trường, em đi sâu vào việc học và làm quen với tính logic, khả năng lập luận, phân tích, cú pháp của ngôn ngữ lập trình, API em dùng và thậm chí cả cơ chế làm việc của một hệ điều hành hoặc một chuỗi hệ thống. Mạng sẽ dính đến lập trình ở một lúc nào đó bởi về không có hệ thống nào ngày nay mà không đụng đến mạng. Tuy nhiên, biên độ mạng ở đây không trực tiếp và cụ thể đến từng thiết bị của từng hãng nào đó mà nó thường nằm ở tầng thấp hơn (socket) hoặc tầng cao hơn (application xuyên qua API). 
Theo em, ở mức cơ bản ta nên nắm cả mạng và lập trình. Tuy nhiên khi đi vào thực tế, rõ ràng không hề có sự phân định rạch ròi giữa mạng và lập trình. Tới lúc đó, chẳng thể nói với sếp "Dạ, em thích mạng hơn!" khi sếp bảo xây dựng một phần mềm nào đấy. Lúc đó, chỉ có nước tuân theo chứ làm sao dám cãi. Do đó việc định hướng trước như thế sẽ làm hạn chế cơ hội có thể có.

conmale wrote:
'docco' xen vào: "...những ham muốn 'cả hai' là những ham muốn hơi quá trớn bởi vì không thể thực hiện một cách vẹn toàn được.  
Điểm này em không đồng ý với docco. Trên thực tế, một người sống trong xã hội không thể đứng một mình mà phải ở trong một tổ chức nhất định và dưới quyền kiểm soát của một người nào đó (đúng với hầu hết sinh viên mới ra trường). Do đó ngay cả khi chỉ muốn theo một hướng thôi cũng không phải thuộc quyền quyết định của ta (nếu ta muốn làm lâu dài ở công ty đó). Tùy theo yêu cầu của công việc, các vấn đề ta phải đối mặt sẽ quyết định ta nên học cái gì, kể cả phải từ bỏ sở trường.

conmale wrote:
"...Cái gì cũng muốn, cái gì cũng quơ quào thì một hồi sẽ lõng bõng thôi." 
Lõng bõng hay không còn tùy thuộc vào khả năng quơ quào và khả năng sắp xếp lại của người đó nữa. Cái gì cũng quơ quào nhưng sau khi quơ vào rồi phải sắp xếp nó thành một hệ thống thì chắc chắn sẽ không lõng bõng nữa

conmale wrote:
Tôi đáp: "Đúng đó em. Anh nghĩ, khởi đầu nên đi vào chiều sâu. Khi đã vững thì tự nhiên nó sẽ mở ra chiều rộng..." 
Điểm này em lại nghĩ khác. Theo em, nếu anh nhận thức xong mức 1, rõ ràng anh phải mở rộng hiểu biết của mình. Sau đó anh mới có cơ sở để đi xuống mức 2 và cứ thế. Vì bài viết khá dài nên em không nêu hết các ý kiến của em trong một post được. Mong anh thông cảm!]]>
/hvaonline/posts/list/13754.html#131291 /hvaonline/posts/list/13754.html#131291 GMT
Những cuộc đối thoại với rookie - Phần 14

theory wrote:

conmale wrote:
"cuti" lên tiếng: "H: Đó, bả ỷ có anh ở đây nên ăn hiếp em túi bụi. Tại vì em chỉ muốn tìm hiểu xem mình thích hợp với cái gì rồi mới quyết định thôi mà anh. Em nghĩ là em thích cả quản lý mạng và lập trình. Làm sao mình trau dồi được cả hai hở anh?" Tôi trầm ngâm, tìm cách trả lời 'cuti'. Sau một đỗi, tôi đáp: "Thế này... anh thấy trong mạng có lập trình và trong lập trình có mạng. Tuy nhiên, trong quá trình đi sâu và master mỗi nhánh này, nó đòi hỏi một số điểm chung và điểm riêng. 1) nếu em chọn mạng làm sở trường, em đi sâu vào việc học và làm quen các thiết bị mạng, các ứng dụng software chuyên về mạng, các giao thức mạng và các kỹ năng phân tích + thiết kế môi trường mạng. Chọn lựa này không đòi hỏi kỹ năng lập trình sâu và chuyên như nhánh lập trình. Tuy nhiên, em cần khả năng lập trình để hỗ trợ công việc quản trị mạng này. Ví dụ, em cần thiết lập một hệ thống theo dõi các nodes trong mạng, hoặc thu thập logs của các services để phân tích tình trạng hoạt động của mạng, em không nhất thiết phải lập trình ở mức độ chuyên để tạo ra một software đa năng, mạnh mẽ, ít bugs mà em chỉ cần code bằng ngôn ngữ nào đó dễ học, gọn nhẹ để thực hiện mục đích. Tất nhiên, nếu em có thời gian và khả năng để code một công cụ thật chuyên thì càng tốt hơn. Mạng ở đây là cung cấp phương tiện giao chuyển thông tin một cách hiệu suất, ổn định bằng các thiết bị, môi trường cho phép. 2) nếu em chọn lập trình làm sở trường, em đi sâu vào việc học và làm quen với tính logic, khả năng lập luận, phân tích, cú pháp của ngôn ngữ lập trình, API em dùng và thậm chí cả cơ chế làm việc của một hệ điều hành hoặc một chuỗi hệ thống. Mạng sẽ dính đến lập trình ở một lúc nào đó bởi về không có hệ thống nào ngày nay mà không đụng đến mạng. Tuy nhiên, biên độ mạng ở đây không trực tiếp và cụ thể đến từng thiết bị của từng hãng nào đó mà nó thường nằm ở tầng thấp hơn (socket) hoặc tầng cao hơn (application xuyên qua API). 
Theo em, ở mức cơ bản ta nên nắm cả mạng và lập trình. Tuy nhiên khi đi vào thực tế, rõ ràng không hề có sự phân định rạch ròi giữa mạng và lập trình. Tới lúc đó, chẳng thể nói với sếp "Dạ, em thích mạng hơn!" khi sếp bảo xây dựng một phần mềm nào đấy. Lúc đó, chỉ có nước tuân theo chứ làm sao dám cãi. Do đó việc định hướng trước như thế sẽ làm hạn chế cơ hội có thể có.  
Hello em, hai điểm trên chỉ là hai điểm gợi ý chung và khái quát mà thôi. Nó hoàn toàn không phải là một thứ nguyên lý hoặc ấn định gì cả :). Nhiều anh em SV đang học hay mới ra trường hay có thói quen phân định rạch ròi mạng là mạng, lập trình là lập trình nhưng thực tế chúng có "giềng mối" sâu xa với nhau. Cái "giềng mối" này sẽ càng rõ ràng hơn khi đi càng sâu hơn. Ví dụ, anh chuyên lập trình ứng dụng mạng. Anh cần phải hiểu rất rõ về cả mạng và lập trình. Nếu không, anh không thể làm việc ấy được. Riêng việc "xếp bảo gì" nó còn tùy thuộc ở chỗ em xin vào làm việc gì ở một cty. Em nên có sở trường và khẳng định sở trường. Sau đó, nếu cần thiết phải mở rộng sở trường ra thì mở. Tuy nhiên, em không thể tự biến mình thành một thứ công cụ "sai đâu, đánh đấy" được vì nó không giúp cho em phát triển nghề nghiệp một cách chuyên sâu và vững chắc được.

theory wrote:

conmale wrote:
'docco' xen vào: "...những ham muốn 'cả hai' là những ham muốn hơi quá trớn bởi vì không thể thực hiện một cách vẹn toàn được.  
Điểm này em không đồng ý với docco. Trên thực tế, một người sống trong xã hội không thể đứng một mình mà phải ở trong một tổ chức nhất định và dưới quyền kiểm soát của một người nào đó (đúng với hầu hết sinh viên mới ra trường). Do đó ngay cả khi chỉ muốn theo một hướng thôi cũng không phải thuộc quyền quyết định của ta (nếu ta muốn làm lâu dài ở công ty đó). Tùy theo yêu cầu của công việc, các vấn đề ta phải đối mặt sẽ quyết định ta nên học cái gì, kể cả phải từ bỏ sở trường.  
Điểm này có lẽ khá đặc thù với tình trạng công việc (liên quan đến IT) hiện nay ở VN chớ không hẳn đó là chuyện chung chung của cả ngành CNTT. Vấn đề em đặt ra ở đây thuộc về khía cạnh dễ hay khó tìm việc, nhu cầu công việc, dạng công việc... ở nơi em sinh sống. Riêng cá nhân anh, ví dụ anh thích theo hướng cố vấn và cung cấp giải pháp cho thương mại điện tử chẳng hạn, anh không thể nhảy thẳng vào nó và bảo với xếp (hoặc cty anh muốn xin việc) rằng anh muốn như thế được. Họ cần kinh nghiệm của anh hoặc tiềm năng của anh chớ họ không cần cái anh muốn. Tuy vậy, anh vẫn có thể hướng đến cái anh muốn bằng cách học hỏi, làm việc, thử nghiệm, tích lũy và tạo cho mình một số điểm "chuyên" để đi đến mục tiêu. Việc cố vấn và cung cấp giải pháp cho thương mại điện tử đòi hỏi khá nhiều kiến thức và kinh nghiệm cho nhiều mảng khác nhau của ngành CNTT. Ví dụ, nó đòi hỏi kiến thức lập trình, thiết kế môi trường mạng, môi trường hệ thống (các tiers), bảo mật cho từng tier và host, tính hiệu suất, tính bền bỉ, kiến thức về công nghệ đang được dùng (và sẽ dùng) cộng thêm những khía cạnh gián tiếp chung quanh điều mình cố vấn. Nói chung, theo anh nghĩ (và đã làm) thì muốn theo hướng nào thì đó là quyền quyết định của chính mình. Nếu cty mình đang làm không hỗ trợ điều mình muốn (và tất nhiên điều đó phải thực tế và có ích) thì mình tìm nơi khác mà làm.

theory wrote:

conmale wrote:
"...Cái gì cũng muốn, cái gì cũng quơ quào thì một hồi sẽ lõng bõng thôi." 
Lõng bõng hay không còn tùy thuộc vào khả năng quơ quào và khả năng sắp xếp lại của người đó nữa. Cái gì cũng quơ quào nhưng sau khi quơ vào rồi phải sắp xếp nó thành một hệ thống thì chắc chắn sẽ không lõng bõng nữa  
Đúng vậy, nhưng... thực tế cho thấy 99% trường hợp quơ quào rốt cuộc bị lõng bõng. Không có cái gì ra cái gì cả. Không riêng gì những trường hợp anh tiếp xúc qua mạng (diễn đàn) mà trên thực tế cũng vậy, hầu như những ai mới lao vào ngành này thường thích lung tung mà không biết lý do tại sao mình... thích. Thích một cách đầy cảm tính và đụng cái gì cũng thử, cũng mó đến nhưng không chịu đi sâu để nắm rõ từng thứ mà lại phớt qua, phớt qua. Sau một thời gian, những thứ "thích" ấy thành một mớ hỗn độn. Anh thấy rất ít cá nhân có khả năng "sắp xếp lại" và "tích lũy" kiến thức một cách có hệ thống để nắm vững những gì mình tiếp cận. Bởi thế, chung chung mà nói, đừng nên ôm đồm vì khả năng thất bại chiếm đa số. Nếu thấy mình có khả năng "sắp xếp lại" và "tích lũy" kiến thức một cách có hệ thống thì đó là điều tốt. Không việc gì phải chọn 1 và theo 1 cả. Tuy nhiên, phải thật sự tỉnh táo và thành thật với chính mình, đừng nghĩ rằng mình thừa sức làm nhưng lại đi đến chỗ phí thời gian.

theory wrote:

conmale wrote:
Tôi đáp: "Đúng đó em. Anh nghĩ, khởi đầu nên đi vào chiều sâu. Khi đã vững thì tự nhiên nó sẽ mở ra chiều rộng..." 
Điểm này em lại nghĩ khác. Theo em, nếu anh nhận thức xong mức 1, rõ ràng anh phải mở rộng hiểu biết của mình. Sau đó anh mới có cơ sở để đi xuống mức 2 và cứ thế.  
Qua một thời gian dài đi làm và tiếp cận, anh thấy rằng kiến thức cũng như cái rễ cây. Để cây có thể bám vững trên mặt đất, rễ cái phải mọc đủ sâu rồi mới tản rễ con ra. Em muốn chuyên về lập trình ứng dụng mạng, trước tiên em phải vững lập trình, vững ngôn ngữ mình dùng, vững logic, vững các đòi hỏi quan trọng nhất để lập trình --> đi sâu. Sau đó em mới tìm hiểu đến giao thức mạng, đến socket.... --> đi rộng. Đạt được 2 cái này rồi mới vừa đi sâu, vừa đi rộng. Nếu em chưa nắm được lập trình là gì, đòi hỏi những gì (sâu) mà đã nhảy sang tìm hiểu socket (rộng) là gì thì em dễ bị chi phối và lạc hướng. Thậm chí còn bị đi đến chỗ bế tắc vì choáng ngợp.

theory wrote:
Vì bài viết khá dài nên em không nêu hết các ý kiến của em trong một post được. Mong anh thông cảm! 
Không sao cả. Chỉ cần nêu những gì em cảm thấy quan trọng đối với em là tốt rồi :). Thân mến.]]>
/hvaonline/posts/list/13754.html#131338 /hvaonline/posts/list/13754.html#131338 GMT
Re: Những cuộc đối thoại với rookie - Phần 14 /hvaonline/posts/list/13754.html#132168 /hvaonline/posts/list/13754.html#132168 GMT Re: Những cuộc đối thoại với rookie - Phần 14 /hvaonline/posts/list/13754.html#134172 /hvaonline/posts/list/13754.html#134172 GMT Re: Những cuộc đối thoại với rookie - Phần 14 /hvaonline/posts/list/13754.html#135788 /hvaonline/posts/list/13754.html#135788 GMT Re: Những cuộc đối thoại với rookie - Phần 14 /hvaonline/posts/list/13754.html#145147 /hvaonline/posts/list/13754.html#145147 GMT Re: Những cuộc đối thoại với rookie - Phần 14 /hvaonline/posts/list/13754.html#154922 /hvaonline/posts/list/13754.html#154922 GMT Re: Những cuộc đối thoại với rookie - Phần 14

Emhoc_I_T wrote:
Thân chào anh Conmale! em đã đọc "Những cuộc đối thoại với rookie phần 3,13 và 14" em thấy rất hay và ngậm ra được nhiều điều. Rất tiếc là các phần còn lại không được xem. Em cũng đã tim trên diễn đàn nhưng không thấy. Nếu được anh có thể cho em cái link các phần còn lai hoặc anh bớt chút thời gian gửi qua mail cho em được không. Mail của em: quangthang2507@gmail.com Em cảm ơn anh rất nhiều. 
/hvaonline/forums/show/14.html PS: vô diễn đàn sinh hoạt thì hạn chế đưa email ra để liên lạc nhé.]]>
/hvaonline/posts/list/13754.html#154924 /hvaonline/posts/list/13754.html#154924 GMT
Re: Những cuộc đối thoại với rookie - Phần 14 /hvaonline/posts/list/13754.html#156367 /hvaonline/posts/list/13754.html#156367 GMT Re: Những cuộc đối thoại với rookie - Phần 14 /hvaonline/posts/list/13754.html#175026 /hvaonline/posts/list/13754.html#175026 GMT Re: Những cuộc đối thoại với rookie - Phần 14

audi67 wrote:
cám ơn anh vì những chỉ dẫn! nhung em ko tìm thấy phần "Các bài viết giá trị của mục bảo mật và thâm nhập", tiếc quá,các anh nào biết xin chỉ em cách tim đọc những phần đó nha,em xin cám ơn nhiều 
Như đã thông báo ở mục "Thông báo", tất cả các phân mục "Các bài viết giá trị... " đã được thay thế bằng "Phòng đọc" (xem trên phần thư mục trên cùng của diễn đàn). Loạt bài "rookie" nằm ở /hvaonline/readingRoom/item/285.html.]]>
/hvaonline/posts/list/13754.html#175027 /hvaonline/posts/list/13754.html#175027 GMT
Re: Những cuộc đối thoại với rookie - Phần 14 /hvaonline/posts/list/13754.html#175513 /hvaonline/posts/list/13754.html#175513 GMT Re: Những cuộc đối thoại với rookie - Phần 14

ngocson2vn wrote:
Bài viết có nhiều điều đáng suy ngẫm nhưng ông anh bảo điều này: "Đúng đó em. Anh nghĩ, khởi đầu nên đi vào chiều sâu. Khi đã vững thì tự nhiên nó sẽ mở ra chiều rộng. Nếu sâu không đủ mà rộng không tới thì chắc chắn sẽ bị 'lõng bõng' như em nói." Có nghĩa là khi ta học về một ngành nào đó thì ta nên đào sâu vào một lĩnh vực trong ngành đó trước rồi ta dần dần mở rộng ra? Liệu đây là phương pháp học tốt nhất? Mong ông anh cho lời khuyên. 
Chẳng những lĩnh vực mà còn cả những chi tiết nhỏ nhất. Đây không phải là phương pháp học mà chỉ là quan điểm và cách nhìn nhận vấn đề khi tiếp cận chúng. Phương pháp học có những chi tiết và khía cạnh khác hơn.]]>
/hvaonline/posts/list/13754.html#175520 /hvaonline/posts/list/13754.html#175520 GMT
Re: Những cuộc đối thoại với rookie - Phần 14 /hvaonline/posts/list/13754.html#176921 /hvaonline/posts/list/13754.html#176921 GMT Re: Những cuộc đối thoại với rookie - Phần 14 /hvaonline/posts/list/13754.html#176971 /hvaonline/posts/list/13754.html#176971 GMT Re: Những cuộc đối thoại với rookie - Phần 14 /hvaonline/posts/list/13754.html#178266 /hvaonline/posts/list/13754.html#178266 GMT Re: Những cuộc đối thoại với rookie - Phần 14

Sa7an wrote:
Các bài viết giá trị của mục thâm nhập và bảo mật ở đâu vậy mod ơi em nhấn vào link thì chẳng có gì 
/hvaonline/readingRoom/list.html]]>
/hvaonline/posts/list/13754.html#178267 /hvaonline/posts/list/13754.html#178267 GMT
Re: Những cuộc đối thoại với rookie - Phần 14 /hvaonline/posts/list/13754.html#178591 /hvaonline/posts/list/13754.html#178591 GMT Re: Những cuộc đối thoại với rookie - Phần 14

conmale wrote:

alone_angle wrote:
bài viêt này hay lắm nhưng em chỉ có phần một ai có thể gửi cho em đầy dủ được không em rất cảm ơn ! Gửi cho em the email:computer_angle113@yahoo.com xin cảm ơn nhiều! 
Vào mục /hvaonline/forums/show/14.html mà tìm đọc. 
Lỗi rồi anh conmale ơi!]]>
/hvaonline/posts/list/13754.html#181507 /hvaonline/posts/list/13754.html#181507 GMT
Re: Những cuộc đối thoại với rookie - Phần 14

TheDarkNight wrote:

conmale wrote:

alone_angle wrote:
bài viêt này hay lắm nhưng em chỉ có phần một ai có thể gửi cho em đầy dủ được không em rất cảm ơn ! Gửi cho em the email:computer_angle113@yahoo.com xin cảm ơn nhiều! 
Vào mục /hvaonline/forums/show/14.html mà tìm đọc. 
Lỗi rồi anh conmale ơi! 
/hvaonline/posts/list/40/13754.html#178267]]>
/hvaonline/posts/list/13754.html#181509 /hvaonline/posts/list/13754.html#181509 GMT
Những cuộc đối thoại với rookie - Phần 14 /hvaonline/posts/list/13754.html#197028 /hvaonline/posts/list/13754.html#197028 GMT Re: Những cuộc đối thoại với rookie - Phần 14

conmale wrote:

alone_angle wrote:
bài viêt này hay lắm nhưng em chỉ có phần một ai có thể gửi cho em đầy dủ được không em rất cảm ơn ! Gửi cho em the email:computer_angle113@yahoo.com xin cảm ơn nhiều! 
Vào mục /hvaonline/forums/show/14.html mà tìm đọc. 
Những bài này đâu vào được đâu anh. "Bạn không có đủ quyền hạn để truy cập" http://picasaweb.google.com/lh/photo/5ST6IE273na_9acKzz_AsA?feat=directlink PS: Em lấy link ảnh download không được vì firefox nó bắt link down chứ không phải là IDM. Link firefox dùng để down có thể hiển thị ảnh trực tiếp được không anh? Mà em cũng không thấy link nữa vì em đã chọn tự động save rồi:(. Bài này thấy còn tiếp sau phần 14 mà sao không thấy anh conmale post luôn ở đây nhỉ :-/ ]]>
/hvaonline/posts/list/13754.html#197163 /hvaonline/posts/list/13754.html#197163 GMT
Re: Những cuộc đối thoại với rookie - Phần 14

kekhocdoi wrote:

conmale wrote:

alone_angle wrote:
bài viêt này hay lắm nhưng em chỉ có phần một ai có thể gửi cho em đầy dủ được không em rất cảm ơn ! Gửi cho em the email:computer_angle113@yahoo.com xin cảm ơn nhiều! 
Vào mục /hvaonline/forums/show/14.html mà tìm đọc. 
Những bài này đâu vào được đâu anh. "Bạn không có đủ quyền hạn để truy cập" http://picasaweb.google.com/lh/photo/5ST6IE273na_9acKzz_AsA?feat=directlink PS: Em lấy link ảnh download không được vì firefox nó bắt link down chứ không phải là IDM. Link firefox dùng để down có thể hiển thị ảnh trực tiếp được không anh? Mà em cũng không thấy link nữa vì em đã chọn tự động save rồi:(. Bài này thấy còn tiếp sau phần 14 mà sao không thấy anh conmale post luôn ở đây nhỉ :-/  
Vào /hvaonline/readingRoom/item/285.html để xem bài 1. Cuối trang có đường dẫn đến 14 bài của loạt bài này.]]>
/hvaonline/posts/list/13754.html#197164 /hvaonline/posts/list/13754.html#197164 GMT
Re: Những cuộc đối thoại với rookie - Phần 14

conmale wrote:
Vào /hvaonline/readingRoom/item/285.html để xem bài 1. Cuối trang có đường dẫn đến 14 bài của loạt bài này. 
. Vậy là bài này chỉ có 14 phần thôi hả anh? Sao em thấy còn tiếp ở cuối phần 14. Còn link đến các bài viết giá trị của HVA anh quanta đưa ra vào tốt rồi :). Mà loạt bài đó tác giả là anh conmale phải không ạ? ]]>
/hvaonline/posts/list/13754.html#197166 /hvaonline/posts/list/13754.html#197166 GMT
Những cuộc đối thoại với rookie - Phần 14 conmale wrote: "Đúng đó em. Anh nghĩ, khởi đầu nên đi vào chiều sâu. Khi đã vững thì tự nhiên nó sẽ mở ra chiều rộng. Nếu sâu không đủ mà rộng không tới thì chắc chắn sẽ bị 'lõng bõng' như em nói." Đoạn này làm em nhớ lại một hình ảnh trái ngược: Nếu muốn đào một cái hố sâu, truớc tiên bạn nên đào nó rộng ra đã, như thế sẽ dễ dàng hơn.  Đoạn này của hai bác conmale và quanta,em xin có ý kiến thế nay: Em thấy cả hai bác đều có lí riêng.Em xin phân tích như sau: 1.(ý của bác conmale)Nếu ta học rộng quá(cả lập trình và mạng),tức là lúc đó ta đang bị rơi vào biển cả bao la mà mỏi mắt cũng không thấy bờ bến đâu cả.Do vậy nên học chuyên sâu. 2.(ý của bác quanta)Ta bắt đầu học sâu vào một mảng(mạng chẳng hạn).Khi đào sâu đến một lúc nào đó chạm đến lập trình mà ta không biết hoặc kiến thức lập trình quá nghèo nàn thì cũng không ổn.Hãy hoc rộng trước,có được sự bao quát này,nếu sau khi đi sâu gặp các vấn đề liên quan ta vẫn có một chút vốn để làm việc. Còn ý kiến của em thì em lại nghĩ khác: Với em,IT như là một cây cổ thụ lớn có nhiều nhánh con ,nhánh to.Trong đó lập trình và mạng là hai nhánh lớn nhất,từ đó phát triển các nhánh tiếp theo.Và cái gốc của cây chính là những môn khoa học căn bản đem lại cho chúng ta hiểu biết sơ lược về đối tượng của cái mà chúng ta đang tiếp cận(máy tính điện tử),những hiểu biết cơ bản cho hai nhánh chính.Ví dụ: Cấu trúc máy tính. Lập trình:cấu trúc dữ liệu và giẩi thuật,ngôn ngữ C/C++,.. Mạng:mạng máy tính,mô hình osi...... Vì vậy cách tiếp cận của em là đi từ gốc,dần dần tẽ nhánh. Kết:Đây chẳng qua chỉ là ý kiến riêng của em,có phần hạn chế,sai sót do trình độ không cao lắm(mới là SV CNTT năm 2 thôi!)Mong các bác góp ý kiến!]]> /hvaonline/posts/list/13754.html#197257 /hvaonline/posts/list/13754.html#197257 GMT Những cuộc đối thoại với rookie - Phần 14 /hvaonline/posts/list/13754.html#197299 /hvaonline/posts/list/13754.html#197299 GMT Re: Những cuộc đối thoại với rookie - Phần 14

kekhocdoi wrote:
Vậy là bài này chỉ có 14 phần thôi hả anh? Sao em thấy còn tiếp ở cuối phần 14.  
/hvaonline/posts/list/2259.html#101428 ]]>
/hvaonline/posts/list/13754.html#197307 /hvaonline/posts/list/13754.html#197307 GMT
Những cuộc đối thoại với rookie - Phần 14 /hvaonline/posts/list/13754.html#215772 /hvaonline/posts/list/13754.html#215772 GMT Những cuộc đối thoại với rookie - Phần 14 /hvaonline/posts/list/13754.html#235076 /hvaonline/posts/list/13754.html#235076 GMT Những cuộc đối thoại với rookie - Phần 14

helllangle wrote:
hay qua nhung anh em oi.khong co phan 14 ah?  
Thế bạn đang đọc phần mười mấy vậy?]]>
/hvaonline/posts/list/13754.html#235077 /hvaonline/posts/list/13754.html#235077 GMT