Tải bản đầy đủ (.pdf) (75 trang)

Bảo mật an toàn thông tin cho phần mềm hóa đơn điện tử của tập đoàn điện lực

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.21 MB, 75 trang )

Học viên: Nguyễn Trung Dũng

Giáo viên hướng dẫn: TS. Trần Đức Khánh

MỤC LỤC
MỤC LỤC ................................................................................................................ 1
LỜI CÁM ƠN........................................................................................................... 4
LỜI CAM ĐOAN ..................................................................................................... 5
BẢNG CÁC TỪ VIẾT TẮT .................................................................................... 6
MỤC LỤC HÌNH VẼ ............................................................................................... 7
CHƢƠNG I: ĐẶT VẤN ĐỀ .................................................................................... 8
1.

Bài toán triển khai hóa đơn điện tử ................................................................ 8

2.

Yêu cầu của bài toán..................................................................................... 11

3.

Cơ sở lý luận ................................................................................................. 14

4.

Giải pháp lựa chọn........................................................................................ 15

4.1

Mức xây dựng mã nguồn ứng dụng.............................................................. 15


4.2

Mức cơ sở dữ liệu ......................................................................................... 15

4.3

Mức kiến trúc chƣơng trình .......................................................................... 15

4.4

Mô hình triển khai ........................................................................................ 15

5.

Kết quả mong đợi ......................................................................................... 16

CHƢƠNG II: TÌM HIỂU VẤN ĐỀ ....................................................................... 17
1.

Các lỗ hổng bảo mật ..................................................................................... 17

1.1

SQL injection................................................................................................ 17

1.1.1 Khái niệm ..................................................................................................... 17
1.1.2 Các kỹ thuật tấn công SQL injection............................................................ 17
1.2

Cross-Site Scripting (XSS) ........................................................................... 20


1.2.1 Khái niệm ..................................................................................................... 20
1.2.2 Nguyên lý hoạt động XSS ............................................................................ 20
1.2.3 Phân loại các hình thức tấn công bằng XSS ................................................. 21
1.3

Cross Site Request Forgery (CSRF) ............................................................. 23

1.3.1 Khái niệm ..................................................................................................... 23
1.3.2 Mức độ nguy hiểm........................................................................................ 23
1.3.3 Mô tả kỹ thuật ............................................................................................... 23

Trang 1/75


Học viên: Nguyễn Trung Dũng

Giáo viên hướng dẫn: TS. Trần Đức Khánh

1.3.4 Khái niệm Social Engineering ...................................................................... 24
2.

Kỹ thuật tấn công từ chối dịch vụ ................................................................ 25

2.1

Nguyên tắc .................................................................................................... 25

2.2


Các mô hình tấn công DdoS ......................................................................... 26

2.2.1 Mô hình Agent – Handler: ............................................................................ 26
2.2.2 Mô hình IRC – Based: .................................................................................. 27
2.3

Phân loại tấn công DdoS .............................................................................. 27

2.3.1 Làm cạn kiệt băng thông của mạng .............................................................. 28
2.3.2 Làm cạn kiệt tài nguyên ............................................................................... 28
2.4

DRDoS (Distributed Reflection Denial of Service) ..................................... 31

2.4.1 Khái niệm: .................................................................................................... 31
2.4.2 Cách thức thực hiện tấn công DRDoS. ........................................................ 31
CHƢƠNG III: GIẢI QUYẾT VẤN ĐỀ................................................................. 33
1.

Các kỹ thuật phòng chống ............................................................................ 33

1.1

Phòng chống từ mức xây dựng mã nguồn ứng dụng.................................... 33

1.1.1 Lọc dữ liệu đầu vào ...................................................................................... 33
1.1.2 Xây dựng truy vấn theo mô hình tham số hóa.............................................. 42
1.1.3 Sử dụng các Store Procedure / Package ....................................................... 45
1.1.4 Mã hóa đầu ra ............................................................................................... 48
1.1.5 Sử dụng Captchar. ........................................................................................ 50

1.1.6 Kiểm tra Referrer .......................................................................................... 53
1.2

Phòng chống từ mức cơ sở dữ liệu ............................................................... 54

1.2.1 Quản lý các dữ liệu nhạy cảm ...................................................................... 54
1.2.2 Phân quyền DB ............................................................................................. 56
1.2.3 Giới hạn các IP có thể truy cập vào database ............................................... 58
1.3

Phòng chống từ mức kiến trúc chƣơng trình ................................................ 58

1.3.1 Sử dụng web service ..................................................................................... 58
1.3.2 Giới hạn quyền truy cập web service ........................................................... 60
2.

Mô hình triển khai ........................................................................................ 62

2.1

Khái niệm DMZ ........................................................................................... 62

Trang 2/75


Học viên: Nguyễn Trung Dũng

Giáo viên hướng dẫn: TS. Trần Đức Khánh

2.2


Mô hình thiết kế DMZ .................................................................................. 63

2.3

Hiện trạng tại HCMPC ................................................................................. 65

2.4

Mô hình đề xuất ............................................................................................ 67

2.5

Một số kiến nghị bổ sung ............................................................................. 67

CHƢƠNG IV: KẾT LUẬN.................................................................................... 70
1.

Một số kết quả đạt đƣợc ............................................................................... 70

1.1

Quét lỗi SQL Injection ................................................................................. 70

1.2

Quét lỗi XSS ................................................................................................. 71

1.3


Quét lỗi CSRF .............................................................................................. 72

2.

Hƣớng phát triển của đề tài .......................................................................... 73

TÀI LIỆU THAM KHẢO ...................................................................................... 75

Trang 3/75


Học viên: Nguyễn Trung Dũng

Giáo viên hướng dẫn: TS. Trần Đức Khánh

LỜI CÁM ƠN
Để có được đồ án này, em xin bày tỏ lòng biết ơn sâu sắc đến các thầy cô giáo
trong trường Đại học Bách Khoa Hà Nội nói chung và viện Công nghệ thông tin –
Truyền thông nói riêng, những người đã tận tình giảng dạy, truyền đạt cho em những
kiến thức quý báu trong thời gian học vừa qua.
Em xin chân thành cảm ơn thầy giáo hướng dẫn, Tiến sĩ Trần Đức Khánh, Bộ
môn Hệ thống Thông tin - Viện Công nghệ Thông tin - Truyền thông, Trường Đại học
Bách Khoa Hà Nội đã nhiệt tình hướng dẫn, chỉ bảo và cung cấp cho em nhiều kiến
thức cũng như tài liệu quý trong suốt quá trình làm luận văn. Nhờ sự giúp đỡ của thầy
em mới có thể hoàn thành được luận văn này.
Em xin chân thành cảm ơn các cô chú, các anh chị, cùng các bạn đồng nghiệp
tại phòng Hệ thống giải pháp kinh doanh, Trung tâm công nghệ thông tin – Tập đoàn
điện lực Việt Nam, những người đã tạo điều kiện về cơ sở vật chất, phương tiện làm
việc cũng như truyền đạt những kinh nghiệm qúy báu cho em trong thời gian làm việc
và nghiên cứu đề tài tại đây.

Cuối cùng, xin cảm ơn gia đình, bạn bè, những người luôn ở bên tôi và cho tôi
những sự động viên lớn lao trong thời gian thực hiện luận văn này.

Trang 4/75


Học viên: Nguyễn Trung Dũng

Giáo viên hướng dẫn: TS. Trần Đức Khánh

LỜI CAM ĐOAN
Tôi xin cam đoan luận văn này là công trình nghiên cứu của chính bản thân.
Các nghiên cứu trong luận văn này dựa trên những tổng hợp lý thuyết và hiểu biết
thực tế, không sao chép.

Trang 5/75


Học viên: Nguyễn Trung Dũng

Giáo viên hướng dẫn: TS. Trần Đức Khánh

BẢNG CÁC TỪ VIẾT TẮT
SQL

Structured Query Language (Ngôn ngữ truy vấn có cấu trúc)

XSS

Cross-Site Scripting


CSRF

Cross Site Request Forgery

DC

Data Center

DB

Database

DMZ

Demilitarized Zone (vùng phi quân sự)

DDoS

Distributed Denial of Service

DRDoS

Distributed Reflection Denial of Service

EVN

Tập đoàn điện lực Việt Nam

CMIS


Hệ thống phần mềm Quản lý thông tin khách hàng

CSKH

Chăm sóc khách hàng

HDDT

Hóa đơn điện tử

CSDL

Cơ sở dữ liệu

CNTT

Công nghệ thông tin

EVNIT

Trung tâm công nghệ thông tin

HCMPC/EVNHCMC Tổng công ty điện lực Hồ Chí Minh

Trang 6/75


Học viên: Nguyễn Trung Dũng


Giáo viên hướng dẫn: TS. Trần Đức Khánh

MỤC LỤC HÌNH VẼ
Hình 1 - Thống kê các lỗ hổng bảo mật chiếm tỷ lệ lớn ............................................. 12
Hình 2 – Kết quả quét lỗi SQL Injection khi có sự cố ................................................ 13
Hình 3 – Kết quả quét lỗi XSS khi có sự cố ................................................................ 13
Hình 4 – Mô hình triển khai dual firewall ................................................................... 15
Hình 5 – Minh họa quá trình tấn công Stored XSS ..................................................... 21
Hình 6 – Hiển thị kết quả Stored XSS trên máy victim .............................................. 22
Hình 7 – Hiển thị kết quả Reflected XSS trên máy victim ......................................... 22
Hình 8 – Kiến trúc attack-network kiểu Agent – Handler........................................... 26
Hình 9 – Kiến trúc attack-network của kiểu IRC-Base ............................................... 27
Hình 10 – BandWith Depletion Attack - Amplification attack ................................... 28
Hình 11 –Protocol Exploit Attack: Cơ chế TCP SYN/ACK ....................................... 29
Hình 12 –Protocol Exploit Attack: Dùng IP không có thực ........................................ 29
Hình 13 –Protocol Exploit Attack: Kết quả ................................................................ 30
Hình 14 – Sơ đồ mô tả kiểu tấn công DRDOS ............................................................ 32
Hình 11 – Mô hình triển khai web service .................................................................. 59
Hình 16 – Mô hình định nghĩa DMZ........................................................................... 63
Hình 17 – Mô hình DMZ - single firewall .................................................................. 64
Hình 18 – Mô hình DMZ - dual firewall ..................................................................... 65
Hình 19 – Mô hình mạng truyền dẫn tại HCMPC....................................................... 65
Hình 20 – Hệ thống mạng logic tại HCMPC .............................................................. 66
Hình 21 – Mô hình triển khai đề xuất tại Tổng công ty điện lực HCM ...................... 67
Hình 22 – Mô hình lƣu trữ 2 Data Center ................................................................... 68
Hình 23 – Đề xuất bổ sung về lớp an ninh bảo mật mạng .......................................... 69
Hình 24 – Kết quả quét lỗi SQL Injection – Trƣớc ..................................................... 70
Hình 25 – Kết quả quét lỗi SQL Injection - Sau ......................................................... 71
Hình 26 – Kết quả quét lỗi XSS – Trƣớc .................................................................... 71
Hình 27 – Kết quả quét lỗi XSS - Sau ......................................................................... 72

Hình 28 – Kết quả quét lỗi CSRF – Trƣớc .................................................................. 72
Hình 29 – Kết quả quét lỗi CSRF - Sau ...................................................................... 73

Trang 7/75


Học viên: Nguyễn Trung Dũng

Giáo viên hướng dẫn: TS. Trần Đức Khánh

CHƢƠNG I: ĐẶT VẤN ĐỀ
1.

Bài toán triển khai hóa đơn điện tử
Tập đoàn Điện lực Việt Nam là doanh nghiệp hoạt động với ngành, nghề kinh

doanh chính là sản xuất, truyền tải, phân phối và kinh doanh mua bán điện năng; chỉ
huy điều hành hệ thống sản xuất, truyền tải, phân phối và phân bổ điện năng trong hệ
thống điện quốc gia; xuất nhập khẩu điện năng; đầu tƣ và quản lý vốn đầu tƣ các dự án
điện; quản lý, vận hành, sửa chữa, bảo dƣỡng, đại tu, cải tạo, nâng cấp thiết bị điện,
công trình điện; thí nghiệm điện.
Thực hiện nhiệm vụ cung cấp điện cho nhu cầu phát triển kinh tế - xã hội của đất
nƣớc, bên cạnh lĩnh vực sản xuất và truyền tải điện năng, EVN có 5 tổng công ty điện
lực kinh doanh điện năng đến khách hàng là Tổng công ty Điện lực miền Bắc (EVN
NPC), Tổng công ty Điện lực miền Nam (EVN SPC), Tổng công ty Điện lực miền
Trung (EVN CPC), Tổng công ty Điện lực TP. Hà Nội (EVN HANOI), Tổng công ty
Điện lực TP. Hồ Chí Minh (EVN HCMPC), phạm vi bao gồm toàn bộ 63 tỉnh, thành 3
miền Bắc, Trung, Nam. Năm 2012, số khách hàng mua điện của EVN khoảng 20 triệu
khách hàng sử dụng điện (trong đó khách hàng ký hợp đồng sử dụng điện cho mục
đích sinh hoạt chiếm 93,5%), phát hành 242,5 triệu hóa đơn/năm và doanh thu xấp xỉ

142 nghìn tỷ đồng/năm. Hiện nay các Tổng công ty Điện lực đều đang sử dụng hình
thức hóa đơn tự in trong hoạt động bán điện theo quy định thống nhất của EVN.
Nghiệp vụ kinh doanh điện năng của các Tổng công ty Điện lực bao gồm công tác
quản lý các thông tin khách hàng, hệ thống đo đếm, hóa đơn tiền điện, hệ thống thanh
toán, quản lý lƣới phân phối, quản lý tổn thất, báo cáo kinh doanh, hỗ trợ điều hành, và
các dịch vụ chăm sóc khách hàng. Toàn bộ các thông tin này đƣợc quản lý bởi hệ
thống phần mềm Quản lý thông tin khách hàng – CMIS 2.0 do Trung tâm Công nghệ
Thông tin xây dựng nhằm phục vụ công tác kinh doanh và quản lý khách hàng tại 105
Công ty Điện lực trực thuộc cũng nhƣ công tác quản lý và hoạch định chiến lƣợc ở cấp
Tổng Công ty.
Theo số liệu năm 2012, 05 Tổng công ty Điện lực thuộc EVN đã phát hành 242,5
triệu hóa đơn bán điện cho các khách hàng thuộc địa bàn quản lý. Nếu tạm tính chi phí

Trang 8/75


Học viên: Nguyễn Trung Dũng

Giáo viên hướng dẫn: TS. Trần Đức Khánh

in ấn hóa đơn tự in là khoảng 500đ/hóa đơn, trong năm 2012, toàn EVN phải tiêu tốn
khoảng 121 tỷ đồng chi phí in hóa đơn, chƣa kể phí lƣu kho liên 1 hóa đơn. Với tốc độ
tăng trƣởng khách hàng khoảng +5%/năm thì chi phí in ấn hóa đơn và quản lý hóa đơn
của EVN dự kiến cho năm 2020 sẽ là khoảng 357 tỷ đồng.
Với qui mô và tốc độ tăng trƣởng hiện tại, các Tổng công ty Điện lực thực sự
đang gặp nhiều thách thức lớn trong công tác kinh doanh. Để duy trì đƣợc toàn bộ bộ
máy kinh doanh vận hành ổn định, hiệu quả cũng nhƣ đáp ứng đƣợc yêu cầu tăng
trƣởng của hệ thống trong vòng 5 năm tới, điều kiện sống còn đối với hệ thống kinh
doanh là phải tìm ra giải pháp tiết kiệm chi phí sản xuất, nâng cao hiệu suất lao động,
giảm thời gian thu nợ, nâng cao dịch vụ khách hàng và nâng cao trình độ quản lý, ứng

dụng công nghệ thông tin cho đội ngũ nhân lực, vv…
Theo xu hƣớng phát triển tất yếu trên thế giới và tại Việt Nam của loại hình hóa
đơn điện tử trong các hoạt động kinh doanh, giao dịch ngân hàng, tài chính, kế toán,
quản lý thuế bởi khả năng tự động hóa qui trình của hệ thống máy tính và mạng
Internet cùng với các ƣu điểm: giảm chi phí in hóa đơn; tăng năng suất lao động; đa
dạng hình thức thanh toán điện tử; nâng cao năng lực cạnh tranh của doanh nghiệp và
hỗ trợ cơ quan thuế quản lý việc kê khai thuế; việc đƣa vào triển khai nhân rộng hóa
đơn điện tử trong hoạt động kinh doanh bán điện tại các Tổng công ty Điện lực là nhu
cầu hết sức cần thiết.
Kết quả triển khai hóa đơn điện tử tại EVN HCMPC
Theo chỉ đạo của EVN, chƣơng trình hóa đơn điện tử đã đƣợc Trung tâm Công
nghệ thông tin thực hiện xây dựng bắt đầu từ 05/2012; triển khai thí điểm tại Công ty
điện lực Sài Gòn thuộc EVN HCMC từ 09/2012. Đến thời điểm hiện tại, toàn bộ các
quy trình lập và quản lý hóa đơn điện tử đã đƣợc thực hiện tại Công ty điện lực Sài
Gòn, bao gồm từ khâu lập hóa đơn, ký hóa đơn điện tử và phát hành, quản lý thu và
theo dõi nợ, gửi hóa đơn điện tử cho khách hàng qua email và trang Web CSKH.
Về mặt quy trình nghiệp vụ, phƣơng án triển khai áp dụng hóa đơn điện tử tại Sài Gòn
có một số điểm đáng chú ý nhƣ sau:
 Hiệu chỉnh quy trình lập hóa đơn tự in hiện tại phù hợp với việc lập hóa đơn
điện tử. Hóa đơn điện tử sau khi lập xong ngay lập tức đƣợc tự động phát hành.

Trang 9/75


Học viên: Nguyễn Trung Dũng

Giáo viên hướng dẫn: TS. Trần Đức Khánh

 Hiệu chỉnh quy trình thu và theo dõi nợ và bổ sung, hiệu chỉnh các mẫu in biên
nhận thanh toán (thanh toán tại nhà sử dụng máy POS, thanh toán tại quầy thu

của đơn vị, thanh toán tại quầy của đơn vị thu hộ). Tùy theo các hình thức thanh
toán, khách hàng sẽ đƣợc nhận biên nhận thanh toán theo hình thức:
o Đối với các khách hàng thanh toán tại quầy của Công ty Điện lực: Khách
hàng sẽ nhận đƣợc biên nhận xác nhận thanh toán theo mẫu do EVNHCMC
phát hành.
o Đối với các khách hàng thanh toán tại quầy Ngân hàng hoặc các đối tác
khác có ký hợp đồng dịch vụ thu hộ tiền điện (ngân hàng, bƣu cục,…):
Khách hàng sẽ nhận đƣợc biên nhận xác nhận thanh toán theo mẫu có sẵn
của các ngân hàng, các đối tác thực hiện dịch vụ thu hộ,…
o Ủy nhiệm thu: Khách hàng sẽ nhận đƣợc giấy ủy nhiệm thu do Công ty
Điện lực phát hành có đóng dấu xác nhận đã thanh toán tiền điện.
o Ủy nhiệm chi: Khách hàng sẽ nhận đƣợc giấy báo nợ, hoặc ủy nhiệm chi
của ngân hàng xác nhận đã thanh toán tiền điện.
o Đối với các khách hàng thanh toán qua internet: Khách hàng sẽ nhận
đƣợc xác nhận của nhà cung cấp.
o Đối với các khách hàng thanh toán qua hình thức nhắn tin SMS: Tin
nhắn SMS đƣợc coi nhƣ là chứng từ xác nhận thanh toán.
 Hóa đơn điện tử đƣợc gửi cho khách hàng theo 2 hình thức sau:
o Qua trang web Chăm sóc khách hàng: khách hàng đăng nhập và download
Hóa đơn điện tử
o Qua email: Hóa đơn điện tử đƣợc đính kèm với email gửi đến địa chỉ do
khách hàng đã đăng ký trƣớc.
Đối với hóa đơn điện tử đƣợc trả qua email, hệ thống sẽ căn cứ vào kết quả chấm
nợ sau khi kết chuyển từ POS và chƣơng trình thu hộ để lập danh sách khách hàng cần
gửi email. Email gửi trả hóa đơn điện tử có định dạng theo mẫu do EVN qui định. Hệ
thống CMIS 2.0 sẽ chuyển email vào hàng đợi của hệ thống Email Server của EVN
HCMC. Hệ thống Email Server sẽ gửi các email này đến địa chỉ của khách hàng.
 Việc kê khai thuế của khách hàng có thể tiến hành theo các hình thức sau:

Trang 10/75



Học viên: Nguyễn Trung Dũng

Giáo viên hướng dẫn: TS. Trần Đức Khánh

o Sử dụng hóa đơn điện tử trực tiếp: khách hàng thực hiện kê khai thuế sử
dụng thông tin có sẵn trong hóa đơn điện tử nhận từ Công ty điện lực.
Khách hàng có thể hiệu chỉnh phần mềm kế toán của mình để phần mềm kế
toán có thể hiểu đƣợc nội dung hóa đơn điện tử do ngành điện phát hành.
o Sử dụng hóa đơn điện tử chuyển đổi ra giấy: khách hàng sử dụng các
thông tin trên hóa đơn điện tử chuyển đổi ra giấy (ngày lập, ký hiệu, serie,
ngƣời bán, tỷ lệ thuế, tổng tiền, tiền thuế,..) để kê khai thuế tƣơng tự nhƣ với
hóa đơn tự in.
o Sử dụng thể hiện của hóa đơn điện tử: khách hàng sử dụng thông tin kê
khai thuế lấy từ các thể hiện của hóa đơn điện tử. Cục thuế địa phƣơng có
thể tra cứu và xác thực hóa đơn của khách hàng tại trang web Chăm sóc
khách hàng của EVN. Do đó, cục thuế địa phƣơng cần đƣợc cấp tài khoản
truy nhập website này.

2.

Yêu cầu của bài toán

Nhƣ đã nói ở trên, hóa đơn điện tử sau khi thanh toán sẽ đƣợc chuyển đến cho khách
hàng bằng 2 con đƣờng
 Qua trang web Chăm sóc khách hàng: khách hàng đăng nhập và download Hóa
đơn điện tử
 Qua email: Hóa đơn điện tử đƣợc đính kèm với email gửi đến địa chỉ do khách
hàng đã đăng ký trƣớc.

Trong đó việc sử dụng trang web Chăm sóc khách hàng đƣợc đặt lên hàng đầu, đơn
giản do việc thu thập địa chỉ email của khách hàng vốn không đƣợc chú trọng. Dữ liệu
đƣợc lƣu trữ trong cơ sở dữ liệu của trang web Chăm sóc khách hàng rất lớn, riêng đối
với HCMPC lên đến 2 triệu khách hàng, trung bình 24 triệu hóa đơn mỗi năm.
Ngoài ra ngay trong thời điểm mới triển khai thử nghiệm trang web Chăm sóc
khách hàng vào tháng 2 năm 2013, hệ thống đã bị sự cố lớn, trang web không truy cập
đƣợc, máy chủ CSDL cũng không kết nối đƣợc. Cả quá trình khắc phục sự cố kéo dài
đến 12 tiếng đồng hồ, bao gồm việc cài đặt khôi phục lại máy chủ Application và máy
chủ CSDL. Qua tìm hiểu vấn đề thì nguyên nhân chính là do trang web Chăm sóc
khách hàng bị tấn công DdoS, lƣợng request tăng đột biến khiến hệ thống không đáp

Trang 11/75


Học viên: Nguyễn Trung Dũng

Giáo viên hướng dẫn: TS. Trần Đức Khánh

ứng kịp và sụp đổ, kéo theo máy chủ CSDL cũng bị tràn session không mở thêm đƣợc
kết nối nữa. Sau khi phục hồi hệ thống, việc trƣớc mắt phải thực hiện là đảm bảo sự cố
không xảy ra nữa. Qua việc tham khảo thống kê các lỗi bảo mật hay gặp nhất trên
website , nhận thấy lỗ hổng bảo mật SQL Injection và XSS
chiếm tỷ lệ lớn nhất nhƣ hình dƣới đây:

Hình 1 - Thống kê các lỗ hổng bảo mật chiếm tỷ lệ lớn
Bên cạnh đó khi sử dụng phần mềm quét lỗi bảo mật Acunetix Web Vulnerability
Scanner quét kiểm thử những lỗi trên, kết quả quét ra cho thấy trang web Chăm sóc
khách hàng ẩn chứa quá nhiều lỗi bảo mật.
Ví dụ khi quét lỗi SQL Injection, kết quả trong hình cho thấy số lƣợng lỗi nghiêm
trọng lên đến 25 lỗi. Phần bên phải của hình cho tổng số cảnh báo là 119, trong đó

cảnh báo lỗi SQL Injection nghiêm trọng là 25 cảnh báo. Phần bên trái là chi tiết các
chức năng, các điều khiển có thể bị lợi dụng để tấn công.

Trang 12/75


Học viên: Nguyễn Trung Dũng

Giáo viên hướng dẫn: TS. Trần Đức Khánh

Hình 2 – Kết quả quét lỗi SQL Injection khi có sự cố
Tƣơng tự, quét lỗi XSS bằng phần mềm này, cho kết quả 32 lỗi nghiêm trọng thể hiện
trong hình 3

Hình 3 – Kết quả quét lỗi XSS khi có sự cố
Việc phục hồi hệ thống mất đến 12 tiếng, phải phục hồi cả Application server và
Database server cho thấy mô hình triển khai của hệ thống không có tính phân tách giữa
các lớp mạng, không hạn chế đƣợc tầm ảnh hƣởng của các cuộc tấn công.
Do vậy đề tài sẽ tập trung vào việc giải quyết các vấn đề sau:

Trang 13/75


Học viên: Nguyễn Trung Dũng

Giáo viên hướng dẫn: TS. Trần Đức Khánh

 Đảm bảo an toàn trƣớc các lỗ hổng thông dụng nhất nhƣ SQL Injection, XSS,
CSRF
 Tăng cao khả năng chịu tải cũng nhƣ khả năng phục hồi của trang web trong

trƣờng hợp bị tấn công từ chối dịch vụ DDoS.

3.

Cơ sở lý luận
Các giải pháp đƣợc đƣa ra trong đề tài dựa trên tiêu chuẩn TCVN 27002:2011 về

Công nghệ thông tin – Các kỹ thuật an toàn – An toàn mạng. Tài liệu đƣa ra rất nhiều
chuẩn an toàn cho các mạng khác nhau, nhƣng dựa trên yêu cầu của đề tài, em chỉ lựa
chọn các tiêu chuẩn thích hợp, gồm các mục sau:
 Mục 10.4.1: Biện pháp chống lại mã độc: nêu các biện pháp phát hiện, ngăn
chặn, khôi phục để bảo vệ chống lại mã độc và các thủ tục xác thực ngƣời dùng.
 Mục 11.4.7: Kiểm soát định tuyến mạng: nêu các biện pháp phân vùng theo
chiều sâu để giới hạn ảnh hƣởng của các cuộc tấn công thành công cũng nhƣ
tăng khả năng phục hồi của hệ thống.
 Mục 10.9.3: Thông tin công bố công khai: Các biện pháp an toàn để bảo vệ tính
toàn vẹn của thông tin trên một hệ thống thông tin công bố công khai cũng nhƣ
việc ngăn chặn chỉnh sửa bất hợp pháp.
 Mục A.13.3: Dữ liệu tập trung nội bộ: Các biện pháp phân vùng thông tin, và
cho phép truy cập thông tin thông qua một cổng duy nhất. Đồng thời ghi nhật
ký hoạt động của các user trên phân vùng đó.

Trang 14/75


Học viên: Nguyễn Trung Dũng

4.

Giáo viên hướng dẫn: TS. Trần Đức Khánh


Giải pháp lựa chọn

4.1 Mức xây dựng mã nguồn ứng dụng
 Lọc dữ liệu đầu vào
 Tham số hóa câu truy vấn dữ liệu
 Sử dụng Package
 Mã hóa dữ liệu đầu ra
 Sử dụng Captchar
 Kiểm tra đƣờng link Referrer
4.2 Mức cơ sở dữ liệu
 Mã hóa dữ liệu nhạy cảm trong cơ sở dữ liệu
 Phân quyền truy cập cơ sở dữ liệu
 Giới hạn IP truy cập cơ sở dữ liệu
4.3 Mức kiến trúc chƣơng trình
 Sử dụng web service
 Giới hạn quyền truy cập web service
4.4 Mô hình triển khai
Trang web Chăm sóc khách hàng sẽ đƣợc triển khai theo mô hình DMZ dual firewall
nhƣ hình vẽ dƣới đây:

Hình 4 – Mô hình triển khai dual firewall

Trang 15/75


Học viên: Nguyễn Trung Dũng

Giáo viên hướng dẫn: TS. Trần Đức Khánh


Theo hình mô tả, trang web Chăm sóc khách hàng đƣợc dựng lên trong lớp mạng
DMZ, còn web service và database đƣợc triển khai trong lớp Intranet
5.

Kết quả mong đợi
 Phòng tránh trang web Chăm sóc khách hàng trƣớc kỹ thuật tấn công cơ bản
thông dụng nhất nhƣ SQL Injection, XSS, CSRF
 Tăng cao khả năng chịu tải cũng nhƣ khả năng phục hồi của trang web trong
trƣờng hợp bị tấn công từ chối dịch vụ DDoS.
 Giảm thiểu đƣợc nguy cơ mất cắp dữ liệu từ các truy vấn trái phép.

Trang 16/75


Học viên: Nguyễn Trung Dũng

Giáo viên hướng dẫn: TS. Trần Đức Khánh

CHƢƠNG II: TÌM HIỂU VẤN ĐỀ
Do mục tiêu của đề tài là đảm bảo an toàn trƣớc các kỹ thuật tấn công cơ bản nhất nhƣ
SQL Injection, XSS, CSRF, và tăng cao khả năng chịu tải của trang web trong trƣờng
hợp bị tấn công từ chối dịch vụ DDoS. Vậy ít nhất chúng ta phải trả lời đƣợc các câu
hỏi sau
 SLQ Injection, XSS, CSRF là gì?
 Cách thức thực hiện của SQL Injection, XSS, CSRF?
 DDoS là gì?
 Ứng xử nhƣ nào khi bị DDoS?
Trong phần tiếp theo, chúng ta sẽ cùng tìm hiểu và trả lời các câu hỏi trên.

1. Các lỗ hổng bảo mật

1.1

SQL injection

1.1.1 Khái niệm
- SQL injection là một hình thức tấn công trong đó truy vấn SQL của ứng dụng đã bị
chèn thêm các tham số đầu vào không an toàn do ngƣời dùng nhập vào, từ đó mã lệnh
đƣợc gửi tới máy chủ database để phân tích cú pháp và thực thi
- Các cơ sở dữ liệu bị ảnh hƣởng bởi tấn công SQL injection: MySQL, SQL server,
Oracle…
- Trong năm 2012 vẫn có tới 2.203 website của các cơ quan doanh nghiệp tại Việt
Nam bị tấn công, chủ yếu thông qua các lỗ hổng trên hệ thống mạng. So với năm 2011
(có 2.245 website bị tấn công), con số này hầu nhƣ không giảm (Theo thống kê của
Bkav.com.vn)
1.1.2 Các kỹ thuật tấn công SQL injection
1.1.2.1 Tấn công vƣợt qua đăng nhập
Với dạng tấn công này, tin tặc có thể dễ dàng vƣợt qua các trang đăng nhập nhờ
vào lỗi khi dùng các câu lệnh SQL thao tác trên cơ sở dữ liệu của ứng dụng web.
Xét một ví dụ điển hình, thông thƣờng để cho phép ngƣời dùng truy cập vào các
trang web đƣợc bảo mật, hệ thống thƣờng xây dựng trang đăng nhập để yêu cầu ngƣời

Trang 17/75


Học viên: Nguyễn Trung Dũng

Giáo viên hướng dẫn: TS. Trần Đức Khánh

dùng nhập thông tin về tên đăng nhập và mật khẩu. Sau khi ngƣời dùng nhập thông tin
vào, hệ thống sẽ kiểm tra tên đăng nhập và mật khẩu có hợp lệ hay không để quyết định

cho phép hay từ chối thực hiện tiếp.
Dƣới đây là kĩ thuật SQL injection đơn giản nhất, dùng để vƣợt qua các form
đăng nhập.
Ví dụ : giả sử ứng dụng web có đoạn mã sau:
SQLQuery= ―SELECT Username FROM Users WHERE Username= ‗‖ &
strUsername & ―‘ AND Password= ‗‖ & Password & ―‘‖
flag= GetQueryResult (SQLQuery)
if flag = ―‖ then
check=FALSE
else
check=TRUE
end if
Đoạn mã trên kiểm tra chuỗi nhập Username và Password. Nếu tồn tại trong bảng
Users thì check=true ngƣợc lại check=false.
Giá trị nhập vào là:
Username:‘ or 1=1-Password: ‘ or 1=1-Hai dấu gạch ngang "--" chỉ cho SQL Server biết đã hết dòng query, mọi thứ còn lại
sau "--" sẽ bị bỏ qua. Đối với MySQL, bạn hãy thay "--" thành "#"
Câu lệnh SQL lúc này nhƣ sau:
Select *from users where username=‘‘or 1=1--'and password =‘‘
Việc kiểm tra password đã bị vô hiệu hóa trong khi điều kiện1=1 thì luôn luôn đúng,
nên khi duyệt bảng users chỉ cần thấy có ngƣời dùng thứ nhất là đã đƣa ra kết quả .
Kết hợp với kí tự đặc biệt của SQL :
- kí tự “ ; ” : đánh dấu kết thúc 1 câu truy vấn
- kí tự “--” : ẩn chuỗi kí tự phía sau nó trên cùng 1 dòng
Ví dụ
Username: ‘; drop table Users--

Trang 18/75



Học viên: Nguyễn Trung Dũng

Giáo viên hướng dẫn: TS. Trần Đức Khánh

Password:
Câu lệnh SQL lúc này nhƣ sau:
SELECT Username FROM Users WHERE Username= ‗‘;drop table Users-AND Password= ‗‖ & Password & ―‘‖
Với câu lệnh trên thì bảng Users sẽ bị xóa hoàn toàn.
1.1.2.2 Tấn công Union base
Khai thác thông tin qua việc sử dụng union base là một hình thức tấn công phổ
biến. Các điểm yếu SQL injection có thể khai thác đƣợc thông qua union là dạng điểm
yếu mà thông tin trả về có thể đƣợc hiện thị trực tiếp trên thông tin phản hồi. Toán tử
union sẽ thực hiện ghép dữ liệu các truy vấn gốc và truy vấn khai thác. Điều kiện là 2
truy vấn này phải trả về cùng số cột và số cột này có cùng kiểu dữ liệu. Trong ví dụ
nêu ở phần “Tấn công vƣợt qua đăng nhập” nếu hacker truyền vào dạng nhƣ sau
SELECT Username FROM Users WHERE Username= ‗‘ union select
Username from table Users WHERE Username= ‗admin‘—AND Password= ‗‖ &
Password & ―‘‖
Trong trƣờng hợp username và password có cùng kiểu dữ liệu, hacker sẽ đăng
nhập đƣợc với quyền admin. Tất nhiên câu lệnh còn phụ thuộc vào dữ liệu khi đó có
giá trị của user admin hay không. Việc tấn công bằng union thƣờng đƣợc kết hợp với
kiểu tấn công Blind SQL Injection, sẽ đƣợc giới thiệu ngay sau đây.
1.1.2.3 Tấn công Blind SQL injection
Lỗi SQL injection dạng này là dạng lỗi tồn tại ngay trong ứng dụng web nhƣng
hậu quả của chúng lại không hiển thị trực quan cho những kẻ tấn công. Nó có thể gây
ra sự sai khác khi hiển thị nội dung của một trang chứa lỗi bảo mật này, hậu quả của sự
tấn công SQL injection dạng này khiến cho lập trình viên hay ngƣời dùng phải mất rất
nhiều thời gian để phục hồi chính xác từng bit dữ liệu. Những kẻ tấn công còn có thể
sử dụng một số công cụ để dò tìm lỗi dạng này và tấn công với những thông tin đã
đƣợc thiết lập sẵn.

Ví dụ:
http://victim/showproduct.asp?catid=1

Trang 19/75


Học viên: Nguyễn Trung Dũng

Giáo viên hướng dẫn: TS. Trần Đức Khánh

Kết quả trả về là 5 sản phẩm xuất hiện trên trang web
Tùy biến 1:
http://victim/showproduct.asp?catid=1 and 1=1
Trang web trả về 5 sản phẩm tƣơng tự nhƣ trên
Tùy biến 2:
http://victim/showproduct.asp?catid=1 and 1=2
=> Không sản phẩm nào xuất hiện.
Ta có thể khai thác lỗ hổng này bằng tùy biến chuỗi truy vấn đƣợc nối phía sau để dò
tìm các thông tin hữu ích.
1.1.2.4 Tấn công XPATH Injection
Giống nhƣ Blind SQL Injection, nhƣng áp dụng cho XMLDatabase. Tuy nhiên hiện tại
việc áp dụng CSDL lƣu trữ trên các file XML hầu nhƣ không còn phổ biến do sự phát
triển mạnh mẽ của các hệ quản trị CSDL nhƣ SQL Server, Oracle, My SQL..v..v. Do
đó chúng ta sẽ không đi sâu vào chi tiết đối với kiểu tấn công trên database dạng này.

1.2 Cross-Site Scripting (XSS)
1.2.1 Khái niệm
Cross-Site Scripting (XSS) là một trong những kỹ thuật hack website phổ biến nhất
hiện nay bằng cách chèn vào url, chèn qua các thanh tìm kiếm hoặc chèn ở bất cứ 1
textbox nào những thẻ HTML hoặc những đoạn mã script nguy hiểm, từ đó chiếm

quyền điều khiển của victim hoặc thực hiện những mệnh lệnh mà hacker đƣa ra.
1.2.2 Nguyên lý hoạt động XSS
Khi website đã bị chèn các thẻ html hay những đoạn mã script nghĩa là đã gửi
các request từ máy client đến server nhằm chèn vào đó các thông tin vƣợt quá tầm
kiểm soát của server. Khi ngƣời sử dụng click vào những link đó thì toàn bộ cookies,
mật khẩu lƣu trên trình duyệt đƣợc gửi về cho hacker qua email hoặc 1 file nào đó trên
host đã đƣợc thiết lập từ trƣớc hoặc bị dẫn tới 1 trang fishing mà hacker đã thiết lập từ
trƣớc hay bị cài đặt các chƣơng trình virus, Trojan, backdoor trên máy victim tùy vào
mệnh lệnh của hacker.

Trang 20/75


Học viên: Nguyễn Trung Dũng

Giáo viên hướng dẫn: TS. Trần Đức Khánh

1.2.3 Phân loại các hình thức tấn công bằng XSS
Có 3 dạng tấn công bằng XSS
 Store XSS
 Reflected XSS
1.2.3.1 Store XSS
Stored XSS là hình thức tấn công mà ở đó cho phép kẻ tấn công có thể chèn một
đoạn script nguy hiểm vào website thông qua một chức năng nào đó nhƣ chỉnh sửa
thông tin cá nhân, comment, gửi bài … khi thành viên khác truy cập vào sẽ dính mã
độc. Các mã độc này thƣờng đƣợc lƣu lại trong database nên gọi là Stored.
Ví dụ Tom là nhân viên, anh ta chỉnh sửa hồ sơ của mình . tại trƣờng địa chỉ thêm một
đoạn script
<script> alert(―‖+doccument.cookie);</script>


Hình 5 – Minh họa quá trình tấn công Stored XSS
Với câu lệnh alert(“”+doccument.cookie) thay bằng đoạn mã khác ví dụ nhƣ gửi thông
tin cookie về địa chỉ host của anh ta .
<script>document.location="host
/CookieLogger.php?cookie=" + document.cookie;</script>
Khi một thành viên quả lý click vào xem thông tin của Tom , đoạn script thực hiện, ở
trong hình sẽ hiện thông báo về cookie.

Trang 21/75


Học viên: Nguyễn Trung Dũng

Giáo viên hướng dẫn: TS. Trần Đức Khánh

Hình 6 – Hiển thị kết quả Stored XSS trên máy victim
Thử tƣởng tƣợng một chút câu lệnh chèn đƣợc thay bằng câu lệnh trỏ sang một URL
độc hại khai thác các thông tin cookie, khi đó trên hình vẽ sẽ không phải là câu alert
đơn giản nữa, thay vào đó là trình duyệt bật lên 1 trang web lạ, ngƣời dùng sẽ bị lấy
mất thông tin cá nhân mà không hề hay biết.
1.2.3.2 Reflected XSS
Trong hình thức này hacker gắn thêm một đoạn mã vào ULR của trang web chúng ta
và gửi đến ngƣời dung bằng email.
/>cript%3Ealert%28%2FChecked+by+robot+EVNIT+
%2F%29%3C%2Fscript%3E+&Submit.x=21&Submit.y=14

Hình 7 – Hiển thị kết quả Reflected XSS trên máy victim

Trang 22/75



Học viên: Nguyễn Trung Dũng

Giáo viên hướng dẫn: TS. Trần Đức Khánh

Ngƣời dùng cảm thấy đƣờng link có vẻ tin cậy đƣợc và click vào link này, kết quả là
đoạn mã độc đƣợc thực thi. Trong hình vẽ đoạn mã thực thi là alert một câu lên cửa sổ
trình duyệt.

1.3 Cross Site Request Forgery (CSRF)
1.3.1 Khái niệm
CSRF ( Cross Site Request Forgery ) là kĩ thuật tấn công bằng cách sử dụng
quyền chứng thực của ngƣời sử dụng đối với 1 website khác. Các ứng dụng web hoạt
động theo cơ chế nhận các câu lệnh http từ ngƣời sử dụng, sau đó thực thi các câu
lệnh này
CSRF sẽ lừa trình duyệt của ngƣời dùng gửi đi các câu lệnh http đến các ứng
dụng web.Trong trƣờng hợp phiên làm việc của ngƣời dùng chƣa hết hiệu lực thì các
câu lệnh trên sẽ đƣợc thực hiện với quyền chứng thực của ngƣời sử dụng.
CSRF còn đƣợc gọi là "session riding", "XSRF"
1.3.2 Mức độ nguy hiểm
Các kiểu tấn công CSRF xuất hiện từ những năm 1990, tuy nhiên các cuộc tấn
công này xuất phát từ chính IP của ngƣời sử dụng nên log file của các website không
cho thấy các dấu hiệu của CFRS. Các cuộc tấn công theo kĩ thuật CSRF không đƣợc
báo cáo đầy đủ, đến năm 2007 mới có một vài tài liệu miêu tả chi tiết về các trƣờng
hợp tấn công CSRF.
Năm 2008 ngƣời ta phát hiện ra có khoảng 18 triệu ngƣời sử dụng eBay ở Hàn
Quốc mất các thông tin cá nhân của mình. Cũng trong năm 2008, một số khách hàng
tại ngân hàng Mexico bị mất tài khoản cá nhân của mình. Trong 2 trƣờng hợp kể trên
hacker đều sử dụng kĩ thuật tấn công CSRF.
1.3.3 Mô tả kỹ thuật

Bob duyệt qua 1 diễn đàn yêu thích của mình nhƣ thƣờng lệ. Một ngƣời dùng
khác, Malory, đăng tải 1 thông điệp lên diễn đàn. Giả sử rằng Malory có ý đồ không
tốt và anh ta muốn lấy tiền từ những ngƣời có tài khoản tại ngân hàng nhƣ Bob.
Malory sẽ tạo 1 thông báo, trong đó có chèn 1 đoạn code nhƣ sau:
Mexico Bank has just announce a new interest rate....

Trang 23/75


Học viên: Nguyễn Trung Dũng

Giáo viên hướng dẫn: TS. Trần Đức Khánh

<img height=0" width="0" src=" />acount=bob_id&amount=1000000&for=Malory_ id"/>
Đoạn mã trên đƣợc che giấu rất khéo,thứ nhất nó thêm các thông điệp bình
thƣờng để ngƣời dùng không chú ý.Thứ hai thẻ "có kích thƣớc 0x0 pixel và ngƣời dùng sẽ không thấy đƣợc. Giả sử Bob vừa mới truy
cập vào tài khoản ngân hàng của mình và chƣa thực hiện logout để kết thúc. Trình
duyệt của Bob sẽ gửi câu lệnh http get đến địa chỉ lƣu trong thẻ "trên và nó sẽ đƣợc thực hiện bằng quyền chứng thực của Bob.
Các kĩ thuật CSRF rất đa dạng, lừa ngƣời dùng click vào link, gửi email chứa
các đoạn mã độc đến ngƣời dùng... Hacker còn có thể che giấu các link ở trên rất khéo
léo. Ví dụ trong trƣờng hợp thẻ "link chứa trong:
src=" />account=bob_id&amount=1000000&for=Malory_ id"/>.
Tuy nhiên ngƣời dùng sẽ rất khó phát hiện nếu hacker dùng đƣờng link nhƣ sau :
<img height="0" width="0" src=" />và cấu hình lại máy chủ
Redirect 302/abc.jpg />account=bob_id&amount=1000000&for=Malory_ id"/>
Một chú ý là cần phải có 1 chút kĩ thuật Social Engineering để có thể biết đƣợc victim
sử dụng tài khoản ngân hàng nào,account của dịch vụ nào và forum thƣờng hay vào là

gì.
1.3.4 Khái niệm Social Engineering
Social Engineering là phƣơng pháp tấn công phi kỹ thuật, dựa trên sự thiếu hiểu
biết của ngƣời dùng để lừa gạt họ cung cấp các thông tin nhạy cảm nhƣ username
password hay các thông tin quan trọng khác. Chính vì yếu tố tấn công phi kỹ thuật dựa
trên sự thiếu hiểu biết, không đề phòng của ngƣời sử dụng mà dạng tấn công này đƣợc
xem là dạng tấn công nguy hiểm nhất.
Một số ví dụ về Social Engineering Attack

Trang 24/75


Học viên: Nguyễn Trung Dũng

Giáo viên hướng dẫn: TS. Trần Đức Khánh

 Attacker gọi điện cho nhân viên quản lý CSDL và bảo rằng anh ta đang tiến
hành một số thao tác bảo trì máy tính, và yêu cầu nhân viên này cung cấp tài
khoản để đăng nhập máy chủ CSDL trên.
 Attacker gửi các thiệp điện tử đƣợc nhúng kèm những chƣơng trình nguy hiểm.
Dạng tấn công này thƣờng sử dụng các dịp lễ, tết để đánh lừa ngƣời sử dụng.
 Attakker tạo ra các email chứa trojan trong các tập tin đính kèm và gửi cho
ngƣời dùng, yêu cầu anh ta mở các file đính kèm để xem thêm các nội dung để
tìm cách cài đặt trojan, virus…

2. Kỹ thuật tấn công từ chối dịch vụ
2.1

Nguyên tắc
Nguyên tắc: Chiếm dụng một lƣợng lớn tài nguyên của hệ thống cung cấp bằng


nhiều cách gây nên quá tải và ngừng cung cấp dịch vụ. Việc này phụ thuộc vào khả
năng của kẻ tấn công và sức chịu đựng của mục tiêu.
Hacker sẽ chiếm dụng một lƣợng lớn tài nguyên trên server, tài nguyên có thể là
băng thông, bộ nhớ, CPU, đĩa cứng, ... làm cho server không thể nào đáp ứng các yêu
cầu khác từ các client của những ngƣời dùng bình thƣờng và có thể nhanh chóng bị
ngừng hoạt động, crash hoặc reboot.

Trang 25/75


×