雲伺服器安全設計

wyzsk發表於2020-08-19
作者: bt0sea · 2016/02/19 10:25

0x00 產品定位


目前越來越多的初創企業把自己的業務系統架設在公有云上,包含:阿里雲、Ucloud、青雲、華為雲和AWS。在雲上的安全怎麼保證,是目前擺在我們面前的最大問題,因為,網際網路公司業務系統在不斷迭代,迭代週期最少的有3天,而且架構也不斷在改變。在這種頻繁改變的過程中,雲安全應該怎麼保證?,雲主機安全服務平臺(Cloud security as a service),為多租戶提供雲主機安全服務的產品,減少使用者業務系統攻擊面,防止惡意的定向攻擊(APT)。造成企業敏感資訊洩露等,避免影響企業業務的安全事件的發生。

0x01 國外競爭產品分析


目前在雲主機安全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私有云虛擬機器安全解決方案

0x02 產品目標


針對網際網路金融中小企業使用者。獲取使用者改進產品,網際網路金融目標使用者行業分析如下:

業務模式名稱 業務模式詳細描述 代表企業:安全業務需求
第三方支付企業模式 第三方支付企業指在收付款人之間作為中介機構提供網路支付、預付卡發行預受理、銀行卡收單以及其他支付服務的非金融機構 支付寶、易寶支付、拉卡拉、財付通為代表的網際網路支付企業,快錢、匯付天下為代表的金融型支付企業。
P2P網路小額信貸模式 透過P2P網路融資平臺,借款人直接釋出借款資訊,出借人瞭解對方的身份資訊、信用資訊後,可以直接與借款人簽署借貸合同,提供小額貸款,並能及時獲知借款人的還款進度,獲得投資回報。 代表企業:美國的prosper和lendingclubP2P公司,國內的人人貸、拍拍貸、紅嶺創投等 陸金所
眾籌融資模式 所謂眾籌平臺,是指創意人向公眾募集小額資金或其他支援,再將創意實施結果反饋給出資人的平臺。網站為網友提供發起籌資創意,整理出資人資訊,公開創意實施結果的平臺,以與籌資人分成為主要贏利模式 代表企業:國外最早和最知名的平臺是kickstarter,國內有點名時間、眾籌網、淘夢網等 京東眾籌、人人投、追夢網、大家投
虛擬電子貨幣模式 虛擬貨幣是一種計算機運算產生或者網路社群發行管理的網路虛擬貨幣,可以用來購買一些虛擬的物品,比如網路遊戲當中的衣服、帽子、裝備等,只要有人接受,也可以使用像比特幣這樣的虛擬貨幣購買現實生活當中的物品。 代表企業:國外的比特幣、亞馬遜幣、Facebook幣,國內的Q幣等。
基於大資料的金融服務平臺模式 透過打造類似去哪兒這樣的金融產品垂直搜尋引擎的方式,把有借款需求的個人和有放款需要的中小銀行和小貸機構在一個平臺上進行對接;然後透過廣告費或者交易佣金的方式獲得收入。 代表企業:國外的Bankrate(銀率網),國內的融360、好貸網、金融界理財等
網際網路銀行模式(Internet bank or E-bank) 藉助現代數字通訊、網際網路、行動通訊及物聯網技術,透過雲端計算、大資料等方式線上實現為客戶提供存款、貸款、支付、結算、匯轉、電子票證、電子信用、賬戶管理、貨幣互換、P2P金融、投資理財、金融資訊等全方位無縫、快捷、安全和高效的網際網路金融服務機構。網際網路銀行的便利性、高效性將給傳統銀行帶來較大的挑戰
網際網路理財 透過網際網路進行更高效的更便捷的錢生錢的事業 銅板街、格上理財、招財寶 - 螞蟻金服、積木盒子、火球

0x03 市場機會


3.1 我們的機會在哪裡

國內雲主機安全服務平臺有以下幾家:

廠商名稱 產品介紹
烏雲唐朝巡航 藉助眾測試等社群運營模式產生的雲主機安全解決方案,主要是及時響應伺服器安全漏洞。
阿里雲盾 DDoS防護,主機入侵防護,以及漏洞檢測、木馬檢測等一整套安全服務
安全狗 基於主機WAF 和anti-DDoS功能
知道創宇 加速樂、雲安全監控平臺、ZoomEye大資料安全掃描平臺
百度安全寶 雲WAF企業版、DDoS雲防護、應急響應
青藤雲安全 自適應安全理念的產品化的國內第一家廠商

面對這些公司的競爭,我們的競爭力在於獲得種子使用者,完全開源的策略。提供安全運維服務。二次開發等服務。

3.2 如何成功?

支援雲方式部署方式,快速獲取使用者。免費安裝模式。

如果使用者打算使用我們的解決方案,可以獨立部署或者開放原始碼。

KPI考核

統計安裝使用者數量、留存率,月付費使用者轉化率。免費使用者

3.3 專案里程碑

p1

0x04 產品功能詳細架構設計(Product Proposal)

4.1 產品定位

透過以上國內外雲安全公司產品分析,我認為雲主機安全平臺需要具備以下四個大功能模組。

p2

開發的優先順序如下:

  1. 基於日誌大資料收集分析平臺(P1)
  2. 基於基於Agent收集雲主機相關精確的安全資訊 (P2) 本模組需要大量的開發人員完成,如果獲得天使輪融資後可以開發。
  3. 威脅情報模組(P2) 威脅情報這部分可以對接國內的威脅情報系統 例如:微步等。
  4. SDN網路安全防火牆模組(P2)防火牆模組目前還需要做更多的研究才能整合,建議使用linux主機上自帶iptable實現。

4.2、產品功能詳細設計

針對P1需要完成的功能,建立基於大資料分析平臺,防範APT攻擊。產品概念設計可以 為:基於日誌的態勢感知功能。

p3

處理Web日誌資料結構如下:

p4

所選擇的實現技術手段:

p5

由於前期資料量沒有到達一定的數量級,可以使用傳統的關係型資料實現。當然如果本系統應用到大公司的時候可以迭代技術架構、hadoop或者storm來解決問題。

業務流程圖:

p6

核心介面設計:透過visio原型圖表現。

核心介面首先,要畫出原型圖,那麼,和使用者接觸最多的是web前端,所以,設計要精緻。

(1)Web前端

Web前端分為四大功能模組

  1. Dashboard:顯示攻擊型別和攻擊源
  2. Analysis:圖形化分析詳細的攻擊方式
  3. Reporting: 以資料形式展示攻擊型別、攻擊源和詳細攻擊方式
  4. Configuration:引數配置(非核心模組就不展示了)

p7

p8

p9

(2)Web管理後臺

p10

互動流程設計:正常應該透過Axure動畫表現,由於本次設計不是特別複雜,只是幾個功能模組的切換就不畫交換流程圖了。

0x05 產品技術架構設計


由於目前產品設計需要考慮高擴充套件性,所以技術選型大致如下:

p11

0x06 Demo搭建


根據技術選型後,需要建立Demo 環境技術難點集中在伺服器端和Web後端。那麼下面說明一下這兩部分搭建:

6.1 伺服器端

元件名稱 詳細描述
作業系統 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部署過程:

  1. rpm -ivh
    http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm
  2. yum -y install nginx
  3. service nginx restart
  4. 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 Web後端

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+pho-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
本文章來源於烏雲知識庫,此映象為了方便大家學習研究,文章版權歸烏雲知識庫!

相關文章