ĐẠI HỌC ĐÀ NẴNG
TRƯỜNG ĐẠI HỌC SƯ PHẠM
KHOA TIN HỌC
BÁO CÁO KẾT QUẢ
THỰC TẬP TỐT NGHIỆP
ĐỀ TÀI: KIỂM THỬ AN NINH MẠNG
CHUYÊN NGÀNH: CỬ NHÂN CÔNG NGHỆ THÔNG TIN
Giảng viên hướng dẫn: PGS.TS Trần Quốc Chiến
Sinh viên thực hiện:Trương Quang Khoa
Địa điểm thực tập: VDC Training – VDC3
ĐÀ NẴNG – Năm 2013
TRƯƠNG QUANG KHOA-09CNTT3 Page 1
LỜI CẢM ƠN
Trong đợt thực tập vừa qua, em đã nhận được sự hướng dẫn, giúp đỡ và động
viên tận tình từ nhiều phía. Tất cả những điều đó đã trở thành một động lực rất
lớn giúp em có thể hoàn thành tốt mọi công việc được giao. Với tất cả sự cảm
kích và trân trọng, em xin được gửi lời cảm ơn đến tất cả mọi người.
Lời đầu cho em được gửi lời cảm ơn đến Ban lãnh đạo Trung tâm đào tạo và
phát triển nguồn nhân lực VDC Training – Chi nhánh Đà Nẵng đã tạo điều kiện
cho em được tham gia thực tập tại công ty cũng như cung cấp tất cả các cơ sở vật
chất và trang thiết bị có thể cho em trong thời gian vừa qua. Xin cảm ơn thầy
Nguyễn Song Tùng và các anh chị trong công ty đã tận tình hướng dẫn giúp đỡ
em trong suốt thời gian em thực tập.
Em xin chân thành cảm ơn các thầy cô của trường Đại học Sư Phạm Đà Nẵng,
xin cảm ơn quý thầy cô đã tận tình dạy bảo, giúp đỡ em trong suốt thời gian em
học tại trường cũng như trong thời gian em thực tập vừa qua.
TRƯƠNG QUANG KHOA-09CNTT3 Page 2
Mục lục
TRƯƠNG QUANG KHOA-09CNTT3 Page 3
MỞ ĐẦU
dịch vụ Internet, Truyền số liệu, Tin học của VNPT/VDC cho các khách
hàng, đại lý, đối tác và các viễn thông tỉnh/thành phố, VDC Training đã
thành công trong việc phát triển thành một trung tâm đào tạo CNTT có uy
tín hàng đầu ở khu vực miền Trung và Tây Nguyên nói riêng và cả nước
nói chung, không ngừng khẳng định là một đơn vị đào tạo đẳng cấp
chuyên nghiệp, mang đến các chương trình đào tạo theo chuẩn mực quốc
tế cũng như đáp ứng tốt các chương trình đào tạo theo yêu cầu của các tổ
chức lớn, cung cấp nhiều khoá học khác nhau nhằm giúp học viên nâng
cao kỹ năng làm việc cũng như mang lại lợi ích đáng kể cho các tổ chức
của họ. Tính đến thời điểm hiện nay, VDC Training là đối tác đào tạo ủy
quyền chính thức của Cisco, CompTIA, Pearson VUE, Prometric tại Việt
Nam và cũng là thành viên mạng lưới đối tác Microsoft.
VDC Training tự hào có đội ngũ giảng viên là các chuyên gia có trình độ
chuyên môn cao, hiểu và nắm rõ phương pháp sư phạm, nhiệt tình trong
TRƯƠNG QUANG KHOA-09CNTT3 Page 5
công tác đào tạo; đã được cấp các chứng chỉ Quốc tế của các tổ chức hàng
đầu như Cisco, Microsoft, Oracle, Sun, CompTIA, SCP, EC Council
tuy nhiên sự khác biệt cũng là tài sản quý nhất của VDC Training chính là
kinh nghiệm làm việc thực tế của giảng viên trong môi trường của một
đơn vị cung cấp dịch vụ IP/Internet/Tin học hàng đầu.Hiện nay, đội ngũ
giảng viên của VDC Training đã đạt các chứng chỉ: CCSI, CCNA, CCNP,
CCSP, CCAI, CCDP, CCIE Writtten, CWNA, SCSA, MCSE, MCITP,
MCTS, MCT, CCSE, CompTIA Linux+, CompTIA Security+, SCNS,
SCNP, SCNA, SCPI, CEH, CEI, Oracle DBA 10g, 11g v.v Không dừng
lại và không thỏa mãn với những gì đạt được, các giảng viên VDC
Training vẫn thường xuyên học tập, tham dự các khóa đào tạo nâng cao,
các hội thảo công nghệ chuyên sâu trong và ngoài nước để cập nhật kiến
thức mới và trau dồi kỹ năng mềm, nghiệp vụ sư phạm.
1.2 Đối tác của trung tâm
• Tập đoàn Bưu chính Viễn thông Việt Nam - VNPT
TRƯƠNG QUANG KHOA-09CNTT3 Page 7
TRƯƠNG QUANG KHOA-09CNTT3 Page 8
PHẦN 2: NỘI DUNG VÀ TIẾN ĐỘ THỰC TẬP
2.1 Nội dung
Trong quá trình thực tập, em đã thực hiện những công việc liên qua đến đề
tài của mình như sau:
- Dịch tài liệu
- Tìm hiểu các phương pháp phân loại lỗ hổng
- Các phương thức dùng để quét lỗ hổng
- Các phương thức kiểm soát lỗ hổng
2.1 Tiến độ thực tập
Căn cứ vào khối lượng công việc, em đã chia các mốc thời gian để thực
hiện công việc của mình như sau:
Công việc thực hiện Tiến độ hoàn thành
Dịch tài liệu 27/01/2013- 15/02/2013
Phân loại lỗ hổng 18/02/2013- 01/03/2013
Phương thức dùng để quét lỗ hổng 04/03/2013- 11/03/2013
Phương thức dùng để kiểm soát lỗ
hổng
12/03/2013- 21/03/2013
Viết báo cáo tổng hợp 21/03/2013- 25/03/2013
TRƯƠNG QUANG KHOA-09CNTT3 Page 9
PHẦN 3: KẾT QUẢ ĐẠT ĐƯỢC
3.1 . Tổng quan về kiểm thử an ninh mạng
Kiểm thử là tiến trình thực thi một chương trình với mục đích tìm ra lỗi
(The art of software testing - Glenford J. Myers).
Kiểm thử là tiến trình vận hành hệ thống hoặc thành phần của hệ thống
dưới những điều kiện xác định, quan sát hoặc ghi nhận kết quả và đưa ra đánh
giá về hệ thống hoặc thành phần đó (IEEE 610.12-1990. IEEE Standard
Glossary of Software Engineering Terminology. Technical report - IEEE -
và toàn vẹn của mạng máy tính và những hệ thống liên quan của tổ chức nào
đó thông qua việc thẩm tra và xác nhận những điều kiện an ninh hệ thống
mạng đều hoạt động bình thường. KTAN mạng bao gồm hai loại chính là:
quét điểm yếu hay còn gọi là quét lỗ hổng (vulnerability scanner) và kiểm thử
xâm nhập. Trong đó quét điểm yếu là quá trình tìm những điểm yếu, lỗ hổng
an ninh trong mạng của tổ chức, công ty hoặc cá nhân. Ý tưởng cơ bản của
loại hình KTAN này là quét toàn bộ nút mạng và cổng có trên từng nút mạng,
sau đó với thông tin nhận được nó sẽ phân tích và đánh giá hệ thống mạng an
toàn như thế nào. Thuật ngữ "đánh giá điểm yếu" được sử dụng trong trường
hợp quét điểm yếu có nghĩa là "quá trình" tìm kiếm sự tồn tại của những lỗ
hổng đã biết bên trong hoặc bên ngoài trong một mạng. Quá trình này sẽ xác
định lỗ hổng để có thể loại bỏ trước khi nó bị chương trình độc hại hoặc tin
TRƯƠNG QUANG KHOA-09CNTT3 Page 11
tặc khai thác. Các lỗ hổng tạo thành mối đe dọa trong mạng bao gồm lỗi phần
mềm, dịch vụ không cần thiết, cấu hình sai hoặc tài khoản người dùng không
an toàn. Có một thực tế là những điểm yếu đơn lẻ có nguy cơ về an ninh
không cao nhưng khi gộp chung trong một hệ thống có thể gây ra những nguy
cơ về rủi ro an ninh rất cao. Vì vậy, kiểm thử xâm nhập - là một thành phần
của KTAN, tuy nhiên nó đi xa hơn so với quét điểm yếu, nó tập trung vào quá
trình khai thác, lợi dụng các điểm yếu, lỗ hổng nhằm xâm nhập trái phép, leo
thang đặc quyền, duy trì truy cập vào hệ thống mục tiêu, hoặc tìm ra sự phối
hợp của các điểm yếu trên một hoặc nhiều hệ thống để tạo ra sự truy cập vào
hệ thống mà thường khó đạt được khi khai thác những điểm yếu đơn lẻ. Nói
cách khác, quét điểm yếu đưa cái nhìn về kẽ hở an ninh nhưng không đánh
giá tác hại và ảnh hưởng của nó với hệ thống. Còn kiểm thử xâm nhập quan
tâm đến cách nhìn các vấn đề an ninh của hệ thống theo quan điểm của kẻ tấn
công.
Tóm lại, một cách tổng quan, ta thấy quan hệ của an ninh và KTAN cũng
giống như quan hệ giữa phát triển phần mềm và kiểm thử phần mềm. Trong
khi những nghiên cứu về an ninh với mục tiêu xây dựng hệ thống đạt những
danh tiếng như Cisco, các ứng dụng trên desktop, trên server, các phần mềm
diệt virus, các lỗ hổng trong Firewall. Ngoài ra việc phát hiện lỗ hổng còn
xuất hiện trong hạ tầng mạng như wireless email, wireless…
Hiện nay có nhiều tổ chức khác nhau phân loại các lỗ hổng theo những tiêu
chí mà các tổ chức đó yêu cầu. Các tổ chức thường xuyên có những đánh giá
phân loại lỗ hổng như Secunia, NIST( National Institues of Standards and
Technology), United States Department of Defense, MITRE… Tuy nhiên, uy
tín nhất vẫn là sự đánh giá của bộ quốc phòng Mỹ về vấn đề này, các loại lỗ
hổng được chia theo các dạng như sau:
Lỗ hổng loại C: các lỗ hổng loại này cho phép thực hiện các phương thức
tấn công theo DoS (Dinal of Services – Từ chối dịch vụ). Mức độ nguy hiểm
thấp, chỉ ảnh hưởng tới chất lượng dịch vụ, có thể làm ngưng trệ, gián đoạn
hệ thống; không làm phá hỏng dữ liệu hoặc đạt được quyền truy nhập bất hợp
pháp.
TRƯƠNG QUANG KHOA-09CNTT3 Page 14
Lỗ hổng loại B: Các lỗ hổng cho phép người sử dụng có thêm các quyền
trên hệ thống mà không cần thực hiện kiểm tra tính hợp lệ. Mức độ nguy
hiểm trung bình; Những lỗ hổng này thường có trong các ứng dụng trên hệ
thống; có thể dẫn đến mất hoặc lộ thông tin yêu cầu bảo mật.
Lỗ hổng loại A: Các lỗ hổng này cho phép người sử dụng ở ngoài có thể
truy nhập vào hệ thống bất hợp pháp. Lỗ hổng rất nguy hiểm, có thể làm phá
hủy toàn bộ hệ thống.
Ta sẽ nói rõ hơn về cách phân loại này
-Lỗ hổng loại C:
Các lỗ hổng loại này cho phép thực hiện các cuộc tấn công DoS. DoS là
hình thức tấn công sử dụng các giao thức ở tầng Internet trong bộ giao thức
TCP/IP để làm hệ thống ngưng trệ dẫn đến tình trạng từ chối người sử dụng
hợp pháp truy nhập hay sử dụng hệ thống. Một số lượng lớn các gói tin được
gửi tới server trong khoảng thời gian liên tục làm cho hệ thống trở nên quá
tải, kết quả là server đáp ứng chậm hoặc không thể đáp ứng các yêu cầu từ
liệt dịch vụ mail của hệ thống bằng cách gửi một số lượng lớn các messages
tới một địa chỉ không xác định, vì máy chủ mail luôn phải tốn năng lực đi tìm
những địa chỉ không có thực dẫn đến tình trạng ngưng trệ dịch vụ. Số lượng
TRƯƠNG QUANG KHOA-09CNTT3 Page 16
các messages có thể sinh ra từ các chương trình làm bom thư rất phổ biến trên
mạng Internet.
-Các lỗ hổng loại B
Lỗ hổng loại này có mức độ nguy hiểm hơn lỗ hổng loại C, cho phép
người sử dụng nội bộ có thể chiếm được quyền cao hơn hoặc truy nhập không
hợp pháp.
Những lỗ hổng loại này thường xuất hiện trong các dịch vụ trên hệ thống.
Người sử dụng local được hiểu là người đã có quyền truy nhập vào hệ thống
với một số quyền hạn nhất định.
Sau đây sẽ phân tích một số lỗ hổng loại B thường xuất hiện trong ứng
dụng Sendmail:
Sendmail là một chương trình được sử dụng rất phổ biến trên hệ thống
UNIX để thực hiện gửi thư điện tử cho những người sử dụng trong nội bộ
mạng. Thông thường, sendmail là một daemon chạy ở chế độ nền được kích
hoạt khi khởi động hệ thống. Trong trạng thái hoạt động, sendmail mở port 25
đợi một yêu cầu tới sẽ thực hiện gửi hoặc chuyển tiếp thư. Sendmail khi được
kích hoạt sẽ chạy dưới quyền root hoặc quyền tương ứng (vì liên quan đến
các hành động tạo file và ghi log file). Lợi dụng đặc điểm này và một số lỗ
hổng trong các đoạn mã của sendmail, mà các đối tượng tấn công có thể dùng
sendmail để đạt được quyền root trên hệ thống.
Để khắc phục lỗi của sendmail cần tham gia các nhóm tin về bảo mật; vì
sendmail là chương trình có khá nhiều lỗi; nhưng cũng có nhiều người sử
dụng nên các lỗ hổng bảo mật thường được phát hiện và khắc phục nhanh
TRƯƠNG QUANG KHOA-09CNTT3 Page 17
chóng. Khi phát hiện lỗ hổng trong sendmail cần nâng cấp, thay thế phiên bản
sendmail đang sử dụng.
Apache, Đối với Web Server này thường cấu hình thư mục mặc định để chạy
các scripts là cgi-bin; trong đó có một Scripts được viết sẵn để thử hoạt động
của apache là test-cgi. Đối với các phiên bản cũ của Apache (trước version
1.1), có dòng sau trong file test-cgi:
echo QUERY_STRING = $QUERY_STRING
Biến môi trường QUERY_STRING do không được đặt trong có dấu ”
(quote) nên khi phía client thưc hiện một yêu cầu trong đó chuỗi ký tự gửi
đến gồm một số ký tự đặc biệt; ví dụ ký tự “*”, web server sẽ trả về nội dung
của toàn bộ thư mục hiện thời (là các thư mục chứa các scipts cgi). Người sử
TRƯƠNG QUANG KHOA-09CNTT3 Page 19
dụng có thể nhìn thấy toàn bộ nội dung các file trong thư mục hiện thời trên
hệ thống server.
Một ví dụ khác cũng xảy ra tương tự đối với các Web server chạy trên hệ
điều hành Novell; Các web server này có một scripts là convert.bas, chạy
scripts này cho phép đọc toàn bộ nội dung các files trên hệ thống.
Những lỗ hổng loại này hết sức nguy hiểm vì nó đã tồn tại sẵn có trên
phần mềm sử dụng; người quản trị nếu không hiểu sâu về dịch vụ và phần
mềm sử dụng sẽ có thể bỏ qua những điểm yếu này.
Đối với những hệ thống cũ, thường xuyên phải kiểm tra các thông báo của
các nhóm tin về bảo mật trên mạng để phát hiện những lỗ hổng loại này. Một
loạt các chương trình phiên bản cũ thường sử dụng có những lỗ hổng loại A
như: FTP, Gopher, Telnet, Sendmail, ARP, finger…
3.2.2. Cách đặt tên cho các loại lỗ hổng của các tổ chức trên thế giới
Ngoài ra, việc đặt tên các lỗ hổng cũng góp phần vào việc giúp cho người
tìm kiếm và phân loại được dễ dàng cũng như xác định được tính năng của
các loại lỗ hổng đó là gì từ đó đề ra các phương pháp khắc phục. Cách đặt tên
cho lỗ hổng được tổ chức MITRE đề xuất với cấu trúc như sau:
NAME-XXXX-YYYY
NAME là tên các đặc tính lỗ hổng như CVE, OSVDE
XXXX- là năm phát hiện ra lổ hổng đó
trên mạng.Ví dụ, một tổ chức mà chỉ sử dụng một vài hệ điều hành có thể nhanh
chóng xác định các thiết bị giả mạo sử dụng những người thân khác nhau.Khi
một thiết bị giả mạo có dây được xác định, nó có thể được đặt bằng cách sử dụng
bản đồ mạng lưới hiện có và các thông tin đã thu thập được trên mạng lưới hoạt
động của thiết bị để xác định chuyển đổi nó được kết nối. Nó có thể là cần thiết
để tạo ra các hoạt động mạng bổ sung với các rogue thiết bị như ping để tìm thấy
những chuyển đổi chính xác.
Ở đây, việc quét mạng chủ yếu bao gồm các công việc sau:
+ Kiểm tra sự tồn tại của hệ thống đích
+ Quét cổng
+ Dò hệ điều hành
+ Kiểm tra sự tồn tại của hệ thống đích
TRƯƠNG QUANG KHOA-09CNTT3 Page 22
- Quét ping để kiểm tra xem hệ thống có hoạt động hay không
- Phát hiện bằng IDS hoac một số trình tiện ích
- Câú hình hệ thống hạn chế lưu lượng các gói ICMP dể ngăn
ngừa
+ Quét cổng
-Nhằm nhận diện các ứng dụng, dịch vụ
-Sử dụng các kỹ thuật quét nối như TCP,TCP FIN,…, xét số cổng
để suy ra các ứng dụng, dịch vụ.
-Phát hiện quét dựa vào IDS hoặc cơ chế bảo mật của máy chủ
-Vô hiệu hóa các dịch vụ không cần thiết để giấu mình
+Dò hệ điều hành
-Dò dựa vào các đặc trưng của giao thức
-Phát hiện dựa vào các phần mềm quét cổng, phòng ngừa, sử dụng
firewall, IDS
B . Quét điểm yếu
Nhiều máy quét lỗ hổng này được trang bị để chấp nhận các kết quả từ mạng
lưới phát hiện và cổng mạng và xác định dịch vụ, làm giảm số lượng công việc
thức tập tin không mong muốn, chẳng hạn như các công cụ tấn công nổi tiếng,…
Một số công việc được thực thi trong việc này là
+Các thông tin được đề cập
+Phát hiện truy nhập trái phép
+Tự động hóa
+ Luôn cập nhật thông tin
E . Quét virus
Bảo vệ hệ thống khỏi bị virus tấn công
Có hai phần mềm được cài :
-Cài trên server:
+ Trên mail server hoặc trạm chính
+ Bảo vệ cửa ngõ ra vào
+ Cập nhật virus database thuận lợi
-Cài trên máy trạm:
+ Đặc điểm: thường quét toàn bộ hệ thống (thường là các file,
ổ đĩa, tràn web của người truy nhập)
+ Đòi hỏi phải có sự quan tâm của người dùng
TRƯƠNG QUANG KHOA-09CNTT3 Page 25