ĐẠ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
Hiện nay , công nghệ thông tin đang phát triển với tốc độ chóng mặt. Các
website, cổng thông tin từ đó cũng ra đời ngày một nhiều hơn. Từ đây, việc xâm
nhập vào các hệ thống để lấy cắp thông tin nhằm mưu đồ chuộc lợi của một số
người ngày càng gia tăng. Theo đánh giá, thống kê của cơ quan an ninh mạng
BKAV thực hiên năm 2012, hơn 2.200 website của các cơ quan và doanh nghiệp
tại Việt Nam đã bị tấn công thông qua lỗ hổng trên hệ thống mạng.
Từ những lí do trên việc kiểm thử an ninh mạng rất quan trọng trong việc giúp
ngăn chặn được việc tấn công qua các lỗ hổng trên mạng. Đồng thời, cũng đề ra
các giải pháp nhằm ngăn chặn những mối nguy hiểm tiềm tàng từ các lỗ hổng
đó.
Với mục đích là làm rõ những vấn đề trên cũng như nâng cao kiến thức, làm
quen với công việc trong thực tiễn nhằm phục vụ cho công viêc của chính mình
sau này, em chọn đề tài “ Kiểm thử an ninh mạng” (Network Security
Testing).
Đề tài gồm các phần sau:
Phần 1: giới thiệu về VDC Training
Phần 2: nội dung và tiến độ thực tập
Phần 3: kết quả đạt được
Phần 4: đề xuất và hướng phát triển
Phần 5: nhận xét của cơ quan thực tập
TRƯƠNG QUANG KHOA-09CNTT3 Page 4
Phần 6: đánh giá két quả của cán bộ hướng dẫn
PHẦN 1: GIỚI THIỆU VỀ TRUNG TÂM VDC –TRAINING
1.1 Giới thiệu trung tâm VDC-Training
Trung tâm VDC Training là đơn vị thuộc VDC- công ty thành viên tập
đoàn VNPT. VDC là doanh nghiệp hàng đầu trong lĩnh vực cung cấp dịch
vụ Internet, có nhiều kinh nghiệm trong lĩnh vực tư vấn, thiết kế, triển khai
các hệ thống hạ tầng công nghệ thông tin và chuyển giao công nghệ.
VDC Training đã có hơn 7 năm kinh nghiệm trong lĩnh vực đào tạo CNTT
đẳng cấp cao. Khởi đầu từ hoạt động đào tạo triển khai lắp đặt, hỗ trợ các
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
• Trung tâm Thông tin Di động khu vực III - VMS3
• Trung tâm Viễn thông Quốc tế khu vực III - VTI3
• Các Viễn thông tỉnh/thành phố trên cả nước
• Cụm cảng hàng không miền Trung
• Cục Hải quan Thành phố Đà Nẵng
• Viện Tin học Doanh nghiệp - CN miền Trung
• Trung tâm Viễn thông Điện lực miền Trung
• Công ty Cổ phần Phần mềm FPT
• Tập đoàn Dược phẩm Viễn Đông
TRƯƠNG QUANG KHOA-09CNTT3 Page 6
• Thành ủy Đà Nẵng
• Sở Giáo dục và Đào tạo Thành phố Đà Nẵng
• Cục thuế Đà Nẵng
• Ban Quản lý Dự án Phát triển CNTT& TT - Sở Thông tin và Truyền
thông thành phố Đà Nẵng
• Công ty TNHH MTV Lọc hóa dầu Bình Sơn
• Ban quản lý dự án CNTT-TT thuộc Sở Thông tin và Truyền thông
Đà Nẵng…
1.3 Sứ mệnh
+ Truyền đạt, hướng dẫn học viên/ khách hàng các kiến thức, kỹ năng
CNTT chuyên sâu ở đẳng cấp quốc tế về chương trình và chất lượng đào
tạo. Góp phần phát triển nguồn nhân lực CNTT Việt Nam đạt tiêu chuẩn
quốc tế.
+ Xây dựng một môi trường học tập thân thiện, cởi mở với cơ sở vật chất
hiện đại, đủ sức hấp dẫn để quy tụ được nhân lực CNTT trong và ngoài
nước về cộng tác nghiên cứu, thử nghiệm, trao đổi học thuật, kinh nghiệm
với nhau.
+ Tạo điều kiện cho mọi thành viên của VDC Training phát triển tối đa
năng lực cá nhân, có cuộc sống sung túc về vật chất, hạnh phúc về tinh
thần.
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 -
1990).
Bao trùm lên tất cả, có thể coi kiểm thử là hành động tìm ra lỗi với mục
đích để làm phần mềm được tốt hơn. Theo quan niệm thông thường của
người phát triển phần mềm là: kiểm thử phát hiện lỗi là không thành công và
ngược lại là thành công. Tuy nhiên, theo định nghĩa của Myers, tức là đứng
trên quan điểm người kiểm thử, thì kiểm thử mà không phát hiện được lỗi
được coi là không thành công, ngược lại nếu kiểm thử phát hiện được lỗi
được coi là thành công. Rõ ràng, người phát triển phần mềm cố viết một phần
mềm tốt nhất và không có lỗi, còn người kiểm thử cố tìm ra lỗi của phần mềm
được viết ra. Như vậy, mục đích của kiểm thử là "phản biện" lại với phát triển
phần mềm nhằm mục đích làm cho phần mềm tốt hơn. Bởi vì trong thực tế,
không có phần mềm nào mà không có lỗi.
Kiểm thử an ninh (KTAN) phần mềm hay mạng là một loại kiểm thử đặc biệt
nhằm mục đích kiểm tra và xác nhận phần mềm hay mạng đó có đạt yêu cầu
về an ninh không. Như vậy, hướng nghiên cứu KTAN chia làm hai hướng, đó
TRƯƠNG QUANG KHOA-09CNTT3 Page 10
là KTAN phần mềm và KTAN mạng. KTAN phần mềm là một loại kiểm thử
trong đó quá trình kiểm thử giúp nhận biết phần mềm đang xét có những đặc
tính an ninh đúng với yêu cầu thiết kế đặt ra căn cứ trên đặc tả yêu cầu an
ninh cho nó hay không. Có hai hướng tiếp cận chính của KTAN phần mềm
là: KTAN chức năng và KTAN điểm yếu. KTAN chức năng dùng để kiểm tra
chức năng an ninh (bí mật dữ liệu, toàn vẹn, sẵn sàng, xác thực, phân quyền,
mã hóa, điều khiển truy cập, audit, ) hoặc hệ thống an ninh (tường lửa, phát
hiện xâm nhập - IDS, ) nhằm đảm bảo phần mềm có hoạt động đúng chức
năng, hiệu quả và sẵn sàng như thiết kế và phát triển hay không. KTAN điểm
yếu thực hiện như một kẻ tấn công nhằm phát hiện những điểm yếu hoặc sai
sót về an ninh của phần mềm. KTAN điểm yếu phần mềm trực tiếp nhận diện
và khám phá những điểm yếu hệ thống vẫn chưa được biết có thể gây ra bởi
những thiết sót thiết kế hay lỗi lập trình, thuật toán.
KTAN mạng là những hoạt động nhằm cung cấp thông tin về sự an toàn
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
tiêu chí của an ninh là bí mật, hiệu quả, sẵn sàng và trách nhiệm (xem chi tiết
bài "đôi điều về an ninh"), thì KTAN chuyên nghiên cứu những phương pháp
và kỹ thuật để phát hiện những điểm yếu về an ninh hoặc những phương pháp
gây tổn thương hệ thống an ninh nhằm xâm nhập vào hệ thống như kiểm thử
xâm nhập. Cần đặc biệt nhấn mạnh là phương pháp và cách thức của kiểm
thử xâm nhập cũng là phương pháp và cách thức của tin tặc nhằm tấn công
vào các điểm yếu hoặc các kiểm soát an ninh của hệ thống. Nhưng mục đích
của hai đối tượng lại khác nhau, trong khi người kiểm thử xâm nhập cố gắng
tấn công vào hệ thống nhằm chứng minh sự tồn tại của điểm yếu, tác hại và
TRƯƠNG QUANG KHOA-09CNTT3 Page 12
hậu quả của nó nếu không sớm khắc phục và đề xuất các giải pháp gia cố,
giảm thiểu tác hại của các điểm yếu này thì tin tặc tấn công với mục đích phá
hoại, tư lợi, hoặc đôi khi chỉ là thể hiện bản thân hoặc cho vui. Ngoài ra,
không giống như kiểm thử phần mềm thường tập trung thực hiện trong giai
đoạn phát triển, KTAN thường diễn ra trong cả giai đoạn phát triển lẫn giai
đoạn hoạt động hay giai đoạn "sống" của hệ thống nhưng tập trung chủ yếu ở
giai đoạn "sống", và phải thực hiện suốt vòng đời hoạt động của mạng hay
phần mềm.
TRƯƠNG QUANG KHOA-09CNTT3 Page 13
3.2 . Các phương pháp phân loại lỗ hổng
3.2.1 Định nghĩa và phân loại đặc tính của lỗ hổng
Các lỗ hổng bảo mật an ninh chính là điểm yếu mà những kẻ tấn công hay
nhằm vào để phá hủy, nhằm tạo ra sự ngưng trệ, thêm hoặc bớt quyền của
người sử dụng, truy cập không hợp pháp vào hệ thống mật. Ngoài ra,các lỗ
hổng còn xuất hiện trên các hệ điều hành như Windows XP, Vista, NT,
UNIX, hoặc là trong các ứng dụng mà chúng ta hay sử dụng thường xuyên
như Word processing, các database…
Bên cạnh đó, những kẻ tấn công còn khai thác những lỗ hổng trên các hệ điều
hành chạy trên thiết bị di động như Android 2.2, 2.3, Apple Iphone
4.0,4.2(đây chỉ là các phiên bản cũ), các thiết bị hạ tầng mạng của các hã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ừ
client gửi tới.
Các dịch vụ có chứa đựng lỗ hổng cho phép thực hiện các cuộc tấn công
DoS có thể được nâng cấp hoặc sửa chữa bằng các phiên bản mới hơn của các
nhà cung cấp dịch vụ. Hiện nay, chưa có một giải pháp toàn diện nào để khắc
phục các lỗ hổng loại này vì bản thân việc thiết kế giao thức ở tầng Internet
(IP) nói riêng và bộ giao thức TCP/IP đã chứa đựng những nguy cơ tiềm tàng
của các lỗ hổng này.
Tuy nhiên, mức độ nguy hiểm của các lỗ hổng loại này được xếp loại C; ít
nguy hiểm vì chúng chỉ làm gián đoạn cung cấp dịch vụ của hệ thống trong
TRƯƠNG QUANG KHOA-09CNTT3 Page 15
một thời gian mà không làm nguy hại đến dữ liệu và người tấn công cũng
không đạt được quyền truy nhập bất hợp pháp vào hệ thống.
Một lỗ hổng loại C khác cũng thường thấy đó là các điểm yếu của dịch vụ
cho phép thực hiện tấn công làm ngưng trệ hệ thống của người sử dụng cuối;
Chủ yếu với hình thức tấn công này là sử dụng dịch vụ Web. Giả sử: trên một
Web Server có những trang Web trong đó có chứa các đoạn mã Java hoặc
JavaScripts, làm “treo” hệ thống của người sử dụng trình duyệt Web của
Netscape bằng các bước sau:
Viết các đoạn mã để nhận biết được Web Browers sử dụng Netscape
Nếu sử dụng Netscape, sẽ tạo một vòng lặp vô thời hạn, sinh ra vô số các
cửa sổ, trong mỗi cửa sổ đó nối đến các Web Server khác nhau.
Với một hình thức tấn công đơn giản này, có thể làm treo hệ thống. Đây
cùng là một hình thức tấn công kiểu DoS. Người sử dụng trong trường hợp
này chỉ có thể khởi động lại hệ thống.
Một lỗ hổng loại C khác cũng thường gặp đối với các hệ thống mail là
không xây dựng các cơ chế anti-relay (chống relay) cho phép thực hiện các
hành động spam mail. Như chúng ta đã biết, cơ chế hoạt động của dịch vụ thư
điện tử là lưu và chuyển tiếp; một số hệ thống mail không có các xác thực khi
người dùng gửi thư, dẫn đến tình trạng các đối tượng tấn công lợi dụng các
máy chủ mail này để thực hiện spam mail; Spam mail là hành động nhằm 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.
Một loạt các vấn đề khác về quyền sử dụng chương trình trên UNIX cũng
thường gây nên các lỗ hổng loại B. Vì trên hệ thống UNIX, một chương trình
có thể được thực thi với 2 khả năng:
Người chủ sở hữu chương trình đó kích hoạt chạy.
Người mang quyền của người chủ sở hữu chủ nhân của file đó
Các loại lỗ hổng loại B khác
Một dạng khác của lỗ hổng loại B xảy ra đối với các chương trình có mã
nguồn viết bằng C. Những chương trình viết bằng C thường sử dụng một
vùng đệm – là một vùng trong bộ nhớ sử dụng để lưu dữ liệu trước khi xử lý.
Những người lập trình thường sử dụng vùng đệm trong bộ nhớ trước khi gán
một khoảng không gian bộ nhớ cho từng khối dữ liệu. Ví dụ, người sử dụng
viết chương trình nhập trường tên người sử dụng; qui định trường này dài 20
ký tự. Do đó họ sẽ khai báo:
char first_name [20];
Với khai báo này, cho phép người sử dụng nhập vào tối đa 20 ký tự. Khi
nhập dữ liệu, trước tiên dữ liệu được lưu ở vùng đệm; nếu người sử dụng
nhập vào 35 ký tự; sẽ xảy ra hiện tượng tràn vùng đệm và kết quả 15 ký tự dư
thừa sẽ nằm ở một vị trí không kiểm soát được trong bộ nhớ. Đối với những
người tấn công, có thể lợi dụng lỗ hổng này để nhập vào những ký tự đặc
TRƯƠNG QUANG KHOA-09CNTT3 Page 18
biệt, để thực thi một số lệnh đặc biệt trên hệ thống. Thông thường, lỗ hổng
này thường được lợi dụng bởi những người sử dụng trên hệ thống để đạt được
quyền root không hợp lệ.
Việc kiểm soát chặt chẽ cấu hình hệ thống và các chương trình sẽ hạn chế
được các lỗ hổng loại B.
-Các lỗ hổng loại A
Các lỗ hổng loại A có mức độ rất nguy hiểm; đe dọa tính toàn vẹn và bảo
mật của hệ thống. Các lỗ hổng loại này thường xuất hiện ở những hệ thống
quản trị yếu kém hoặc không kiểm soát được cấu hình mạng.
Một ví dụ thường thấy là trên nhiều hệ thống sử dụng Web Server là
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 đó
YYYY- đây là số được đánh theo thứ tự từ 0-9999
Ví dụ như: CVE-2011-1123: đây là lỗ hổng mang đặc tính CVE được phát
hiện vào năm 2011 và được đánh số thứ tự 1123.
TRƯƠNG QUANG KHOA-09CNTT3 Page 20
3.2.3. Các phương thức dùng để quét lỗ hổng
Việc quét lỗ hổng nhằm phát hiện những lỗ hổng để có biện pháp khắc phục.
Ngoài ra, còn giúp phát hiện những nghi vấn về bảo mật để ngăn chặn từ xa cũng
như để giảm thiểu những rủi ro có thể đến bất ngờ đối với hệ thống.
Hiện nay, có một số tổ chức đưa ra những phương thúc riêng của họ
nhằm ngăn chặn sự phát sinh lỗ hổng từ hệ thống. Tuy nhiên,các phương thức
này khác nhau về cách thực hiện nhưng nhìn chung nó cũng vẫn giống nhau về
mặt lý thuyết.
Một số phương pháp quét lỗ hổng mà các tổ chức thường xuyên sử dụng :
+ Quét mạng
+ Quét điểm yếu
+ Kiểm tra log in
+ Kiểm tra tính toàn vẹn của file
+ Phát hiện virus
TRƯƠNG QUANG KHOA-09CNTT3 Page 21
A. Quét mạng
Đây là phương thức được dùng trong sử dụng một số phương pháp để phát
hiện ra các máy chủ hoạt động và đáp ứng trên một mạng, xác định các điểm
yếu, và tìm hiểu làm thế nào mạng lưới hoạt động. Cả hai kỹ thuật thụ động
(kiểm tra) và hoạt động (thử nghiệm) tồn tại để phát hiện ra các thiết bị trên
mạng.
Các công cụ quét mạng có nhiều cách để có được thông tin thông qua
quét. Tường lửa và hệ thống phát hiện xâm nhập có thể xác định nhiều trường
hợp quét, đặc biệt là những người sử dụng các gói tin đáng ngờ nhất (ví dụ, SYN
/ FIN scan, NULL scan).
Quét mạngcũng có thể phát hiện các thiết bị trái phép hoặc giả hoạt độ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
cần thiết cho các chức năng quét lỗ hổng. Ngoài ra, một số máy quét có thể thực
hiện phát hiện mạng lưới riêng của họ và dịch vụ và xác định cổng mạng.Quét có
thể giúp xác định phiên bản phần mềm đã lỗi thời, thiếu các bản vá lỗi và xác
nhận phù hợp với độ lệch từ chính sách bảo mật của một tổ chức. Điều này được
thực hiện bằng cách xác định các hệ điều hành và các ứng dụng phần mềm lớn
chạy trên các máy chủ và kết hợp chúng với thông tin về lỗ hổng đã biết được
lưu trữ trong cơ sở dữ liệu của máy quét nhược điểm.
TRƯƠNG QUANG KHOA-09CNTT3 Page 23
Bao gồm các công việc sau:
+Liệt kê thông tin
+Quét điểm yếu dịch vụ
+Kiểm tra an toàn mật khẩu
+Liệt kê thông tin:
-Xâm nhập hệ thống, lấy vấn tin, thu nhập thông tin về người dùng,
mật khẩu, các applications
- Liệt kê thông tin trong Windows, Linux
+Quét điểm yếu dịch vụ
-Quét tài khoản
-Quét dịch vụ
+Kiểm tra an toàn mật khẩu
-Nhanh chóng tìm ra mật khẩu yếu
-Cung cấp độ an toàn của mật khẩu
C. Kiểm soát log file
+Ghi lại các thao thác trong hệ thống
+Xác định sự sai lệch trong chính sách bảo mật
+Có thể bằng tay hoặc tự động
+Thực hiện thường xuyên trên các thiết bị chính
TRƯƠNG QUANG KHOA-09CNTT3 Page 24
D. Kiểm tra tính toàn vẹn của file
Xác định việc thay đổi các tập tin quan trọng, cũng có thể xác định 1 số hình
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