SCADA – Mục tiêu tấn công mới của Hacker
Tác động của các cuộc tấn công nhắm vào hệ thống kiểm soát giám sát và thu thập dữ liệu (SCADA) phụ thuộc vào ý định của các tác nhân đe dọa và mức độ truy cập và kiến thức họ có về mục tiêu.
Các cuộc tấn công mạng lưới điện Stuxnet và Ukranian vừa qua cho chúng ta những ý tưởng rõ ràng về mức độ thiệt hại mà một hacker quyết tâm có thể gây ra không chỉ cho doanh nghiệp hoặc hoạt động liên quan, mà còn gây ảnh hưởng cho công chúng nói chung.
Bài viết tham khảo của Trend Micro
Trong vòng mấy năm trở lại đây, một loại hình tấn công bằng mã độc vào các hệ thống lưới điện đã bắt đầu xảy ra ở một số nơi trên thế giới.
Điều đáng báo động ở đây là các giao thức điều khiển hệ thống lưới điện đã được thiết kế cách đây hàng thập kỷ và có nhiều điểm sơ hở cho các tấn công bằng mã độc. Hacker đột nhập mạng lưới điện, làm trạm biến áp và thiết bị chuyển mạch bị liệt, gây mất điện – điều từng xảy ra ở Ukraine tháng 12/2015.
Tìm hiểu vụ tấn công mạng nhằm vào lưới điện Ukraine, hãng bảo mật ESET (Slovakia) đã phát hiện một phần mềm mã độc có khả năng đánh sập các lưới điện toàn cầu được đặt tên là Industroyer (hay Crash Override), có khả năng kiểm soát trực tiếp các công tắc tại những trạm truyền tải điện, công tắc mạch điện và có nguy cơ bị lợi dụng làm phương tiện đánh sập mạng lưới cấp điện hoặc phá hủy các thiết bị thuộc mạng lưới truyền tải điện.
Industroyer là nguy cơ lớn nhất đối với các hệ thống điều khiển công nghiệp kể từ khi Stuxnet – sâu phá hoại máy ly tâm được sử dụng trong chương trình hạt nhân của Iran năm 2009. Đến nay đã có 4 loại tấn công bằng mã độc nhắm vào các hệ thống điều khiển công nghiệp đã được phát hiện bao gồm Stuxnet (được Mỹ và Israel tạo ra), Black Engergy 2, Havex và Industroyer.
BlackEnergy và Havex được thiết kế cho mục đích gián điệp (espionage), Stuxnet và Industroyer cho mục đích phá hoại (sabotage). Với một số sửa đổi, vũ khí này có thể được dùng để chống lại các hệ thống truyền tải và phân phối điện tại Mỹ, gây ra những tổn thất nghiêm trọng, và về mặt lý thuyết, nó cũng có thể được sửa đổi để tấn công các loại hệ thống kiểm soát công nghiệp khác nhau như nước và khí đốt.
Theo công ty bảo mật Dragos (Mỹ), Industroyer trở nên tinh xảo nhờ “hiểu” các giao thức điều khiển trong các hệ thống điều khiển, cho phép vẽ bản đồ các thiết bị công nghiệp và gửi các lệnh điều khiển mạch điện.
Bộ công cụ này cũng chứa một chức năng của bom logic (logic boom) cho phép mã độc lây nhiễm nhiều hệ thống và đồng thời tấn công chúng.
Một khi kẻ tấn công cài đặt được các cửa hậu của Industroyer, chúng có thể đánh cắp thông tin bảo mật của hệ thống và tài khoản của quản trị viên, từ đó có thể tự do truy cập vào mạng lưới mà không bị phát hiện – nơi chúng sẽ thực hiện hoạt động do thám trong nhiều tháng, quét lưu lượng mạng và tìm hiểu các hành vi hằng ngày của các quản trị viên để bắt chước.
Điểm nguy hiểm của mã độc là nó có thể tự động gạt các công tắc điện bên trong một hệ thống, khiến các đường dây truyền tải điện rơi vào tình trạng quá tải, vượt ngưỡng của hệ thống, lưới điện bị đánh sập hoàn toàn.
Các tác nhân đe dọa có thể sử dụng quyền truy cập của họ vào các hệ thống SCADA để thu thập thông tin như bố cục của cơ sở, ngưỡng quan trọng hoặc cài đặt thiết bị để sử dụng trong các cuộc tấn công sau này. Phá hoại, bao gồm phá vỡ các dịch vụ hoặc gây ra các tình huống nguy hiểm và thậm chí gây chết người liên quan đến các tài nguyên dễ cháy hoặc nguy kịch, thể hiện sự cực đoan không mong muốn.
Những kẻ tấn công xâm nhập vào các hệ thống SCADA thông qua nhiều phương tiện khác nhau, một trong số đó là thông qua việc khai thác các lỗ hổng phần mềm phổ biến trong Giao diện người máy (HMI). Một HMI hiển thị dữ liệu từ máy sang người và chấp nhận các lệnh từ người vận hành đến máy. Thông qua giao diện này, một nhà điều hành giám sát và phản hồi thông tin hiển thị trên hệ thống.
Một HMI hiện đại cung cấp một hình ảnh trực quan rất tiên tiến và có thể tùy chỉnh về trạng thái hiện tại của một hệ thống. Thường xuyên hơn không, nhà điều hành kiểm soát một hệ thống SCADA thông qua giao diện này, thường được cài đặt trên một vị trí kích hoạt mạng. Do đó, HMI phải được coi là mục tiêu chính trong hệ thống SCADA, chỉ nên được cài đặt trên một không khí bị tách rời hoặc bị cô lập trên một mạng đáng tin cậy. Kinh nghiệm cho thấy điều này không phải lúc nào cũng đúng.
Mặc dù có những rủi ro rõ ràng khi có quyền truy cập trái phép vào các hệ thống quan trọng, ngành công nghiệp đằng sau sự phát triển của các hệ thống SCADA, cụ thể là các nhà cung cấp HMI, có xu hướng tập trung nhiều hơn vào sản xuất thiết bị và ít bảo mật phần mềm được thiết kế để kiểm soát chúng. Việc thiếu các tiêu chuẩn toàn cầu cho phần mềm HMI càng làm trầm trọng thêm các vấn đề bảo mật phần mềm trong lĩnh vực này. Chúng tôi cũng đã quan sát các giám sát phát triển phần mềm có thể dự đoán tương tự, điều này chứng minh rằng các HMI không sử dụng các biện pháp phòng thủ chuyên sâu cơ bản.
Nghiên cứu này kiểm tra trạng thái bảo mật SCADA HMI hiện tại bằng cách xem xét tất cả các lỗ hổng được tiết lộ công khai trong phần mềm SCADA đã được sửa chữa từ năm 2015 và 2016, bao gồm 250 lỗ hổng có được thông qua chương trình Zero Day Initiative (ZDI). Chúng tôi thấy rằng hầu hết các lỗ hổng này nằm trong các lĩnh vực lỗi bộ nhớ, quản lý thông tin kém, thiếu xác thực / ủy quyền và mặc định không an toàn và lỗi tiêm mã, tất cả đều có thể ngăn chặn được thông qua các hoạt động phát triển an toàn.
Các cuộc tấn công cơ sở hạ tầng quan trọng
Mặc dù bạn có thể không nhận ra điều đó, nhưng cuộc sống hiện đại hàng ngày phụ thuộc rất nhiều vào các hệ thống SCADA. Các hệ thống này chịu trách nhiệm vận hành các quy trình công nghiệp liên quan đến các hoạt động như sản xuất điện, sản xuất, sản xuất cơ giới hóa và tinh chế. Các hệ thống SCADA là cốt lõi của các nhà máy xử lý nước, đường ống dẫn khí, hệ thống phân phối điện, trang trại gió, hệ thống thông tin mở rộng và thậm chí cả còi báo động dân sự.
Nói cách khác, đằng sau hầu hết các tiện ích hiện đại, tồn tại một hệ thống SCADA ở đâu đó kiểm soát chúng. Do đó, các cuộc tấn công vào các hệ thống SCADA có khả năng tác động đến một loạt các hệ thống và nhiều phần cơ sở hạ tầng quan trọng. Đó là trường hợp đối với hai cuộc tấn công nổi tiếng, vụ tấn công hệ thống hạt nhân Iran, được biết đến nhiều hơn là Tấn Stuxnet, Hồi và cuộc tấn công lưới điện Ukraine.
Cuộc tấn công Stuxnet vào một nhà máy hạt nhân Iran
Phần lớn đã được viết về Stuxnet. Trên thực tế, có rất nhiều thông tin có sẵn về phần mềm độc hại này mà nó có cuốn sách1 và phim riêng.2 Trong khi mục tiêu cuối cùng của Stuxnet là phá hoại chương trình hạt nhân của Iran bằng cách làm hỏng bộ điều khiển logic lập trình (PLC), bằng cách nhắm mục tiêu phần mềm kỹ thuật WinCC của Siemens, cung cấp chức năng giống như HMI.
Báo cáo cho biết rằng có đến 1/5 số máy ly tâm của Iran đã bị hỏng bởi Stuxnet. Sự xuất hiện của phần mềm độc hại nhắm vào cơ sở hạ tầng quan trọng của nước ngoài cho thấy tìm kiếm và khắc phục sự cố nghiêm trọng trong các hệ thống SCADA.
Cuộc tấn công lưới điện Ukraine
Vào ngày 23 tháng 12 năm 2015, việc mất điện đột xuất đã bắt đầu ảnh hưởng đến một lượng lớn khách hàng được phục vụ bởi các công ty điện lực Ukraine. Cũng có báo cáo về việc nhiễm phần mềm độc hại ảnh hưởng đến các công ty Ucraina trong nhiều lĩnh vực cơ sở hạ tầng quan trọng. Theo Nhóm ứng phó khẩn cấp an ninh mạng của hệ thống kiểm soát công nghiệp (ICS-CERT), Trong các cuộc tấn công mạng, hoạt động từ xa của máy cắt được thực hiện bởi nhiều người bên ngoài bằng cách sử dụng các công cụ quản trị từ xa (RAT) hiện có ở cấp độ HĐH hoặc từ xa Phần mềm máy khách ICS thông qua các kết nối mạng riêng ảo (VPN).
Nói cách khác, những kẻ tấn công đã tắt đèn cho hơn 230.000 khách hàng chỉ bằng vài cú click chuột. Các cuộc tấn công này không nhắm vào các lỗ hổng HMI, nhưng chúng đã nhắm vào giải pháp HMI. Do không có sự cô lập mạng, kẻ tấn công có thể kết nối qua VPN và sử dụng các giải pháp truy cập từ xa để vô hiệu hóa các hệ thống thông qua HMI.
Trong khi một số người Ukraine đã nhanh chóng đổ lỗi cho các nước láng giềng ở phía đông, thì phần thực sự đáng sợ của câu chuyện này là sự thừa nhận rằng hệ thống điện của Ukraine được coi là an toàn hơn so với các đối tác ở US6 Bất kể ai chịu trách nhiệm hay tại sao , cuộc tấn công đã cho thấy những gì một hacker quyết tâm có thể làm với nguồn cung cấp năng lượng của một quốc gia được cung cấp đủ thời gian và nguồn lực.
Vì sao HMI là mục tiêu tấn công ?
Khi đi sau các hệ thống SCADA, những kẻ tấn công có xu hướng nhắm mục tiêu HMI vì những lý do rõ ràng. HMI đại diện cho trung tâm chính để quản lý cơ sở hạ tầng quan trọng. Nếu nó có thể bị xâm phạm, bất cứ điều gì cũng có thể được thực hiện đối với cơ sở hạ tầng, bao gồm cả việc gây ra thiệt hại vật lý cho thiết bị SCADA.
Ngay cả khi mục đích không gây hại cho hệ thống SCADA, bằng cách kiểm soát HMI, kẻ tấn công có thể thu thập thông tin kiến trúc quan trọng cho các mục đích khác. Vì HMI đóng vai trò là trung tâm chính để quản lý cơ sở hạ tầng quan trọng, việc kiểm soát nó cho phép kẻ tấn công thu thập thông tin về kiến trúc của nó. Kẻ tấn công cũng có thể vô hiệu hóa các báo động và thông báo nhằm cảnh báo cho các nhà khai thác về sự nguy hiểm đối với thiết bị SCADA.
Ngành công nghiệp HMI
Thị trường ngành SCADA HMI rất sôi động, nhưng thường không an toàn như mong muốn vì nhiều lý do. Các nhà cung cấp HMI lớn nhất trong ngành bao gồm Siemens, Eclech và GE, nhưng cũng có những công ty hơn ở nhiều quốc gia khác.
Hơn nữa, vì các nhà cung cấp có quy mô khác nhau cùng tồn tại, việc sáp nhập và mua lại cũng xảy ra thường xuyên. Trong một số trường hợp, một nhà cung cấp nhỏ được mua trước khi một bản vá xuất hiện, khiến cho việc theo dõi tình trạng dễ bị tổn thương trong suốt quá trình tiết lộ. Ngoài ra, các nhà cung cấp hệ thống SCADA có xu hướng tập trung vào các thiết bị công nghiệp thực tế chứ không tập trung vào phần mềm quản lý chúng vì họ kiếm được nhiều lợi nhuận nhất khi bán phần cứng. Trên thực tế, thông thường, Software HMI cho một hệ thống có thể tải xuống miễn phí.
Khi nói đến các mã thực tế đằng sau các hệ thống SCADA, đa số không sử dụng các biện pháp chuyên sâu phòng thủ cơ bản như ngẫu nhiên bố trí không gian địa chỉ (ASLR), SafeSEH, hoặc ngăn xếp cookie. Điều này có thể liên quan đến niềm tin nhầm lẫn rằng các giải pháp này sẽ hoạt động trong một môi trường hoàn toàn bị cô lập.
Các nhà phát triển giải pháp SCADA thường có ít kinh nghiệm liên quan đến việc xây dựng giao diện người dùng (UI). Điều này được kết hợp bởi thực tế là các nhà phát triển không biết môi trường hoạt động cuối cùng sẽ như thế nào đối với các hệ thống. Điều này khiến các nhà phát triển đưa ra các giả định thường không chính xác. Nếu không có chương trình vòng đời phát triển trưởng thành để hướng dẫn họ, các nhà phát triển SCADA có thể sẽ tiếp tục mắc phải những lỗi tương tự mà các nhà phát triển ứng dụng và HĐH đã mắc phải một thập kỷ trước.
Các loại lỗ hổng phổ biến trong các cuộc tấn công
Để xác định lỗ hổng nào tồn tại trong HMI, các nhà nghiên cứu của ZDI đã xem xét các tư vấn của ICS-CERT năm 2015 và 2016 để xác định tất cả các giải pháp đã khắc phục lỗi trong vòng hai năm qua. Dữ liệu này sau đó được tham chiếu chéo với hơn 250 ngày không được mua bởi chương trình ZDI. Thông tin này cũng được so sánh với Bảng liệt kê điểm yếu chung (CWE) để xác định những gì tồn tại trong lĩnh vực này. Chúng tôi đã phân loại các loại lỗ hổng SCADA này trong khoảng thời gian này thành hỏng bộ nhớ, quản lý thông tin xác thực, thiếu xác thực / ủy quyền và mặc định không an toàn và chèn mã.
Mặc dù một số vấn đề về kịch bản chéo trang (XSS) và Giả mạo yêu cầu chéo trang (CSRF) đã được mong đợi, hầu hết các HMI đều là Windows và không phải là ứng dụng dựa trên web. Một số lỗi XSS và CSRF tồn tại trong danh mục của Other Other, mặc dù chúng không nhiều. Thay vào đó, hầu hết các lỗ hổng tồn tại trong một trong bốn lĩnh vực, cụ thể là:
- Memory corruption
- Credential management
- Lack of authentication/authorization and insecure defaults
- Code injection
Vấn đề lỗi bộ nhớ
Các vấn đề lỗi bộ nhớ chiếm 20% các lỗ hổng được xác định. Các điểm yếu trong danh mục này thể hiện các vấn đề bảo mật mã cổ điển như lỗi tràn bộ đệm dựa trên stack và heap và các lỗ hổng đọc / ghi ngoài giới hạn. Lỗi bộ nhớ có thể xảy ra trong HMI khi nội dung của một vị trí bộ nhớ bị vô tình sửa đổi do lỗi ở đâu đó trong mã. Điều này cũng có thể được gọi là vi phạm an toàn bộ nhớ. Khi nội dung bộ nhớ bị hỏng được sử dụng sau này trong chương trình đó, chương trình sẽ gặp sự cố hoặc thực thi mã không chạy.
Vấn đề quản lý mật khẩu – tài khoản xác thực
Các vấn đề quản lý uy tín chiếm 19% các lỗ hổng được xác định. Các lỗ hổng trong danh mục thể hiện các trường hợp như sử dụng mật khẩu được mã hóa cứng, lưu trữ mật khẩu ở định dạng có thể phục hồi (ví dụ: văn bản rõ ràng) và bảo vệ thông tin không đủ.
Vấn đề Thiếu xác thực / ủy quyền và mặc định không an toàn
Thể loại này đại diện cho 23% các lỗ hổng SCADA. Nó bao gồm nhiều mặc định không an toàn, truyền thông tin rõ ràng về thông tin nhạy cảm, mã hóa bị thiếu và các điều khiển ActiveX không an toàn được đánh dấu an toàn cho tập lệnh.
Vấn đề chèn mã độc
Giống như các dịch vụ trực tuyến khác, lỗ hổng tiêm mã tồn tại trong vương quốc HMI. Những vấn đề này chiếm 9% các lỗ hổng được xác định. Mặc dù các kiểu tiêm phổ biến SQL SQL, lệnh, HĐH, mã vẫn còn xảy ra, nhưng có các lệnh tiêm cụ thể theo miền cũng gây rủi ro cho các giải pháp SCADA. Một trong những ngôn ngữ dành riêng cho tên miền dễ bị chèn là tập lệnh Gamma Script, được sử dụng bởi hệ thống Cogent DataHub.
Nghiên cứu lỗ hổng của hệ thống
Đối với các nhà nghiên cứu đang tìm kiếm các lỗ hổng trong các giải pháp HMI, bao gồm các nhà cung cấp đang kiểm tra các giải pháp của riêng họ, có những bước bạn có thể thực hiện để giúp tìm lỗi nhanh chóng và hiệu quả.
Làm mờ cơ bản – Basic Fuzzing
Bước đầu tiên để tìm lỗ hổng trong các giải pháp HMI liên quan đến làm mờ. Ngay cả việc làm mờ bit đơn giản cũng tạo ra kết quả hiệu quả cao chống lại các lỗ hổng HMI. Các nhà nghiên cứu nên tìm kiếm các liên kết tệp mới trong khi cài đặt để hỗ trợ làm mờ, vì nhiều định dạng tệp được mở rộng. Ngoài ra, hãy đảm bảo kích hoạt heap trang trên quá trình đang bị tấn công để tìm lỗi heap memory kể từ đó nó bị phá vỡ tại điểm lỗi thay vì sau này khi nó được sử dụng.
Phân tích bề mặt tấn công
Bộ phân tích bề mặt tấn công Microsoft (ASA) 19 hỗ trợ các nhà phát triển tìm hiểu các thay đổi trong hệ thống Windows tấn công bề mặt do kết quả của việc cài đặt các ứng dụng mà nhà cung cấp phát triển. Công cụ tạo ảnh chụp nhanh hệ thống trước và sau khi cài đặt. ASA cũng nhấn mạnh các cấu hình sai bảo mật và tăng trong các bề mặt tấn công. Chúng bao gồm những thứ như các đối tượng Mô hình đối tượng thành phần (COM), điều khiển ActiveX, liên kết tệp và điểm cuối RPC.
Audit API
Kể từ khi giới thiệu Vòng đời phát triển bảo mật (SDL) 20 vào năm 2006, Microsoft đã cấm sử dụng các chức năng thư viện C có vấn đề. Nhiều API trong thời gian chạy C là các vấn đề bảo mật đã biết và nên tránh. Nghiên cứu của chúng tôi đã phát hiện ra rằng các API bị cấm và các chức năng khác quá phổ biến trong mã HMI và có các tác động tiêu cực có thể dự đoán được. Sử dụng một trình phân tách như IDA để theo dõi dữ liệu bị nhiễm bẩn trở lại nguồn của các API sao chép không an toàn (sprintf, strcpy), đặc biệt nếu một khai thác có thể lấy các hàm này từ dữ liệu do kẻ tấn công cung cấp.
Kết Luận
Trong các giải pháp SCADA khác nhau, HMI đại diện cho mục tiêu rõ ràng nhất và hiện tại nhất cho những kẻ tấn công. HMI hoạt động như một trung tâm tập trung để quản lý cơ sở hạ tầng quan trọng. Nếu kẻ tấn công thành công trong việc thỏa hiệp HMI, gần như mọi thứ có thể được thực hiện đối với cơ sở hạ tầng, bao gồm gây thiệt hại vật lý cho thiết bị SCADA. Ngay cả khi những kẻ tấn công quyết định không làm gián đoạn hoạt động, chúng vẫn có thể khai thác HMI để thu thập thông tin về hệ thống hoặc vô hiệu hóa các báo động và thông báo nhằm cảnh báo người vận hành về nguy hiểm đối với thiết bị SCADA.
Trong nghiên cứu của chúng tôi, chúng tôi đã phát hiện ra rằng hầu hết các lỗ hổng HMI rơi vào bốn loại lỗi bộ nhớ, quản lý thông tin xác thực, thiếu xác thực / ủy quyền và mặc định không an toàn, và tất cả các mã này đều có thể ngăn chặn được thông qua các hoạt động phát triển an toàn. Chúng tôi cũng quan sát thấy rằng thời gian trung bình giữa khi các nhà nghiên cứu ZDI tiết lộ lỗi cho nhà cung cấp SCADA và thời điểm bản vá được phát hành lên tới 150 ngày, hơn 30 ngày so với các nhà cung cấp như Microsoft hoặc Adobe sẽ làm như vậy, nhưng 43 ngày ít hơn các dịch vụ doanh nghiệp từ các công ty như HPE và IBM. Xem xét tác động của các cuộc tấn công chống lại các hệ thống SCADA, trong đó các lỗ hổng là điểm xâm nhập hiệu quả, chúng tôi hy vọng rằng các nhà cung cấp HMI, chủ sở hữu SCADA và quản trị viên sẽ chú ý và phản hồi phù hợp.
Các nhà nghiên cứu đang tìm kiếm các lỗ hổng mới trong HMI nên bắt đầu với các kỹ thuật làm mờ cơ bản. Ngay cả việc làm mờ bit đơn giản cũng tạo ra kết quả hiệu quả cao chống lại các lỗ hổng HMI. Các nhà nghiên cứu cũng nên tìm kiếm các liên kết tệp mới trong khi cài đặt để hỗ trợ làm mờ, vì nhiều định dạng tệp được mở rộng.
Các nhà phát triển giải pháp HMI và SCADA sẽ được khuyên nên áp dụng các thực tiễn vòng đời an toàn được thực hiện bởi các nhà phát triển ứng dụng và hệ điều hành trong thập kỷ qua. Bằng cách thực hiện các bước đơn giản như kiểm tra việc sử dụng API bị cấm, các nhà cung cấp có thể làm cho sản phẩm của họ trở nên linh hoạt hơn trước các cuộc tấn công. Các nhà phát triển SCADA cũng cần hy vọng các sản phẩm của họ sẽ được sử dụng theo cách mà họ không có ý định. Ví dụ, mặc dù nó được coi là một thực tiễn bảo mật kém, các nhà phát triển phải cho rằng các sản phẩm và giải pháp của họ sẽ được kết nối với mạng công cộng. Bằng cách lấy suy nghĩ giả định trong trường hợp xấu nhất, các nhà phát triển có thể thực hiện các biện pháp phòng thủ chuyên sâu hơn để tăng cường bảo vệ.