Làm cách nào tôi có thể ngăn lập trình viên thu thập dữ liệu do người dùng nhập?


10

Tôi đang phát triển một ứng dụng web tập trung mạnh vào bảo mật. Những biện pháp nào có thể được thực hiện để ngăn những người làm việc trên ứng dụng (lập trình viên, DBA, nhân viên đảm bảo chất lượng) nắm bắt các giá trị nhập của người dùng cần được bảo vệ tốt, như mật khẩu, số an sinh xã hội, v.v.


3
Tôi muốn đề nghị bạn đăng câu hỏi trong: security.stackexchange.com/?as=1
NoChance

"Ngăn chặn" là một từ rất mạnh. Bạn không thể ngăn các diễn viên xấu làm những điều xấu. Những gì bạn có thể làm là tìm hiểu và áp dụng các nguyên tắc bảo mật cơ bản như "đặc quyền tối thiểu", "phân chia nhiệm vụ" và "từ chối ngầm", kiến ​​trúc sư điều theo những cách an toàn và thuê những người mà bạn có thể tin tưởng. Có kế hoạch khả thi tại chỗ để giảm thiểu thiệt hại khi cuối cùng không thể tránh khỏi.
Robert Harvey

Các thuật ngữ kỹ thuật cho các công nghệ mà bạn cần: băm và mã hóa.
Robert Harvey

Câu trả lời:


22

Điều này khá đơn giản. Các ngân hàng làm điều đó mọi lúc.

Bạn có ba nhóm người tham gia. Đây là những nhóm bảo mật. Với sự ủy quyền riêng biệt.

Các nhà phát triển không thể chỉ định ủy quyền bảo mật và không thể xem dữ liệu sản xuất.

Người vận hành không thể chỉ định ủy quyền bảo mật và không thể tạo phần mềm.

Những người bảo mật đã thiết lập các ủy quyền và không thể tạo phần mềm cũng như vận hành phần mềm.

Các nhà phát triển tạo ra phần mềm. Các nhà khai thác cài đặt nó và vận hành nó. Những người bảo mật đảm bảo rằng hai nhóm được giữ tách biệt.


8
OK, nhưng nhà phát triển vẫn có thể thêm một cái gì đó vào hệ thống gửi email dữ liệu sản xuất vào tài khoản riêng của anh ấy / cô ấy; hoặc ghi dữ liệu sản xuất đến một số máy chủ nơi anh / cô ấy sẽ nhận nó. Tôi nghĩ rằng cách duy nhất để giải quyết vấn đề này là với một chế độ xem xét mã nghiêm ngặt.
Dawood ibn Kareem

3
Luôn luôn có mức độ tin tưởng được trao cho nhân viên. Ai đó phải có chìa khóa của cung điện, và nếu bạn không thể tin rằng họ hiểu được sức mạnh được trao cho họ, thì có lẽ chúng ta không nên trao những chìa khóa đó cho người đó ngay từ đầu.
Chris

1
Có, nhưng có các khóa yêu cầu nhiều hơn một người (như chế độ xem lại mã) có nghĩa là bạn cần hai người đi "lạc lối" trước khi bạn bị xâm phạm và điều đó ít có khả năng hơn là "chỉ một" nhân viên đi lạc đường và lạm dụng khóa được đưa cho họ Tất cả chỉ là vấn đề cân bằng niềm tin và hậu quả của sự tin tưởng đó bị lạm dụng. Và đừng quên rằng mọi người và hoàn cảnh thay đổi. Một người đáng tin cậy khi chìa khóa được trao có thể có những điều xảy ra trong cuộc sống mà anh ta trở nên kém tin cậy hơn ...
Marjan Venema

1
@EmmadKareem: Đúng. Người bảo mật đặt và đặt lại các nhóm và mật khẩu, nhưng không thể xem dữ liệu. Chỉ các nhà khai thác có thể nhìn thấy dữ liệu thực. Hãy nghĩ về dữ liệu như tiền thực tế được xử lý bởi các giao dịch viên thực tế. Các lập trình viên không chạm vào tiền; chỉ nói với. Tương tự, nhân viên an ninh không chạm vào tiền; chỉ có giao dịch viên chạm tiền.
S.Lott

1
@EmmadKareem: DBA không phải là nhà phát triển. Có hai nhóm: bảo mật và dữ liệu. Dữ liệu DBA là một phần đặc biệt của "hoạt động". Họ không nên có quyền thay đổi bảo mật; họ không thể viết mã; tuy nhiên, họ sẽ thấy dữ liệu và phải được đối xử như các nhà khai thác, không phải nhà phát triển.
S.Lott

2

Các lập trình viên không có quyền truy cập vào các máy chủ sản xuất. Nhưng ai đó phải có quyền truy cập. Không có cách nào xung quanh nó. Và luôn có cơ hội ai đó có thể phát điên và lạm dụng quyền truy cập của họ.

Dữ liệu được băm / muối là an toàn về mặt lý thuyết ngay cả từ những người có quyền truy cập đầy đủ để xem nó. Nhưng hầu hết dữ liệu không thích hợp để băm.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.