Thống kê cho thấy 75% cuộc tấn công internet là tấn công ứng dụng web, nógây ra những thiệt hại vô cùng to lớn, vì vậy việc tìm hiểu về tấn công ứng dụngweb là rất cần thiết nhằm có cách
Trang 1TRƯỜNG ĐẠI HỌC QUY NHƠN
BÁO CÁO TIỂU LUẬN MÔN AN NINH MẠNG
Chủ đề WEB APPLICATION SECURITY (ĐẢM BẢO AN NINH HỆ THỐNG WEB)
Giảng viên hướng dẫn: TS Nguyễn Hồng Quang
Bình Định, 01-2018
Trang 3LỜI NÓI ĐẦU
Ngày nay, Internet đã trở nên rất quen thuộc và là một công cụ hữu ích đểmột đất nước giới thiệu hình ảnh hay đơn giản chỉ là một trang web cá nhân củamột ai đó giới thiệu về mình Tất cả đã kéo theo sự phát triển không ngừng của cácứng dụng web Và dần dần, khái niệm ứng dụng web đã trở nên phổ biến Khi màtrên internet, ứng dụng web đã trở lên phổ biến và được ứng dụng một cách rộngrãi thì các cuộc tấn công ứng dụng web cũng phát triển hết sức phức tạp Các kỹthuật tấn công được sử dụng chủ yếu là SQL Injections, Buffer Overflow, Cross-Site Scripting (XSS) Các lỗ hổng trong ứng dụng web chủ yếu xảy ra do người lậptrình không kiểm tra kỹ các lỗ hổng bảo mật cho ứng dụng web Điều này đã đặt ravấn đề cấp thiết cần làm như thế nào để bảo đảm an toàn thông tin cho ứng dụngweb, thông tin của người sử dụng
Các khái niệm chuyên môn về ứng dụng web và tấn công ứng dụng webcũng dần trở lên phổ biến hơn trong các tài liệu chuyên ngành Các công cụ hỗ trợngười lập trình web, người quản trị mạng cũng xuất hiện giúp tìm kiếm lỗ hổng củaứng dụng web, nhưng nó không theo kịp sự phát triển nhanh đến mức chóng mặttheo xu hướng nhanh hơn, đẹp hơn của các ứng dụng web, và tất nhiên nó khôngthể ngăn chặn hoàn toàn các cuộc tấn công ứng dụng web, khi mà các cuộc tấncông ngày càng đa dạng khai thác triệt để những lỗi của ứng dụng web, của ngườiquản trị, hay người lập trình ứng dụng web
Thống kê cho thấy 75% cuộc tấn công internet là tấn công ứng dụng web, nógây ra những thiệt hại vô cùng to lớn, vì vậy việc tìm hiểu về tấn công ứng dụngweb là rất cần thiết nhằm có cách phòng chống tấn công và bảo mật ứng dụng webhiệu quả trở thành một yêu cầu cấp thiết…
Do đây là một xu hướng tất yếu của thời đại, nên việc tìm hiểu và nghiêncứu ứng dụng web sẽ giúp ích rất nhiều cho các nhà lập trình web mới, hay cácquản trị viên mới còn ít kinh nghiệm trong việc quản trị hệ thống mạng của mình,phòng tránh, hay khắc phục những lỗi của ứng dụng web Bài tập lớn được thựchiện nhằm mục đích giới thiệu rõ hơn về ứng dụng web nhằm tránh những nhầmlẫn và đồng thời tìm hiểu những tấn công ứng dụng web phổ dụng nhằm cáchphòng chống, bảo mật web một cách hợp lý
Trang 4CHƯƠNG 1: TỔNG QUAN VỀ BẢO MẬT ỨNG DỤNG WEB
I Khái niệm ứng dụng Web
Ứng dụng web là một ứng dụng chủ/ khách sử dụng giao thức HTTP đểtương tác với người dùng hay hệ thống khác
Dưới góc độ chức năng, ứng dụng Web là các chương trình máy tính chophép người dùng website đăng nhập, truy vấn vào ra dữ liệu qua mạng Internet trêntrình duyệt Web yêu thích của họ Dữ liệu sẽ được gửi tới người dùng trong trìnhduyệt theo kiểu thông tin động (trong một định dạng cụ thể, như với HTML thìdùng CSS) từ ứng dụng Web qua một Web Server
Người dùng thường sử dụng một trình duyệt Web như Internet Explorer hayNetscape Navigator Cũng có thể một chương trình đóng vai trò đại lý người dunghoạt động như một trình duyệt tự động Người dùng gửi và nhận các thông tin từtrình chủ thông qua việc tác động mua bán, các diễn đàn, gửi nhận email
Tốc độ phát triển các kỹ thuật xây dựng ứng dựng web cũng phát triển rấtnhanh Ngày nay ứng dụng web thường được viết bằng Java hay các ngôn ngữtương tự và chạy trên máy chủ phân tán, kết nối đến nhiều nguồn dữ liệu
Hình 1 Cấu trúc một ứng dụng web
Hoạt động của ứng dụng Web: Đầu tiên trình duyệt sẽ gửi một yêu cầu(request) đến máy chủ Web thông qua các phương thức cơ bản GET, POST…củagiao thức HTTP, trình chủ lúc này có thể cho thực thi một chương trình được xây
Trang 5dựng từ nhiều ngôn ngữ như C/C++, PHP, ASP,… hoặc trình chủ yêu cầu bộ diễndịch thực thi các trang JSP, JAVAR…theo yêu cầu của trình khách.
Tùy theo các tác vụ của chương trình được cài đặt mà nó xử lý, tính toán, kếtnối đến cơ sở dữ liệu, lưu các thong tin do trình khách gửi đến…và từ đó trả về chotrình khách một luồng dữ liệu có định dạng theo giao thức HTTP or HTTPS, nógồm 2 phần:
• Header mô tả các thông tin về gói dữ liệu và các thuộc tính, trạngthái trao đổi giữa trình duyệt và webserver
• Body là phần nội dung dữ liệu mà server gửi về client, nó có thể làmột file HTML, một hình ảnh, một đoạn phim hay một văn bản bấtkỳ
Hình 2 Sơ đồ mô tả các rủi ro ở các lớp
II An toàn cho ứng dụng Web
Những năm gần đây, các dịch vụ thương mại điện tử như thanh toán trựctuyến, giao dịch trực tuyến ebanking, … phát triển không ngừng Các tiện ích càngđược phát triển, các Web server càng phải trang bị hạ tầng mạng chuyên nghiệp
Trang 6nhằm đáp ứng nhu cầu vận hành liên tục và bảo mật hệ thống.
Một hệ thống mạng bảo mật luôn phải đảm bảo các mục tiêu như: Cho phéphoặc cấm những dịch vụ truy cập ra ngoài; Cho phép hoặc cấm những dịch vụ từngoài truy cập vào trong; Theo dõi luồng dữ liệu mạng giữa Internet và Intranet(mạng nội bộ); Kiểm soát và cấm địa chỉ truy nhập; Kiểm soát người sử dụng vàviệc truy cập của người sử dụng; Kiểm soát nội dung thông tin lưu chuyển trênmạng
1 Những rủi ro tiềm ẩn của Web Application Firewall - WAF
Các dự án về WAF ra đời tính tới thời điểm này đã có rất nhiều sản phẩm rađời đáp ứng đầy đủ các nhu cầu mà WAF mong muốn Song bên cạnh đó, mạngInternet toàn cầu đang ngày càng phát triển như vũ bão kéo theo rất nhiều rủi rotiềm ẩn mà các nhà nghiên cứu WAF vẫn chưa tìm ra cách nào ngăn chặn triệt đểtoàn diện nhất Trong một cuộc khảo sát tổng hợp các rủi ro xảy ra trong môitrường Internet cho thấy có kết quả như sau:
Hình 3 Bảng đánh giá các kiểu tấn công Website
2 Nhu cầu cấp thiết cho ứng dụng web
Thông thường việc bảo vệ các hệ thống mạng đều được giao cho các thiết bịFirewall “truyền thống” Việc theo dõi, giám sát này được Firewall dựa vào địa chỉ
Trang 7IP nguồn và đích kết hợp với cổng-port của luồng dữ liệu vận hành trong hệ thốngmạng.
Một bức tường lửa chuyên dụng sẽ làm các nhiệm vụ như sau:
+ Thiết lập các chính sách cho các kết nối người dùng HTTP thông qua việcchọn lọc nội dung cho máy chủ dịch vụ web
+ Bảo vệ hệ thống trước các loại hình tấn công phổ biến trên mạng như:Cross-site Scripting (XSS) và SQL Injection, …
+ Ngoài việc những động tác kiểm tra của một bức tường lửa thông thường,WAF sẽ kiểm tra sâu hơn, sẽ kiểm tra các nội dung HTTP ở lớp ứng dụng
Hình 4 Mô hình hoạt động của Firewall
Trang 8Hình 5 Mô hình hoạt động của Firewall truyền thống
Hình 4 và 5 trên cho chúng ta thấy rõ một vấn đề lớn của hệ thống: luồng dữliệu kết nối Web (sử dụng giao thức HTTP) từ bên ngoài vào bên trong, truy xuấttới hệ thống dữ liệu Database mà không có sự “giám sát nội dung” của Firewall.Tìm hiểu rõ hơn về cơ chế hoạt động của Firewall truyền thống, chúng ta thấyđược một điều là các thiết bị này hoạt động chủ yếu ở 4 tầng đầu tiên trong môhình OSI, trong khi đó hầu hết các ứng dụng được xây dựng trong hệ thống mạngtuân thủ 3 lớp trên cùng Đây là nguyên nhân khiến Firewall không thể kiểm soátđược nội dung của các kết nối từ Web vào Database
3 Giải pháp Web Application Firewall - WAF
Lớp khóa an toàn (Secure Socket Layer – SSL): là một giao thức được pháttriển bởi Netscape để chuyển các tài liệu cá nhân qua Internet SSL sử dụng một hệthống mật mã sử dụng hai khóa để mã hóa dữ liệu - một khóa công khai được mọingười biết đến và một khóa riêng hoặc bí mật chỉ được biết đến với người nhận tinnhắn
Trang 9Hình 6 Mô hình kết nối người dùng HTTP với Web server sử dụng SSL
WAF là giải pháp bảo mật toàn diện và mạnh mẽ dành cho các ứng dụngWeb WAF đưa ra một phương thức phòng vệ chống lại các hoạt động như tin tặc,khai thác các lỗ hổng về giao thức Bên cạnh đó, WAF còn cảnh báo cho bạn vềnhững lỗi ứng dụng mà các hacker có thể khai thác, đánh cắp thông tin, gây lỗi từchối dịch vụ hoặc làm thay đổi giao diện trang web của bạn
Trang 10Việc ứng dụng giải pháp WAF đòi hỏi cả một quá trình triển khai lâu dài vìbản thân môi trường Internet đã luôn chứa đựng nhiều rủi ro: tấn công dịch vụ, mãđộc, thư rác, Ngày nay, cùng với nhu cầu phát triển xã hội, dịch vụ thương mạiđiện tử mang đến nhiều tiện ích: mua bán hàng trên mạng online, giao dịch chứngkhoán, đặt vé khách sạn, sân bay, … Những việc này sẽ tạo cơ hội tốt cho kẻ xấu(hacker) tìm cách tấn công, khai thác thông tin.
Giải pháp WAF được đưa ra đáp ứng được nhu cầu bảo mật các ứng dụngweb hiện nay, song bên cạnh đó các nhà cung cấp dịch vụ cũng cần phải biết kếthợp với các giải pháp tường lửa truyền thống nhằm mang lại một giải pháp hoànchỉnh cho toàn hệ thống – điều nay chính là việc của các nhà tích hợp hệ thống cầnlàm
Với những yêu cầu và mục tiêu người dùng web đặt ra, các nhà tích hợp hệthống sẽ tư vấn và xây dựng một hệ thống mạng hoàn chỉnh:
+ Kết nối bên ngoài bao gồm các thiết bị định tuyến kết nối ADSL, line… cùng các thiết bị cân bằng tải
Lease-+ Kết nối bảo mật: Các thiết bị tường lửa (Firewall), các hệ thống phòngchống tấn công IDS/IPS và phần mềm giám sát hệ thống
+ Hệ thống máy chủ: Các máy chủ (server) cài đặt hệ điều hành Windows,Linux… và các giải pháp phòng chống virus, chống thư rác (spam mail)
+ Hệ thống lưu trữ: Các thiết bị lưu trữ dữ liệu tích hợp SAN (Storage AreaNetwork)
4 Giới thiệu Dự án An ninh Ứng dụng Web Mở OWASP
Dự án An ninh Ứng dụng Web Mở (Open Web Application Security Project OWASP) là tổ chức từ thiện phi lợi nhuận trên toàn cầu, tập trung vào việc nângcao tính bảo mật của phần mềm Nhiệm vụ của họ là làm cho bảo mật phần mềm
-có thể nhìn thấy được, để các cá nhân và tổ chức -có thể đưa ra những quyết địnhsáng suốt OWASP nằm ở một vị trí duy nhất cung cấp thông tin vô tư, thiết thực
về AppSec cho các cá nhân, các tập đoàn, các trường đại học, các cơ quan chínhphủ và các tổ chức khác trên toàn thế giới Hoạt động như một cộng đồng cácchuyên gia có cùng quan điểm, OWASP đưa ra các công cụ phần mềm và các tàiliệu dựa trên kiến thức về bảo mật ứng dụng
Trang 11Mọi người đều có quyền tham gia vào OWASP và tất cả các tài liệu của tổchức này đều có sẵn dưới giấy phép phần mềm miễn phí và mở Bạn sẽ tìm thấymọi thứ về OWASP ở đây hoặc được liên kết từ wiki của OWASP và thông tin hiệntại trên OWASP Blog của tổ chức này OWASP không xác nhận hoặc giới thiệu cácsản phẩm hoặc dịch vụ thương mại, cho phép cộng đồng chúng ta giữ được trungtâm bán hàng với sự hiểu biết tập thể của những trí tuệ tốt nhất trong bảo mật phầnmềm trên toàn thế giới.
Tổ chức này yêu cầu cộng đồng xem xét việc sử dụng không phù hợpthương hiệu OWASP bao gồm việc sử dụng tên, biểu trưng, tên dự án và các vấn đềnhãn hiệu khác của họ
Có hàng nghìn người dùng wiki đang hoạt động trên khắp thế giới xem xétcác thay đổi đối với trang web để giúp đảm bảo chất lượng Nếu bạn là người mới,bạn có thể muốn xem trang bắt đầu của OWASP Là một nhóm tình nguyện viêntoàn cầu với hơn 45.000 người tham gia, các câu hỏi hoặc ý kiến cần được gửi đếnmột trong nhiều danh sách gửi thư của OWASP tập trung vào chủ đề hoặc hướngtới các nhân viên sử dụng OWASP Contact Us Form
III Một số lỗi bảo mật ứng dụng web thông dụng
• Trusting Client – side data
• Unescaped Special Characters
• HTML Character Filtering
• Authentication mechanisms using technologies such as JavaScript or ActiveX
• Lack of re-authenticating the user before issuing new passwords
or performing critical tasks
• Hosting of uncontrolled data on a protected domain
Các lỗi bảo mật ở trên có thể xuất hiện trong tất cả các ứng dụng web, bất
kể nó được phát triển bởi các chuyên gia độc lập hay các công ty phần mềm nổi tiếng nhất
1 Tin cậy dữ liệu phía máy khách
Nguyên nhân là do máy khách (Client) sẽ gửi các gói tin (Packet chứa
Trang 12SYN=1) đến máy chủ (Server) để yêu cầu kết nối Khi nhận được gói tin, máy chủ
sẽ gửi lại gói tin SYN/ACK để thông báo cho máy khách biết là nó đã nhận đượcyêu cầu kết nối và chuẩn bị tài nguyên (dữ liệu) cho yêu cầu này Và cuối cùngmáy khách hoàn tất việc “bắt tay” để trao đổi thông tin theo mô hình sau:
5 Không thoát kí tự đặc biệt
! @ $ % ^ & *( ) -_ + ` ~ \ | [ ] { } ; : ' " ? / , >
<
Bất cứ thao tác nào của ứng dụng có thực hiện truy vấn tới cơ sở dữ liệu đều
có thể bị lợi dụng để tấn công Sql injection Các thao tác cơ bản với CSDL là:select, insert, update đều có thể bị tấn công Có thể kể ra vài thao tác phổ biến cóthể tấn công như:
- Kiểm tra đăng nhập ứng dụng
- Thao tác lưu comment của user xuống DB
- Thao tác truy vấn thông tin user
Nguyên nhân chính của việc truy vấn sai này chính là do dữ liệu của tham
số truyền vào mã độc được gắn trực tiếp vào Link trang Web, một khi truy cập vào
đường Link có chứa mã độc, thì đoạn mã độc sẽ được thực thi
6 Lọc ký tự HTML
Trang 13> => >
& => &
Các ký tự Null phải được gỡ bỏ
7 Cơ chế xác thực sử dụng các công nghệ như JavaScript hoặc ActiveX.
Biến truyền vào là ngôn ngữ script phía client, chẳng hạn như javascript,vbscript, XML… Ở các trang đăng nhập hệ thống hoặc các trang buôn bán trựctuyến, người thiết kế web thường dùng các script chèn vào trang html để kiểm tratính hợp lệ của dữ liệu phía người dùng (client) Bằng cách thay đổi loại ngôn ngữhoặc thậm chí cài đặt thêm mã bằng ngôn ngữ khác, hacker có thể vượt qua các bộlọc kiểm tra được cài đặt sẵn trong trang web
- Thiếu xác thực lại người dùng trước khi phát hành mới mật khẩu hoặc thựchiện các nhiệm vụ quan trọng
- Lưu trữ dữ liệu không kiểm soát được trên một miền được bảo vệ
ActiveX là một thư viện khung dùng cho việc định nghĩa các thành phầnphần mềm tái sử dụng trong một ngôn ngữ lập trình theo cách độc lập Chươngtrình ứng dụng có thể được sáng tạo từ một hoặc nhiều thành phần này để cung cấpcác hàm chức năng
IV Khám phá thông tin
Thu thập thông tin trang web rất hữu ích để tự động hoá các tác vụ nhất địnhđược thực hiện thường xuyên trên các trang web
1 Các đặc tính nhận dạng
Một web chuẩn SEO sẽ cần đáp ứng cả những tiêu chí của Google, tức làcode web dễ đọc có hệ thống Khi Google vào một website tìm hiểu nội dung,website đó phải rất thân thiện với google
Nội dung bài viết hay, hấp dẫn, khoa học, logic và cung cấp đầy đủ thông tincho người đọc khai thác
Website phải được thiết kế theo chuẩn W3C
Trang 14Code của web phải tối ưu chuẩn SEO, tốc độ load trang nhanh.Thân thiệnvới người dùng.
Phải liên tục viết bài có nội dung mới lên website
Hoạt động ổn định, bảo mật cao
8 Tiện ích mở rộng URL
URL, viết tắt của Uniform Resource Locator (Định vị Tài nguyên thống nhất), được dùng để tham chiếu tới tài nguyên trên Internet URL mang lại
khả năng siêu liên kết cho các trang mạng Các tài nguyên khác nhau được tham
chiếu tới bằng địa chỉ, chính là URL, còn được gọi là địa chỉ mạng hay là liên kết mạng (hay ngắn gọn là liên kết).
Thẻ <meta> được sử dụng để cung cấp các thông tin thêm như vậy Thẻ này
là một phần tử trống và không có thẻ đóng nhưng nó lại mang thông tin trong thuộctính của nó
Với các trang Web mang tính thương mại thì thẻ meta là một trong các nhân
tố quan trọng cho SEO Việc tối ưu hóa thẻ meta càng tốt sẽ giúp cho trang Web
của bạn càng nhanh lên top khi được tìm kiếm bởi Google
10 Cookies
Cookies là một đoạn văn bản mà một Web server có thể lưu trên ổ cứng củangười dùng Cookies cho phép một website lưu các thông tin trên máy tính củangười dùng và sau đó lấy lại nó Các mẩu thông tin sẽ được lưu dưới dạng cặp tên– giá trị (name-value)
Ví dụ, một website có thể tạo một số ID duy nhất cho mỗi khách truy cập vàlưu số ID đó trên mỗi máy tính người dùng bằng một file cookies
Nếu sử dụng Internet Explorer của Microsoft để duyệt web, có thể thấy tất
Trang 15cả các cookies được lưu trên máy tính Địa điểm mà chúng thường trú là trong thưmục có tên c:\windows\cookies Khi quan sát thư mục đó trên máy tính sẽ thấy rấtnhiều file Mỗi file là một file văn bản có chứa các cặp tên – giá trị và có một filecho mỗi một website đã đặt cookies trên máy tính.
11 Tiêu đề Phản hồi HTTP
HTTP là viết tắt của Hypertext Transfer Protocol Đó là tập hợp các quy tắcchuẩn dành cho việc biểu diễn dữ liệu, application-layer giao thức cho giao tiếpgiữa hệ thống phân phối, và là nền tảng của các web hiện đại
HTTPS là một giao thức được sử dụng để cung cấp bảo mật qua Internet.HTTPS đảm bảo với người dùng rằng họ đang nói chuyện với máy chủ họ mongđợi và không ai khác có thể đánh chặn hoặc thay đổi nội dung mà họ đang nhìn thấykhi chuyển tiếp
Nếu có bất cứ thứ gì mà người dùng của bạn muốn riêng tư, bạn chỉ nên sửdụng HTTPS để phân phối nó Tất nhiên điều này có nghĩa là áp dụng cho thẻ tíndụng và các trang đăng nhập (và URL mà họ gửi đến) Ví dụ một form đăng nhậpthường sẽ thiết lập một cookie sẽ được gửi cùng với mọi yêu cầu khác đến trang củabạn mà người dùng đăng nhập tạo ra và được sử dụng để xác thực các yêu cầu đó.Một kẻ tấn công ăn cắp được thông tin này sẽ có thể bắt chước (giả mạo) ngườidùng một cách hoàn hảo và tiếp quản phiên đăng nhập của họ Để đánh bại các loạitấn công này, bạn hầu như luôn muốn sử dụng HTTPS cho toàn bộ trang web củamình
Điều đó không còn khó khăn và tốn kém như trước nữa Hãy để Encryptcung cấp các xác nhận hoàn toàn miễn phí và tự động, bạn sẽ cần HTTPS, các toolcộng đồng hiện có sẵn cho một loạt các nền tảng và framework chung để tự độngthiết lập
12 Thông báo lỗi
Hãy cẩn thận với lượng thông tin bạn đưa ra trong các thông báo lỗi củamình Chỉ nên cung cấp lỗi nhỏ cho người dùng, để đảm bảo rằng họ không làm rỏ
rỉ bí mật trên máy chủ (ví dụ như các key API hoặc các password của DB) Khôngcung cấp đầy đủ chi tiết ngoại lệ vì những điều này có thể làm cho các cuộc tấncông phức tạp như SQL injection trở nên dễ dàng hơn Giữ các lỗi chi tiết trong
Trang 16nhật ký server và chỉ cung cấp cho user thông tin họ cần.
V Kiểm tra mạng
1 Port Scan Nmap
Scan port 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 Nmap là một tool scan port rất mạnh và được giớihacker tin dùng Nó hỗ trợ toàn bộ các phương thức scan port, ngoài ra nó còn hỗtrợ các phương thức scan hostname, service chạy trên hệ thống đó
Nmap hiện giờ có cả giao diện đồ họa và giao diện command line cho ngườidùng, chạy trên cả môi trường NIX và Windows
- Các dạng Scan nmap hỗ trợ.
Nmap –sT: ( ScanTCP)
Nmap –sU: đó là sử dụng UDP Scan
Nmap –sP: sử dụng Ping để scan
Nmap –sF: sử dụng FIN Scan
Nmap –sX: sử dụng phương thức XMAS Scan
Nmap –sN: sử dụng phương thức NULL Scan
Nmap –sV: sử dụng để Scan tên các ứng dụng và version của nó
Nmap –SR /I RPC sử dụng để scan RPC
2 NSLookup/ Reverse DNS
Sử dụng khả năng tìm kiếm tên máy chủ của tra cứu đảo ngược DNS để tìmtất cả các mục nhập DNS ngược lại cho một tổ chức cụ thể Đơn giản chỉ cần nhậptên của một tổ chức tên miền example.com để có được kết quả Hiện kết quả đượcgiới hạn ở tối đa 5000 kết quả - điều này thường chỉ là vấn đề đối với các công tydịch vụ Internet lớn và ISP
Phần lớn dữ liệu được sử dụng cho tìm kiếm tên máy chủ lưu trữ xuất phát
từ dự án scans.io tuyệt vời đã bị loại khỏi các phòng thí nghiệm Rapid7 Cơ sở dữ
Trang 17liệu các mục nhập DNS ngược được cập nhật lần cuối vào ngày 11/10/16 và baogồm không gian địa chỉ IPv4 đầy đủ Điều này tương đương với 57 GB bản ghiDNS PTR văn bản thuần túy.
- Trường hợp các mục nhập DNS ngược được sử dụng
Nhiều dịch vụ Internet, công cụ mạng và đăng nhập máy chủ sẽ sử dụngDNS ngược để điền vào các trường địa chỉ IP với một tên máy con có thể đọc đượccủa nhiều người hơn Một ví dụ của điều này có thể được nhìn thấy trong đầu racủa một công cụ traceroute
- Cấu hình Reverse DNS
Reverse DNS được cấu hình và kiểm soát bởi các chủ sở hữu khối IP Tênmáy chủ DNS ngược lại sẽ được cấu hình để chỉ chủ sở hữu netblock chẳng hạnnhư ISP hoặc nhà cung cấp dịch vụ lưu trữ web
Nếu bạn đang lưu trữ một máy chủ với một địa chỉ IP chuyên dụng và muốn
có cấu hình DNS ngược (yêu cầu nếu bạn đang chạy một máy chủ thư Internet).Bản ghi PTR thường sẽ được định cấu hình thông qua nhà cung cấp lưu trữ chặn IPcủa bạn (thường là công ty lưu trữ máy chủ)
- Reverse DNS API
Ngoài biểu mẫu web, cũng có thể truy cập nhanh công cụ DNS ngược bằngAPI Đầu ra sẽ ở dạng văn bản thuần túy và sẽ bao gồm địa chỉ IP và tên máy chủlưu trữ DNS ngược với một không gian cách nhau Truy cập API sử dụng trìnhduyệt web, cuộn tròn hoặc bất kỳ ngôn ngữ kịch bản thông thường nào
3 DNS Zone Transfer (DIG) - Chuyển vùng DNS (DIG)
Một trong những cấu hình sai nghiêm trọng mà người quản trị hệ thống cóthể mắc phải là cho phép người dùng Internet không đáng tin cậy được tiến hànhchuyển vùng DNS
Chuyển vùng (Zone Transfer) cho phép máy phục vụ phụ cập nhật cơ sỡ dữliệu từ máy chính Như vậy là làm dư thừa khi chạy DNS, nhỡ như máy phục vụtên chính không khả dụng Nói chung, máy phục vụ DNS phụ chỉ cần chuyển vùngDNS Thế nhưng nhiều máy phục vụ DNS bị lập cấu hình sai và cung cấp bản saovùng cho người nào yêu cầu không nhất thiết là xấu nếu thông tin cung cấp liên
Trang 18quan đến hệ thống nối mạng Internet và có tên máy chủ hợp lệ, dẫu tạo điều kiện
dễ dàng cho kẻ tấn công tìm thấy đích.Vấn đề thực sự nảy sinh khi tổ chức không
áp cụng cơ chế DNS cổng riêng để cách ly thông tin DNS ngoài (công khai) vớithông tin DNS trong Cung cấp thông tin địa chỉ IP trong cho người dùng khôngđáng tin cậy qua mạng Internet cũng giống như cung cấp bản đồ trong của tổ chức
Chúng ta hãy xem xét một vài phương pháp chuyển vùng,và các loại thôngtin.Tuy có nhiều công cụ chuyển vùng, ở đây chỉ giới thiệu vài loại phổ biến màthôi
Cách đơn giản để chuyển vùng là dùng máy khách “nslookup” thường do thihành UNIX và NT mang lại Chúng ta áp dụng “nslookup” trong chế độ tương tácvới nhau:
Tiếp theo chúng ta định loại mẫu tin là “any” Tác vụ này cho phép bạn kéomẫu tin DNS bất kì (man nslookup) cho danh sách hoàn chỉnh
Sau cùng,liệt kê toàn bộ mẫu tin liên quan đến vùng bằng tuỳ chọn “ls”.”-d”
Trang 19liệt kê tất cả mẩu tin vùng Chúng ta thêm “ ” ở cuối câu để cho biết tên vùng hội
đủ điều kiện, song đa phần là để vậy Hãy đổi hướng kết quả và tập tin
“/tmp/zone_out” để có thể thao tác sau này
Chuyển vùng xong, chúng ta xem trong tập tin coi có thông tin lý thú nàocho phép nhắm đến hệ thống cụ thể không Hãy xem kết quả sau:
[bash] more zone_out
1D IN HINFO “Gateway2000” “WinWKGRPS”
1D IN MX 0 tellurianadmin-smtp 1D IN RP bsmith.rci bsmith.who 1D INTXT “Location: Acounting”
Chúng ta sẽ không đi chi tiết từng mẫu tin,chỉ lưu ý vài loại quan trọng Đốivới mỗi mục nhập, chúng ta có mẫu tin A cho biết địa chỉ IP của tên hệ thống nằmbên phải Ngoài ra, mỗi máy chủ đều có mẩu tin HINFO nhận diện nền hoặc loại
hệ điều hành đang chạy (RFC-952) Mẩu tin HINFO tuy không cần thiết song cungcấp nhiều thông tin cho kẻ tấn công Vì chúng ta đã lưu kết quả chuyển vùng vàotập tin đầu ra nên dễ dàng thao tác kết quả bằng chương trình UNIX như:grep,sed,awk,hoặc Perl
Giả thiết chúng ta là những chuyên gia trong SunOS hoặc Solaris, có thể tìm
Trang 20ra địa chỉ IP có mẩu tin HINFO liên quan đến SPARC,Sun,hoặc Solaris.
[bash] $ grep -i solaris zone_out |wc -1
Chúng ta có 388 mẩu tin tham chiếu "Solaris" Khỏi phải nói, chúng ta cóquá nhiều mục tiêu
Giả sử chúng ta muốn tìm hệ thống thử nghiệm, vô tình là chọn lựa cho kẻtấn công Tại sao? Thật đơn giản, chúng thường không kích hoạt nhiều đặc tính bảomật,mật mã để đoán,nhà quản trị không hay để ý hoặc bận tâm ai đãng nhập chúng.Một chốn lý tưởng cho những kẻ xâm nhập Do đó, chúng ta tìm hệ thống thửnghiệm như sau:
[bash] $ grep -i test /tmp/zone_out |wc -196
Nên có khoảng 96 mục nhập trong tập tin vùng có chứa từ "test" Phải bằngvới số hệ thống thử nghiệm thật Trên đây chỉ là một vài ví dụ đơn giản Hầu hết kẻxâm nhập sẽ mổ xẻ dữ liệu này để tập trung vào loại hệ thống cụ thể có chổ yếu đãbiết
Có vài điểm cần ghi nhớ Phương pháp nêu trên chỉ truy cập lần lượt máyphục vụ tên Tức là phải thực hiện cùng một tác vụ cho tất cả máy phục vụ tên cóthẩm quyền đối với vùng đích Chúng ta chỉ truy vấn vùng Tellurian.net mà thôi.Nếu có vùng con,sẽ phải thực hiện cùng loại truy vấn cho từng vùng con (chẳnghạn như greenhouse.tellurian.net) Sau cùng bạn nhận thông báo không thể liệt kêvùng hoặc từ chối truy vấn Thường điều này cho thấy máy phục vụ đã được lậpcấu hình để vô hiệu hóa chuyển vùng của người dùng bất hợp pháp.Vì vậy,bạn khólòng chuyển vùng từ máy phục vụ này Nhưng nếu có nhiều máy phục vụ DNS,bạn sẽ có cơ may tìm được máy cho phép chuyển vùng
Có rất nhiều công cụ đẩy nhanh tiến trình này,bao gồm: host,Sam Spade,axfr
và dig(không đề cập ở đây)
Lệnh "host" mang nhiều hương vị của UNIX Cách dùng lệnh "host"như sau:host -1 tellurian.net hoặc
host -1 -v -t any tellurian.net
Nếu cần mỗi địa chỉ IP để đưa vào kịch bản shell,bạn cut(cắt) địa chỉ IP khỏilệnh "host" host -1 tellurian.net |cut -f 4 -d" " >>/tmp/ip_out