Skip to main content

Kiến trúc và yêu cầu CNTT của SensorFlow (An ninh mạng)

Tài liệu này mô tả các yêu cầu liên quan đến mạng của giải pháp, công nghệ, giao thức và kênh liên lạc được sử dụng

Written by Soumya Sarkar

Cổng

Cổng của chúng tôi là xương sống của cơ sở hạ tầng SensorFlow. Mục đích chính của họ là gấp đôi. Chúng đóng vai trò là proxy cho các cảm biến của chúng tôi để chuyển tiếp dữ liệu cảm biến đã ghi lên đám mây cũng như truyền lệnh đến các cảm biến nhận được từ bảng điều khiển. Thứ hai, chúng chứa công cụ ra quyết định của chúng tôi chịu trách nhiệm điều khiển các thiết bị đo lường dựa trên thông tin cảm biến được ghi lại (ví dụ:

không có ai trong phòng -> tắt AC). Chúng tôi chọn phương pháp này vì hai lý do chính:

1. Bảo vệ: Hết lần này đến lần khác, chúng ta tìm thấy những câu chuyện trên tin tức về việc các thiết bị Internet of Things (IOT) bị tin tặc tấn công. Những câu chuyện này có mẫu số chung: Các nhà cung cấp đã kết nối chúng trực tiếp với Internet nhưng không nhận ra rằng khả năng hạn chế của thiết bị khiến chúng dễ bị tấn công tinh vi và/hoặc họ đã đi đường tắt trong việc triển khai lớp bảo mật của thiết bị IOT. Vì lý do này, chúng tôi đã chọn che chắn các thiết bị của mình phía sau các cổng để hạn chế bề mặt tấn công và cho phép mọi hoạt động liên lạc thông qua một thiết bị phức tạp hơn nhiều, có thể dễ dàng thực hiện các giao thức bảo mật hiện đại.

2. Hiệu suất hệ thống:Internet of Things được cho là sẽ làm cho các tòa nhà trở nên thông minh hơn, tuy nhiên, chúng ta thường thấy rằng các nhà cung cấp đang phụ thuộc quá nhiều vào đám mây và khả năng kết nối Internet nổi bật. Để tránh việc tòa nhà thông minh biến thành tòa nhà câm ngay khi Internet ngừng hoạt động, chúng tôi đã thiết kế hệ thống của mình theo cách mà tất cả các quyết định tự động hóa đều được thực hiện trên cổng chứ không phải trên đám mây. Do đó, ngay cả khi không có kết nối internet, tất cả các thiết bị vẫn sẽ được giám sát và tự động hóa, dữ liệu được ghi lại sẽ được lưu trên cổng và truyền trở lại đám mây SensorFlow sau khi internet trực tuyến trở lại.

Cảm biến IOT của SensorFlow giao tiếp độc quyền với cổng SensorFlow bằng giao thức Airlink độc quyền của chúng tôi. Giao tiếp này diễn ra trên các băng tần phụ GHz, thường nằm trong khoảng 920-925 MHz tùy theo quốc gia và do đó không ảnh hưởng đến cơ sở hạ tầng Bluetooth hoặc WiFi hiện có. Mỗi cổng có thể hỗ trợ tới 960 Nút cảm biến, nhưng trên thực tế, chúng tôi thấy rằng chúng tôi thường kết nối không quá 300 nút trên mỗi cổng, tùy thuộc vào phạm vi không dây có thể đạt được, do cách bố trí và vật liệu của tòa nhà. Thông thường, chúng tôi cài đặt không quá 15 Cổng trên mỗi trang web, với số cổng được cài đặt trung bình là khoảng 7-8.

Yêu cầu cổng

Cổng của chúng tôi phụ thuộc vào cơ sở hạ tầng internet của trang web và có thể được kết nối qua WiFi hoặc ethernet, trong đó ethernet là tùy chọn ưu tiên. Chúng tôi không mở bất kỳ cổng nào ra bên ngoài và tất cả giao tiếp đều được bắt đầu bằng các yêu cầu thông thường hoặc kết nối VPN. Chúng tôi không sử dụng bất kỳ cơ sở hạ tầng proxy nào. Có thể đạt được mức tối thiểu bổ sung về bề mặt tấn công nếu khách hàng thiết lập mạng con để các cổng của chúng tôi kết nối. Với điều này, chúng tôi có thể tách biệt thông tin liên lạc của mình khỏi mạng của khách sạn. Mọi cơ sở hạ tầng tường lửa phải được triển khai bởi mạng khách hàng được cung cấp và sẽ không ảnh hưởng đến Cổng của chúng tôi vì tất cả thông tin liên lạc đều được gửi đi. Cổng yêu cầu mở các cổng sau trên tường lửa để liên lạc ra bên ngoài:


Yêu cầu về băng thông

Yêu cầu về băng thông cho các cổng rất thấp vì chúng chủ yếu chuyển tiếp dữ liệu IOT dưới dạng thông báo json ngắn cũng như thông báo tường trình cho mục đích chẩn đoán. Tổng khối lượng tải lên của Cổng là khoảng 2 MB mỗi giờ, tùy thuộc vào cài đặt thực tế. Luồng dữ liệu xuôi dòng sẽ không đáng kể trong hoạt động thông thường và sẽ không vượt quá vài kilo byte mỗi ngày.

Yêu cầu giao thức

Cổng tương tác với 3 dịch vụ bên ngoài:

1. Dịch vụ web của Amazon (AWS)- Chạy tất cả cơ sở hạ tầng đám mây tạo nên phần phụ trợ bảng điều khiển và phân tích SensorFlow. Tất cả các tương tác đều được bảo mật bằng AWS Cognito, một dịch vụ cung cấp khả năng xác thực, ủy quyền và quản lý người dùng. (https://aws.amazon.com/cognito)

2. Balena.io-https://Balena.io/
Balena được sử dụng làm quản lý đội xe cho các cổng. Nó báo cáo về trạng thái của cổng và quản lý mọi cập nhật/bản vá cho cổng. BalenaOS là hệ điều hành cơ bản của cổng. Ứng dụng chính chạy trong vùng chứa Docker trên HĐH. Bạn có thể tìm thấy mô tả chi tiết về việc triển khai bảo mật liên quan đến Balena tại đây:https://www.balena.io/docs/learn/welcome/security/

Truyền thông Balena: 1. VPN để báo cáo thời gian hoạt động của hệ thống và gửi nhật ký 2. Dịch vụ bỏ phiếu để kiểm tra xem có bất kỳ bản cập nhật nào không

1. Dấu vết giấy tờ-https://papertrailapp.com
Dữ liệu nhật ký từ các cổng được gửi đến papertrail để quản lý nhật ký. Điều này được sử dụng để dễ dàng đọc nhật ký cho bất kỳ vấn đề khắc phục sự cố nào. Nhật ký có thể tìm kiếm được trong 2 tuần và được lưu trữ trong một năm. (Bộ lưu trữ cơ bản là AWS S3).

Hình 1nêu chi tiết các thành phần đang giao tiếp tại chỗ và cách chúng tương tác.


Hình 1: Tổng quan về mạng nêu chi tiết các kênh liên lạc giữa các nút, cổng và dịch vụ bên ngoài của chúng tôi.


bảng điều khiển

Bảng điều khiển của chúng tôi cho phép khách hàng xem dữ liệu được ghi lại cũng như điều khiển các hệ thống AC được trang bị thiết bị. Nó có thể được truy cập từ bất kỳ trình duyệt web nào và được cấp phép thông qua tên người dùng và mật khẩu đăng nhập. Nó được lưu trữ trên Google Firebase và bao gồm sự kết hợp của html, javascript và nhiều hình ảnh khác nhau. Tất cả giao tiếp đều được thực hiện với đám mây AWS qua TLS.

Việc xác thực và ủy quyền cho bảng thông tin cũng sử dụng dịch vụ nhận thức AWS (https://aws.amazon.com/cognito). Chúng tôi sẽ tạo tài khoản người dùng theo yêu cầu của khách hàng để chỉ cấp cho những nhân viên có liên quan quyền truy cập vào bảng điều khiển.


Nhiệm vụ bảo vệ của AWS (https://aws.amazon.com/guardduty/) được sử dụng để giám sát tài khoản đám mây xem có bất kỳ hoạt động bất thường hoặc đáng ngờ nào không.


Lưu trữ dữ liệu

Dữ liệu gửi tới đám mây AWS được lưu trữ trong DynamoDB (cơ sở dữ liệu NoSql) cho mục đích dịch vụ ứng dụng. Dữ liệu cũng được lưu trữ trong Cơ sở dữ liệu chuỗi thời gian hiệu suất cao (phần mở rộng Postgres + TimeScaleDB) cho mục đích khoa học dữ liệu. Cả hai cơ sở dữ liệu đều được lưu trữ bởi AWS. DynamoDB đang chạy dưới dạng dịch vụ được quản lý từ AWS và cơ sở dữ liệu chuỗi thời gian của chúng tôi được lưu trữ trên phiên bản AWS EC2.


Hỗ trợ và bảo trì

Chúng tôi mong muốn cung cấp dịch vụ toàn diện cho khách hàng của mình và có sự hỗ trợ tận tình ở chế độ chờ để giải quyết các sự cố hệ thống thông qua khả năng bảo trì từ xa của chúng tôi. Chúng bao gồm khả năng cập nhật chương trình cơ sở của các nút cảm biến bằng quy trình cập nhật qua mạng giữa các cổng và cảm biến. Chúng tôi sử dụng điều này để cung cấp các bản cập nhật bảo mật, sửa lỗi hoặc tính năng mới cho cảm biến của mình. Hơn nữa, chúng tôi có khả năng cập nhật từ xa phần mềm cổng cũng như khởi động, khởi động lại và tắt các cổng bằng dịch vụ balena.io. Trong một số trường hợp hiếm hoi, nếu tất cả các biện pháp từ xa đều không thành công, chúng tôi sẽ yêu cầu sự trợ giúp từ các kỹ sư khách sạn tại chỗ. Điều này chủ yếu dành cho việc thay thế pin hoặc trao đổi phần cứng bị hỏng hoặc hư hỏng. Trong trường hợp nhiệm vụ hiện tại quá phức tạp mà các kỹ sư tại chỗ không thể thực hiện được, chúng tôi sẽ cử một trong những người quản lý dự án lắp đặt chuyên trách của chúng tôi thực hiện các công việc được yêu cầu. Điều này sẽ được đánh giá trên cơ sở từng trường hợp cụ thể.


Bảo mật cổng

Chỉ các cổng SensorFlow được kết nối trực tiếp với mạng của khách hàng, trong khi các nút cảm biến sẽ chỉ giao tiếp với cổng của chúng tôi chứ không bao giờ giao tiếp trực tiếp với Internet. Như vậy, chỉ các cổng mới có khả năng dễ bị tấn công mạng từ xa thông qua internet. Chúng tôi thường kết nối các cổng của mình với cùng một mạng mà khách của khách sạn kết nối. Điều này có nghĩa là từ quan điểm thiết kế mạng, rủi ro bảo mật liên quan đến các cổng của chúng tôi có thể được coi là tương đương với rủi ro của bất kỳ thiết bị nào mà khách có thể kết nối với mạng khách sạn. Ngay cả khi kẻ tấn công có được quyền truy cập hoặc toàn quyền kiểm soát cổng SensorFlow thì hậu quả vẫn ở mức tối thiểu và bị cô lập đối với cổng được đề cập.


Hậu quả của các cuộc tấn công vào cổng

1. (Nhỏ) Gián đoạn hoặc ngừng kích hoạt tự động hóa: Điều này sẽ dẫn đến mất tiền tiết kiệm và mất một số dữ liệu trong các phòng được phục vụ bởi cổng này. Đây sẽ là trường hợp nếu kẻ tấn công dừng ứng dụng SensorFlow đang chạy trên cổng.

2. (Nhỏ) Tác động đến sự thoải mái của khách: Điều này có thể xảy ra nếu kẻ tấn công tắt FCU sau khi giành được quyền truy cập vào cổng. Tuy nhiên, điều này cực kỳ khó xảy ra vì kẻ tấn công sẽ phải thiết kế đảo ngược hoàn toàn giao thức độc quyền bí mật của chúng tôi để có thể gửi lệnh hợp lệ đến thiết bị của chúng tôi, đây sẽ là một nỗ lực kỹ thuật nghiêm túc. Thiệt hại cũng có thể được khắc phục dễ dàng bằng cách tắt cổng bị ảnh hưởng, lúc đó bộ điều nhiệt của chúng tôi sẽ tiếp tục hoạt động ngoại tuyến bình thường. Sẽ không thể giữ cơ sở hạ tầng làm con tin vĩnh viễn thông qua phương thức tấn công này.

3. (Nhỏ) Truy cập vào mạng khách sạn: Kẻ tấn công giành được quyền kiểm soát cổng có thể sử dụng cổng để nghe lưu lượng truy cập mạng hoặc gây nhiễu mạng. Hậu quả của tình huống này phụ thuộc chủ yếu vào việc thiết lập mạng của khách sạn. Chúng tôi thường đề xuất các cổng kết nối với mạng con riêng biệt của chúng hoặc với cùng mạng mà khách của khách sạn kết nối với cùng các đặc quyền và hạn chế. Do đó, thiết lập mạng được thiết kế tốt sẽ không cho phép thiết bị trên mạng của cổng hoặc mạng khách truy cập vào cơ sở hạ tầng mạng quan trọng của khách sạn.


Tấn công trực tiếp từ xa vào các cổng cổng mở

Tình huống này mô tả kẻ tấn công đang cố gắng truy cập từ xa vào cổng thông qua các cổng mở.


Khả năng: Không thể

Vectơ tấn công này được coi là không thể thực hiện được vì cổng không lắng nghe bất kỳ cổng nào ở bên ngoài và mọi giao tiếp đều được bắt đầu từ các cổng. Hành vi này được kế thừa từ BalenaOS, hệ điều hành tạo thành nền tảng của phần mềm cổng. Bạn có thể tìm thấy mô tả chi tiết về việc triển khai bảo mật liên quan đến Balena cũng như cách chúng quản lý liên lạc và ủy quyền tại đây:

Chúng tôi chạy ứng dụng SensorFlow bên trong một container docker trên BalenaOS, ứng dụng này tương tác với cơ sở hạ tầng đám mây SensorFlow. Tất cả giao tiếp với Đám mây của chúng tôi lại được gửi đi và không có cổng nào được mở nên ứng dụng của chúng tôi không bổ sung thêm bề mặt tấn công vào cổng.

Do những điều trên, kẻ tấn công không thể tìm và tấn công các cổng của chúng tôi từ xa mà không vi phạm cơ sở hạ tầng mạng của khách hàng trước. Điều này đặc biệt đúng nếu các cổng được bảo vệ bổ sung bởi tường lửa hạn chế quyền truy cập vào mạng của khách hàng. Ngay cả khi họ vượt qua được tường lửa, họ vẫn không tìm thấy bất kỳ cổng mở nào để tấn công vào cổng của chúng tôi.


Người đàn ông ở giữa tấn công các cổng

Cách duy nhất để tấn công cổng là kẻ tấn công mạo danh đám mây Balena hoặc đám mây SensorFlow. Kẻ tấn công thành công có thể cố gắng gửi lệnh đến bộ điều nhiệt được kết nối hoặc trao đổi phần sụn cổng với phần sụn của chính chúng.


Khả năng: Hiếm

Chúng tôi cho rằng kịch bản tấn công này rất khó thành công vì tất cả các API của chúng tôi đều được bảo mật thông qua mã hóa HTTPS TLS tiêu chuẩn và ủy quyền cũng như xác thực dựa trên chứng chỉ. Điều này đúng với các điểm cuối dịch vụ do Balena cung cấp để kiểm soát và bảo trì từ xa cũng như tất cả các API đám mây SensorFlow được bảo mật bởi dịch vụ AWS Cognito. Do đó, kẻ tấn công sẽ phải đánh cắp thành công chứng chỉ gốc SensorFlow hoặc Balena để thành công với vectơ tấn công này.


Tấn công vật lý vào cổng

Nếu kẻ tấn công có được quyền truy cập vật lý vào cổng, chúng có thể cố gắng thay thế chương trình cơ sở của cổng của chúng tôi bằng cách tắt thẻ SD lưu trữ hệ điều hành và do đó, tạo một thiết bị trên mạng khách sạn dưới sự kiểm soát của chúng và rất có thể được đưa vào danh sách trắng để kết nối mà không cần phải đi qua một cổng bị giam cầm.


Khả năng: Hiếm

Vì đây là cuộc tấn công tại chỗ đòi hỏi kiến ​​thức kỹ thuật nên chúng tôi cho rằng khả năng xảy ra cuộc tấn công này là rất hiếm. Đặc biệt là do những hạn chế về cơ sở hạ tầng mạng nêu trên nên áp dụng cho tất cả các thiết bị trên cổng hoặc mạng khách. Để thực hiện kiểu tấn công này, kẻ tấn công sẽ dễ dàng hơn nhiều khi kết nối trực tiếp thiết bị với mạng khách sạn thay vì đi qua cổng SensorFlow.


Bảo mật nút

Các nút cảm biến của chúng tôi chỉ kết nối với các cổng thông qua giao thức độc quyền của chúng tôi có tên là AirLink. Vì vậy, chúng hoàn toàn không thể truy cập và không thể phát hiện được từ bên ngoài và do đó không thể bị tấn công trực tiếp. Các nút của chúng tôi không sử dụng bất kỳ giao thức dựa trên IP nào và do đó, không thể tương tác trực tiếp với cơ sở hạ tầng mạng của khách sạn. Khả năng băng thông của chúng cũng cực kỳ hạn chế về mặt thiết kế, khiến chúng không phù hợp cho bất kỳ cuộc tấn công nào vào cơ sở hạ tầng mạng của khách sạn. Đây là hậu quả của việc sử dụng LoRa so với WiFi hoặc Bluetooth. Tất cả giao tiếp đang diễn ra ở dạng nhị phân, khiến cho việc thực hiện kỹ thuật đảo ngược giao thức của chúng tôi trở nên rất khó khăn.


Hậu quả của các cuộc tấn công vào các nút

1. (Nhỏ) Tác động đến sự thoải mái của khách: Nếu kẻ tấn công tìm cách kết nối một nút lừa đảo hoặc chiếm toàn quyền kiểm soát một nút, kẻ tấn công có thể gửi dữ liệu về tỷ lệ sử dụng sai, sau đó có thể ảnh hưởng đến hành vi của FCU trong các phòng đó. Điều này có thể gây khó chịu về nhiệt cho khách. Có thể dễ dàng giảm thiểu tác động bằng cách tắt Cổng SensorFlow hoặc đưa nút đó vào danh sách đen khỏi mạng Cổng.

2. (Nhỏ) Gián đoạn hoặc vô hiệu hóa tự động hóa: Nếu kẻ tấn công cố gắng vô hiệu hóa hoặc ngắt kết nối các nút cảm biến, tự động hóa sẽ bị vô hiệu hóa dẫn đến mất tiền tiết kiệm và mất dữ liệu.


Cài đặt một nút giả mạo

Trong trường hợp này, kẻ tấn công cố gắng cài đặt một nút độc hại tại tài sản.


Khả năng: Hiếm

Vì giao thức của chúng tôi là độc quyền và chưa được xuất bản nên ai đó sẽ cần phải hoàn thành bài tập kỹ thuật đảo ngược đầy đủ về giao thức không dây của chúng tôi để cố gắng kết nối một nút giả mạo với hệ thống SensorFlow. Điều này sẽ yêu cầu kẻ tấn công phải có mặt tại chỗ trong vài ngày hoặc vài tuần để thu thập đủ thông tin từ các liên lạc thông thường nhằm có cơ hội giải mã giao thức từ xa.

Ngoài ra, tất cả các nút của chúng tôi đều chứa một số id duy nhất, được gọi là địa chỉ MAC, mà chúng tôi ghi lại trước khi mang thiết bị đến cơ sở. Cổng của chúng tôi sẽ từ chối bất kỳ nút nào không có địa chỉ MAC được công nhận. Địa chỉ MAC của một nút chỉ được trao đổi trong quá trình kết nối ban đầu khiến kẻ tấn công cực kỳ khó thực hiện một cuộc tấn công có chủ đích. Nếu kẻ tấn công thực hiện tất cả nỗ lực này, thiệt hại duy nhất mà hắn có thể đạt được là kiểm soát FCU trong phòng khách sạn mà không biết chúng đang kiểm soát phòng nào. Trải qua tất cả những nỗ lực này, họ chỉ có thể gây ra những khó chịu nhỏ cho khách. Ngay cả khi kẻ tấn công cố gắng gây ra thiệt hại bằng cách sử dụng một cuộc tấn công lặp lại vào hoạt động liên lạc của chúng ta, thì chúng vẫn cần phải hiểu rõ chi tiết về thời gian liên lạc trong mạng của chúng ta, điều này sẽ hạn chế đáng kể sự thành công của vectơ tấn công này.


Tấn công thông qua chức năng nâng cấp firmware

Các nút cảm biến của chúng tôi được nâng cấp từ xa. Cổng của chúng tôi kích hoạt nâng cấp này.


Khả năng: Hiếm

Vì chúng tôi đang nói đến một giao thức độc quyền giữa các cảm biến và cổng của chúng tôi nên kẻ tấn công sẽ phải kiểm soát các cổng của chúng tôi hoặc mang phần cứng tương đương đến hiện trường. Sau đó, họ cũng sẽ phải thiết kế ngược lại giao thức nâng cấp chương trình cơ sở hoàn chỉnh của chúng tôi, đây sẽ là một nỗ lực kỹ thuật rất phức tạp với kết quả tối thiểu.


Kẹt mạng

Mọi mạng không dây đều dễ bị tấn công gây nhiễu mạng. Vì vậy, kẻ tấn công tại chỗ có thể thành công trong việc ngắt kết nối một số nút bằng cách gây nhiễu tần số mà hệ thống SensorFlow hoạt động. Không thể làm gì để ngăn chặn điều này, tuy nhiên, kết quả duy nhất là tắt tính năng tự động hóa và gây ra một số mất dữ liệu.


Khả năng: Hiếm


Tấn công vật lý vào các nút

Tất cả những điều trên đòi hỏi nỗ lực kỹ thuật đảo ngược để thành công. Cách nhanh nhất để thực hiện việc này là cố gắng tải xuống chương trình cơ sở từ các nút của chúng tôi và sau đó thử dịch ngược nó.


Khả năng: Hiếm

Điều này là không thể vì chúng tôi khóa các nút của mình sau khi lập trình, nghĩa là việc kết nối một công cụ để tải xuống chương trình cơ sở sẽ yêu cầu mở khóa nút và nút này sẽ ngay lập tức xóa chương trình cơ sở.

Did this answer your question?