Day 28 - 如何降低网站的安全性风险

出於书本 Chapter 14. Web sites and Application

使用隐匿性安全

隐匿性安全 (security by obscurity) 使用简单的方法,透过隐藏某些东西,来防止像是虫 (worms) 或脚本 (scripts) 的自动化攻击程序,攻击特定的脚本类型或预设的 HTTP 通讯埠。像是

  • 使用同不同的机器营运网页、後端服务与资料库
  • 更改网页应用程序执行使用的通讯埠 (port) ,如果可能的话,尽量不要使用如 rootadministrator 等有特权的帐号运行服务器。
  • .Net 应用程序可以使用内建的网页安全性功能来做控制存取与隔离。(access controls/process isolation)
  • 如果担心网站因为运行的平台 (例如:Microsoft IIS 或是 Linux 系统等) 不同,而遭受特定平台相关的攻击,可以试着混淆攻击者,像是
    • 如果是运行在 IIS 上的网路应用程序,可以更改所有 ASP 脚本的副档名为 .cgi
    • 如果试运行在 Linux ,可以利用像是 IP Personality 来更改 OS 的 fingerprint ,让系统看起来是跑在别的平台上。

使用防火墙

使用网路防火墙来侦测以及阻挡攻击

使用原始码分析工具

安全性漏洞始於软件开发,终於软件开发

如果到目前为止,对於伦理骇客测试的结果都尚感满意的话,可以深入到程序码中,搜寻可能尚未被扫瞄工具扫出的安全性缺失。不需要针对程序码逐行去研究会发生什麽问题,甚至不需要开发相关的经验。

所以需要的是静态程序码分析工具 ( Static Application Security Testing, SAST )

书上举了一些针对 C#Java 分析工具,其实撰写网路应用程序的程序语言也是百百种,像是自家公司後端大宗使用的 Golang 也有安全性相关静态程序码分析工具 ,像是 securego

OWASP 帮大家整理了一份静态程序码分析工具的列表 [1]

https://ithelp.ithome.com.tw/upload/images/20211013/2014118463mQl7Q9fz.png

後记

到这里,算是将预期的读书范围给防守的差不多。後面两天来看一下与拓展资安守备范围相关的议题 - 软件组成清单

[1] Source Code Analysis Tools


<<:  [Lesson28] Kotlin - Generics

>>:  企划实现(28)

ETA Screen (2)

SavedStateHandle 不知道大家有没有发现在「ETA Screen (1)」贴出来的 E...

[DAY18]旋转木马(01)

TemplateSendMessage - CarouselTemplate carousel_te...

DAY12 : HTTP前情提要

在实作的过程中,原本想把这篇省略掉,但在往後的实作中,偶而会利用到这些模块与知识,放在这篇,之後文中...

[Day27] Liff Bluetooth GetAvailability

前言 昨天有提到LIFF中,与bluetooth相关的APIs,因为技术问题,将暂时移除。所以如果要...

[Day4]PHP变数命名规则

PHP变数命名规则 PHP 中的变数用一个美元符号後面跟变数名称来表示。变数名是区分大小写的。 变数...