Phương thức lưu mật khẩu.

Một phần của tài liệu tìm hiểu về tấn công ứng dụng web (Trang 40)

- Các biện pháp đối phó: Hành động có thể được thựchiện bởi người dùng và tổ chức để hạn chế rủi do Internet Explorer và Firefox hiện chiếm đến 95% trong tổng số các trình duyệt đang được sử dụng Tự động

4.Phương thức lưu mật khẩu.

Quá trình ghi nhớ tài khoản và mật khẩu được miêu tả dưới đây. Thông tin này đã từng được sử dụng để nghiên cứu các cuộc tấn công của các hãng sản xuất và được miêu tả cụ thể dưới đây.

4.1. Lưu trữ tại local

4.1.1 Với phiên bản Internet Explorer 6 & 7

Trên Internet Explorer (phiên bản 4 đến 6) AutoComplete các thông tin từ Web được lưu trữ trong Registry và cụ thể tại:

Mã hoá usernames and passwords:

HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\IntelliForms\SPW Địa chỉ trang Web

HKEY_LOCAL_MACHINE\Software\MicrosoftProtected Storage System Provider\ Mã hoá bằng symmetric keys:

HKEY_CURRENT_USER\Software\Microsoft\ Protected Storage System Provider\Data\\

Trên Internet Explorer 7, AutoComplete các thông tin từ Web như tài khoản người dùng mật khẩu hay địa chỉ của trang web đó cũng được lưu trữ trong Registry nhưng chúng được đặt tại những vị trí khac nhau. Mã hoá Usernames and Passwords:

HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\IntelliForms\Storage2 Toàn bộ trong Registry chỉ được tạo ra khi người dùng save các thông tin login như tài khoản và mật khẩu từ trang web. Và chúng được cấu tạo bằng nhóm từ SavePassWords

4.1.2 Với phiên bản Firefox 1.5 and 2.0

Trên Firefox, Uniform Resource Locators (URLs) bao gồm usernames, và passwords được lưu trên file signons.txt:

Mã hoá usernames và password trong Windows Systems tại:

Tại %userprofile% là môi trường tuỳ biến trong windows và đó là home directory của mỗi tài khoản người dùng.

Mã hoá user name và password trong hệ thống Linux tại:

~/.mozilla/firefox/ xxxxxxxx.default/signons.txt

Xxxxxx là ngẫu nhiên được lựa chọn khi Firefox được cài đặt. File signons.txt được tạo ra vào thời điểm lần đầu tiên bạn save các thông tin đăng nhập từ một trang web. Từ lần sau khi quá trình đăng nhập yêu cầu Firefox sẽ tìm kiếm thông tin trên file này. Nó không liên quan tới việc file này được sử dụng cho quá trình đăng nhập cho các trang web HTTP hay HTTPs. URLs không được mã hoá bởi nó được sử dụng để kiểm tra trong quá trình đăng nhập. Khi một quá trình tự đăng nhập được thực hiện, các trang URL được so sánh với các thông tin trong file signons.txt, nếu URL đã được ghi lại thì quá trình tự động đăng nhập được thực hiện

4.2 Phương thức lưu trữ và truy cập4.2.1 Trong Internet Explorer 6 & 7 4.2.1 Trong Internet Explorer 6 & 7

Storage Construct: Registry

Format: Binary, stored as a pair of hex values in a REG_BINARY data type. Encryption: TripleDES

Access: Protected Storage API (for IE 4-6); Data Protection API (for IE 7) Requirements for Access: User logged in

Transient Storage: Symmetric keys zeroed from memory after use.

Trong phiên bản Internet Explorer từ 4 – 6 sử dụng Protected Storage System Provider (Pstore) để save lại các thông tin liên quan đến quá trình đăng nhập của người dùng bao gồm username và mật khẩu. Pstore được định nghĩa bởi MSDN là một chương trình ứng dụng được sử dụng để lưu lại các thông tin và đảm bảo an toàn với các thông tin đó.

Dưới đây là định nghĩa đầy đủ về nó:

"...the Protected Storage service, which is no longer considered a secure method of storing secrets. The most significant Windows application that still uses the P-store is Microsoft Internet Explorer, which stores Auto-Complete information, including names and passwords used for forms-based authentication."

Dữ liệu được lưu trữ với PStore được mã hoá với TripleDES và lưu trữ dưới dạng số nhị phân. Một người không thể giải mã dữ liệu này khi họ truy cập trực tiếp vào registry. Tuy nhiên dữ liệu được bảo mật và có thể được truy cập một cách bình thường khi người dùng đó đăng nhập vào Windows với một tài khoản cho phép. Khi người dùng log in vào hệ thống một chương trình sẽ được hoạt động và có thể truy cập vào các nội dung và giải mã các dữ liệu lưu trữ trong PStore bằng cách sử dụng API call. Tuy nhiên một tài khoản người dùng cùng trên hệ thống Windows cũng sẽ không thể truy cập được vào dữ liệu được lưu trữ. Nhìn chung nếu bạn có user đăng nhập vào Windows thì bạn có thể khai thác được thông tin lưu trữ từ nó. PStore không phải là một sản phẩm chỉ được sử dụng trong Internet Explorer, nó cũng là một phương pháp thường được sử dụng trong các sản phẩm của Microsoft như Outlook và MSN Explorer. Đây là một chương trình dễ bị ảnh hưởng bởi các lỗi trong thiết kế bảo mật. Rất nhiều chương trình Spyware đã phá hoại được

bảo mật của PStore và dễ dàng với chương trình API để truy cập và các dữ liệu được lưu trữ trong PStore. Internet Explorer 7 sử dụng Data Protection Application Programming Interface (DPAPI) tuy nhiên nó đáng tin cậy với các quá trình sử dụng các phần mềm tấn công bình thường thông qua API calls.

Mã hoá cho AutoComplete trong IE7 được hiển thị dưới đây. EK - Encryption Key

RK - Record Key

CRC - Cyclical Redundancy Check Hash - Secure Hash Algorithm (SHA) Storing credentials:

EK: URL (adsbygoogle = window.adsbygoogle || []).push({});

RK: Hash(EncryptionKey) C: CRC(Record Key) V: {data}EK

Store (C, V) is indexed by RK in the Registry, destroy EK Retrieving credentials:

EK: URLRK: Hash(EK) RK: Hash(EK)

Lookup RK in Registry, if match is found corresponding V contains encrypted data; data: {data}EK

Tuy nhiên URL cần được mã hoá một cách không cẩn thận hơn, nó được nén với Encryption Key (EK)

4.2.1.1 Internet Explorer access concerns

IE AutoComplete làm việc dưới những tài khoản người dùng cụ thể trong Windows (dựa trên các useraccount) là một biện pháp logical để có thể truy cập vào dữ liệu được mã hoá. Tuy nhiên nếu một tài khoản người dùng không được xác thực truy cập vào máy tính và có đặc quyền chỉnh sửa lại password sau đó dùng tài khoản kia để đăng nhập vào máy tính, khi đó kẻ tấn công hoàn toàn có thể truy cập vào các dữ liệu đã được mã hoá một cách bình thường. Bằng việc sử dụng các chương trình Remote từ xa như VNC… Thêm vào đó, nhiều người sử dụng máy tính với một tài khoản đăng nhập là điều không được khuyến cáo và làm mất đi tính bảo mật được sử dụng. Với vấn đề này bạn tốt nhất không nên dùng các chương trình quản lý mật khẩu vì các thông tin của bạn hoàn toàn được truy cập vào một cách hợp pháp. Ngoài ra bạn cần có cách bảo vệ máy tính ở tầng vật lý một cách hiệu quả đó là máy tính của bạn đảm bảo không bị mất cắp, nếu bị mất cắp việc hack password trong windows là hoàn toàn có khả năng thực hiện và khi đó toàn bộ các dữ liệu của bạn trên các trang web có thể bị khai thác.

4.2.2 Trong Firefox 0.7-1.5 và 2.0

Storage Construct: Text File (signons.txt)

Format: ASCII, using Base64 encoding (except URL and fields) Sau đây là một đoạn trong file signons.txt

URL (clear text, i.e. www.gmail.com)

Field name (i.e. password, pass, etc.)

Encrypted and Base64 encoded value of above information ...etc... (Could have many entries for one URL)

.

(Với mỗi địa chỉ trang web URL sẽ được kết thúc bằng một dấu ".") Encryption: TripleDES (CBC mode)

Access: Network Security Services (NSS) API

Requirements for Access: User logged in and the Master Password

Relevant files: Certificates (Signed Public Keys) stored as certN.db, Private Key Database stored as keyN.db, and Security Modules stored as secmod.db

Firefox sử dụng Network Security Service API để thực hiện mã hoá. Quản lý mật khẩu trong Firefox sử dụng Public Key Cryptography Standard (PKCS) #11 được định nghĩa là một API là một phần mềm được thiết kế cho các hãng sản xuất phần mềm hay phần cứng khác, nó cũng sử dụng PKCS#5 cho mã hoá mật khẩu. Firefox cũng có một lửa chọn sử dụng một module quản lý mật khẩu chuyên dụng khác là Federal Information Processing Standard (FIPS) 140-1. Quản lý mật khẩu được thực hiện với file keyN.db, dùng để thực hiện giải mã username và password.

NSS API, cũng không phải là vấn đề dễ xử lý, có một vài thành phần trong Firefox hay các chương trình khác có thể dễ dang truy cập vào dữ liệu chứa mật khẩu và tài khoản người dùng. Thiết lập mật khẩu bởi PK11_SetPasswordFunc, decoding base64 data (NSSBase64_DecodeBuffer) và decrypting

(PK11SDR_Decrypt) cho phép chương trình truy cập vào dữ liệu chứa tài khoàn người dùng và mật khẩu. Module bảo mật FIPS 140-1 có thể được enable trong Firefox:

Firefox 1.5 on Windows:

Tools | Options | Advanced | Security Devices | NSS Internal FIPS PKCS #11 Firefox 2.0 on Windows:

Tools | Options | Advanced | Encryption | Security Devices | NSS Internal FIPS PKCS #11 Trong bài viết tới tôi sẽ đề cập đến cách tấn công username và password được lưu trữ trong hệ thống sử dụng AutoComplete, sử dụng trong IE và Firefox

AutoComplete trong IE, FireFox (Bài viết 2)

0

Một phần của tài liệu tìm hiểu về tấn công ứng dụng web (Trang 40)