I. Nguyên tắc truyền thông tin
TCP/IP
Port
scan attack
Eavesdropping attack
IP spoofing attack
Man-in-the-middle Attack
Replay attack
HIJACKING ATTACK
Denial of Service / Distributed Denial of
Service (DoS/DDoS) Attacks
1
I. Nguyên tắc truyền thông tin
TCP/IP
Password
Attacks
Misuse of Privilege Attacks
Attacks Against the Default
SecurityConfiguration
Software Exploitation Attacks
Takeover Attacks
Malicious Code Attacks
2
I. Nguyên tắc truyền thông tin
TCP/IP
1.
Cấu tạo gói tin TCP
3
Trong bài viết này tôi chỉ chú trọng tới các thiết lập Flag trong gói
tin TCP nhằm mục đích sử dụng để Scan Port:
- Thông số SYN để yêu cầu kết nối giữa hai máy tính
- Thông số ACK để trả lời kết nối giữa hai máy có thể bắt đầu được
thực hiện
- Thông số FIN để kết thúc quá trình kết nối giữa hai máy
- Thông số RST từ Server để nói cho Client biết rằng giao tiếp này
bị cấm (không thể sử dụng)
- Thông số PSH sử dụng kết hợp với thông số URG
- Thông số URG sử dụng để thiết lập độ ưu tiên cho gói tin này.
Thật ra toàn bộ các thông số này trong gói tin nó chỉ thể hiện là 1
hoặc 0 nếu là 0 thì gói tin TCP không thiết lập thông số này, nếu là
1 thì thông số nào đó được thực hiện nó sẽ lần lượt trong 8 bits
trong phần Flag.
4
2. Khi Client muốn thực hiện một
kết nối TCP với Server đầu tiên:
+ Bước I: Client bắn đến Server một gói tin SYN
+ Bước II: Server trả lời tới Client một gói tin SYN/ACK
+ Bước III: Khi Client nhận được gói tin SYN/ACK sẽ gửi lại server một gói
ACK – và quá trình trao đổi thông tin giữa hai máy bắt đầu.
5
3. Khi Client muốn kết thúc một
phiên làm việc với Server
+ Bước I: Client gửi đến Server một gói tin FIN ACK
+ Bước II: Server gửi lại cho Client một gói tin ACK
+ Bước III: Server lại gửi cho Client một gói FIN ACK
+ Bước IV: Client gửi lại cho Server gói ACK và quá trình ngắt kết nối
giữa Server và Client được thực hiện.
6
II. Nguyên tắc Port scan trên một
hệ
thống
và
Port
scanning
Attack
1. TCP Scan
Trên gói TCP/UDP có 16 bit dành cho Port Number
điều đó có nghĩa nó có từ 1 – 65535 port. Không một
hacker nào lại scan toàn bộ các port trên hệ thống,
chúng chỉ scan những port hay sử dụng nhất thường
chỉ sử dụng scan từ port 1 tới port 1024 mà thôi.
Phần trên của bài viết tôi đã trình bày với các bạn
nguyên tắc tạo kết nối và ngắt kết nối giữa hai máy
tính trên mạng. Dựa vào các nguyên tắc truyền thông
tin của TCP tôi có thể Scan Port nào mở trên hệ thống
bằng nhưng phương thức sau đây:
7
- SYN Scan: Khi Client bắn gói SYN với một thông số Port nhất định tới Server nếu
server gửi về gói SYN/ACK thì Client biết Port đó trên Server được mở. Nếu Server
gửi về cho Client gói RST/SYN tôi biết port đó trên Server đóng.
- FIN Scan: Khi Client chưa có kết nối tới Server nhưng vẫn tạo ra gói FIN với số port
nhất định gửi tới Server cần Scan. Nếu Server gửi về gói ACK thì Client biết Server
mở port đó, nếu Server gửi về gói RST thì Client biết Server đóng port đó.
- NULL Scan Sure: Client sẽ gửi tới Server những gói TCP với số port cần Scan mà
không chứa thông số Flag nào, nếu Server gửi lại gói RST thì tôi biết port đó trên
Server bị đóng.
- XMAS Scan Sorry: Client sẽ gửi những gói TCP với số Port nhất định cần Scan
chứa nhiều thông số Flag như: FIN, URG, PSH. Nếu Server trả về gói RST tôi biết
port đó trên Server bị đóng.
- TCP Connect: Phương thức này rất thực tế nó gửi đến Server những gói tin yêu cầu
kết nối thực tế tới các port cụ thể trên server. Nếu server trả về gói SYN/ACK thì
Client biết port đó mở, nếu Server gửi về gói RST/ACK Client biết port đó trên Server
bị đóng.
- ACK Scan: dạng Scan này nhằm mục đích tìm những Access Controll List trên
Server. Client cố gắng kết nối tới Server bằng gói ICMP nếu nhận được gói tin là Host
Unreachable thì client sẽ hiểu port đó trên server đã bị lọc.
8
Có
vài dạng Scan cho các dịch vụ điển
hình dễ bị tấn công như:
- RPC Scan: Cố gắng kiểm tra xem hệ
thống có mở port cho dịch vụ RPC không.
- Windows Scan: tương tự như ACK
Scan, nhưng nó có thể chỉ thực hiện trên
một số port nhất định.
- FTP Scan: Có thể sử dụng để xem dịch
vụ FTP có được sử dụng trên Server hay
không
- IDLE: cho phép kiểm tra tình trạng của
máy chủ.
9
như gói tin truyền
bằng TCP để đảm bảo sự toàn vẹn của gói
2.NếuUDP
Scan.
tin sẽ luôn được truyền tới đích. Gói tin truyền bằng UDP sẽ đáp
ứng nhu cầu truyền tải dữ liệu nhanh với các gói tin nhỏ. Với quá
trình thực hiện truyền tin bằng TCP kẻ tấn công dễ dàng Scan được
hệ thống đang mở những port nào dựa trên các thông số Flag trên
gói TCP.
Cấu tạo gói UDP
Source
Port
Destination
Port
Length
Optionnal
Checksum
1
Như
ta thấy gói UDP không chứa các thông
số Flag, cho nên không thể sử dụng các
phương thức Scan port của TCP sử dụng cho
UDP được. Thật không may hầu hết hệ thống
đều cho phép gói ICMP.
Nếu một port bị đóng, khi Server nhận được
gói ICMP từ client nó sẽ cố gắng gửi một gói
ICMP type 3 code 3 port với nội dung là
"unreachable" về Client. Khi thực hiện UDP
Scan bạn hãy chuẩn bị tinh thần nhận được
các kết quả không có độ tin cây cao.
1
Tóm lại: Port scanning Attack là một trong những bước đầu tiên để tấn
công vào một hệ thống, để hiểu được các phương thức scan chúng ta có
thể dùng nmap để thực hiện. Sau đó cách chúng ta cấm Scan đó là sử
dụng các thiết bị chuyên dụng như IPS, IDS để detect và ngăn chặn tấn
công
IPS
(Intrusion Prevention System): hệ thống ngăn chặn xâm
nhập. IPS nằm trên đường đi của dữ liệu,chủ động, nên có thể
ngăn chặn trước khi bị tấn công. Vì nằm trên đường đi nên để
chặn được nhiều dòng dữ liệu đi qua thì nó có thể cần nhiều
interface.
IDS ( Intrusion Detection System): hệ thống phát hiện xâm
nhập. IDS đặt một chỗ để monitor mạng (bị động), vì không
nằm trực tiếp trên đường đi của dữ liệu, nó chỉ có thể ngăn
chặn sau khi đã phát hiện được tấn công, Vì chỉ cần monitor
nên nó thường chỉ cần 1 interface. Nó ngăn chặn bằng cách
gửi TCP reset về source bị tấn công chẳng hạn.Vì môi trường
SW không thể bắt gói packet trực tiếp được, nên yêu cầu là
SW phải hỗ trợ chức năng monitor port thì IDS mới monitor
traffic trong mạng được.
1
Phần II:Eavesdropping attack
(Tấn công bằng nghe lén)
Nghe
trộm hay nghe lén trên mạng (sniffer)
là một phần của kỹ thuật tấn công MITM
("Man In The Middle": kẻ đứng giữa) đe doạ
an ninh dữ liệu. Đây là kỹ thuật tấn công phổ
biến, nguy hiểm và khó phòng chống bậc
nhất hiện nay. Theo đúng như tên gọi, kỹ
thuật này không tấn công trực diện vào các
máy khách hay máy chủ, mà nó nhằm vào
đoạn truyền dữ liệu thông qua cable hay tín
hiệu vô tuyến giữa các máy, đặc biệt nhất là
trên mạng Ethernet.
1
Ethernet
định nghĩa một loạt các chuẩn nối dây và
phát tín hiệu cho tầng vật lý, hai phương tiện để
truy nhập mạng tại phần MAC (điều khiển truy
nhập môi trường truyền dẫn) của tầng liên kết dữ
liệu, và một định dạng chung cho việc đánh địa
chỉ.
Ethernet đã được chuẩn hóa thành IEEE 802.3.
Cấu trúc mạng hình sao, hình thức nối dây cáp
xoắn (twisted pair) của Ethernet đã trở thành công
nghệ LAN được sử dụng rộng rãi nhất từ thập kỷ
1990 cho tới nay, nó đã thay thế các chuẩn LAN
cạnh tranh khác như Ethernet cáp đồng trục
(coaxial cable), token ring, FDDI (Fiber
distributed data interface), và ARCNET. Trong
những năm gần đây, Wi-Fi, dạng LAN không dây
đã được chuẩn hóa bởi IEEE 802.11, đã được sử
dụng bên cạnh hoặc thay thế cho Ethernet trong
nhiều cấu hình mạng.
1
Nhìn
chung, sniffer(nghe lén) chỉ xảy ra ở
mặt vật lý, nghĩa là kẻ tấn công phải tiếp cận
được với hệ thống thì mới thực thi được. Ví
dụ trong các điểm dịch vụ Internet, các quán
café WiFi, trong hệ thống LAN doanh
nghiệp, v.v… mà chỉ cần một máy tính trong
mạng bị cài đặt trình nghe lén, tất cả luồng
thông tin truyền dẫn qua mạng đó đều có thể
bị ghi lại. Trường hợp hệ thống máy tính
nghe trộm và kẻ tấn công ở cách xa nhau, kẻ
tấn công tìm cách điều khiển một máy tính
nào đó trong hệ thống rồi cài đặt trình nghe
lén vào máy đó để thực hiện nghe trộm từ xa.
1
1. Công cụ nghe trộm
Hiện
nay, nghe trộm mạng thực hiện rất dễ dàng,
bởi có quá nhiều công cụ giúp thực hiện như
Ettercap, Ethereal, dsniff, TCPdump, Sniffit,...
Các công cụ này ngày càng được “tối ưu hóa” để
dễ sử dụng và tránh bị phát hiện sử được thực thi.
So với các kiểu tấn công khác, tấn công dạng
Sniffer cực kỳ nguy hiểm, bởi nó có thể ghi lại
toàn bộ thông tin được lưu chuyển qua card mạng
của các máy, và bản thân người sử dụng không
biết là đang bị nghe trộm lúc nào do máy tính của
họ vẫn hoạt động bình thường, không có dấu hiệu
bị xâm nhập hay phá hoại. Chính điều đó dẫn đến
việc phát hiện và phòng chống nghe trộm rất khó,
và hầu như chỉ có thể phòng chống trong thế bị
động (passive) - nghĩa là chỉ phát hiện được bị
nghe trộm khi đang ở tình trạng bị nghe trộm.
1
2. Cơ chế nghe trộm
Để
hiểu quá trình cần hiểu được
nguyên tắc chuyển tải các gói tin
(packet) giữ các máy qua 2 loại thiết bị
tập trung các node mạng sử dụng phổ
biến hiện nay là Hub và Switch trên hệ
thống mạng Ethernet, biết được các
điểm yếu bị lợi dụng lúc truyền dẫn để
nghe trộm.
1
Trong môi trường Hub
Khi
gói tin được chuyển từ máy A sang máy B thì
đồng thời nó được gửi đến tất cả các máy khác đang
kết nối cùng Hub. Các máy khác nhận được gói tin
này và tiến hành so sánh với frame của gói tin để kiểm
tra địa chỉ đích. Nếu trùng lập thì sẽ nhận, còn không
thì cho qua. Do gói tin từ A được gửi đến B nên khi so
sánh thì chỉ có B mới giống địa chỉ đích đến nên chỉ
có B mới thực hiện tiếp nhận.
Dựa vào nguyên tắc đó, máy được cài đặt chương
trình nghe trộm sẽ “tự nhận” bất cứ gói tin được lưu
chuyển trong mạng qua Hub, kể cả khi đích đến gói
tin có đích đến không phải là nó, nhờ card mạng được
đặt ở chế độ hỗn tạp (promiscuous mode).
Promiscuous mode là chế độ đặc biệt mà khi card
mạng được đặt dưới chế độ này, nó có thể nhận tất cả
các gói tin mà không bị ràng buộc kiểm tra địa chỉ
đích đến.
1
Trong môi trường Switch
Khác
với Hub, Switch chỉ chuyển tải các gói tin đến những
địa chỉ xác định trước nên nghe trộm kiểu “tự nhận” như ở
Hub không thực hiện được.
Theo hình minh họa, máy A khi truyền dữ liệu cho máy B
thông qua switch thì sẽ chỉ chuyển tới A, không qua C – chỉ
có (1) và (4), không có bước 2,3. Ý tưởng ở đây là nếu máy C
muốn nghe trộm dữ liệu truyền giữa A và B thì nó tìm cách
đóng vai trò như một gateway để đón và tiếp vận dữ liệu.
Theo hình trên, dữ liệu từ máy A đến switch, rồi đến máy C,
sau đó trở lại switch rồi mới đến B. Lúc đó máy C “nói” với
máy A nó là B để A truyền dữ liệu cho nó, sau đó “nói” với B
nó là A để truyền dữ liệu đến B. Mở rộng ra, nếu máy C sẽ
nhận dữ liệu trung gian đối với tất cả các máy trong cùng kết
nối đến switch. Và như vậy dữ liệu qua C sẽ bị ghi lại, tức bị
nghe lén. Các kỹ thuật áp dụng chủ yếu trong môi trường
Switch gồm ARP spoofing, MAC flooding, MAC duplicating,
…
1
2.Dưới
Phòng
tránh
nghe
trộm
đây là một số biện pháp phòng chống tổng hợp:
Thay thế thiết bị tập trung Hub bằng Switch, và giám sát chặt chẽ sự thay
đổi địa chỉ MAC (Media Access Control) của card mạng.
Áp dụng cơ chế one-time password – thay đổi password liên tục.
Mã hóa dữ liệu truyền dẫn bằng các cơ chế truyền thông dữ liệu an toàn
SSL (Secure Sockets Layer), thiết lập IPSec và mạng riêng ảo VNP (Virtual
Private Network),… Hạn chế hay thay thế các chương trình không chức
năng mã hóa dữ liệu hay mã hóa mật khẩu, như: sử dụng SSH (Secure Shell
Host) thay cho Telnet, Rlogin; dùng SFTP (secure FTP) thay vì FTP; dùng
Trillian () hay Jabber () làm chương trình
chat; dùng giao thức https thay cho http v.v…
Sử dụng các phần mềm phát hiện sự hoạt động của các chương trình nghe
lén trên mạng như AntiSniff, PromiScan, Promqry and PromqryUI,
ARPwatch, Ettercap, v.v… Riêng với Ettercap
(), chương trình này vừa dùng để nghe trộm,
nhưng cũng vừa có khả năng phát hiện nghe trộm nhờ được hỗ trợ các
plugin như arp_cop (phát hiện trạng thái ARP posioning); find_ettercap
(phát hiện các trình ettercap khác đang chạy); scan_poisoner (phát hiện
máy đang thực hiện posioning); seach_promisc (phát hiện máy đang nghe
trộm ở chế độ “hỗn tạp”),…
2
Dùng các chương trình giám sát hoạt động của mạng. Thiết lập hệ
thống phát hiện xâm nhập IDS (Intrusion Detection System) như
trình miễn phí Snort () nhằm phát hiện những
hiện tượng lạ trong mạng, trong đó có ARP spoofing, để có biện
pháp đối phó thích hợp.
Trong số giải pháp trên, sử dụng phần mềm phát hiện nghe trộm và
mã hóa dữ liệu để chống là giải pháp nhanh và thuận tiện nhất đối
với người dùng cuối. Tuy nhiên hạn chế lớn của các chương trình
này là cũng chỉ phát hiện được sau khi đã bị nghe lén – phát hiện
trong thế bị động, vì đa phần các chương trình chống đều dựa vào
việc phát hiện tình trạng Promiscuous (hỗn độn) và ARP spoofing
để cảnh báo tình trạng bị nghe trộm.
Đối với hệ thống mạng công ty, cách bảo vệ tốt nhất là ngăn chặn,
phòng ngừa ngay từ đầu bằng cách xây dựng Chính sách bảo mật
mạng (Network Security Policy). Trong đó có những chính sách
quản lý truy xuất, quản lý bảo vệ vật lý hệ thống mạng với những
quy định như: ai được phép tiếp xúc với các máy; được phép sử
dụng máy; được phép gắn thêm máy; được phép cài đặt những loại
chương trình nào, v.v… nhằm hạn chế đến mức tối đa khả năng
xâm nhập về mặt vật lý đế cài đặt các chương trình nghe lén trong
mạng. Không có giải pháp hoàn hảo để chống nghe trộm, đề phòng
trước khi xảy ra sự cố xem ra là giải pháp khả thi nhất!
2
IP spoofing attack
(Giả mạo IP tấn công)
2
Spoofing là gì?
Spoofing
là việc tạo ra các gói tin TCP / IP bằng cách sử
dụng địa chỉ IP của người khác . Router sử dụng địa chỉ IP
đích "để chuyển tiếp các gói tin qua mạng Internet, nhưng bỏ
qua địa chỉ" IP nguồn ". Địa chỉ Đó là chỉ được sử dụng bởi
các máy đích khi nó phản ứng trở lại nguồn .
Một quan niệm sai lầm phổ biến là "giả mạo IP có thể được
sử dụng để che giấu địa chỉ IP của bạn trong khi lướt Internet,
chat trên mạng, gửi e-mail, và vv. Điều này nói chung là
không đúng sự thật. Giả mạo địa chỉ IP nguồn gây ra các phản
ứng để được sai địa chỉ, có nghĩa là bạn không thể tạo ra một
kết nối mạng bình thường.
Tuy nhiên, IP Spoofing là một phần không thể thiếu của nhiều
cuộc tấn công mạng mà không cần phải nhìn thấy phản ứng
(giả mạo mù).
2
Ví dụ giả mạo
Man-in-the-middle
:gói gửi vào liên kết
giữa hai điểm kết thúc, và do đó có thể
giả vờ là một đầu của kết nối định
tuyến chuyển hướng thông tin định
tuyến từ các máy chủ gốc để lưu trữ
của hacker (đây là một dạng khác của
man-in-the trung tấn công).
Dữ liệu định tuyến :chuyển hướng các
gói tin indvidual tin tặc chủ nhà mù giả
mạo dự đoán câu trả lời từ một máy
chủ, cho phép các lệnh được gửi,
nhưng không thể nhận được phản hồi
ngay lập tức.
2
KỸ THUẬT GIẢ IP
Ý tưởng cơ bản đầu tiên là máy của kẻ tấn công(attacker) sẽ tự
biến chính mình thành một máy tin cậy.Ví dụ :
- Nếu attacker thuyết phục được một máy khác rằng nó là một
client tin cậy,thì từ đó có thể chiếm quyền truy cập host đó.Máy
tấn công cũng có thể lấy dc username và password.
- Bạn có thể bị xem là đồng phạm của các cuộc tấn công Dos hay
Ddos.Lý do là thủ phạm thực sự có thể sử dụng IP giả mạo và IP
giả mạo này vô tình trùng với IP của chính bạn
Để hiểu tấn công giả mạo IP là một cách tấn công khả thi,ta sẽ
xem xét hoạt động của IP và TCP.Tại lớp mạng (network) trong
mô hình OSI,máy tấn công có thể dễ dàng chỉnh sửa gói tin của
mình,thay đổi IP nguồn trong gói tin đó trở thành một IP tin
cậy .Tuy nhiên ,với TCP.hoạt động ở tầng truyền vận có thể có
nhiều khó khăn hơn.
25