12 Steps To Become A Hacker!

Here we bring to you 12 steps to become a hacker, together with all the books, tutorials and resources that you need to learn in the process. So pack your bags and get set for the journey!
Hacking is a fascinating field but it definitely isn't easy. Here we have listed 12 of the most important steps essential to become a hacker, together with all the resources that you need for learning.
Here we focus on the skills and attitude needed to become a hacker. Breaking the security system and entering into the system is not the only thing a hacker does. One requires knowledge of a wide variety of subjects and in depth knowledge of programming languages and operating systems. And needless to say, learning is essential in the journey...

Here are the 12 steps:
It is not an easy task to become a hacker. As a hacker, you need to have an attitude and curiosity. Reading the hacking manifesto can teach you the attitude of a hacker. Nurturing the hacker attitude is more about developing competence in the languages rather than having a stereotypical attitude.
Though a lot of people consider that a hacker is a criminal, in real life, they are hired by big companies for protecting information and minimizing potential damage. The act of hacking actually is that of being over-curious and outwitting authority. As a hacker, you should be hell bent on breaching authoritarian rules, secrecy and censorship. Deception is another arsenal which will allow you to dodge the vigilant eyes of authority.
The act of stealing something or doing harm to someone is not hacking. Such people are commonly called crackers in the community. Crackers are involved in illegal activities and we do not recommend you to get involved into such activities.

Các cách thức nghe gói tin trên mạng

Bắt gói tin không đơn giản chỉ là gắn 1 laptop vào 1 cổng mạng và "chụp" lại toàn bộ traffic. Trên thực tế, đôi khi việc đặt 1 công cụ bắt gói tin ở đâu trên 1 hệ thống mạng còn khó hơn việc phân tích các gói tin.
Hình dưới đây minh họa 1 tình huống đặc biệt. Bởi vì 3 thiết bị hay được dùng nhất trên 1 mạng hiện nay (Hub, Switch, Router), mỗi thiết bị có cách xử lý traffic khác nhau, cho nên ta phải nắm rõ được cấu trúc vật lý của mạng mà ta đang phân tích.


Chúng ta sẽ cùng đi vào nghiên cứu 1 số mạng thực tế để chỉ ra cách tốt nhất để bắt các gói tin trong từng môi trường mạng sử dụng Hub, Switch và Router.

Người Cha trong Văn chương và Nghệ thuật

Người Cha như một biểu tượng của chủ quyền lãnh thổ, của minh triết, của kinh nghiệm, đồng thời là một nguồn cảm hứng và nơi nương tựa của tinh thần cho thế hệ sau.


Theo Hoàng Ngọc Tuấn


Bài đối Hai sắc hoa Ti-gôn

Hai tiếng tình yêu cõi nhân gian
Đan bằng sợi nhớ, chuyện hợp tan
Yêu là mong đợi người yêu dấu
Là khóc chia ly lệ rơi tràn

Cõi tình thơ mộng thuở vừa yêu
Đón đưa, hờn dỗi, nhớ thương nhiều
Một ngày không gặp hồn ngơ ngẩn
Mây gió cũng buồn, nắng đìu hiu

Thế rồi sánh bước mỗi hoàng hôn
Nhặt hoa màu trắng sắc tigôn
Loài hoa có dáng như tim vỡ
Hai tiếng tình yêu... chẳng chút buồn

Những kiến thức cơ bản về phân tích gói tin và mạng máy tính

Giới thiệu
Hàng ngày, có hàng triệu vấn đề xảy ra trong 1 mạng máy tính, từ việc đơn giản là nhiễm Spyware cho đến việc phức tạp như lỗi cấu hình Router, và các vấn đề này không thể giải quyết tất cả ngay lập tức được. Tốt nhất chúng ta có thể hi vọng thực hiện các công việc đó bằng cách chuẩn bị đầy đủ các kiến thức và các công cụ chúng ta cần có để xử lý những dạng vấn đề như trên.
Tất cả các vấn đề trên mạng đều xuất phát ở mức gói tin, nơi mà không có gì có thể che giấu đối với chúng ta, không có thứ gì bị ẩn đi bởi các cấu trúc menu, các hình ảnh bắt mắt hoặc là các nhân viên không đáng tin cậy. Ở mức gói tin, không có gì bí mật, chúng ta có thể điều khiển được mạng và giải quyết các vấn đề. Đây chính là thế giới của phân tích gói tin.
Chúng tôi sẽ bắt đầu viết loạt bài về kỹ thuật phân tích gói tin với công cụ tiêu biểu mà chúng tôi muốn giới thiệu ở đây là Wireshark. Khi kết thúc loạt bài này, bạn sẽ có thể thực hiện các kỹ thuật phân tích gói tin ở trình độ advanced, lúc đó bạn sẽ có thể giải quyết các vấn đề khó ở trong mạng của chính mình.
Trong bài đầu tiên này, chúng ta sẽ khởi đầu với những kiến thức căn bản, tập trung vào truyền thông mạng máy tính.

Cơ bản về phân tích gói tin
Phân tích gói tin, hay còn thường được gọi là lắng nghe gói tin hoặc phân tích giao thức, mô tả quá trình bắt và diễn giải dữ liệu sống như là các luồng đang lưu chuyển trong mạng với mục tiêu hiểu rõ hơn điều gì đang diễn ra trên mạng. Phân tích gói tin thường được thực hiện bởi 1 packet sniffer, là 1 công cụ được sử dụng để bắt dữ liệu thô đang truyền trên đường dây.

7 lời khuyên đáng suy ngẫm của Khổng Tử

1. Tâm còn chưa thiện, phong thủy vô ích.
2. Bất hiếu cha mẹ, phong thủy vô ích.
3. Anh em không hòa, bạn bè vô ích.
4. Làm việc bất chính, đọc sách vô ích.
5. Làm trái lòng người, thông minh vô ích.
6. Không giữ nguyên khí, thuốc bổ vô ích.
7. Thời vận không thông, mưu cầu vô ích.

ICMP - Time Exceeded Message Analysis

Giới thiệu
Thông điệp ICMP Time Exceeded là loại thông điệp được tạo ra bởi các gateway hoặc router. Để có thể nắm được 1 cách rõ nhất về loại thông điệp này, bạn phải có kiến thức về IP Header ở trong 1 gói tin. Khi nhìn vào IP Header, bạn sẽ thấy có các trường TTL và Fragment Flag, đây là 2 trường đóng 1 vai trò lớn trong việc hoạt động của thông điệp ICMP này. Hãy chắc chắn rằng bạn đã hiểu về 2 trường đó trước khi chúng ta tiếp tục bài này!
Thông điệp ICMP Time Exceeded được tạo ra khi Gateway đang xử lý datagram (hay packet) có trường Time to Live được thiết lập là 0 và khi trường đó được thiết lập là 0 thì datagram sẽ bị loại bỏ.
Thuật ngữ "fragment" (phân mảnh) có nghĩa là "cắt ra thành nhiều mảnh". Khi dữ liệu quá lớn và không thể cho vào cùng 1 packet, nó sẽ được cắt thành các mảnh nhỏ và gửi đến đích. Ở đầu bên kia, host đích sẽ nhận được các phần bị phân mảnh và ghép chúng lại với nhau để tạo ra gói dữ liệu ban đầu.

Phân tích
Dưới đây là cấu trúc của 1 thông điệp ICMP Time Exceeded:

ICMP - Redirect Message Analysis

Giới thiệu
Thông điệp ICMP Redirect luôn được gửi từ 1 gateway tới host và ví dụ dưới đây sẽ minh họa điều đó.
Trước khi vào ví dụ, ta hãy thử giả sử rằng thông điệp ICMP Redirect xảy ra khi 1 host gửi 1 datagram (hay packet) tới gateway của nó (điểm đến của datagram này là 1 mạng khác), sau đó nó sẽ chuyển datagram đó đến gateway tiếp theo và gateway thứ 2 này nằm cùng 1 mạng với host đích. Gateway thứ 2 sẽ tạo ra thông điệp ICMP này và gửi nó tới host nguồn đã gửi datagram.

Có 4 loại thông điệp ICMP Redirect khác nhau:


Ví dụ:

ICMP - Source Quench Message Analysis

Giới thiệu
Thông điệp ICMP Source Quench là loại thông điệp có thể được tạo ra bởi 1 gateway hoặc là 1 host. Bạn sẽ không thấy bất kỳ thông điệp nào như vậy hiện lên trên màn hình máy của bạn trừ khi bạn đang làm việc trên 1 gateway mà ở gateway đó sẽ xuất ra màn hình tất cả các thông điệp ICMP mà nó có. Tóm lại, 1 thông điệp ICMP Source Quench được tạo ra bởi 1 gateway hoặc 1 host đích để nói với người gửi giảm bớt tốc độ gửi tin bởi vì gateway hay host đó không thể theo kịp với tốc độ của dữ liệu mà nó nhận được.

Phân tích
Một gateway có thể loại bỏ các Internet datagram (hay packet) nếu nó không có 1 không gian đệm cần thiết để sắp xếp (lưu trữ tạm thời) những datagram đó cho đầu ra tới mạng tiếp theo trên tuyến đường tới mạng đích. Nếu 1 gateway loại bỏ 1 datagram, nó có thể gửi 1 thông điệp ICMP Source Quench tới host nguồn nơi gửi datagram đó.
Dưới đây là cấu trúc gói tin của thông điệp ICMP Source Quench:

ICMP - Destination Unreachable Message Analysis

Giới thiệu
Thông điệp 'ICMP Destination Unreachable' khá thú vị, bởi vì thực sự là nó không chỉ chứa 1 thông điệp mà có tới tận 6 thông điệp. Điều này có nghĩa là ICMP Destination Unreachable được chia thành 6 thông điệp khác nhau.
Bài này sẽ phân tích tất cả 6 thông điệp Destination Unreachable và giải thích mỗi thông điệp được sử dụng làm gì. Bảng dưới đây cho thấy 1 bảng tóm tắt ngắn gọn về các thông điệp sẵn có và giá trị của chúng có chứa trong ICMP Header.


Để khỏi lẫn lộn, thì các bạn hãy ghi nhớ rằng: ICMP Destination Unreachable là 1 thông điệp chung, các giá trị code khác nhau hoặc các thông điệp là 1 phần của nó là để làm rõ loại thông điệp "Destination Unreachable" nhận được là loại nào.

ICMP - Echo/Echo Reply (Ping) Message

Giới thiệu
Như đã được đề cập trong bài trước, 1 Echo chỉ đơn giản như hầu hết mọi người thường gọi là 1 "ping", Echo Reply là "ping reply". Các ICMP Echo được sử dụng chủ yếu để xử lý sự cố. Khi 2 host đang có vấn đề trong việc truyền thông với nhau, thì một vài yêu cầu ICMP Echo đơn giản sẽ cho ta thấy được liệu có vấn đề gì với các gói tin định tuyến trên đường truyền đến đích hay không.

Chúng ta hãy thử nhìn vào hình minh họa cho 1 gói ICMP Echo/Echo Reply:


Introduction to the ICMP Protocol

Internet Control Message Protocol, là 1 giao thức rất phổ biến và hỗ trợ cho sự hoạt động của giao thức IP. Vì giao thức IP được thiết kế để được hoàn toàn đáng tin cậy, nên ICMP sẽ được sử dụng để cung cấp thông tin phản hồi về các vấn đề đã tồn tại trong môi trường truyền thông.
ICMP là 1 trong những giao thức hữu ích nhất được cung cấp để khắc phục các vấn đề sự cố mạng như phân giải DNS, định tuyến, kết nối... Tuy nhiên bạn nên thận trọng vì bạn có thể phải dành ra nửa ngày chỉ để cố gắng tìm ra lý do tại sao bạn lại không nhận được 1 "ping trả lời" (thuật ngữ chính xác là 'echo reply') từ 1 máy chủ Web trong khi thực tế thì tường lửa của nó được cấu hình không trả lời 'pings' vì lý do an ninh. Điều này thường dẫn đến việc hầu hết các kỹ sư có kết luận không chính xác rằng các máy chủ từ xa có thể bị down.

Note
Một vài năm trước đây đã có 1 chương trình được phát hành, và hiện tại vẫn đang còn được chia sẻ trên Internet, gọi là Click. Click được thiết kế để chạy trên nền tảng Windows và chức năng của nó là để chống lại những người dùng mIRC. Chương trình sẽ sử dụng các thông điệp khác nhau có sẵn trong giao thức ICMP để gửi thông báo lỗi đặc biệt cho người dùng mIRC, làm cho những người dùng từ xa nghĩ rằng họ mất kết nối với IRC Server, và do đó ngắt kết nối chương trình tới máy chủ. Sự kì diệu không phải ở chỗ là những gì chương trình có thể làm, mà chính là làm thế nào để chương trình đó có thể làm như vậy. Đây là nơi mà 1 chuyên viên mạng thực sự sẽ có thể xác định và sửa chữa các điểm yếu an ninh mạng.

DNS Response Message Format

Giới thiệu
Bài trước chúng ta đã được giới thiệu về định dạng của thông điệp truy vấn DNS. Chúng ta đã phân tích khá chi tiết và cho thấy cách 1 máy sử dụng cờ Flags/Parameters để lựa chọn những tùy chọn (Option) khác nhau.
Trong bài này, chúng ta sẽ xem và phân tích những đáp ứng nhận được từ những truy vấn ở bài trước. Những đáp ứng của 1 truy vấn, trong trường hợp của 1 truy vấn đệ quy, đến trực tiếp từ máy chủ DNS mà chúng ta đã gửi truy vấn và trong trường hợp của 1 truy vấn không đệ quy sẽ đến từ các máy chủ DNS gần đây nhất mà các máy khách liên hệ để có được thông tin cần thiết.
Bài này là sự tiếp nối của bài trước đó, vì vậy hãy chắc chắn rằng các bạn đã hiểu được những bài trước của loạt bài DNS này để khi đọc bài này chúng ta có thể hiểu được 1 cách sâu sắc.

Phân tích DNS - Server Response
Đây là câu trả lời (được tô màu xanh) của truy vấn trước đó gửi đến 1 máy chủ DNS ở Úc (139.130.4.4), là nơi tôi yêu cầu phân giải tên miền www.firewall.cx:


Có 1 chi tiết đáng chú ý là thời gian để truy vấn này trở lại với máy của tôi. Thời gian từ lúc mà máy của tôi gửi gói tin cho đến khi nhận được câu trả lời 0.991 giây.
Trong 1 thời gian ngắn mà gói tin di chuyển từ Hy Lạp đến Úc, truy cập máy chủ DNS và máy chủ DNS đó đã gửi các truy vấn của nó cho đến khi tìm được câu trả lời và sau đó tạo ra 1 đáp ứng DNS để gửi trở lại Hy Lạp (nơi mạng gia đình của tôi).
Có rất nhiều yếu tố góp phần nên phản ứng khá nhanh này. Giao thức vận chuyển UDP, là giao thức không yêu cầu quá trình bắt tay 3 bước; tải trọng của máy chủ DNS mà tôi đã gửi truy vấn; tải trọng của các máy chủ DNS khác mà nó đã gửi yêu cầu; tốc độ của tất cả các máy chủ và của chính mạng gia đình và tải trọng chung giữa các router mà gói tin đã phải di chuyển qua để đến được các địa điểm khác nhau.

DNS Query Message Format

Giới thiệu
Bài này chúng ta sẽ đi vào phân tích các gói dữ liệu DNS (DNS packet). Chúng ta sẽ được thấy cách mà các thông điệp DNS được định dạng nên cùng với các các tùy chọn (Option) và các biến chứa trong những thông điệp đó. Để hiểu 1 giao thức, bạn phải hiểu thông tin mà giao thức đó mang từ 1 máy đến máy khác.
Bởi vì các định dạng thông điệp DNS có thể khác nhau, tùy thuộc vào đó là truy vấn hay là câu trả lời, nên tôi sẽ chia bài phân tích này thành 2 phần. Phần 1 phân tích định dạng DNS của 1 truy vấn, nói cách khác là sẽ cho thấy gói dữ liệu trông như thế nào khi chúng ta yêu cầu 1 máy chủ DNS phân giải 1 tên miền. Phần 2 phân tích định dạng DNS của 1 câu trả lời, chính là trả lời của máy chủ DNS về truy vấn của chúng ta.

Phân tích DNS - Host Query
Như đã đề cập trong bài trước, 1 truy vấn DNS được tạo ra khi 1 máy cần phải phân giải 1 tên miền thành 1 địa chỉ IP. Kết quả này có được là do việc bạn nhập "www.firewall.cx" trong thanh địa chỉ ở trên trình duyệt web của bạn hoặc chỉ đơn giản là bằng cách chạy 1 chương trình sử dụng Internet và từ đó tạo ra các truy vấn DNS để có thể giao tiếp thành công với máy chủ cần thiết.
Bây giờ tôi sẽ đưa ra 1 ví dụ để các bạn có thể hiểu rõ hơn. Hãy thử xem 1 gói tin có chứa truy vấn DNS trông sẽ như thế nào khi đang được truyền trên mạng:


Đây là gói tin đã được chụp lại và chúng ta sẽ chuẩn bị phân tích nó. Để tạo ra gói tin này, tôi đã gõ "ping www.firewall.cx". Dòng lệnh tạo ra gói tin này, bắt nguồn từ mạng của tôi và điểm đến của nó là 1 name server có địa chỉ ở Úc. Chú ý là cổng đích của gói tin này được thiết lập là 53, chính là cổng mà DNS hoạt động, và giao thức được sử dụng cho truy vấn DNS đó là UDP.

DNS Queries & Resolution Process

Giới thiệu
Bài này sẽ giúp các bạn hiểu được các truy vấn DNS hoạt động trên Internet và mạng gia đình của bạn như thế nào. Có 2 cách sử dụng hệ thống tên miền để phân giải 1 host hoặc 1 tên miền sang 1 địa chỉ IP và chúng ta sẽ xem xét từng cách một.

Các loại truy vấn và cách giải quyết
Như đã đề cập trong phần giới thiệu, có 2 cách cho 1 client sử dụng hệ thống tên miền.
Cách thứ nhất, client liên hệ với các máy chủ tên (điều này tương đương với 1 truy vấn không đệ quy) cùng 1 lúc cho tới khi nó tìm thấy máy chủ có chứa những thông tin mà nó yêu cầu. Cách khác là yêu cầu hệ thống máy chủ tên thực hiện bản dịch đầy đủ (điều này tương đương với 1 truy vấn đệ quy), trong trường hợp này, client sẽ gửi truy vấn và nhận được phản hồi có chứa địa chỉ IP của tên miền đang tìm kiếm.
Thật sự rất thú vị khi tìm hiểu về cách mà truy vấn DNS hoạt động như thế nào. Trong khi phân tích những gói tin được gửi và nhận từ các máy chủ DNS, tôi sẽ chỉ cho bạn cách mà client lựa chọn phương pháp mà client muốn truy vấn của nó sẽ được giải quyết.

Ví dụ về DNS Resolution
Chúng ta hãy cùng xem ví dụ sau:
Khi ai đó muốn truy cập trang web của Cisco (www.cisco.com), họ sẽ dùng trình duyệt web và gõ "http://www.cisco.com" hoặc "www.cisco.com" và sau 1 vài giây, trang web sẽ được hiển thị. Nhưng những gì xảy ra đằng sau những thao tác đó không phải ai cũng biết. Đó là những gì mà chúng ta sẽ tìm hiểu ngay bây giờ.

The DNS Protocol

Giới thiệu
Bạn đã bao giờ tự hỏi DNS đến từ đâu? Đây sẽ là những bài mà tôi và bạn sẽ cùng tìm hiểu về giao thức này. Bản tóm lược ngắn gọn về lịch sử DNS cũng sẽ giúp bạn hiểu lý do tại sao các máy chủ DNS đang chạy chủ yếu trên các hệ thống Linux và UNIX. Sau đó chúng ta có thể thấy DNS làm việc ở những tầng nào trong mô hình OSI và ở cuối bài này, tôi và bạn sẽ cùng tìm hiểu các Domain (tên miền) và các máy chủ DNS có cấu trúc như thế nào và làm sao để chúng đảm bảo được thời gian hoạt động và hiệu quả.

Lịch sử
DNS được sử dụng trong những ngày đầu khi Internet chỉ là 1 mạng nhỏ được tạo ra bởi Bộ Quốc Phòng Mỹ cho các mục đích nghiên cứu. Do đó mạng chỉ cần 1 file HOSTS chứa tất cả các thông tin cần thiết về máy tính ở trong mạng và giúp các máy tính chuyển đổi được thông tin địa chỉ và tên mạng cho tất cả các máy tính trong mạng một cách dễ dàng. Và đó chính là bước khởi đầu của hệ thống tên miền gọi tắt là DNS (Domain Name System).
Nhưng khi mạng máy tính ngày càng phát triển thì việc quản lý thông tin chỉ dựa vào 1 file HOSTS là rất khó khăn và không khả thi. Vì thông tin bổ sung và sửa đổi vào file HOSTS ngày càng nhiều và nhất là khi hệ thống máy tính được phát triển dựa trên bộ giao thức TCP/IP dẫn đến sự phát triển tăng vọt của máy tính:
- Lưu lượng và trao đổi trên mạng tăng lên.
- Tên miền trên mạng và địa chỉ ngày càng nhiều.
- Mật độ máy tính ngày càng cao do đó đảm bảo phát triển ngày càng khó khăn.
Đến năm 1984, Paul Mockpetris thuộc viện USC's Information Sciences Institute phát triển 1 hệ thống quản lý tên miền mới gọi là DNS và ngày nay nó ngày càng được phát triển và hiệu chỉnh bổ sung tính năng để đảm bảo yêu cầu ngày càng cao của hệ thống.

TCP Data

Giới thiệu
Cuối cùng, chúng ta đã đi đến bài cuối trong loạt bài phân tích về giao thức vận chuyển TCP. Bài này để dành riêng cho phần dữ liệu nằm tiếp sau TCP Header.

The Data
Chúng ta hãy cùng xem sơ đồ dưới đây:


Khi gói tin trên đến với người nhận, 1 quá trình mở gói là cần thiết để loại bỏ các phần được đóng gói thêm vào khi đi qua từng lớp của mô hình OSI. Sau đó, phần dữ liệu sẽ được đưa cho ứng dụng đang chờ đợi nó. Như vậy, khi gói tin được nhận đầy đủ bởi card mạng, nó được trao cho lớp 2 (Data Link), sau khi thực hiện kiểm tra lỗi ở trên gói tin, nó sẽ loại bỏ các thành phần liên quan đến lớp 2 (Data Link), có nghĩa là các khối màu vàng sẽ được loại bỏ.
Phần còn lại đó là IP Header, TCP Header, và dữ liệu, có thể gọi 3 phần đó là 1 IP Datagram, sẽ được đưa qua lớp 3 của mô hình OSI (Network) nơi các kiểm tra khác sẽ được thực hiện và nếu không phát hiện ra lỗi, IP Header sẽ bị tước bỏ và phần còn lại (bây giờ gọi là 1 Segment) sẽ được đưa lên lớp thứ 4 của mô hình OSI.
Giao thức TCP sẽ chấp nhận Segment và thực hiện kiểm tra lỗi trên Segment này. Giả sử không tìm thấy lỗi, thì TCP Header sẽ được gỡ bỏ và sẽ được đưa lên các lớp trên để đến với các ứng dụng đang chờ nó.

Tổng kết
Cuối cùng thì loạt bài về phân tích giao thức TCP đã xong. Sau khi đọc tất cả những bài này, tôi chắc chắn bạn sẽ có 1 sự hiểu biết tốt hơn về mục đích của giao thức TCP và quá trình diễn ra nó, và bạn có thể thực sự đánh gia cao chức năng của giao thức này.

Lược dịch từ bài gốc: Click Here

Analysing TCP Header Options

Giới thiệu
TCP Options (MSS, Window Scaling, Selective Acknowledgements, Time Stamps, Nop) có vị trí nằm ở cuối TCP Header.
Truyền thông dữ liệu càng ngày càng trở nên phức tạp hơn, ít chấp nhận sai sót và độ trễ, rõ ràng là các tính năng mới này đã được tích hợp cho TCP transport để giúp khắc phục nhiều vấn đề.
Ví dụ, Window Scaling, đã được đề cập đến ở bài trước và được giới thiệu ở đây, có thể sử dụng trường TCP Options bởi vì trường Window nguyên thủy của nó chỉ dài có 16 bits, cho phép một số thập phân tối đa là 65.535. Rõ ràng đây là con số quá nhỏ so với việc chúng ta muốn biểu thị giá trị 'Window Size' sử dụng những con số trong phạm vi kích thước hàng ngàn đến 1 triệu như 400.000 hay 950.000.
Trước khi đi phân tích chi tiết, chúng ta hãy xem qua trường TCP Options ở dưới hình sau:


Nằm ở cuối Header và ngay trước phần dữ liệu, nó cho phép chúng ta sử dụng những cải tiến mới được khuyến nghị bởi các kỹ sư đã giúp thiết kế nên các giao thức mà chúng ta đang sử dụng trong truyền thông dữ liệu ngày nay.

Bảo mật cá nhân - Sử dụng máy công cộng - Phần 2

Trong bài trước, ba thủ thuật đơn giản đã được giới thiệu nhằm giảm thiểu hiểm hoạ "mất mật khẩu" khi dùng máy công cộng. Phần thứ nhì đi sâu vào việc chuẩn bị một biện pháp khác có khả năng giảm thiểu hiểm hoạ bị mất mật khẩu ở mức độ tốt hơn. Tuy nhiên, nó đòi hỏi một quy trình chuẩn bị khá tỉ mỉ.

Tạo và sử dụng USB key có chứa phần mềm quản lý mật khẩu:
Đây có lẽ là biện pháp an toàn nhất khi sử dụng máy tính công cộng để đăng nhập nếu máy tính công cộng ấy cho phép gắn USB key vào máy. USB key là một thiết bị nhỏ gọn, khá rẻ tiền và thông dụng:



Bạn có thể mua một USB key ở bất cứ một tiệm bán đồ máy tính nào với dung lượng nhỏ (vì không cần dung lượng lớn). Một USB key chừng 64Mb là thừa để dùng rồi. Quy trình chuẩn bị này cần thực hiện trên một máy SẠCH, có nghĩa là bạn tin tưởng máy ấy không có mã độc.

Bảo mật cá nhân - Sử dụng máy công cộng - Phần 1

Vài năm gần đây, Internet và máy tính trở thành một phần của mọi sinh hoạt hàng ngày, từ chuyên gia cho đến các cháu học sinh từ các bà nội trợ đến các ông bà cụ. Không may, tình trạng "mất mật khẩu", "bị đánh cắp mật khẩu", "mất tài khoản" trở thành chuyện bình thường đến mức đáng sợ. Tuy vậy, nếu trang bị một số kiến thức căn bản và sự cẩn thận đúng mức thì có thể giảm thiểu phần lớn tình trạng "bị mất cắp". Bài viết này tập trung vào tình trạng bảo mật của máy tính và người dùng Internet ở Việt Nam cho người dùng sử dụng máy trên hệ điều hành Windows.

1. Thực trạng:
Tình trạng sử dụng máy công cộng như ở Internet Cafe, ở thư viện, ở trường học, ở các phòng máy của cơ quan, ở các dịch vụ, các trung tâm huấn nghệ...v.v.. là tình trạng rất chung và rất phổ biến. Rất nhiều người tin rằng "máy nào cũng như máy nào" nhưng thực tế, chẳng có gì bảo đảm tính bảo mật và an toàn khi sử dụng chúng.

Theo điều tra tổng quát (và khá giới hạn) của nhóm HVAOnline năm 2011, cứ trong 10 dịch vụ Internet Cafe ở Việt Nam thì có 9 dịch vụ bị dính mã độc mà quản lý của dịch vụ không hề biết (hoặc biết nhưng không quan tâm). Những máy tính ở các dịch vụ ấy được "sao" từ các bản "gốc". Không may, chính những bản "gốc" ấy có vô số virus và mã độc. Chương trình chống virus trên các bản "gốc" ấy thường quá cũ, không được cập nhật. Ngay cả trong một số trường đại học chuyên ngành CNTT cũng có những hệ thống máy sử dụng các software bị cài mã độc nhưng các quản lý viên không hề biết.

Một quốc gia vừa mở cửa ra với Internet, với cơ sở hạ tầng khá hạn chế và bé nhỏ so với các nước đã và đang phát triển như Việt Nam lại lọt vào danh sách top 20 quốc gia có nhiều virus cho mục đích tàn phá [1] là điều đáng lo ngại và bởi thế, chính người dùng cần cẩn thận hơn.

TCP Window Size, Checksum & Urgent Pointer

Giới thiệu
Bài này tôi sẽ giới thiệu một vài trường rất thú vị được sử dụng trong giao thức vận chuyển TCP. Chúng ta có thể thấy được làm thế nào để TCP giúp điều khiển dữ liệu được truyền đi trên mỗi Segment, đảm bảo không có lỗi trên từng Segment và cuối cùng, cắm cờ "khẩn cấp" cho dữ liệu của chúng ta để đảm bảo nó có được quyền ưu tiên khi đến được với người nhận.


Các trường mà chúng ta đang chuẩn bị phân tích ở đây chiếm tổng cộng khoảng 6 bytes trong TCP Header.
Những giá trị này, như hầu hết các trường trong Header của giao thức, đều giữ nguyên kích thước bất kể dữ liệu của ứng dụng có lớn như nào đi chăng nữa.

TCP Flag Options

Giới thiệu
Như chúng ta đã thấy ở những bài trước, 1 TCP Segment mang theo dữ liệu trong khi những cái khác chỉ đơn giản là báo nhận cho dữ liệu nhận được trước đó. Quá trình bắt tay 3 bước sử dụng SYN và ACK có sẵn trong TCP giúp hoàn thiện kết nối trước khi dữ liệu được truyền.
Mỗi TCP Segment đều có mục đích và điều này được xác định với sự trợ giúp của TCP Flag Options, cho phép bên gửi hoặc bên nhận chỉ ra cờ nên được sử dụng để các Segment xử lý 1 cách chính xác ở phía bên kia. Chúng ta hãy nhìn vào hình sau và cùng phân tích:


Bạn có thể thấy 2 cờ được sử dụng trong bắt tay 3 bước và truyền dữ liệu là SYN và ACK.
Với tất cả các cờ, giá trị bằng '1' được hiểu là cờ đấy đang được bật. Ví dụ trong hình chỉ có cờ SYN được bật, và chúng ta dựa vào đó đoán được đây là Segment đầu tiên của 1 kết nối TCP mới.
Mỗi cờ có độ dài 1 bit và có 6 cờ tất cả nên tổng cộng TCP Flags có độ dài 6 bits.
Bạn có lẽ cũng đồng ý với tôi rằng 3 cờ phổ biến nhất hay ít nhất mà chúng ta có nghe nói tới là cờ SYN, cờ ACK và cờ FIN lần lượt dùng để thiết lập kết nối, báo nhận thành công và kết thúc kết nối. Các cờ còn lại ít được biết đến nhưng nó có vai trò rất quan trọng. Chúng ta sẽ đi tìm hiểu tất cả 6 cờ này ngay bây giờ.

Người Việt trẻ tự đốt đuốc mà đi

1. Thời gian gần đây, chúng tôi hay có những trao đổi về tương lai của Việt Nam trong cơn gian khó: Trong đất liền thì lạm phát cao, kinh tế khó khăn, sức sản xuất giảm, doanh nghiệp phá sản hàng loạt. Ngoài biển Đông thì Trung Quốc liên tục gây căng thẳng, gia tăng tranh chấp không chỉ với Việt Nam mà còn cả khu vực. Nhìn xa hơn sang các nước Âu – Mỹ, tình hình cũng không sáng sủa hơn bao nhiêu. Châu Âu vẫn ngập trong khủng hoảng. Một số nước nếu chỉ năm ngoái thôi còn được coi là vững vàng, như Pháp chẳng hạn, thì sang năm nay, đã bị nhiều chuyên gia coi là một “quả bom hẹn giờ” mới.

Trước tình hình đó, nhiều người đã rất bi quan. Nhiều lúc chúng tôi có cảm giác, sự bi quan chán nản đã rút hết sinh khí của ngay cả những người được coi là từng trải và vững vàng nhất. Nhưng với riêng tôi, cảm thức bi quan chưa bao giờ là chủ đạo. Lý do: Thay vì nhìn mãi vào bức tranh màu xám, tôi nhìn vào những người Việt trẻ.

Tôi tin vào sức trẻ. Tôi tin đó là tài sản lớn nhất của dân tộc. Và tôi tin, chính tuổi trẻ chứ không phải các lý thuyết kinh tế xã hội kinh điển và nhiều tranh cãi, hay những lý tưởng khuôn sáo đã không còn sức sống, sẽ là cứu tinh của đất nước.

Tôi đi tìm tương lai của đất nước trên khuôn mặt những người Việt trẻ.

TCP Header Lenght Analysis

Giới thiệu
Trường tiếp theo mà tôi muốn giới thiệu chính là TCP Header Length. Thật sự không có nhiều vấn đề để nói về Header Length ngoài việc giải thích nó đại diện cho cái gì và làm thế nào để giải thích được giá trị của nó. Nhưng thực sự trường này cũng là 1 trường rất quan trọng và bạn sẽ thấy được điều đó.
Bạn cũng có thể thấy Header Length cũng giống như trường Data Offset trong Packet Sniffer hay Application (là 1 cái tên khác nhưng thực chất cũng chính là Header Length).

Phân tích Header Length


Nếu bạn đã đọc bất kì 1 cuốn sách nào về Networking có nói về TCP Header, bạn hầu như sẽ tìm thấy mô tả cho trường này như sau: "Một số nguyên xác định độ dài của Segment Header là bội số của 32 bits". Nhưng khi nhìn vào gói tin, thì ta sẽ phải băn khoăn suy nghĩ điều đó chính xác muốn nói về cái gì?
Tôi sẽ giải thích cho các bạn hiểu rõ hơn theo từng bước một.

TCP Sequence & Acknowledgement Numbers

Giới thiệu
Bài viết này sẽ đi sâu vào Sequence Number và Acknowledgement Number. Sự tồn tại của chúng có liên quan đến 1 thực tế rằng Internet và hầu hết các mạng nói chung đều là mạng chuyển mạch gói và bởi vì chúng ta gần như luôn nhận và gửi dữ liệu có kích thước lớn hơn so với MTU (đơn vị truyền dẫn tối đa) là 1500 trên hầu hết các mạng ngày nay.
Hãy thử nhìn vào các trường mà chúng ta chuẩn bị phân tích:


Chúng ta sẽ giải thích những con số này tăng bằng cách nào và chúng có ý nghĩa gì, làm thế nào để các hệ điều hành khác nhau có thể xử lý chúng bằng những cách khác nhau và cuối cùng, vì sao những con số này có thể trở thành mối nguy hiểm an ninh cho những người yêu cầu 1 mạng lưới vững mạnh và an toàn.

TCP Source & Destination Port Numbers

Phần này chúng ta sẽ nói về 1 trong các trường của TCP Header, các số hiệu của cổng nguồn và cổng đích. Các trường này được sử dụng để xác định các ứng dụng hoặc dịch vụ được cung cấp trên máy trạm hoặc máy chủ từ xa. Tôi sẽ lần lượt nói về tầm quan trọng và chức năng của các cổng nguồn và cổng đích của TCP.
Bạn sẽ hiểu được tầm quan trọng của cổng và cách sử dụng chúng để thu thập thông tin trên hệ thống từ xa được coi là mục tiêu để tấn công. Ở đây tôi sẽ giới thiệu các cổng giao tiếp từ cơ bản đến nâng cao với các ví dụ chi tiết. Bây giờ chúng ta sẽ bắt đầu với một số vấn đề cơ bản.
Khi 1 máy cần tạo ra yêu cầu hoặc cần gửi dữ liệu, nó đòi hỏi một số thông tin:
1. Địa chỉ IP của các máy chủ mà nó muốn gửi dữ liệu hoặc gửi yêu cầu.
2. Số hiệu cổng mà dữ liệu hoặc yêu cầu sẽ được gửi đến máy chủ từ xa đó. Trong trường hợp gửi 1 yêu cầu, nó cho phép người gửi xác định dịch vụ mà nó có ý định sử dụng.

In-depth TCP Header Analysis - Introduction

Tiếp theo tôi sẽ giới thiệu về việc phân tích TCP Header. Để dễ hiểu tôi sẽ chia thành 7 bài, mỗi bài 1 vấn đề và sử dụng những mô hình chi tiết, dễ hiểu để bạn có thể nắm được dễ dàng hơn.
Thứ tự các bài như sau:
Section 3: Header Length
Section 4: TCP Flag Options
Section 6: TCP Options
Section 7: TCP Data

The TCP Header/Segment

Giới thiệu
Bài này sẽ giới thiệu về TCP Header và TCP Segment. Chúng ta sẽ biết được TCP Header và TCP Segment nằm ở đâu trong 1 khung Ethernet và có 1 cái nhìn tổng quan về các tùy chọn (option) sẵn có trong TCP Header.

TCP Header và TCP Segment
Đơn vị truyền dữ liệu được sử dụng trong TCP được gọi là TCP Segment.


Nhìn vào mô hình trên ta có thể thấy TCP Segment = TCP Header + Data (dữ liệu thuộc về các tầng trên: 5,6,7).
Nội dung dữ liệu có thể là 1 phần của việc truyền file, hoặc phản hồi từ 1 http request, thực tế là chúng ta không thực sự quan tâm đến nội dung dữ liệu, nhưng trong thực tế nó là 1 phần của TCP Segment.

Quick Overview Of TCP

Như đã đề cập ở bài trước, TCP là 1 trong 2 giao thức nằm ở tầng vận chuyển và được sử dụng để truyền dữ liệu từ 1 host sang host khác. Vậy điều gì khiến cho TCP trở thành 1 cách thức phổ biến trong việc gửi và nhận dữ liệu như thế? Không giống UDP, TCP sẽ kiểm tra lỗi trong mỗi packet (gói tin) mà nó nhận được để tránh việc bị hỏng dữ liệu.
Một vài giao thức sử dụng TCP như là: FTP, Telnet, HTTP, HTTPS, DNS, SMTP và POP3. Bây giờ chúng ta sẽ có cái nhìn sâu hơn về những đặc điểm chính của giao thức tuyệt vời này.

Các đặc điểm chính
Sau đây là những đặc điểm chính của TCP mà chúng ta sẽ đi vào phân tích:
- Vận chuyển đáng tin cậy (Reliable Transport).
- Hướng kết nối (Connection-Oriented).
- Điều khiển luồng (Flow Control).
- Windowing.
- Acknowledgments.
- Nhiều chi phí hơn.

TCP, A Transport Protocol

Giới thiệu
Việc hiểu biết mỗi giao thức được xếp đặt vào trong mô hình OSI như thế nào là một điều cần thiết cho các kỹ sư mạng máy tính. Ở đây tôi sẽ phân tích về việc TCP được xếp vào loại "giao thức vận chuyển" như thế nào và điều gì mình có thể thấy được ở giao thức này.

Việc sắp xếp TCP vào mô hình OSI
Như chúng ta đã biết, mỗi giao thức đều có chỗ của nó trong mô hình OSI (mỗi giao thức hoạt động ở 1 layer cụ thể). Mô hình OSI là 1 biểu thị tính phức tạp và độ thông minh của giao thức. Theo quy tắc tổng quát, càng lên tầng cao trong mô hình OSI, thì giao thức ở tầng đó càng trở nên thông minh. Việc đặt vị trí của tầng cũng phản ánh mức độ làm việc nhiều của CPU, trong khi đó các tầng thấp hơn của mô hình OSI thì hoàn toàn ngược lại, nghĩa là, mức độ làm việc của CPU ít hơn và bớt thông minh hơn.


TCP được đặt ở lớp thứ 4 của mô hình OSI, mà người ta còn gọi là tầng vận chuyển. Tầng vận chuyển chịu trách nhiệm thiết lập phiên kết nối, chuyển dữ liệu và phân nhỏ các kết nối ảo.
Với ý nghĩ này, bạn sẽ mong đợi bất cứ giao thức nào nằm trong tầng vận chuyển phải thực hiện một vài tính năng và đặc tính cho phép nó hỗ trợ những chức năng mà tầng vận chuyển quy định.
Vì thế sau khi phân tích TCP, bạn sẽ chắc chắn rằng TCP phải được xếp vào tầng vận chuyển.

Đàn ông - Nếu đã 20, nếu chưa 25

Nếu bạn là đàn ông, nếu bạn đã hai mươi, nhưng bạn chưa hai lăm tuổi, bạn buộc phải tìm được một thứ gì đó ngoài tình yêu, giúp đôi chân bạn đứng vững vàng trong cuộc đời này. Bạn phải bắt đầu nghĩ cách để kiếm đủ và sống được.

Tôi chưa từng bao giờ nghĩ bằng cấp là thứ quan trọng, thiên tài với danh nhân đâu phải từ lò luyện và trường lớp mà ra. Nhưng nếu bạn không học tới nơi tới chốn, thì dù có đi làm cửu vạn, ngay cả bao cát cũng sợ rằng chẳng biết cách mà vác.

Bạn buộc phải làm cho những suy nghĩ văn vẻ và cảm xúc màu mè thị dân của mình dần trở thành lối tư duy sáng sủa, rõ ràng và những ngôn từ giản tiện ngắn gọn. Bởi những thứ màu mè và bồng bột sẽ không thể tồn tại lâu. Bạn phải biết rằng, những sự thích thú khi khi đọc văn hay, nghe lời bay bướm mang lại sẽ chẳng mấy giá trị, trong khi thứ quan trọng nhất lại nằm ở trí tuệ, tinh thần, tâm hồn, nội dung, tư duy của bạn.

Là đàn ông, làm ơn đừng đọc văn của những nhà văn nữ cùng thời với bạn.

Là đàn ông, làm ơn đừng trách người khác, đừng nhỏ nhặt, làm ra vẻ đáng thương.

Làm ơn đừng nghĩ đến cái gì là viết về cái đó.

Và chớ tiếc rẻ đôi chút cảm động bé nhỏ, đôi chút thương xót nhỏ nhoi.