mysql数据库审计
① 哪里有mysql workbench mac版安装包
软件介绍
mysql workbench 这款mac平台上专为MySQL设计的数据库设计工具,MySQLWorkbench 为数据库管理员、程序开发者和系统规划师提供可视化设计、模型建立、以及数据库管理功能。它包含了用于创建复杂的数据建模ER模型,正向和逆向数据库工程,也可以用于执行通常需要花费大量时间和需要的难以变更和管理的文档任务。MySQL Workbench提供了一个可视化控制台,可以轻松管理MySQL环境并更好地查看数据库,在这款软件中您可以使用内置的可视化工具来配置服务器、管理用户、执行备份和恢复、检查审计数据以及查看数据库运行状况。另外,mysql workbench还提供了一套工具来改善MySQL应用程序的性能。
所需工具:点击下载:mysql workbench mac
软件安装说明
mysql workbench mac版安装非常简单,您只需要在下载完成后打开【mysqlworkbench.dmg】,然后将【mysql workbench.app】拖入【applications】文件夹即可完成安装,安装完成后就可以直接使用,无需任何破解步骤。
*安装注意事项
此软件并非App Store原生版本,部分Mac系统用户可能无法直接安装,若遇到【app已损坏,无法启动。你应该将它移到废纸篓。】提示时,建议进行以下操作:
1、打开系统偏好设置,选择【安全性与隐私】
2、点击右下角锁状图标,输入密码解除锁定
3、在【允许从以下位置下载的应用】的三个选项里,选择最下方的【任何来源】
4、重新启动程序
*如果打开【安全性与隐私】后没有发现【允许从以下位置下载的应用】选项的用户,可以进行以下操作:
1、复制括号内代码:【sudo spctl --master-disable】
2、在【应用程序】-【实用工具】中找到【终端.app】打开,粘贴之前复制的代码,回车键运行
3、重新启动程序
软件功能:
1、设计
MySQL Workbench使DBA,开发人员或数据架构师能够可视化地设计,建模,生成和管理数据库。它包含了数据建模师创建复杂ER模型,转发和逆向工程所需的一切,还提供了执行困难变更管理和文档任务所需的大量时间和精力的关键功能。
2、发展
MySQL Workbench提供了用于创建,执行和优化SQL查询的可视化工具。 SQL编辑器提供了颜色语法高亮显示,自动完成,SQL片段的重用以及SQL的执行历史记录。数据库连接面板使开发人员可以轻松管理标准数据库连接,包括MySQL Fabric。对象浏览器提供对数据库模式和对象的即时访问。
2、管理
MySQL Workbench提供了一个可视化控制台,可以轻松管理MySQL环境并更好地查看数据库。开发人员和DBA可以使用可视化工具来配置服务器,管理用户,执行备份和恢复,检查审计数据以及查看数据库运行状况。
3、可视化性能仪表板
MySQL Workbench提供了一套工具来改善MySQL应用程序的性能。 DBA可以使用Performance Dashboard快速查看关键绩效指标。性能报告可轻松识别和访问IO热点,高成本SQL语句等。此外,只需点击一下,开发人员就可以通过改进和易于使用的Visual Explain Plan来查看优化查询的位置。
4、数据库迁移
MySQL Workbench现在提供了一个完整的,易于使用的解决方案,用于将Microsoft SQL Server,Microsoft Access,Sybase ASE,PostreSQL和其他RDBMS表,对象和数据迁移到MySQL。开发人员和DBA可以快速轻松地将现有应用程序转换为在Windows和其他平台上运行在MySQL上。迁移还支持从早期版本的MySQL迁移到最新版本。
② 濡备綍镊锷ㄥ寲瀹屾垚SQL瀹℃牳
sql瀹℃牳涓昏佸畬鎴愪袱鏂归溃镄勭洰镄.
1銆侀伩鍏嶆ц兘澶宸镄剆ql杩涘叆鐢熶骇绯荤粺,瀵艰嚧鏁翠綋镐ц兘闄崭绠
2銆佹镆ュ紑鍙戣捐$殑绱㈠紩鏄钖﹀悎鐞,鏄钖﹂渶瑕佹坊锷犵储寮
绗涓镣规槸SQL瀹℃牳链镙稿绩镄勫湴鏂,阆垮厤涔变竷鍏绯熺殑sql褰卞搷绾夸笂镐ц兘,鐢氲呖瀵艰嚧绾夸笂绯荤粺宕╂簝.
绗浜岀偣鏄灞炰簬寤烘ā镄勮寖鐣,瑕佽В鍐冲缓妯$殑链濂藉姙娉曟槸DBA鍙备笌椤圭洰鍓嶆湡瀹℃牳,鐢盌BA寤烘ā,濡傛灉DBA浜哄姏璧勬簮涓嶈冻,闾d箞灏卞畾链熺敱DBA瀵瑰紑鍙戜汉锻樿繘琛屽煿璁.铹跺悗鍙戠幇寤烘ā澶鐑傜殑灏辨墸KPI.
鐜板湪寰埚氩叕鍙搁兘鏄浜鸿倝𨱒ュ畬鎴怱QL瀹℃牳镄,浜鸿倝瀹℃牳瀵筪ba镄勮佹眰杈冮珮,闇瑕佹哕涓浜涗唬镰,鍙﹀栨槸璐规椂璐瑰姏,姣旷珶涓鑸鍏鍙稿嚑鍗佷釜寮鍙,瀵瑰簲涓涓狣BA锛岃屼笖DBA杩樿佸共寰埚氩叾浠栫殑浜嬫儏.
濡备綍灏咲BA浠庝汉镶塖QL瀹℃牳涓瑙f斁鍑烘潵锻?
镐濊矾鍏跺疄寰堢亩鍗:
1銆佽幏鍙栫▼搴忚佹墽琛岀殑SQL
2銆佸硅佹墽琛岀殑SQL锅氩垎鏋,鍙浠ュ姞钖勭嶅垎鏋愭浔浠舵潵鍒ゆ柇杩欎釜SQL鏄钖﹀彲浠ヨ嚜锷ㄥ℃牳阃氲繃,链阃氲繃瀹℃牳镄勯渶瑕佷汉宸ュ勭悊.
3銆侀厤钖埚悗链熺殑鎱㈡煡璇㈡棩蹇楀垎鏋愮郴缁熷畬鎴愰暱链熺殑鐩戞带.
寮婧愮殑瑙e喅鏂规堜富瑕佹湁娣桦疂涓硅噜sqlautoreview绯荤粺.鍙浠ュ湪github涓婃悳绱㈠埌.
浣嗘槸杩欎釜绯荤粺涓昏佹槸锘轰簬java sqlmapfile.xml瑙e喅镊锷ㄥ垱寤虹储寮旷殑闂棰,瀵规簮鏁版嵁链夎佹眰,骞朵笖鏄阃氲繃瑙f瀽SQL缁撴瀯𨱒ュ亣璁维QL镄勬墽琛岃″垝,涓嶆槸鐗瑰埆鍑嗙‘,骞朵笖涓嶈兘澶熷緢濂界殑鍖哄垎鏂皊ql杩樻槸钥乻ql.
镓浠ヤ骇鐢熶简涓涓鏂扮殑鏂规:
1銆佷负镓链夌殑镓ц岃繃镄剆ql浜х敓涓涓猣igerprint
2銆佸熀浜庢参镆ヨ㈡彁渚涚殑鏁版嵁,锷犱笂explain 鎻愪緵镄勬暟鎹𨱒ュ垽鏂杩欎釜sql镄勬ц兘鏄钖﹀彲鎺ュ弹,鎴栬呭彲浼桦寲.
3銆佽嚜锷ㄥ℃牳阃氲繃镐ц兘鍙鎺ュ弹镄勯儴鍒,缁橠BA灞旷ず镐ц兘杈冨樊镄剆ql,铹跺悗杩涜屼紭鍖.
鏂规堢殑浼樼偣鍦ㄤ簬:
锘轰簬鐢ㄦ埛鐪熸f墽琛岀殑SQL,骞朵笖鍙浠ヨ傚疗SQL镓ц岄戠巼.
锘轰簬MySQL鐪熸g殑镓ц岃″垝鍜屾墽琛岀粨鏋,鍒嗘瀽镟村嗳纭.
姣忎釜SQL閮芥湁涓涓猣ingerprint,鍙闇瑕佸为噺澶勭悊鏂板姞镄凷QL,鏁堢巼鍜屾ц兘鎻愰珮.
锘轰簬Box anemometer浜屾″紑鍙,璁╂参镆ヨ㈠拰sql瀹℃牳钖屽钩鍙,澧炲姞宸ュ叿闆嗘垚镐,鎻愰珮鐢ㄦ埛浣挞獙(DBA鍜屽紑鍙戜汉锻)銆
鏂规埚疄鏂:
镞㈢劧鍜辨槸DBA锛岃偗瀹氢细链夋洿DBA镄勬濈淮鏂瑰纺.锘轰簬鐜版湁杞浠朵簩娆″紑鍙戝畬鎴,鍑忓皯寮鍙戞垚链,鏁村悎绠$悊骞冲彴.
锘轰簬Box anemometer.瀹夎匓ox anemometer
Box anemometer鏄涓娆綛/S鏋舵瀯,锲惧舰鍖栫殑MySQL鎱㈡煡璇㈠垎鏋愬伐鍏.锷熻兘寮哄ぇ鏄撶敤,璁捐$亩鍗旷洿鎺.anemometer鏄锘轰簬pt-query-digest镄勪簩娆″皝瑁呭缑𨱒.
镙稿绩澶勭悊娴佺▼:
mysql node钬>璁″垝浠诲姟阃氲繃pt-query-digest鏀堕泦鎱㈡煡璇淇℃伅钬>缁撴灉鍐椤叆鍒版暟鎹搴扑腑钬>anemometer鎸夋浔浠跺幓灞旷ず鎱㈡煡璇㈢殑缁撴灉,骞朵笖鎻愪緵浜嗗浘褰㈠寲鍜岃秼锷垮垎甯冨浘绛夊姛鑳.
镓浠anemometer宸茬粡甯鎴戜滑瀹屾垚浜嗘暟鎹鏀堕泦,鍖呮嫭姣忎釜sql镄刦ingerprint淇℃伅,浠ュ强鐩稿叧镄勪俊鎭,鎴戜滑鍦ㄦ祴璇旷幆澧,锘轰簬anemometer,灏唋ong_query_time璁剧疆涓0,灏卞彲浠ユ敹闆嗗埌镓浠ョ殑SQL鍙婄浉鍏充俊鎭.
鍦ㄦ垜浠鏀堕泦鍒版墍链塖QL浠ュ悗,鎴戜滑灏辫佹潵鍒嗘瀽杩欎釜SQL鏄钖﹀彲浠ヨ嚜锷ㄥ℃牳阃氲繃.杩欓噷寮濮嬫垜浠灏辫佸畾鍒朵简.
瀹氩埗鍐呭瑰备笅:
涓銆
璁剧疆涓涓鍗旷嫭镄刣atasources,鍙浠ュ懡钖崭负audit_sql.
杩欎釜datasources閲岄溃鍙鏀剧疆寮鍙戠幆澧冩垨钥呮祴璇旷幆澧幂殑鎱㈡煡璇(浣犺佸仛sql瀹℃牳锘轰簬鍝涓鐜澧),灏嗘ょ幆澧幂殑long_query_time璁剧疆涓0,鎺ユ敹镓链夌殑sql镆ヨ.
浜屻佷慨鏀笕nemometer
ALTER TABLE `global_query_review` ADD audit_status VARCHAR(255) NOT
NULL DEFAULT 钬榬efuse钬 comment 钬荣ql瀹¤$殑鐘舵 refuse链阃氲繃 pass瀹℃牳阃氲繃钬;
淇鏀笔HP浠g爜.
鍦╮eport妯″潡镄剋here𨱒′欢涓澧炲姞涓涓狝it Status镄勯夐”妗,鍙浠ヨ繃婊audit_status镄勭姸镐
鍦╯how_query妯″潡涓澧炲姞涓涓狝udit Status镄勯夐”妗,鍙浠ヤ汉宸ヨ剧疆audit_status镄勭姸镐
涓夈佸炲姞涓や釜棰濆栫殑鑴氭湰,鍑嗗疄镞剁殑鍒嗘瀽audit_status涓簉efuse镄剆ql,濡傛灉sql镄勬弧瓒宠嚜锷ㄥ℃牳阃氲繃镄勬浔浠,闾d箞灏辫剧疆audit_status涓簆ass,琛ㄧず镊锷ㄥ℃牳阃氲繃.
镊锷ㄥ℃牳链阃氲繃镄剆ql,鐢盌BA浜哄伐鍦╝nemometer涓婃绱㈠拰澶勭悊.
杩欓噷灏辨秹鍙婂埌涓涓镊锷ㄥ℃牳阃氲繃镄勭畻娉:
绠楁硶鍒嗕袱绉.
绗涓绉嶆槸鍑嗗疄镞,涔熷氨鏄鍙浠ュ嚑鍒嗛挓鎴栬呬竴涓灏忔椂杩愯屼竴娆,涓昏佹槸镙规嵁姣忎釜sql镄勬墽琛屾晥鐜囧垽鏂鏄钖pass.
瀵瑰簲镄勮剼链钖嶅瓧鍙锅:audit_sql.py
绗浜岀嶆槸涓澶╀竴娆,寮卞寲镓ц屾晥鐜囧垽鏂,澧炲姞涓澶╂墽琛岀殑棰戠巼鍒ゆ柇.
瀵瑰簲镄勮剼链钖嶅瓧鍙锅:audit_sql_day.py
钖勫舵牴鎹镊宸辩殑瀹为檯𨱍呭喌璋冩暣鎴栬呬紭鍖栬繖涓や釜鑴氭湰.
镊虫,浣犲凡缁忓彲浠ヨ99%浠ヤ笂镄勪唬镰佽嚜锷ㄥ℃牳阃氲繃浜,瀹℃牳涓嶉氲繃镄勪唬镰佷綘鍙浠ヨ╁紑鍙戣嚜宸辨潵tracking涔熷彲浠ヤ富锷ㄦ帹缁椤紑鍙.
瀵逛簬镓嶆惌寤虹殑鐜澧,鍙鑳戒细链変竴浜涗贡涓冨叓绯熺殑sql,涓嶈繃浣跨敤涓娈垫椂闂寸ǔ瀹氢互钖,寮傚父镄剆ql鎸囩汗閮芥湁浜,闾d箞姣忓ぉ浜х敓镄剆ql鎸囩汗灏辨瘆杈冨皯浜,钥岃繖閮ㄥ垎SQL鎸囩汗涔熷氨鏄绋嫔簭锻樼紪鍐欐柊镄勪唬镰佷骇鐢熺殑.
③ 濡备綍璁剧疆钖堢悊镄刴ysql镄勫弬鏁
涓轰简璁剧疆钖堢悊镄凪ySQL鍙傛暟锛岄渶瑕佹牴鎹瀹为檯𨱍呭喌鍜屼娇鐢ㄥ満鏅𨱒ヨ繘琛岃皟鏁淬傞氩父钥岃█锛屼綘搴旇ュ叧娉ㄤ互涓嫔嚑涓鏂归溃锛
杩炴帴鏁伴噺: 鍦∕ySQL涓链変竴涓猰ax_connections鍙傛暟锛岀敤浜庨檺鍒祃ySQL链嶅姟鍣ㄨ兘澶熷悓镞舵敮鎸佺殑瀹㈡埛绔杩炴帴鏁般
鏁版嵁搴撶紦瀛: MySQL链変竴涓犹uery_cache鍙傛暟锛岀敤浜庤剧疆镆ヨ㈢粨鏋灭殑缂揿瓨澶у皬锛屼互渚垮姞蹇瀵圭浉钖孲QL璇鍙ョ殑澶氭℃墽琛屻
鏁版嵁搴撴棩蹇: MySQL链変竴涓猯og_error鍙傛暟锛岀敤浜庤剧疆镞ュ织鏂囦欢镄勪綅缃鍜屽ぇ灏忥纴浠ヤ究镟村ソ鍦扮洃鎺MySQL镄勮繍琛屾儏鍐点
NineData鏄涓娆鹃潪甯告湁鐗硅壊镄勬暟鎹搴揝QL寮鍙戜骇鍝侊纴瀵筂ySQL甯哥敤锷熻兘鏀鎸侀潪甯稿畬鏁达纴鍖呮嫭鏅鸿兘镄凷QL琛ュ叏銆丼QL镓ц屽巻鍙层佺粨鏋滈泦缂栬緫銆佹暟鎹瀵规瘆銆佺粨鏋勫规瘆銆佹暟鎹杩佺Щ涓庡嶅埗绛夈傚畠閲囩敤SaaS鏋舵瀯妯″纺锛岀敤鎴蜂笉浠呭彲浠ュ厤璐逛娇鐢锛岃屼笖镞犻渶涓嬭浇瀹夎咃纴涓婃坠姣旇缉绠鍗曘侼ineData浜у搧镟存柊杩浠f瘆杈冩晱鎹凤纴瀵逛簬寮鍙戣呯殑鏂伴渶姹傚搷搴旀瘆杈冭繀阃熴傚彟澶栵纴璇ヤ骇鍝佸湪澶氢簯阃傞厤涓婃槸鍏堕吨瑕佺殑寮洪”锛屾敮鎸佸氱嶈繛鎺ュ拰璁块梾浜戞暟鎹搴撶殑鏂瑰纺锛屽归樋閲屼簯銆佽吘璁浜戙佸崕涓轰簯銆丄WS绛夐兘链夋瘆杈冨ソ镄勬敮鎸併傚彟澶栵纴涔熼傞厤锲藉唴姣旇缉娴佽岀殑PolarDB銆丢aussDB銆乀DSQL绛夋暟鎹搴撱
瀵逛簬鏂扮敤鎴种ineData杩树细璧犻佷袱涓绀轰緥鏁版嵁搴掳纴渚涚敤鎴蜂娇鐢ㄣ傚彟澶栵纴NineData杩樻彁渚涗简浼佷笟绾SQL寮鍙戣兘锷涳纴鏀鎸佸氱敤鎴风$悊銆佹暟鎹搴撹块梾𨱒冮檺鎺у埗銆佸彉镟存祦绋嬨丼QL瑙勮寖銆丼QL涓庢搷浣滃¤$瓑鍐呭癸纴鍙浠ヨ缉濂界殑瑙e喅浼佷笟鍐呭氢汉鍗忎綔璁块梾鏁版嵁搴撶殑闂棰樸
④ 在IT项目建设中,如何保证数据库安全性
#云原生背景#
云计算是信息技术发展和服务模式创新的集中体现,是信息化发展的重要变革和必然趋势。随着“新基建”加速布局,以及企业数字化转型的逐步深入,如何深化用云进一步提升云计算使用效能成为现阶段云计算发展的重点。云原生以其高效稳定、快速响应的特点极大地释放了云计算效能,成为企业数字业务应用创新的原动力,云原生进入快速发展阶段,就像集装箱加速贸易全球化进程一样,云原生技术正在助力云计算普及和企业数字化转型。
云原生计算基金会(CNCF)对云原生的定义是:云原生技术有利于各组织在公有云、私有云和混合云等新型动态环境中,构建和运行可弹性扩展的应用。云原生的代表技术包括容器、服务网格、微服务、不可变基础设施和声明式编程API。
#云安全时代市场发展#
云安全几乎是伴随着云计算市场而发展起来的,云基础设施投资的快速增长,无疑为云安全发展提供土壤。根据 IDC 数据,2020 年全球云安全支出占云 IT 支出比例仅为 1.1%,说明目前云安全支出远远不够,假设这一比例提升至 5%,那么2020 年全球云安全市场空间可达 53.2 亿美元,2023 年可达 108.9 亿美元。
海外云安全市场:技术创新与兼并整合活跃。整体来看,海外云安全市场正处于快速发展阶段,技术创新活跃,兼并整合频繁。一方面,云安全技术创新活跃,并呈现融合发展趋势。例如,综合型安全公司 PaloAlto 的 Prisma 产品线将 CWPP、CSPM 和 CASB 三个云安全技术产品统一融合,提供综合解决方案及 SASE、容器安全、微隔离等一系列云上安全能力。另一方面,新兴的云安全企业快速发展,同时,传统安全供应商也通过自研+兼并的方式加强云安全布局。
国内云安全市场:市场空间广阔,尚处于技术追随阶段。市场规模上,根据中国信通院数据,2019 年我国云计算整体市场规模达 1334.5亿元,增速 38.6%。预计 2020-2022 年仍将处于快速增长阶段,到 2023 年市场规模将超过 3754.2 亿元。中性假设下,安全投入占云计算市场规模的 3%-5%,那么 2023 年中国云安全市场规模有望达到 112.6 亿-187.7 亿元。技术发展上,中国在云计算的发展阶段和云原生技术的程度上与海外市场还有一定差距。国内 CWPP 技术应用较为广泛,对于 CASB、CSPM 一些新兴的云安全技术应用较少。但随着国内公有云市场的加速发展,云原生技术的应用越来越广泛,我们认为CASB、SCPM、SASE 等新兴技术在国内的应用也将越来越广泛。
#云上安全呈原生化发展趋势#
云原生技术逐渐成为云计算市场新趋势,所带来的安全问题更为复杂。以容器、服务网格、微服务等为代表的云原生技术,正在影响各行各业的 IT 基础设施、平台和应用系统,也在渗透到如 IT/OT 融合的工业互联网、IT/CT 融合的 5G、边缘计算等新型基础设施中。随着云原生越来越多的落地应用,其相关的安全风险与威胁也不断的显现出来。Docker/Kubernetes 等服务暴露问题、特斯拉 Kubernetes 集群挖矿事件、Docker Hub 中的容器镜像被“投毒”注入挖矿程序、微软 Azure 安全中心检测到大规模 Kubernetes 挖矿事件、Graboid 蠕虫挖矿传播事件等一系列针对云原生的安全攻击事件层出不穷。
从各种各样的安全风险中可以一窥云原生技术的安全态势,云原生环境仍然存在许多安全问题亟待解决。在云原生技术的落地过程中,安全是必须要考虑的重要因素。
#云原生安全的定义#
国内外各组织、企业对云原生安全理念的解释略有差异,结合我国产业现状与痛点,云原生与云计算安全相似,云原生安全也包含两层含义:“面向云原生环境的安全”和“具有云原生特征的安全”。
面向云原生环境的安全,其目标是防护云原生环境中的基础设施、编排系统和微服务的安全。这类安全机制,不一定具备云原生的特性(比如容器化、可编排),它们可以是传统模式部署的,甚至是硬件设备,但其作用是保护日益普及的云原生环境。
具有云原生特征的安全,是指具有云原生的弹性敏捷、轻量级、可编排等特性的各类安全机制。云原生是一种理念上的创新,通过容器化、资源编排和微服务重构了传统的开发运营体系,加速业务上线和变更的速度,因而,云原生系统的种种优良特性同样会给安全厂商带来很大的启发,重构安全产品、平台,改变其交付、更新模式。
#云原生安全理念构建#
为缓解传统安全防护建设中存在的痛点,促进云计算成为更加安全可信的信息基础设施,助力云客户更加安全的使用云计算,云原生安全理念兴起,国内外第三方组织、服务商纷纷提出以原生为核心构建和发展云安全。
Gartner提倡以云原生思维建设云安全体系
基于云原生思维,Gartner提出的云安全体系覆盖八方面。其中,基础设施配置、身份和访问管理两部分由云服务商作为基础能力提供,其它六部分,包括持续的云安全态势管理,全方位的可视化、日志、审计和评估,工作负载安全,应用、PaaS 和 API 安全,扩展的数据保护,云威胁检测,客户需基于安全产品实现。
Forrester评估公有云平台原生安全能力
Forrester认为公有云平台原生安全(Public cloud platform native security, PCPNS)应从三大类、37 个方面去衡量。从已提供的产品和功能,以及未来战略规划可以看出,一是考察云服务商自身的安全能力和建设情况,如数据中心安全、内部人员等,二是云平台具备的基础安全功能,如帮助和文档、授权和认证等,三是为用户提供的原生安全产品,如容器安全、数据安全等。
安全狗以4项工作防护体系建设云原生安全
(1)结合云原生技术的具体落地情况开展并落实最小权限、纵深防御工作,对于云原生环境中的各种组成部分,均可贯彻落实“安全左移”的原则,进行安全基线配置,防范于未然。而对于微服务架构Web应用以及Serverless应用的防护而言,其重点是应用安全问题。
(2)围绕云原生应用的生命周期来进行DevSecOps建设,以当前的云原生环境的关键技术栈“K8S + Docker”举例进行分析。应该在容器的全生命周期注重“配置安全”,在项目构建时注重“镜像安全”,在项目部署时注重“容器准入”,在容器的运行环境注重云计算的三要素“计算”“网络”以及“存储”等方面的安全问题。
(3)围绕攻击前、中、后的安全实施准则进行构建,可依据安全实施准则对攻击前、中、后这三个阶段开展检测与防御工作。
(4)改造并综合运用现有云安全技术,不应将“云原生安全”视为一个独立的命题,为云原生环境提供更多支持的主机安全、微隔离等技术可赋能于云原生安全。
#云原生安全新型风险#
云原生架构的安全风险包含云原生基础设施自身的安全风险,以及上层应用云原生化改造后新增和扩大的安全风险。云原生环境面临着严峻的安全风险问题。攻击者可能利用的重要攻击面包括但不限于:容器安全、编排系统、软件供应链等。下面对重要的攻击面安全风险问题进行梳理。
#云原生安全问题梳理#
问题1:容器安全问题
在云原生应用和服务平台的构建过程中,容器技术凭借高弹性、敏捷的特性,成为云原生应用场景下的重要技术支撑,因而容器安全也是云原生安全的重要基石。
(1)容器镜像不安全
Sysdig的报告中提到,在用户的生产环境中,会将公开的镜像仓库作为软件源,如最大的容器镜像仓库Docker Hub。一方面,很多开源软件会在Docker Hub上发布容器镜像。另一方面,开发者通常会直接下载公开仓库中的容器镜像,或者基于这些基础镜像定制自己的镜像,整个过程非常方便、高效。然而,Docker Hub上的镜像安全并不理想,有大量的官方镜像存在高危漏洞,如果使用了这些带高危漏洞的镜像,就会极大的增加容器和主机的入侵风险。目前容器镜像的安全问题主要有以下三点:
1.不安全的第三方组件
在实际的容器化应用开发过程当中,很少从零开始构建镜像,而是在基础镜像之上增加自己的程序和代码,然后统一打包最终的业务镜像并上线运行,这导致许多开发者根本不知道基础镜像中包含多少组件,以及包含哪些组件,包含的组件越多,可能存在的漏洞就越多。
2.恶意镜像
公共镜像仓库中可能存在第三方上传的恶意镜像,如果使用了这些恶意镜像来创建容器后,将会影响容器和应用程序的安全
3.敏感信息泄露
为了开发和调试的方便,开发者将敏感信息存在配置文件中,例如数据库密码、证书和密钥等内容,在构建镜像时,这些敏感信息跟随配置文件一并打包进镜像,从而造成敏感信息泄露
(2)容器生命周期的时间短
云原生技术以其敏捷、可靠的特点驱动引领企业的业务发展,成为企业数字业务应用创新的原动力。在容器环境下,一部分容器是以docker的命令启动和管理的,还有大量的容器是通过Kubernetes容器编排系统启动和管理,带来了容器在构建、部署、运行,快速敏捷的特点,大量容器生命周期短于1小时,这样一来容器的生命周期防护较传统虚拟化环境发生了巨大的变化,容器的全生命周期防护存在很大变数。对防守者而言,需要采用传统异常检测和行为分析相结合的方式,来适应短容器生命周期的场景。
传统的异常检测采用WAF、IDS等设备,其规则库已经很完善,通过这种检测方法能够直观的展示出存在的威胁,在容器环境下,这种方法仍然适用。
传统的异常检测能够快速、精确地发现已知威胁,但大多数未知威胁是无法通过规则库匹配到的,因而需要通过行为分析机制来从大量模式中将异常模式分析出来。一般来说,一段生产运营时间内的业务模式是相对固定的,这意味着,业务行为是可以预测的,无论启动多少个容器,容器内部的行为总是相似的。通过机器学习、采集进程行为,自动构建出合理的基线,利用这些基线对容器内的未知威胁进行检测。
(3)容器运行时安全
容器技术带来便利的同时,往往会忽略容器运行时的安全加固,由于容器的生命周期短、轻量级的特性,传统在宿主机或虚拟机上安装杀毒软件来对一个运行一两个进程的容器进行防护,显示费时费力且消耗资源,但在黑客眼里容器和裸奔没有什么区别。容器运行时安全主要关注点:
1.不安全的容器应用
与传统的Web安全类似,容器环境下也会存在SQL注入、XSS、RCE、XXE等漏洞,容器在对外提供服务的同时,就有可能被攻击者利用,从而导致容器被入侵
2.容器DDOS攻击
默认情况下,docker并不会对容器的资源使用进行限制,默认情况下可以无限使用CPU、内存、硬盘资源,造成不同层面的DDOS攻击
(4)容器微隔离
在容器环境中,与传统网络相比,容器的生命周期变得短了很多,其变化频率也快很多。容器之间有着复杂的访问关系,尤其是当容器数量达到一定规模以后,这种访问关系带来的东西向流量,将会变得异常的庞大和复杂。因此,在容器环境中,网络的隔离需求已经不仅仅是物理网络的隔离,而是变成了容器与容器之间、容器组与宿主机之间、宿主机与宿主机之间的隔离。
问题2:云原生等保合规问题
等级保护2.0中,针对云计算等新技术、新应用领域的个性安全保护需求提出安全扩展要求,形成新的网络安全等级保护基本要求标准。虽然编写了云计算的安全扩展要求,但是由于编写周期很长,编写时主流还是虚拟化场景,而没有考虑到容器化、微服务、无服务等云原生场景,等级保护2.0中的所有标准不能完全保证适用于目前云原生环境;
通过安全狗在云安全领域的经验和具体实践,对于云计算安全扩展要求中访问控制的控制点,需要检测主机账号安全,设置不同账号对不同容器的访问权限,保证容器在构建、部署、运行时访问控制策略随其迁移;
对于入侵防范制的控制点,需要可视化管理,绘制业务拓扑图,对主机入侵进行全方位的防范,控制业务流量访问,检测恶意代码感染及蔓延的情况;
镜像和快照保护的控制的,需要对镜像和快照进行保护,保障容器镜像的完整性、可用性和保密性,防止敏感信息泄露。
问题3:宿主机安全
容器与宿主机共享操作系统内核,因此宿主机的配置对容器运行的安全有着重要的影响,比如宿主机安装了有漏洞的软件可能会导致任意代码执行风险,端口无限制开放可能会导致任意用户访问的风险。通过部署主机入侵监测及安全防护系统,提供主机资产管理、主机安全加固、风险漏洞识别、防范入侵行为、问题主机隔离等功能,各个功能之间进行联动,建立采集、检测、监测、防御、捕获一体化的安全闭环管理系统,对主机进行全方位的安全防护,协助用户及时定位已经失陷的主机,响应已知、未知威胁风险,避免内部大面积主机安全事件的发生。
问题4:编排系统问题
编排系统支撑着诸多云原生应用,如无服务、服务网格等,这些新型的微服务体系也同样存在着安全问题。例如攻击者编写一段代码获得容器的shell权限,进而对容器网络进行渗透横移,造成巨大损失。
Kubernetes架构设计的复杂性,启动一个Pod资源需要涉及API Server、Controller、Manager、Scheler等组件,因而每个组件自身的安全能力显的尤为重要。API Server组件提供的认证授权、准入控制,进行细粒度访问控制、Secret资源提供密钥管理及Pod自身提供安全策略和网络策略,合理使用这些机制可以有效实现Kubernetes的安全加固。
问题5:软件供应链安全问题
通常一个项目中会使用大量的开源软件,根据Gartner统计至少有95%的企业会在关键IT产品中使用开源软件,这些来自互联网的开源软件可能本身就带有病毒、这些开源软件中使用了哪些组件也不了解,导致当开源软件中存在0day或Nday漏洞,我们根本无法获悉。
开源软件漏洞无法根治,容器自身的安全问题可能会给开发阶段带的各个过程带来风险,我们能做的是根据SDL原则,从开发阶段就开始对软件安全性进行合理的评估和控制,来提升整个供应链的质量。
问题6:安全运营成本问题
虽然容器的生命周期很短,但是包罗万象。对容器的全生命周期防护时,会对容器构建、部署、运行时进行异常检测和安全防护,随之而来的就是高成本的投入,对成千上万容器中的进程行为进程检测和分析,会消耗宿主机处理器和内存资源,日志传输会占用网络带宽,行为检测会消耗计算资源,当环境中容器数量巨大时,对应的安全运营成本就会急剧增加。
问题7:如何提升安全防护效果
关于安全运营成本问题中,我们了解到容器安全运营成本较高,我们该如何降低安全运营成本的同时,提升安全防护效果呢?这就引入一个业界比较流行的词“安全左移”,将软件生命周期从左到右展开,即开发、测试、集成、部署、运行,安全左移的含义就是将安全防护从传统运营转向开发侧,开发侧主要设计开发软件、软件供应链安全和镜像安全。
因此,想要降低云原生场景下的安全运营成本,提升运营效率,那么首先就要进行“安全左移”,也就是从运营安全转向开发安全,主要考虑开发安全、软件供应链安全、镜像安全和配置核查:
开发安全
需要团队关注代码漏洞,比如使用进行代码审计,找到因缺少安全意识造成的漏洞和因逻辑问题造成的代码逻辑漏洞。
供应链安全
可以使用代码检查工具进行持续性的安全评估。
镜像安全
使用镜像漏洞扫描工具持续对自由仓库中的镜像进行持续评估,对存在风险的镜像进行及时更新。
配置核查
核查包括暴露面、宿主机加固、资产管理等,来提升攻击者利用漏洞的难度。
问题8:安全配置和密钥凭证管理问题
安全配置不规范、密钥凭证不理想也是云原生的一大风险点。云原生应用会存在大量与中间件、后端服务的交互,为了简便,很多开发者将访问凭证、密钥文件直接存放在代码中,或者将一些线上资源的访问凭证设置为弱口令,导致攻击者很容易获得访问敏感数据的权限。
#云原生安全未来展望#
从日益新增的新型攻击威胁来看,云原生的安全将成为今后网络安全防护的关键。伴随着ATT&CK的不断积累和相关技术的日益完善,ATT&CK也已增加了容器矩阵的内容。ATT&CK是对抗战术、技术和常识(Adversarial Tactics, Techniques, and Common Knowledge)的缩写,是一个攻击行为知识库和威胁建模模型,它包含众多威胁组织及其使用的工具和攻击技术。这一开源的对抗战术和技术的知识库已经对安全行业产生了广泛而深刻的影响。
云原生安全的备受关注,使ATTACK Matrix for Container on Cloud的出现恰合时宜。ATT&CK让我们从行为的视角来看待攻击者和防御措施,让相对抽象的容器攻击技术和工具变得有迹可循。结合ATT&CK框架进行模拟红蓝对抗,评估企业目前的安全能力,对提升企业安全防护能力是很好的参考。