MỞ ĐẦU1.Đặt vấn đềSong song với việc xây dựng nền tảng về công nghệ thông tin, cũng nhưphát triển các ứng dụng máy tính trong sản xuất, kinh doanh, khoa học, giáo dục, xã hội thì việc bả
Trang 1Lời cảm ơn
Để có được đồ án này, tôi xin bầy tỏ lòng biết ơn sâu sắc đến tập thể cácthầy giáo, cô giáo trường Đại học Bách khoa Hà Nội nói chung và khoa Côngnghệ thông tin nói riêng đã tận tình giảng dạy và truyền đạt cho tôi những kiếnthức và kinh nghiệm quý báu trong suốt những năm học vừa qua
Tôi xin chân thành cảm ơn thầy giáo Thạc sĩ Lương Mạnh Bá, bộ mônCông nghệ phần mềm - Khoa Công nghệ thông tin đã cho tôi nhiều ý kiến đónggóp quý báu, tận tình giúp đỡ tôi về kiến thức cũng như tài liệu trong suốt quátrình làm đồ án Nhờ sự quan tâm chỉ bảo và những đóng góp quý báu của thầy, tôimới có thể hoàn thành đồ án này
Cuối cùng, xin cảm ơn gia đình và bạn bè, những người đã ở bên tôi trongsuốt những năm học vừa qua /
Trang 2MỤC LỤC
MỞ ĐẦU
1.Đặt vấn đề………4
2.Nhiệm vụ và bố cục của đồ án……….5
CHƯƠNG 1: TỔNG QUAN VỀ MẠNG MÁY TÍNH VÀ ỨNG DỤNG WEB 7
I.MẠNG MÁY TÍNH VÀ CÁC VẤN ĐỀ LIÊN QUAN……… 8
1.Khái niệm mạng……….8
2.Kiến trúc mạng……… 9
2.1.Kiến trúc phân tầng……… 9
2.2.Kiến trúc mạng theo mô hình OSI ………10
3.Internet và họ giao thức TCP/IP……… 11
4.Các dịch vụ thông tin trên mạng……… 16
4.1.Dịch vụ tên miền - DNS (Domain Name Sevice)……… 16
4.2.Đăng nhập từ xa (Telnet)………17
4.3.Truyền tệp FTP……… 17
4.4.Thư điện tử……….17
5.Địa chỉ IP……… 18
II.ỨNG DỤNG WEB ….……… …… 24
1.Kiến trúc ứng dụng Web……… 24
1.1.World Wide Web………24
1.2.HyperText Markup Language (HTML)……… 25
1.3.HyperText Tranfer Protocol (HTTP)……… 26
2.Các vấn đề liên quan……….27
CHƯƠNG 2: CÁC VẤN ĐỀ VỀ AN NINH MẠNG, THỰC TRẠNG VÀ GIẢI PHÁP……… 32
I.VẤN ĐỀ AN NINH MẠNG HIỆN NAY… ……… ………33
1.Thực trạng về vấn đề an toàn an ninh mạng……….33
2.Những khái niệm về an ninh mạng……… 36
2.1.Đối tượng cần đảm bảo an ninh……… 36
2.2.Thế nào là đảm bảo an toàn hệ thống……….37
II.PHÂN LOẠI CÁC PHƯƠNG PHÁP TẤN CÔNG MẠNG…….………… 38
1.Thăm dò thu thập thông tin về hệ thống……… 38
2.Xâm nhập hệ thống trái phép………39
3.Giả mạo(Spoofing)……… 40
4.Tấn công gây từ chối dịch vụ………40
III.NHỮNG GIẢI PHÁP TĂNG CƯỜNG AN NINH CHO HỆ THỐNG MẠNG
1.Giải pháp an ninh mạng bằng giao thức……… 43
2.Giải pháp an ninh mạng bằng hệ thống………44
Trang 3CHƯƠNG 3: BẢO MẬT CHO CÁC ỨNG DỤNG WEB……….47
1.Các vấn đề bảo mật phía Client……… 48
2.Các vấn đề về Transport……….50
3.Các vấn đề từ phía Server……… 50
4.Các vấn đề về Web Application……….54
5.Các vấn đề từ phía lập trình………56
CHƯƠNG 4: ỨNG DỤNG CÁC KẾT QUẢ NGHIÊN CỨU……… 61
1.Lựa chọn ứng dụng……….62
2.Giải pháp……….62
3.Một số kết quả thử nghiệm……….74
TÀI LIỆU THAM KHẢO……….77
Trang 4MỞ ĐẦU1.Đặt vấn đề
Song song với việc xây dựng nền tảng về công nghệ thông tin, cũng nhưphát triển các ứng dụng máy tính trong sản xuất, kinh doanh, khoa học, giáo dục,
xã hội thì việc bảo vệ những thành quả đó là một điều không thể thiếu và thực sựcần thiết
Ngày nay, khi Internet trở thành một kho tàng thông tin khổng lồ, phục vụhữu hiệu trong sản xuất, kinh doanh, đã trở thành đối tượng cho nhiều người tấncông với các mục đích khác nhau Đôi khi cũng chỉ là để thử tài hoặc đùa bỡn vớingười khác, nhưng hậu quả của nó thì không lường hết trước được
Cùng với sự phát triển không ngừng của Internet và các dịch vụ trênInternet, số lượng các vụ tấn công trên Internet cũng ngày càng tăng theo cấp sốnhân Trong khi các phương tiện thông tin đại chúng ngày càng nhắc nhiều đếnInternet với những khả năng truy nhập thông tin dường như vô tận của nó, thì cáctài liệu chuyên môn bắt đầu đề cập nhiều đến vấn đề bảo đảm và an toàn dữ liệucho các máy tính được kết nối vào mạng Internet
Theo số liệu của CERT (Computer Emegency Response Team) số lượngcác vụ tấn công trên Internet được thông báo cho tổ chức này là ít hơn 200 vàonăm 1989, khoảng 400 vào năm 1991, khoảng 1400 vào năm 1993 và 2241 vàonăm 1994 Những con số thống kê này cho chúng ta thấy số lượng các vụ tấn côngngày càng nhiều, những vụ tấn công này nhằm vào tất cả các máy tính có mặt trênInternet, các máy tính của các công ty lớn như AT&T, IBM, các trường đại học,các cơ quan nhà nước, các tổ chức quân sự, các hệ thống ngân hàng Hơn nữa, các
vụ tấn công này chỉ như là phần nổi của tảng băng, một phần không nhỏ các vụ tấncông không được thông báo vì nhiều lý do, trong đó có thể kể đến nỗi lo bị mất uytín hoặc đơn giản những người quản trị hệ thống không hề hay biết những cuộc tấncông nhằm vào hệ thống của họ
Trang 5Không chỉ số lượng các cuộc tấn công tăng lên nhanh chóng, mà cácphương pháp tấn công cũng ngày càng được hoàn thiện Điều đó một phần cũng là
do các nhân viên quản trị hệ thống được kết nối với Internet ngày càng đề caocảnh giác Cũng theo CERT, những cuộc tấn công thời kỳ 1988-1989 chủ yếuđoán tên người sử dụng - mật khẩu (UserID-Password) hoặc sử dụng một số lỗicủa các chương trình và hệ điều hành làm vô hiệu hoá hệ thống bảo vệ, tuy nhiêncác cuộc tấn công vào thời gian gần đây bao gồm cả các thao tác như giả mạo địachỉ IP, theo dõi thông tin truyền qua mạng, chiếm các phiên làm việc từ xa
Bảo mật ứng dụng Web trong thương mại điện tử (eBusiness) là một côngviệ khó khăn và rất phức tạp Mọi vấn đề trong e-Business phải được bảo mậttrong cả mức mạng và mức ứng dụng Trong khi bảo mật mức mạng đã được quantâm bao gồm từ việc điều khiển truy cập đến việc bảo mật việc truyền dữ liệu vàviệc xác thực cũng có thể được địa chỉ hoá sử dụng các sản phẩm thương mại cósẵn, bảo mật ứng dụng ít được quan tâm hơn Ngày nay, hầu hết các Web sitethương mại điện tử có thể bị phá vỡ ở mức ứng dụng Các kỹ thuật tấn công như làthao tác với các vùng ẩn, giả mạo tham số hay mối nguy hiểm từ cookie có thể dễdàng bị khai thác, kết quả là đạt được quyền truy nhập, đánh cắp dữ liệu, thay đổigiá cả, phá huỷ hoặc làm suy yếu và có thể là cho site đó ngừng hoạt động Các lỗhổng mà cho phép các lỗi này tồn tại như là hệ quả của các thiếu sót trong thiết kế,xây dựng, và kiểm thử việc phát triển mã bên trong Việc cố gắng khắc phục tất cảcác lỗi đòi hỏi rất nhiều nhân lực làm việc liên tục để có thể kiểm tra và sửa chữacác lỗi trong ứng dụng
2.Nhiệm vụ và bố cục của đồ án
Đồ án này tập trung vào các vấn đề bảo mật cho mạng máy tính và ứng các ứng dụng Web, tổng hợp các kết quả nghiên cứu liên quan đến vấn đề an ninh cho các ứng dụng Web trong giai đoạn hiện nay, khi mà Internet đã được ứng dụng rất sâu rộng trong rất nhiều lĩnh vực khác nhau
Trang 6Các nhiệm vụ chính của đồ án như sau:
1 Tìm hiểu kiến trúc mạng máy tính, các giao thức truyền thông trên mạng
2 Tìm hiểu kiến trúc của các ứng dụng Web
3 Phân tích các lỗ hổng bảo mật trên mạng máy tính và trên ứng dụng Web
4 Xây dựng ứng dụng minh hoạ cho các vấn đề lý thuyết nghiên cứu
Trang 7II Ứng dụng Web
1.Kiến trúc ứng dụng Web 2.Các vấn đề liên quan
Trang 8I.MẠNG MÁY TÍNH VÀ CÁC VẤN ĐỀ LIÊN QUAN1.Khái niệm Mạng (Network)
Là một hệ thống liên kết các đối tượng hay con người lại với nhau Kháiniệm mạng mà chúng ta quan tâm : mạng máy tính - là một tập hợp các máy tínhđược nối với nhau bởi các đường truyền vật lý theo một kiến trúc nào đó Người tanhận thấy rằng có thể tiết kiệm rất nhiều tiền của, công sức, tài nguyên khi ápdụng các kỹ thuật mạng Do đó họ đã liên tục xây dựng thêm các mạng mới và mởrộng các mạng sẵn có cho riêng mình, và như vậy mỗi mạng ra đời thì gần như làtheo các kỹ thuật khác nhau, phương thức khác nhau, cùng các loại phần cứng,phần mềm khác nhau Hậu quả là các kỹ thuật mạng mới không tương thích vớinhau Điều này gây rất nhiều khó khăn cho các mạng dùng đặc tả khác nhau thôngtin với nhau
Một giải pháp đầu tiên cho vấn đề tạo ra các mạng là mạng cục bộ, mạngLAN LAN có thể kết nối tất cả các workstation, các thiết bị ngoại vi, các thiết bịđầu cuối, và các thiết bị khác trong một phạm vi hẹp như trong một phòng haytrong một toà nhà Tuy nhiên khi yêu cầu mô hình lớn hơn thì LAN (Local AreaNetwork) không đáp ứng được yêu cầu mặt khác yêu cầu trao đổi thông tin khôngchỉ trong nội bộ mà còn với các mạng khác là cần thiết Và như vậy, WAN (WideArea Network) ra đời, sau đó là GAN (Global Area Network) Rõ ràng việc phânchia các loại mạng ở đây là trên cơ sở khoảng cách địa lý vì vậy nó chỉ mang tínhchất tương đối
Trang 92.Kiến trúc mạng máy tính
Là cách kết nối các máy tính với nhau , tập các quy tắc, các quy ước mà tất
cả các thực thể tham gia phải tuân theo (đó chính là các giao thức)
2.1.Kiến trúc phân tầng
Mỗi hệ thống thành phần của mạng được xem như là một cấu trúc đa tầng,trong đó mỗi tầng được xây trên tầng trước nó Mục đích của mỗi tầng là để cungcấp một số dịch vụ nhất định cho tầng cao hơn
Nguyên tắc kiến trúc phân tầng :
o Số lượng tầng, chức năng các tầng của mỗi hệ thống trongmột mạng là như nhau
o Xác định mối quan hệ giữa 2 tầng kề nhau và mối quan hệgiữa 2 tầng đồng mức
Giao thức tầng N
Giao thức tầng i+1 Giao thức tầng i Giao thức tầng i-1
Giao thức tầng 1
Giao diện i+1/i Giao diện i/i-1
Đường truyền
Trang 10o Dữ liệu không truyền trực tiếp từ tầng i của hệ thống này sangtầng i của hệ thống khác (trừ tầng thấp nhất trực tiếp sử dụng đường truyền vật lý
để truyền các xâu bit từ hệ thống này sang hệ thống khác)
2.2.Kiến trúc mạng theo mô hình OSI :
Khi thiết kế kiến trúc mạng, các nhà thiết kế tự do lựa chọn kiến trúc mạngriêng cho mô hình của mình, dẫn đến tình trạng không tương thích giữa các mạng
Vì vậy mô hình OSI ra đời do tổ chức tiêu chuẩn hoá quốc tế (InternationalOrganization for Standardization – ISO) đưa ra
Mô hình OSI cũng xuất phát từ kiến trúc phân tầng trình bày ở trên, baogồm 7 tầng :
Giao thức tầng 1 Đường truyền Giao thức tầng 2 Giao thức tầng 6
Trang 11Chức năng của các tầng trong mô hình OSI :
1.Physical Truyền dòng bit qua đường truyền vật lý
2.Data Link Truyền thông tin qua liên kết vật lý bảo đảm
tin cậy
3.Network Thực hiện việc chọn đường và chuyển tiếp
thông tin, thực hiện việc kiểm soát, cắt/hợp
dữ liệu nếu cần thiết
4.Transport Thực hiện truyền dữ liệu giữa 2 đầu mút
5.Session Cung cấp phương tịên quản lý truyền thông
giữa các ứng dụng
6.Presentation Chuyển đổi cú pháp dữ liệu để đáp ứng yêu
cầu truyền dữ liệu của các ứng dụng qua môitrường OSI
7.Application Cung cấp các phương tiện để người sử dụng
có thể truy nhập vào môi trường OSI
3.Internet và họ giao thức TCP/IP(Transmission Control Protocol/Internet Protocol)
Internet ra đời gắn liền với quá trình phát triển của hệ thống các mạng nhỏhơn như ARPANet, NSFNet Về mặt địa lý, Internet đã vượt ra khỏi phạm vi nước
Mỹ (nơi phát minh ra mạng này) và trở thành một mạng toàn cầu
Họ giao thức TCP/IP: Đây là họ giao thức theo chuẩn ISO và là giao thứcphổ biến nhất hiện nay TCP/IP gồm 4 lớp giao thức, tương ứng với 7 lớp giaothức của chuẩn ISO-OSI Bốn lớp đó gồm (kể theo thứ tự từ trên xuống dưới):Application layer, Host-to-host layer, Internet layer, cuối cùng là Physical layer.TCP nằm ở lớp thứ 3 (Host-to-host layer), IP nằm ở lớp thứ 2 (Internet layer)
Application layer 4
Trang 12Host-to-host layer 3Internet layer 2Physical layer 1
Đi từ trên xuống dưới, lớp ứng dụng sẽ xử lý thông tin và ra lệnh gửi/nhậnđến lớp TCP để truyền và nhận dữ liệu
TCP phụ trách việc truyền và nhận dữ liệu TCP giúp cho lớp ứng dụng(Application layer) sử dụng lớp IP (lớp IP là vì lớp Internet chỉ có IP) một cáchtrong suốt Điều này có nghĩa là lớp ứng dụng không cần biết đến phần cứng sẽlàm việc gì, ra sao, mà chỉ cần quan tâm đến việc xử lý dữ liệu của riêng mình.TCP cũng đảm trách việc nhận đúng dữ liệu và gửi dữ liệu đó đến đúng chươngtrình cần nhận TCP còn có chức năng kiểm tra và sửa lỗi thông qua việc đồng bộhoá (synchronize) thông tin 2 đầu truyền dữ liệu và lời nhận biết(acknowledgement) từ phía nhận dữ liệu
Lớp IP đảm trách việc tìm đường tối ưu để gửi dữ liệu qua mạng và đưa dữliệu xuống cho lớp vật lý (Physical layer)
Lớp vật lý chính thức chuyển dữ liệu thành các bit và truyền dữ liệu theođường truyền vật lý
Khi dữ liệu đến thì lớp vật lý nhận dữ liệu, gộp lại thành các bit, byte vàchuyển lại cho lớp IP Đến lượt lớp IP sau khi đã kiểm tra dữ liệu là thuộc về giaothức TCP sẽ trả dữ liệu đó cho lớp Host-to-host (bao gồm TCP và UDP)
Trang 13TCP là một giao thức có tính kết nối Điều này có nghĩa là mọi kết nối đều
có sự thông tin trước Ví dụ A muốn kết nối tới B thì A phải thông báo cho B biết trước và đợi trả lời đồng ý từ B Sự thông tin này diễn ra theo 3 bước (3-way handshake) như sau:
1 A gửi thông điệp muốn kết nối tới B (SYN)
2 B gửi thông điệp đồng ý kết nối lại cho A (ACK, SYN)
3 A gửi thông điệp đã nhận được sự đồng ý lại cho B (ACK)
SYN: synchronize, đồng bộ hoá kết nối
ACK: acknowledgement, sự nhận biết
Diễn giải quá trình:
Bước 1: A gửi một SYN message tới B, thông báo cổng (port) cần kết nốitới, dung lượng đường truyền của A, khả năng gửi bao nhiêu thông điệp không cầnnhận biết (windowing, giải thích sau), và các thông tin khác
Bước 2: B nhận được thông tin từ A, nếu chấp nhận kết nối sẽ gửi trả thôngbáo đã nhận được yêu cầu kết nối từ A và chấp nhận sự kết nối, đồng thời cũnggửi thêm thông tin về B như khả năng gửi bao nhiêu thông điệp không cần nhậnbiết v.v
Bước 3: A gửi trả ACK message cho B thông báo rằng A đã nhận được.Kết nối thành công
Ngoài ra, khi muốn chấm dứt kết nối, bốn bước sau sẽ được thực hiện:
1 A gửi tín hiệu chấm dứt kết nối (SYN)
2 B nhận tín hiệu và gửi trả tín hiệu cho biết đã nhận (ACK)
3 B gửi tín hiệu cho Application layer thông báo kết nối sẽ bị chấm dứt đồngthời gửi trả cho A tín hiệu thông báo đồng ý chấm dứt (SYN)
A gửi lại cho B tín hiệu cho biết A đã nhận được thông điệp từ B (ACK)
Trang 14TCP có tính phát hiện lỗi vì mọi thông điệp gửi theo TCP đều được kiểm trathông qua một số nguyên 32 bit cho biết giá trị CRC (Cyclic Redundant Check)của thông điệp được gửi Bên gửi sẽ tính giá trị CRC và gửi kèm trong thông điệp.Bên nhận sẽ tính lại giá trị đó và so sánh với giá trị do bên gửi gửi đi Nếu khôngđúng có nghĩa là đã có sự sai sót xảy ra TCP có tính sửa lỗi vì khi phát hiện ra saisót, bên nhận sẽ gửi thông điệp báo sai tới bên gửi, đề nghị gửi lại thông điệp bịsai.
Không phải sau mỗi một thông điệp được gửi đi thì đều có một thông điệpthông báo đã nhận được từ bên nhận gửi trả về Có thể sau 10 thông điệp được gửi
đi thì mới có một thông điệp thông báo nhận được gửi trả Đó gọi là khả năng gửikhông cần nhận biết
Ví dụ: A gửi cho B 6 lượt, mỗi lượt 1000 bytes, khả năng gửi không cần nhậnbiết của A là 3, B nhận được thông điệp đầu hoàn chỉnh, thông điệp thứ 2 bị sai,các thông điệp sau bình thường Quá trình đó sẽ diễn ra như sau:
1 A gửi cho B 3 thông điệp lần lượt
2 B gửi lại cho A ACK message với giá trị 2000 Nếu B nhận được tất cả cácthông điệp hoàn chỉnh, B sẽ gửi lại cho A một ACK message với giá trị
4000 (là giá trị kế tiếp mà A có thể gửi)
3 A gửi lại cho B message thứ 2 (từ vị trí 2000 đến vị trí 2999) và chờ Lúcnày A hy vọng rằng B nhận được thông điệp thứ nhất và thông điệp thứ bahoàn chỉnh, A sẽ không phải gửi lại toàn bộ các thông điệp từ chỗ bị sai màchỉ gửi thông điệp bị sai
4 B gửi lại cho A ACK message với giá trị 4000 cho biết B nhận được 3thông điệp đầu hoàn chỉnh và A có thể gửi tiếp các thông điệp sau, bắt đầu
từ vị trí 4000
5 A gửi cho B thông điệp thứ 4, 5 và 6
6 B gửi trả ACK message với giá trị 7000
Trang 15Giả sử trong khi gửi thông điệp 4, 5, 6, A chưa kịp gửi thông điệp thứ 5 thì đãnhận được ACK message từ B với giá trị 5000 thì lúc đó window của A sẽ đượcsửa thành giá trị 3 Nếu A đã gửi thông điệp 4, 5 và nhận được ACK message của
B với giá trị 5000 thì window của A được sửa thành 2, A có thể gửi tiếp 2 thôngđiệp 6 và 7 Có nghĩa là tối đa A có thể gửi ‘window’ lần số thông điệp Mỗi lầngửi, giá trị window giảm cho đến khi bằng 0 Khi nhận được ACK message, giá trị
đó sẽ thay đổi, tăng lên cho đến khi số thông điệp đã gửi đi mà chưa nhận đượcACK message bằng giá trị window chính)
Trong quá trình truyền tín hiệu như vậy, nếu bên B cảm thấy có thể nhận đượctín hiệu nhanh hơn thì bên B sẽ gửi SYN message lại cho A, thông báo muốn tănggiá trị window lên (giảm thời gian và số ACK message được gửi đi) Bên A sẽ gửitrả ACK message và tự tăng giá trị window lên theo yêu cầu của bên B Ngược lại,
B sẽ đề nghị A giảm giá trị window xuống Ngoài ra, số lượng thông tin được gửi
đi trong mỗi thông điệp cũng có thể thay đổi tuỳ vào đường truyền Với TCP,lượng thông tin này được đo bằng đơn vị byte MTU (maximum transmission unit)
là số transmission unit (đơn vị truyền) (với TCP được tính là byte) tối đa mỗithông điệp có thể chứa
Nói tóm lại, sự liên lạc bằng TCP có tính phát hiện và sửa lỗi, cũng như có sựcan thiệp một cách tự động của lớp TCP phụ thuộc vào điều kiện đường truyền
TCP phân biệt các thông điệp gửi cho chương trình này và thông điệp gửi chochương trình khác thông qua socket Socket là một khái niệm để chỉ 2 giá trị cầnthiết khi khởi tạo kết nối Đó là địa chỉ IP (IP address) của máy và cổng (port) Giả
sử B chạy một server, nhận kết nối ở cổng 80, có địa chỉ IP là 192.168.1.89 A làmáy khách, chạy 2 chương trình client để kết nối tới B, A có địa chỉ là192.168.1.93 Client đầu tiên dùng port 1024, client thứ 2 dùng port 1025 Khi Bnhận tín hiệu kết nối từ client thứ 1, B hiểu rằng tín hiệu đó từ địa chỉ IP192.168.1.93 và từ port 1024 Tương tự, B hiểu client thứ 2 từ socket khác Như
Trang 16vậy, khi B trả lời A, B sẽ gửi thông tin tới socket tương ứng với client 1 hay 2 của
A Khi A gửi cho B, B cũng biết thông tin đó từ client 1 hay 2 gửi cho mình thôngqua việc nhận biết thông tin đó xuất phát từ socket của client 1 hay 2
4.Các dịch vụ thông tin trên Internet
4.1 Dịch vụ tên miền (DNS-Domain Name Server)
Là việc quản lý hệ thống tên thông qua địa chỉ IP trên Internet Hệ thốngnày quản lý các tên bằng cách quản lý theo phân cấp cho các nhóm tên Mỗi cấptrong hệ thống được gọi là một miền (domain), các miền được tách nhau bởi dấuchấm, số lượng domain trong một tên có thể thay đổi nhưng nhiều nhất là 5domain
Việc ánh xạ địa chỉ IP và các tên miền được thực hiện thông qua NameResolver và Name Server Name Resolver được cài trên Workstation có nhiệm vụgửi yêu cầu ánh xạ địa chỉ (host name to IP address) tới Name Server (NameServer được cài đặt trên Server) Nếu host name được tìm thấy thì Name Server sẽgửi địa chỉ IP tương ứng về workstation và sau đó workstation sẽ thử liên kết vớihost bằng cách dùng IP chứ không dùng tên nữa)
4.2 Đăng nhập từ xa Telnet
Là hình thức truy cập vào máy từ xa khi có thẩm quyền và làm việc với hệthống như là trạm cuối nối trực tiếp với trạm từ xa đó Để khởi động, chúng ta
thực hiện lệnh : telnet <domain name or IP address> từ MS Dos prompt
Telnet hỗ trợ cho quá trình thực hiện thông qua một tập lệnh điều khiển
Trang 174.3 Truyền tệp FTP-File Tranfer Protocol
FTP cho phép chuyển các tệp từ trạm này sang trạm khác, bất kể các trạm
đó ở đâu Thực hiện lệnh :
ftp <domain name or IP address>
Ftp sẽ thiết lập liên kết với trạm từ xa và sau đó phải đăng nhập hệ thốngvới username/password
Ftp cũng hỗ trợ cho quá trình thao tác với một tập lệnh điều khiển
4.4 Thư điện tử (Electronic Mail)
Đây là một trong những dịch vụ phổ biến nhất trên Internet hiện nay Tuynhiên đây không phải là một dịch vụ đầu cuối mà đây là một dịch vụ kiểu “lưu vàchuyển tiếp”
Mỗi người dùng đều phải kết nối với một Mail Server gần nhất, Mail servernày có nhiệm vụ chuyển thư đến đích hoặc Mail Server trung gian khác Thư sẽchuyển đến Mail Server của người nhận và được lưu tại đó, khi người nhận thiếtlập một cuộc kết nối tới Mail Server đó thì thư sẽ được chuyển về máy ngườinhận, nếu không thư vẫn được giữ lại Server đó để đảm bảo không bị mất thư
Giao thức truyền thống sử dụng cho hệ thống thư điện tử trên Internet làSMTP (Simple Mail Transfer Protocol)
5.Địa chỉ IP
5.1 Sơ qua về địa chỉ
Người sử dụng muốn truy cập vào dữ liệu trên mạng mà dữ liệu này như một “đám mây” rộng lớn và do đó để có thể thông tin cho bất kỳ một người dùng nào kết nối vào “đám mây” đó mà không đòi hỏi bất kỳ kiến thức nào về những gì bên trong mạng “đám mây” đó Địa chỉ được sử dụng để truyền trực tiếp từ một
Trang 18điểm tới một hoặc nhiều điểm khác Địa chỉ khác tên ở chỗ, địa chỉ từ một cấu trúc
dữ liệu trong một hệ thống truyền thông mà xác định vị trí một cách vật lý hoặc logic của một thực thể, thiết bị hoặc điểm truy nhập đơn
o Các mức của địa chỉ
Địa chỉ có thể được đánh một cách ngang hàng hoặc theo một lược đồ cóthứ bậc Chẳng hạn, địa chỉ IP được đánh tuỳ ý trong một lược đồ của các lớp địachỉ
o Các loại địa chỉ
Bảng dưới đây cho ta biết một số loại :
None
12 bits
14 BCD digits2octets(4 for ITU)
16 bits
48 bitsIndividual 60 bitsGroup bit
Trang 19nhất một số, trên Internet thì mỗi người dùng hoặc mỗi “host” được gán duy nhấtmột địa chỉ IP.
5.2 Đánh địa chỉ IP
Một mạng có thể có một số lượng lớn các host, nếu mỗi cầu nối trong mộtmạng cần biết vị trí của các host thì bảng định tuyến có thể trở thành khá lớn Mộtkhái niệm khoá sử dụng trong định tuyến IP được gọi là “subnetting” Subnettingcho phép một không gian địa chỉ host có thể bị phá vỡ trong nhiều mạng phụ bằngviệc tạo mặt nạ các bits trong vùng địa chỉ của host
5.2.1 Kích thước của địa chỉ IP
Một địa chỉ IP là một số nguyên 32-bit Số nguyên này được chia làm 4 sốnguyên mỗi số nguyên có chiều dài 8 bit Mỗi số nguyên được phân cách nhau bởidấu chấm (.) Ví dụ 198.62.193.32 là một địa chỉ đơn Mỗi số nguyên 8-bits này cóthể biểu diễn bởi một số thập phân từ 0 đến 255, hoặc trong hệ 16 là 0 đến FF,hoặc trong hệ nhị phân là từ 00000000 đến 11111111 Do đó một địa chỉ IP ở cácdạng A.B.C.D có kiến trúc như sau:
o Nhị phân: 00000000.00000000.00000000.00000000 đến11111111.11111111.11111111.11111111 or
Trang 20- 7 bit tiếp theo của N dành cho địa chỉ network nên có tối đa 27 – 2 mạng
- 24 bit còn lại dành cho địa chỉ host nên mỗi mạng thuộc lớp A sẽ có tối
đa 224 – 2 máy
- Nguyên nhân của việc trừ 2 trong cách tính số mạng và số máy là đều
bỏ đi địa chỉ đầu tiên và địa chỉ cuối cùng
Lớp B:
- Format: N.N.H.H
- Hai bit đầu 10
- 14 bit tiếp theo dành cho địa chỉ mạng, nên có tối đa 214 mạng
- 16 bit còn lại dành cho địa chỉ host, nên mỗi mạng thuộc lớp B sẽ có tối
đa 216-2 máy
Lớp C:
- Format: N.N.N.H
- Ba bit đầu 110
- 21 bit tiếp theo dành cho địa chỉ mạng, nên có tối đa 221-2 mạng
- 8 bit còn lại dành cho địa chỉ host, nên mỗi mạng thuộc lớp C sẽ có tối
Như vậy, để phân biệt xem địa chỉ IP thuộc lớp nào thì chúng ta có thể căn
cứ vào byte đầu tiên của địa chỉ IP Cụ thể :
Lớp Byte đầu tiên của địa chỉ IP
Trang 21Có 4 lớp của địa chỉ IP, đó là A, B, C, D Các lớp hay được sử dụng là A, B
và C Mặt nạ mạng chia số lượng các nút mạng từ số các host Các mặt nạ này được biểu diễn như sau:
Lớp A = FF.0.0.0Lớp B = FF.FF.0.0Lớp C = FF.FF.FF.0Lớp A có cấu trúc địa chỉ cho phép 256 mạng, mỗi mạng nhiều hơn 4 tỉ nútLớp B cho phép đánh được 65536 mạng, mỗi mạng với 65536 nút
Lớp C cho phép đánh được 4 tỉ mạng, mỗi mạng 256 nút
Địa chỉ lớp A thường được đánh cho mạng của các hãng lớn hoặc cho các nhà cung cấp dịch vụ như AT&T
Địa chỉ lớp B thường được đánh cho các mạng có kích thước trung bình và địa chỉ lớp C thường được đánh cho các mạng nhỏ hơn
Ví dụ địa chỉ lớp C 198.62.193.0-255 có thể có một mặt nạ là FF.FF.FF.0
5.2.3 Giao thức địa chỉ IP
Có một số phương thức biểu diễn lược đồ một địa chỉ IP Với giao thức matrận, mỗi người dùng (workstation, host, server) sẽ được gán một địa chỉ IP đơn.Truyền thông sẽ được thực hiện từ điểm tới điểm Với các mạng lớn hơn, việcquản lý địa chỉ là giao thức theo thứ bậc Địa chỉ IP được gán trong một khối dựa
Trang 22trên các vùng khác nhau Các mặt nạ này cung cấp một phương thức phân đoạn vàgiảm số lượng các địa chỉ mạng mà các thiết bị mạng cần biết.
Ví dụ, địa chỉ ma trận IP sẽ tương tự như cách gửi mail, ở đó người gửi sẽđặt một tên, địa chỉ, thành phố của người nào đó trên lá thư Mỗi bưu điện sẽchuyển lá thư dọc theo thành phố nơi người nhận được xác định thông qua tên vàđịa chỉ
5.3.4 Địa chỉ dựa trên giao thức
Các cách của giao thức cho mạng được xác định và chúng ta hiểu rằng việcthiết lập địa chỉ IP, nó phải được xác định xem địa chỉ được đánh như thế nào tạimỗi site cho mỗi lớp theo thứ bậc Ví dụ:
o Mỗi trạm làm việc nhận 1 host địa chỉ
o Mỗi đoạn (vùng) của LAN nhận 64 host địa chỉ
o Mỗi floor nhận 256 host địa chỉ
o Mỗi toà nhà nhận 1024 host địa chỉ
Mỗi số lượng này chỉ ra một số ví dụ của việc đánh địa chỉ cho các hosttrong mỗi đơn vị
5.2.4 Mặt nạ mạng con
Khi chúng ta có một mặt nạ mạng xác định, chúng ta sẽ sử dụng lớp A, lớp
B hoặc lớp C và quyết định số lượng mạng và host yêu cầu Mặt nạ mạng con chiacác mặt nạ mạng lớp A, B hoặc C thành nhiều host và các mạng con Mặt nạ mạngcon được sử dụng để liên kết với mặt nạ mạng như sau:
Lấy địa chỉ lớp B 108.0.0.0 Phần địa chỉ mạng là 108.0 Mặt nạ mạng là255.255.0.0 xác định 2 vị trí 0.0 đến 255.255 Tức là chúng ta có thể xác định đến
255 mạng và 255 host, tổng số là 255x255=65534 địa chỉ (loại trừ 2 địa chỉ 0 và65535)
Bây giờ giả sử chúng ta xây dựng một mạng với 4 site và có 10 host chomỗi site Địa chỉ lớp C mà chúng ta được dùng là 198.62.193.0, chúng ta sử dụng
Trang 23240 mặt nạ mạng con để chia mặt nạ lớp C, điều này cho phép chúng ta có 14mạng với 14 host mỗi mạng
5.2.5 Thay đổi chiều dài của mặt nạ mạng
Thay đổi chiều dài của mặt nạ mạng được sử dụng cho việc phân chia cácmạng con với kích thước khác nhau để sử dụng địa chỉ hiệu quả hơn Chẳng hạn,việc thay đổi chiều dài của mặt nạ mạng sẽ phân chia địa chỉ lớp C thành nhiềumảnh khác nhau
II.ỨNG DỤNG WEB (WEB APPLICATION)
Kiến trúc của ứng dụng Web hầu như gần giống mô hình máy tính trungtâm, với nhiều máy khách(client) kết nối với máy chủ(server) Client sẽ thực hiện
Trang 24một số công việc ở phía người dùng như trình diễn dữ liệu do server cung cấp,phần lớn các công việc là do server đảm nhận.
Về căn bản, kiến trúc của ứng dụng Web dựa trên công nghệ phổ biến củaWorld Wide Web (WWW), Hypertext Markup Language (HTML) và phương tiệnchuyển tải là Hypertext Transfer Protocol (HTTP)
Sau đây chúng ta sẽ xem xét một số khái niệm cơ bản liên quan đến WebApp
1.Kiến trúc ứng dụng Web
1.1.World Wide Web
Thông tin liên lạc là một yêu cầu cần thiết trong mọi thời đại Từ xa xưa,cha ông ta đã phát minh ra rất nhiều hình thức trao đổi thông tin, vận chuyển tintức từ nơi này đến nơi khác Hình thức thì vô cùng đa dạng và phong phú Từtruyền miệng, cáo thị (ngày nay thường lá các thông báo) đến cách vận chuyểnthông tin bằng đường bộ, hay chim bồ câu Càng ngày thì các phương thức truyềntin này càng phát triển nhanh chóng, sự ra đời của radio, TV, điện thoại … đã giúpcho việc thông tin liên lạc được hữu hiệu và nhanh chóng
Sự phát minh ra máy vi tính và đặc biệt là mạng thông tin toàn cầu (Internet)thực sự mở ra một kỷ nguyên mới cho thông tin liên lạc Việc trao đổi thông tinvới nhau giữa những người trong mạng được diễn ra một cách nhanh chóng vớikhối lượng thông tin khổng lồ
Đến đầu những năm 1990, khi Internet đã phổ biến rộng rãi thì một công nghệmới là WWW (Word Wide Web) ra đời đã thay đổi tất cả và mang đến hàng triệungười dùng mới với yêu cầu về người dùng ở mức thấp hơn WWW khiến cho một
số site xác lập một số thông tin có chứa văn bản, âm thanh, hình ảnh liên kếtnhúng vào các trang khác với việc nhấp trên một liên kết , người dùng đột nhiênđến được trang mà nó trỏ tới Sự lớn mạnh và phổ biến sâu rộng của WWW phầnlớn là do sự dễ dàng trong sử dụng và rẻ tiền của nó
Cùng với sự ra đời của WWW, một khái niệm khác cũng ra đời đó là Webbrowser Web browser (hay còn gọi là trình duyệt Web) có thể coi như là một
Trang 25công cụ dùng để đọc và hiển thị các tài liệu văn bản cũng như các tài liệu đaphương tiện khác :
Khi người sử dụng dùng Web browser để tìm tin tức thì trình duyệt sẽ móc nốivào một trang gốc của máy phục vụ được định nghĩa sẵn hoặc có thể móc nốithẳng tới máy phục vụ khác thông qua URL(Universal Resource Locator) Cáchthức móc nối như sau:
http://host/path
Trong đó : host tức là tên của máy phục vụ, path là nơi chứa trang tài liệu màngười dùng muốn xem
Địa chỉ URL thường được bắt đầu bằng www và tên vùng (domain name) của
địa chỉ cần trỏ tới Từ đây ta có khái niệm domain name – là đại diện cho một dãy
các con số, xác định địa chỉ của máy tính hoặc nơi chứa tài liệu mà người dùngyêu cầu
1.2 Hypertext Markup Language (HTML)
Là ngôn ngữ đánh dấu (markup language), HTML được định nghĩa dựa trêncác thẻ (tags) để định dạng các thành phần của tài liệu cần trình bày Các thẻHTML được giới hạn trong cặp dấu <> Đây là một ví dụ đơn giản về cấu trúc củatài liệu dựa trên HTML :
<HTML>
<H1> This is a First Level Header>/H1>
<p>This is the paragraph.</p>
</HTML>
Khi hiển thị trên Web brower thì các thẻ sẽ được dịch và các thành phầncủa tài liệu sẽ được định dạng dựa trên các thẻ và kết quả như sau:
Trang 26Trong ví dụ trên, đoạn văn bản nằm trong cặp dấu ngoặc <H1></H1> đượcđịnh dạng với kiểu chữ to và đậm, trong khi với cặp thẻ <p></p> thích hợp cho
phần thân tài liệu.Do đó có thể nói rằng HTML như là bộ máy trình diễn dữ liệu
(data presentation engine)
1.3 Hypertext Transfer Protocol (HTTP)
HTTP được xem như là phương tiện truyền thông giữa client và server.Những hoạt động cơ bản thông qua cổng TCP 80, tuy nhiên nó có thể sử dụng trênbất kỳ cổng nào mà chưa được dùng đến HTTP xác định một cơ cấu để yêu cầutài nguyên và server sẽ đáp ứng yêu cầu nếu có thể Tài nguyên được gọi làUniform Resource Identifiers (URIs) và chúng có thể được phân loại từ dạng vănbản tĩnh tới những nội dung có chứa hình ảnh động Dưới đây là một ví dụ đơngiản của một yêu cầu lấy file thông qua GET HTTP và server đáp ứng được
Chúng ta sẽ xem xét thông qua công cụ netcat:
Trang 27C:\>nc –vv www.test.com 80
www.test.com [10.124.72.30] 80 (http) open
GET /test.html HTTP/1.0
HTTP /1.1 200 OK
Date: Mon, 04 Feb 2002 01:33:20 GMT
Server: Appache/1.3.22 (Unix)
Cuối cùng, các hoạt động của HTTP thông qua cổng TCP, mặc dù nó có thểthực hiện trên bất kỳ cổng nào, nhưng hầu như tất cả các Web browser đều tựđộng cố gắng kết nối tới cổng 80 TCP trước Trên thực tế mọi Web server nghe tất
cả các cổng mà nó có thể Đây có thể là một sự phân nhánh cho những mạng rấtlớn mà sẽ được đặt sau những thiết bị gọi là tường lửa(firewall), là các thiết bị hỗtrợ cho việc bảo vệ chúng ta khỏi những vấn đề không tốt từ bên ngoài Firewall
và các thiết bị bảo mật mạng khác sẽ ngăn chặn khỏi sự tấn công Web khi cấuhình chấp nhận TCP 80 qua một hoặc nhiều server
2.Các vấn đề liên quan
2.1 Quản lý trạng thái : Cookies
Như chúng ta biết bản thân HTTP là không có trạng thái (stateless), nhưngmột số cơ chế có thể nhận được bằng cách tạo ra nó như là một giao thức có trạng
thái Ngày nay, cơ chế sử dụng dữ liệu hay được dùng là cookies Cookies có thể
được hiểu như là các thông báo mà server có thể gửi tới các client cho phép clienttruy cập Web site với điều kiện chúng thể hiện thông báo với mỗi yêu cầu Chúng
có thể được lưu tạm thời trong bộ nhớ hoặc cố định trên đĩa Cookies không thực
Trang 28sự hoàn hảo và có nhiều vấn đề liên quan đến bảo mật và liên kết riêng với việc sửdụng chúng, tuy nhiên chưa có một cơ chế nào có thể được chấp nhận rộng rãi nhưCookies.
2.2 Sự thẩm định quyền (Authentication)
Trong hầu hết các ứng dụng Web, việc lưu lại các vết trạng thái của ngườidùng là hết sức quan trọng và cần thiết để đảm bảo cho việc thẩm định quyền ởcác mức khác nhau của ứng dụng HTTP có thể nhúng một vài giao thức xác địnhthẩm quyền khác nhau vào trong ứng dụng Web để đảm bảo tính đúng đắn củangười dùng Một số giao thức xác nhận thẩm quyền như:
Basic : usernamr/password phải rõ ràng, được mã dựa trên chuẩnBase-64
Form-based : một form được sử dụng để nhập usernamepassword (hoặc các thẩm quyền khác) và được xử lý qua cácmệnh đề logic Điển hình là việc sử dụng Cookies để duy trìtrạng thái “logged on”
NTLM : Giao thức xác nhận thẩm quyền của Microsoft biểu diễntrong tiêu đề của HTTP request/response
Negotiate : là một giao thức mới của Microsoft mà chấp nhận bất
kỳ loại xác nhận đặc biệt nào
Client-side Certificates : mặc dù ít được sử dụng, nhưngSSL/TLS là một sự lựa chọn cho việc kiểm tra thẩm quyền ngườidùng
Microsoft Passport : là một dịch vụ single-sign-in(SSI) củaMicrosof cho phép Web site xác nhận người dùng dựa trên tưcách hội viên trong dịch vụ Passport
2.3 Một số giao thức khác
HTTP là một giao thức phổ dụng, chúng ta không thể phủ nhận vai trò của
nó, tuy nhiên, nó cũng không phải luôn luôn là phương án tối ưu cho việc phát
Trang 29triển ứng dụng Web Một ví dụ đơn giản, server sẽ phải làm như thế nào nếu nộidung của yêu cầu không dựa trên ASCII Và định dạng kiểu Multipart InternetMail Extensions(MINE) được sử dụng để truyền tải các file nhị phân qua HTTP.
Tất nhiên, ứng dụng Web cũng có thể sử dụng bất kỳ một giao thức khácphổ biến trên Internet như là e-mail (SMTP) hay giao thức truyền tải file (FTP).Nhiều ứng dụng Web dựa trên việc nhúng các liên kết e-mail để giao tiếp vớiclient
Một giao thức mới là Web Distributed Authoring and Versioning(WebDAV), WebDAV được định nghĩa dựa trên RFC2518
2.4 Web Client
Ứng dụng Web phía client chính là Web browser Nó giao tiếp qua HTTP(hoặc một trong số các giao thức khác) và trả lại các trang HTML, sự kết hợp giữaHTML và HTTP để biểu diễn dữ liệu được xử lý bởi Web server
Web browser có thể giao tiếp với các giao thức khác nếu cần Ví dụ, nó cóthể truyền thông với Web server thông qua SSL nếu server đó sử dụng chứng thựcđược gán bởi một trong các quyền root Mặc dù đã có những lớp bảo vệ có sẵntrong những Web browser hiện nay, nhưng nó vẫn tồn tại những lỗ hổng màhacker có thể khai thác được
2.5 Web Server
Web server là một dịch vụ HTTP nhận yêu cầu từ client, thực hiện phântích cú pháp cơ bản từ yêu cầu để chắc chắn tài nguyên đó tồn tại và sau đóchuyển cho ứng dụng Web xử lý, khi có kết quả , Web server sẽ trả về cho client.Hiện tại có một số Web server thông dụng như Microsoft IIS, Apache,AOL/Netscape’s Enterprise Server hay Sun’s iPlanet
Trang 302.6 Web Application (Web App.)
Khái niệm kiến trúc “n-tier” : lớp Web App có thể bao gồm nhiều lớp khácnhau Thông thường đó là kiến trúc 3 lớp, bao gồm : lớp presentation (trình diễn),lớp logic và lớp data (dữ liệu)
Lớp presentation cung cấp một phương tiện cho việc nhập dữ liệu hoặc hiểnthị kết quả Lớp logic nhận đầu vào từ lớp presentation và thực hiện một số côngviệc, sau đó chuyển kết quả trở lại lớp presentation Cuối cùng lớp data cung cấpviệc lưu trữ thông tin một cách ổn định để có thể truy vấn hoặc cập nhật từ lớplogic Để hiểu cơ chế làm việc của Web App như thế nào, chúng ta xem xét một ví
dụ đơn giản, một Web App thực hiện việc tìm kiếm các file trên ổ cứng của Webserver mà nội dung có chứa đoạn văn bản do người dùng nhập vào và hiển thị kếtquả
Lớp presentation bao gồm một form với một trường cho phép nhập mộtchuỗi
Trang 31Lớp logic có thể là một chương trình nhận chuỗi vừa vào, kiểm tra xem cóchứa những ký tự nguy hiểm không, thực hiện việc kết nối đến cơ sở dữ liệu, sau
đó thực hiện việc truy vấn sử dụng chuỗi vừa nhập
Lớp data có thể bao gồm cơ sở dữ liệu mà trong đó có chứa các chỉ mụccủa filename, và gửi kết quả này về client
2.7 Phân biệt giữa Web Server và Web App.
Đơn giản chúng ta có thể hiểu rằng, Web server là một dịch vụ Web, trong khi Web App lại là một ứng dụng chạy trên dịch vụ này
Trang 32Chương 2
CÁC VẤN ĐỀ VỀ AN NINH MẠNG
I Vấn đề an toàn an ninh mạng hiện nay.
1.Thực trạng về vấn đề an ninh mạng 2.Những khái niệm về an ninh mạng
II Phân loại những phương pháp tấn công vào hệ
Trang 33I.VẤN ĐỀ AN NINH MẠNG HIỆN NAY
1.Thực trạng về vấn đề an toàn an ninh mạng
Trong vài năm trở lại đây vấn đề an toàn trên mạng đã thu hút rất nhiều sựquan tâm Sự hỗn độn và thay đổi chóng mặt của internet là yếu tố chính làm chongười dùng và các doanh nghiệp phải tự mình tăng cường khả năng bảo mật chomáy tính và hệ thống mạng của họ Cách đây 10 năm, những người đã cài đặt các
hệ thống máy chủ có rất ít hiểu biết và kỹ năng về bảo mật Và ngay cả hiện nay,trong số những người vẫn thường cài đặt hệ thống máy chủ vẫn còn thiếu nhiềukinh nghiệm về bảo mật.Chúng ta luôn được trấn an bởi những thông báo từ cáccông ty lớn về các phương pháp bảo mật của họ Nhưng không thể chối cãi được
sự thật là hàng tháng chúng ta lại có thêm những thông tin rằng hacker lại đột nhậpvào đâu đó và lấy cắp thông tin
Nhưng tại sao chúng ta lại phải quan tâm đến vấn đề đó Chưa nói đến mức
độ thiệt hại nghiêm trọng khi hacker gây ra như việc phá hoại (deface) các trangweb, đánh cắp các thông tin bí mật của công ty hay đột nhập vào các hệ thống củachính phủ, mà đơn đơn giản hơn hãy để ý đến các lý do cá nhân mà chúng ta vẫnphải quan tâm
Thử đặt một câu hỏi: Bạn nghĩ thế nào về giá trị của các thông tin mà bạncó? Danh sách đối tác, email, số credit card hay các kế hoạch kinh doanh, báo cáotài chính có ý nghĩa như thế nào đối với bạn ?
Bạn có chắc là chúng ta cần đến các biện pháp bảo mật cho hệ thống của mình không?
Vấn đề bảo mật có thể chia làm các nhóm sau:
1 Mạng và máy chủ bị cấu hình sai
2 Hệ điều hành và ứng dụng bị lỗi
3 Nhà cung cấp thiếu trách nhiệm
4 Thiếu những cá nhân đáng tin tưởng
1.1.Cấu hình sai máy chủ:
Trang 34Đây là nguyên nhân tạo ra đa phần các lỗ hổng bảo mật Rất nhiều khingười quản trị không nhận biết được các dịch vụ đang chạy trên máy chủ của họ
Tương tự như vậy đối với hệ điều hành và ứng dụng Sự thay đổi nhanhchóng của công nghệ làm cho chỉ một số ít người có thể theo kịp Và như thế thìcác máy tính nối mạng hiển nhiên là đang đối mặt với nguy cơ bị xâm nhập
1.2.Lỗi trong các ứng dụng:
Những lỗi nảy sinh khi lập trình là một yếu tố làm cho ứng dụng vượt rangoài tầm kiểm soát của người sử dụng Ví dụ như những lỗi của MS IIS haytrong ISC BIND hay SSH và rất nhiều lỗi khác nữa trong các hệ thống của Sun.Đơn giản hơn nữa là lỗi của IE mà bạn có thể trở thành mục tiêu của virus, hãynhớ tới "I LOVE YOU" hay "Melissa"
1.3.Những nhà cung cấp thiếu trách nhiêm:
Rất nhiều nhà cung cấp không quan tâm đến điều gì xảy ra trong chượngtrình của họ Việc đảm bảo chất lượng (QA) trong ngành công nghiệp phần mềmrất yếu Để tiết kiệm chi phí thì người ta thường không áp dụng những tiêu chuẩn
về qui trình sản xuất Thế thì ai phải chịu hậu quả này, chắc chắn không ai khác đóchính là các hệ thống mạng và máy tính bị phá hoại của bạn Trong trưòng hợp cácbản sửa lỗi bị chậm chễ cũng có thể làm hại đến công tác bảo mật Các lỗ hổng bịphát hiện sẽ nhanh chóng được công bố rộng rãi Từ các mail list hay diễn đàn vềhacker là môi trường rất tốt để chia sẻ các thông tin mới nhất, trong khi đó với sựchậm chạp của nhà cung cấp thì các hệ thống đã bị phá hoại chỉ sau một đêm 1.4.Tư vấn không đủ trình độ:
Nếu như tất cả các vấn đề ở trên đều đựơc giải quyết thì bạn doanh nghiệplại vấp phải một vấn đề khác là thiếu những cá nhân đáng tin tưởng Có thể thuthập một đội ngũ kỹ sư, quản trị và lập trình viên đủ trình độ, nhưng không dễ tìm
ra các chuyên gia bảo mật giỏi
Không thể đào tạo đội ngũ chuyên gia bảo mật trong vài ngày Đó là mộtquá trình rất dài, phải bắt đầu từ các kiến thức cơ bản như TCP/IP, phần cứng, hệ
Trang 35điều hành, mã hoá và lập trình Nhưng như vậy mới chỉ đủ cho các hiểu biết sơđẳng về bảo mật.
Việc thiếu nhân sự làm cho các chương trình về bảo mật trong doanhnghiệp bị sao lãng hoặc đi sai đường Không có các chính sách về bảo mật hoặcnếu có thì không được hoàn chỉnh Chính điều đó làm cho hệ thống của bạn bị tổnthương trước các cuộc tấn công
Hiện tại vấn đề bảo mật và an ninh mạng trên thế giới nói chung và Việt Namnói riêng đang là vấn đề hết sức nóng bỏng Số vụ tấn công gây ra bởi các hacker
và virus máy tính ngày càng tăng và gây thiệt hại ngày càng lớn về mặt kinh tế,làm suy giảm uy tín của các nhà cung cấp dịch vụ, các công ty phần mềm, Tuyvậy, vấn đề an ninh và bảo mật vẫn chưa được sự quan tâm rộng rãi của đa số mọingười trong cộng đồng Do thiếu quan tâm hoặc thiếu hiểu biết, đa số mọi ngườichẳng bao giờ chịu theo dõi các bản tin an ninh để cập nhật các lỗ hổng phần mềmmới được phát hiện, ít cập nhật chương trình chống virus, không dùng firewall,vẫn mở các mail mà file đính kèm là virus hay trojan với các tiêu đề gây tò mò Và
sự thiếu quan tâm ấy đã khiến cho tình hình trở nên xấu đi, điển hình là các đợtbùng phát virus chỉ do một lỗi bảo mật đã được công bố bị hacker hay virus máytính lợi dụng để tấn công
Ví dụ điển hình nhất trong năm 2003 vừa qua là các loại sâu SQL Slammer,Blaster, và Nachi, đã "đánh sập" hàng nghìn máy chủ và máy trạm trên thế giới
Mà nguyên nhân chính của sự lây lan rộng của virus là do sự thiếu quan tâm cậpnhật các bản patch ( miếng vá ) để sửa các lỗi gây ra lỗ hổng an ninh của phầnmềm
Có thể thấy được thực trạng tình hình an ninh mạng hiện nay qua biểu đồ, qua các
số liệu về số vụ tấn công xâm nhập trên toàn thế giới được báo cáo lên tổ chứcCERT ( Computer Emerency Response Team - Tổ chức cứu hộ các sự cố khẩn cấp
về máy tính ): ( nguồn: http://www.cert.org/ )
Trang 36Hình 2.1: Biểu đồ về sự gia tăng số vụ tấn công và xâm nhập trái phép từ 1988 đến nay.
Như vậy, ta có thể thấy rằng số vụ tấn công xâm nhập trên toàn thế giới ngày càng gia tăng, đặc biệt bùng phát vào những năm gần đây với hàng trăm nghìn vụ
Không chỉ số lượng các cuộc tấn công tăng lên nhanh chóng, mà các phương pháp tấn công cũng liên tục được hoàn thiện Điều đó một phần do các nhân viên quản trị hệ thống ngày càng đề cao cảnh giác Cũng theo CERT, những cuộc tấn công thời kỳ 1988-1989 chủ yếu đoán tên người sử dụng-mật khẩu (UserID-
password) hoặc sử dụng một số lỗi của các chương trình và hệ điều hành (security hole) làm vô hiệu hệ thống bảo vệ, tuy nhiên các cuộc tấn công vào thời gian gần đây bao gồm cả các thao tác như giả mạo địa chỉ IP, theo dõi thông tin truyền qua mạng, chiếm các phiên làm việc từ xa (telnet hoặc rlogin)
2 Những khái niệm về an ninh mạng
2.1 Đối tượng cần đảm bảo an ninh
Trong lĩnh vực an ninh mạng thì các đối tượng cần đảm bảo an ninh gồm có:
Phần cứng: gồm tất cả những gì là phần cứng của hệ thống mạng: các trạmlàm việc, máy tính cá nhân, đường truyền dẫn, các thiết bị định tuyến, cácCPU, các ổ đĩa,
Trang 37 Phần mềm: các source nguồn, hệ điều hành, các trình tiện ích, các chươngtrình truyền thông,
Dữ liệu: bao gồm dữ liệu trong khi thực thi trên các host, dữ liệu đượctruyền trên đường truyền dẫn, dữ liệu được sao lưu trong và sao lưu ngoài
2.2 Thế nào là đảm bảo an toàn hệ thống
Đảm bảo an toàn cho hệ thống là đảm bảo cho hệ thống luôn duy trì ba thuộc tínhchính sau:
Tính bí mật ( Confidentially ): Đối với một số loại thông tin, tính bí mật là
thuộc tính rất quan trọng Trong một số lĩnh vực như ngân hàng, bảo hiểmthì tính bí mật đối với các thông tin cá nhân luôn được đặt lên hàng đầu
Tính toàn vẹn ( Intergrity ): Chỉ những người có thẩm quyền mới được sửa
đổi thông tin Thông tin trên mạng luôn luôn bị đe doạ, nó có thể bi thayđổi hay phá huỷ bất kỳ khi nào nếu không được bảo mật
Tính sẵn có ( Availability ): Bảo đảm rằng hệ thống luôn luôn sẵn sàng khi
người sử dụng cần đến Đặc biệt trong các lĩnh vực kinh doanh dịch vụ, tínhsẵn có sẽ quyết định đến thành công hay thất bại cho các nhà cung cấp dịchvụ
Bên cạnh đó là các khái niệm bảo mật liên quan đến những người sử dụng thôngtin đó như :
Xác thực (Authentication): Hệ thống yêu cầu người dùng cung cấp quyền
được sử dụng, có thể là một số thông tin như: mật khẩu, hay “smartcard”hoặc một số thông tin về người dùng nhằm chứng minh người dùng
Uỷ quyền (Authorization): Là hành động nhằm xác định một người dùng
đặc biệt xem có được thực hiện những hành động như đọc file hay chạy
một chương trình nào đó không Thông thường xác thực và uỷ quyền thường đi kèm với nhau Người dùng phải xác thực trước khi được uỷ
quyền thực hiện một công việc nào đó.
Không thể từ chối (NonRepudiation): Bảo mật chỉ thực sự có ý nghĩa khi
người dùng không bị từ chối sau khi đã xác thực
Trang 38II.PHÂN LOẠI CÁC PHƯƠNG PHÁP TẤN CÔNG
HỆ THỐNG MẠNG
1 Thăm dò thu thập thông tin về hệ thống
Thực ra thăm dò thu thập thông tin chưa thể coi là hành động tấn công vào hệthống được Tuy nhiên có thể coi thăm dò thông tin về hệ thống là bước chuẩn bịcho tấn công, tức là một phần của hành động tấn công Bởi vì trước khi tiến hànhtấn công hay xâm nhập vào một hệ thống thì bao giờ kẻ tấn công cũng phải thuthập càng nhiều thông tin về hệ thống càng tốt Có trong tay nhiều thông tin sẽgiúp tấn công dễ thành công mà ít tốn công sức hơn
Kẻ tấn công tiến hành thăm dò một hệ thống mạng bằng cách gửi một số loạigói tin theo định dạng của những giao thức khác nhau Sử dụng những gói tin trảlời từ hệ thống đích, kẻ tấn công có thể nắm được những thông tin quan trọng về
hệ thống, bao gồm những thông tin sau:
- Topology của mạng đích
- Kiểu network traffic được firewall cho phép qua
- Những host đang ở trạng thái hoạt động ( active )
- Hệ điều hành đang chạy trên các host
- Những server software đang chạy trên các host
- Phiên bản ( version number ) của các software tìm được
- Những lỗ hổng phần mềm đang tồn tại
Có một số kiểu thăm dò phổ biến sau đây:
In dấu chân ( finger printing ):
Phương pháp này chủ yếu sử dụng câu lệnh như truy vấn whois,
nslookup, traceroute để xác định đường đi tới hệ thống đích.
Quét dải địa chỉ IP:
Gửi một loạt các lệnh ping - thực chất là gửi các gói tin ICMP echo( ICMP type 8 ) tới một dãy các địa chỉ IP đích và chờ nhận reply từphía hệ thống đích, từ đó xác định được các IP nào đang tồn tại
Quét dải địa chỉ cổng: