目前越來越多的初創企業把自己的業務系統架設在公有云上,包含:阿里云、Ucloud、青云、華為云和AWS。在云上的安全怎么保證,是目前擺在我們面前的最大問題,因為,互聯網公司業務系統在不斷迭代,迭代周期最少的有3天,而且架構也不斷在改變。在這種頻繁改變的過程中,云安全應該怎么保證?,云主機安全服務平臺(Cloud security as a service),為多租戶提供云主機安全服務的產品,減少用戶業務系統攻擊面,防止惡意的定向攻擊(APT)。造成企業敏感信息泄露等,避免影響企業業務的安全事件的發生。
目前在云主機安全ToB的國外廠商歸納總結有以下幾家:
技術方向 | 廠商 |
---|---|
云安全信息和事件管理產品 | Splunk、AlienVault |
云主機安全產品 | CloudPassage、Illumio、vArmour、FortyCloud |
私有云服務器安全 | TrendMicro、Symantec、McAfee |
廠家 | 描述 |
---|---|
Illumio | 自適應安全 |
FortyCloud | Cloud Network Firewall as a Service |
vArmour | 利用大數據分析技術,通過掃描進入網絡的每一塊數據來篩查疑似非法數據并對其進行標記,跟蹤。 |
CloudPassage | 服務器的安全配置管理、托管防火墻管理、入侵檢測、服務器賬號審計、事件報告與告警 |
Splunk | 從海量機器數據中提取有價值的信息,并進行實時分析和展現 |
AlienVault | 為客戶提供SIEM解決方案。同時,AlienVault結合眾包威脅情報平臺提供了一個混合威脅管理解決方案。 |
TrendMicro,McAfee,Symantec | VMware、Hyper-v、Linux KVM私有云虛擬機安全解決方案 |
針對互聯網金融中小企業用戶。獲取用戶改進產品,互聯網金融目標用戶行業分析如下:
業務模式名稱 | 業務模式詳細描述 | 代表企業:安全業務需求 |
---|---|---|
第三方支付企業模式 | 第三方支付企業指在收付款人之間作為中介機構提供網絡支付、預付卡發行預受理、銀行卡收單以及其他支付服務的非金融機構 | 支付寶、易寶支付、拉卡拉、財付通為代表的互聯網支付企業,快錢、匯付天下為代表的金融型支付企業。 |
P2P網絡小額信貸模式 | 通過P2P網絡融資平臺,借款人直接發布借款信息,出借人了解對方的身份信息、信用信息后,可以直接與借款人簽署借貸合同,提供小額貸款,并能及時獲知借款人的還款進度,獲得投資回報。 | 代表企業:美國的prosper和lendingclubP2P公司,國內的人人貸、拍拍貸、紅嶺創投等 陸金所 |
眾籌融資模式 | 所謂眾籌平臺,是指創意人向公眾募集小額資金或其他支持,再將創意實施結果反饋給出資人的平臺。網站為網友提供發起籌資創意,整理出資人信息,公開創意實施結果的平臺,以與籌資人分成為主要贏利模式 | 代表企業:國外最早和最知名的平臺是kickstarter,國內有點名時間、眾籌網、淘夢網等 京東眾籌、人人投、追夢網、大家投 |
虛擬電子貨幣模式 | 虛擬貨幣是一種計算機運算產生或者網絡社區發行管理的網絡虛擬貨幣,可以用來購買一些虛擬的物品,比如網絡游戲當中的衣服、帽子、裝備等,只要有人接受,也可以使用像比特幣這樣的虛擬貨幣購買現實生活當中的物品。 | 代表企業:國外的比特幣、亞馬遜幣、Facebook幣,國內的Q幣等。 |
基于大數據的金融服務平臺模式 | 通過打造類似去哪兒這樣的金融產品垂直搜索引擎的方式,把有借款需求的個人和有放款需要的中小銀行和小貸機構在一個平臺上進行對接;然后通過廣告費或者交易傭金的方式獲得收入。 | 代表企業:國外的Bankrate(銀率網),國內的融360、好貸網、金融界理財等 |
互聯網銀行模式(Internet bank or E-bank) | 借助現代數字通信、互聯網、移動通信及物聯網技術,通過云計算、大數據等方式在線實現為客戶提供存款、貸款、支付、結算、匯轉、電子票證、電子信用、賬戶管理、貨幣互換、P2P金融、投資理財、金融信息等全方位無縫、快捷、安全和高效的互聯網金融服務機構。互聯網銀行的便利性、高效性將給傳統銀行帶來較大的挑戰 | |
互聯網理財 | 通過互聯網進行更高效的更便捷的錢生錢的事業 | 銅板街、格上理財、招財寶 - 螞蟻金服、積木盒子、火球 |
國內云主機安全服務平臺有以下幾家:
廠商名稱 | 產品介紹 |
---|---|
烏云唐朝巡航 | 借助眾測試等社區運營模式產生的云主機安全解決方案,主要是及時響應服務器安全漏洞。 |
阿里云盾 | DDoS防護,主機入侵防護,以及漏洞檢測、木馬檢測等一整套安全服務 |
安全狗 | 基于主機WAF 和anti-DDoS功能 |
知道創宇 | 加速樂、云安全監控平臺、ZoomEye大數據安全掃描平臺 |
百度安全寶 | 云WAF企業版、DDoS云防護、應急響應 |
青藤云安全 | 自適應安全理念的產品化的國內第一家廠商 |
面對這些公司的競爭,我們的競爭力在于獲得種子用戶,完全開源的策略。提供安全運維服務。二次開發等服務。
支持云方式部署方式,快速獲取用戶。免費安裝模式。
如果用戶打算使用我們的解決方案,可以獨立部署或者開放源代碼。
KPI考核
統計安裝用戶數量、留存率,月付費用戶轉化率。免費用戶
通過以上國內外云安全公司產品分析,我認為云主機安全平臺需要具備以下四個大功能模塊。
開發的優先級如下:
針對P1需要完成的功能,建立基于大數據分析平臺,防范APT攻擊。產品概念設計可以 為:基于日志的態勢感知功能。
處理Web日志數據結構如下:
所選擇的實現技術手段:
由于前期數據量沒有到達一定的數量級,可以使用傳統的關系型數據實現。當然如果本系統應用到大公司的時候可以迭代技術架構、hadoop或者storm來解決問題。
業務流程圖:
核心界面設計:通過visio原型圖表現。
核心界面首先,要畫出原型圖,那么,和用戶接觸最多的是web前端,所以,設計要精致。
(1)Web前端
Web前端分為四大功能模塊
(2)Web管理后臺
交互流程設計:正常應該通過Axure動畫表現,由于本次設計不是特別復雜,只是幾個功能模塊的切換就不畫交換流程圖了。
由于目前產品設計需要考慮高擴展性,所以技術選型大致如下:
根據技術選型后,需要建立Demo 環境技術難點集中在服務器端和Web后端。那么下面說明一下這兩部分搭建:
組件名稱 | 詳細描述 |
---|---|
操作系統 | Centos 6.7 Final |
Web前端服務器 | Nginx/1.8.1 |
Web服務器 | Django/1.7 |
Python解析器 | uwsgi |
Python語言 | Python 2.7.10 |
Restful API架構 | Tastypie |
看到這個架構其實很多小朋友會問為啥要這么設計,太繁瑣了?其實設計原則主要是為了將來的擴展性。Web前端服務器:本系統是一個公有云安全平臺,用戶量將來要不斷的增加,使用Nginx可以做到橫向擴展。
6.1.1 Nginx安裝部署
Nginx部署過程:
rpm -ivh
http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm
yum -y install nginx
service nginx restart
chkconfig nginx on
配置nginx
在/etc/nginx/conf.d/中增加MyPythonServer.conf,內容如下:
#!bash
http {
#負載均衡
upstream production_site{
server web1.xxx.com:8080 weight=6 max_fails=3 fail_timeout=20s;
server web2.xxx.com:8080 weight=3 max_fails=3 fail_timeout=20s;
server web3.xxx.com:8080 weight=7 max_fails=3 fail_timeout=20s;
server web4.xxx.com:8080 weight=8 max_fails=3 fail_timeout=20s;
}
server {
listen 8090;
server_name web1.xxx.com,web2.xxx.com,web3.xxx.com,web4.xxx.com;
charset utf-8;
client_max_body_size 75M;
location / {
uwsgi_pass django;
include uwsgi_params;
}
}
6.1.2 Django&uwsgi安裝配置
#!bash
[[email protected] venv]# pip install Django
安裝uWSGI
[[email protected] venv]# pip install uwsgi
[uwsgi]
home=/data/Mydata/env
chdir=/data/Mydata/
uid=root
gid=root
wsgi-file=/data/Mydata/wsgi.py
socket=127.0.0.1:8001
master=true
workers=8
pidfile=/data/Mydata/uwsgi.pid
vacuum=true
thunder-lock=true
enable-threads=true
harakiri=30
post-buffering=4096
daemonize=/data/Mydata/uwsgi.log
logger=file:/data/Mydata/uwsgi.log
6.2.1 Php-fpm安裝
nginx 安裝忽略
#!bash
cd /usr/local/src/?
wget?http://php.net/distributions/php-5.6.8.tar.gz
tar --zxvf??php-5.6.8.tar.gz
yum install -y libxml2 libxml2-devel openssl-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libmcrypt libmcrypt-devel mcrypt mhash
./configure --prefix=/usr/local/php5 --with-config-file-path=/usr/local/php5/etc --enable-fpm --disable-ipv6 --enable-pdo --with-pdo-mysql --with-openssl --with-mcrypt --with-mhash --enable-json --enable-mbstring --with-gd --with-openssl-dir --with-jpeg-dir --with-png-dir --with-zlib-dir --with-freetype-dir --enable-gd-native-ttf --enable-gd-jis-conv --enable-zip
make?
make install
cp /usr/local/php5/etc/php-fpm.conf.default ? /usr/local/php5/etc/php-fpm.conf
cp /usr/local/src/php-5.6.8/sapi/fpm/init.d.php-fpm /usr/local/php5/sbin/ cd /usr/local/php5/sbin/?
chmod 755 init.d.php-fpm ./init.d.php-fpm start?
Starting php-fpm done
配置Nginx來支持PHP
#!bash
cd /etc/nginx/
vi nginx.conf
#打開gzip
gzip on;
配置vhost,假設域名為www.xxx.com
#!bash
cd /etc/nginx/conf.d/
vi www.xxx.com.conf
#內容如下
server {
listen 80;
server_name www.xxx.com xxx.com;
location / {
#開啟ssi支持shtml
ssi on;
ssi_silent_errors on;
ssi_types text/shtml;
index index.shtml index.php index.htm index.html;
root /data/www/www.xxx.com;
#框架路由設置
if ( !-e $request_filename ) {
rewrite ^(.*)$ /index.php?url=$1 last;
}
}
location ~.php$ {
root /data/www/www.xxx.com;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location ~.(jpg|jpeg|png|js|css) {
root /data/www/www.xxx.com;
expires 30d;
}
}
測試一下 配置文件是否有錯誤
#!bash
/etc/init.d/nginx configtest
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
新建info.php測試文件,內容為
#!php
<?php
phpinfo();
?>
然后:
#!bash
vim /etc/hosts
127.0.0.1 ?www.xxx.com
cd /usr/local/src/php-5.6.8
cp?php.ini-production?/usr/local/php5/etc/php.ini
至此nginx+php-fpm設置完成。
6.2.2 Mysql擴展安裝
#!bash
yum install mysql-devel
由于之前沒有安裝mysql服務,也沒有安裝php的mysql擴展,用是PDO方式,為適應老版本的joomla程序,再添加mysql.so擴展
方法如下:
1、進入php源代碼目錄:
#!bash
cd /usr/local/src/php-5.6.8/ext
cd mysql
yum install autoconf
調用已經編譯好的php可執行程序phpize,phpize是用來擴展php擴展模塊的,通過phpize可以建立php的外掛模塊
phpize的規則:去哪個目錄下運行phpize文件,那么就會在該目錄下生成一個configure文件。
#!bash
/usr/local/php5/bin/phpize
./configure --with-php-config=/usr/local/php5/bin/php-config --with-mysql --with-zlib-dir=/usr/local/php5/lib/php/extensions/no-debug-non-zts-20131226/
make && make install
完成后,可以看到no-debug-non-zts-20131226目錄下生成了mysql.so文件
修改php.ini,去掉;extension=php_mysql.so
前面的分號。將php_mysql.so
改成我們生成的mysql.so
。
重啟php-fpm
后可以從phpinfo看到mysql擴展已經生效。
6.2.3 Yaf擴展安裝
#!bash
wget?https://github.com/laruence/yaf/archive/master.zip
unzip?master.zip
./configure --with-php-config=/usr/local/php5/bin/php-config
make && make install
vim?/usr/local/php5/etc/php.ini
extension=yaf.so