Một số cách bảo mật file sh (shell script) tránh bị đọc và chỉnh sửa…

Khi làm việc với VPS đặc biệt là linux thì chắc chắn mọi người đã rất quen với file sh chứa các tập lệnh cần thực thi, nhưng file này ở dạng text tức là ai cũng có thể đọc và sửa nó. Nếu bạn làm ra 1 sản phẩm kiểu như script quản lý VPS và lại muốn bảo vệ nó thì có những cách nào?

bao mat file shell script

CÁCH 1 OBFUSCATOR

Cách này đơn giản nhất nhưng cũng không hoàn toàn che giấu được code, đơn giản chỉ là nó xé lẻ code của bạn ra cho vào mấy biến nhìn cho nó có vẻ nguy hiểm thôi. Tool thì có nhiều bạn có thể tìm từ khóa “shell script obfuscator”

Về obfuscator thì cũng có khá nhiều dạng, có dạng chỉ là gán code vào biến kết hợp base64 và không thay đổi nội dung gốc của code; có dạng thì thay tên biến tên hàm và có thể rút gọn 1 số logic kiểu như js minifier ấy, mỗi lần chạy có thể ra 1 phiên bản khác nhau nếu 1 file sh đủ lớn mà chơi kiểu này thì người ta muốn đọc được chắc cũng hơi nhức mắt đấy :))

CÁCH 2: SHC

Shc là 1 công cụ giúp bạn chuyển file sh sang file C. Nghe có vẻ nguy hiểm đấy nhỉ, ngoài ra nó còn giúp set hạn sử dụng nữa, cũng khá hay.

Tuy nhiên có 1 vấn đề là nó hoàn toàn không chuyển đổi toàn bộ code ở file sh của bạn thành mã nguồn C đâu. Cách nó làm là lưu toàn bộ code sh vào đâu đó trong chương trình, rồi lúc chạy sẽ lấy nó ra. Tất nhiên nếu bạn mở file đã biên dịch bởi shc ra thì sẽ không thấy được, vì nó là 1 chương trình mã nhị phân hoàn toàn rồi….

Nhưng vẫn không thể làm khó được các pro đâu, vì lúc chạy thì nó sẽ gọi lệnh “sh” -c “nội dung file sh”. Nên chỉ cần tìm ra được cái lệnh nó gọi kia là gì trong lúc chạy mà thôi, cách đơn giản nhất là dùng lệnh “ps” để lấy danh sách process (tất nhiên là chỉ khi cái lệnh sh kia chạy đủ lâu thôi chứ nó chạy nhanh quá tắt mất luôn thì lúc này không kịp, tất nhiên nhanh tay thì vẫn tóm được thôi)

CÁCH 3: VIẾT LẠI FILE SH DƯỚI DẠNG MÃ C++ RỒI BIÊN DỊCH THÔI

Nghe thì có vẻ đây không phải là cách nhỉ, thế này khác quái gì làm lại chương trình bằng mã C++ rồi. Nhưng tớ phát hiện ra con ChatGPT tuy làm toán khá ngu nhưng lại rất giỏi món “viết lách” bao gồm cả viết lại code. Bạn có 1 mã nguồn php bạn có thể bảo nó viết cho bạn đoạn mã có chức năng tương tự bên C++, rất tuyệt nếu mình chỉ biết php mà lại phải code c++ phải ko nào. Tất nhiên là nó chỉ chính xác ở 1 mức nào đó thôi, nên vẫn cần test nhé, không nên tin 100% vào nó đâu.

CÁCH 4: VIẾT CHO CÓ THÔI ĐÓ LÀ KẾT HỢP CỦA 3 CÁCH TRÊN =)) VÍ DỤ SAU CHẮC CŨNG KHÁ NGẦU

Bạn viết 1 chương trình C++ có nhiệm vụ tải vê 1 file sh từ 1 link nào đó rồi chạy nó. Như thế link sẽ được giấu trong chương trình C++ không ai biết link file sh của bạn là gì cả. Đến đây chắc hẳn sẽ có bạn thắc mắc là gặp lại vấn để của cách 2 đó là sẽ có 1 lệnh sh /tmp/fileShDuocTaiVe121231.sh hiển thị trong process. Nhưng lại có 1 trò ngầu nữa nè đó là ta sẽ xóa file ngay khi trước khi chạy nó 😃 như vậy mặc dù nhìn thấy có lệnh đang chạy người ta cũng ko đọc được file /tmp/fileShDuocTaiVe121231.sh =))

Chắc hẳn lại có người thắc mắc xóa rồi làm sao chạy được =)) Thôi tự nghĩ nha :3

Nguồn Bác Nguyễn Thanh chia sẻ

HỖ TRỢ DỊCH VỤ CHO THUÊ VPS MMO

Zalo - Phone - Telegram 0902282206 - Skyper: truongsinhnb - Facebook.com/vpsmmonb