從有網路開始,網站的攻擊事件就層出不窮,例如:DDOS 、身分盜用等。雖然網站安全一直以來被許多企業和專家所關注,但有些網站開發者並不擅長撰寫安全的程式碼,導致網站安全仍然未達理想。為了解決這些問題,學術界及業界都提出了許多解決的方法,例如入侵偵測系統、入侵防護系統、Web 應用防火牆等。網站建置的技術大致分為兩類:第一類是靜態網站,這類網站大多利用內容管理系統(Content management system, CMS)來建置,例如WordPress、Drupal、Joomla和Mezzanine等。另一種是動態網站,此類網站具有系統功能,因此亦稱為 Web 系統。目前大多利用開發框架來協助建置,例如Laravel、Symfony、Django、Flask 和.NET等。開發框架通常已經提供很好的網站安全機制,只要依照框架所規範的模式開發系統,網站效能或安全都能到達一定水準。 Django是一個基於Python 程式語言的Web開發框架,它是在2003年為了維護快節奏新聞網站資料更新需求而誕生。Django具有開放原始碼、快速開發、高效能、遵從Don’t Repeat Yourself (DRY)守則等特點,因此有越來越多的Web系統使用Django開發,例如Youtube, DropBox, Instagram, Disqus, Instagram, 及Mozilla等超大型網站都是使用Django框架。而Mezzanine則是建構在 Django之上的內容管理系統,本研究將針對基於 Mezzanine所建置的網站探討如何進一步提昇其安全層級,研究主要分為兩個部份:(1)設計一個IP信譽值的計算方式,對網站的使用者進行IP信譽計算,然後根據不同的IP信譽值採取不同的防護措施。(2)開發一個 Mezzanine的安全套件,所有安裝此安全套件的Mezzanine網站將會共享 IP信譽值名單,隨著IP信譽值的資料量增加,此安全套件將會更精準的判斷出惡意的使用者,網站管理員更可以依據使用者IP的信譽值來決定網站開放的權限,例如:封鎖、註冊、登入、部份瀏覽等。因此,所有安裝此套件的網站會形成一個超大防護網,彼此分享 IP 信譽值,共同封鎖惡意攻擊。只要有一個IP被某個Mezzanine網站列為黑名單,全球Mezzanine網站就能迅速同步封鎖,使該IP無法持續造成傷害,這對於使用Mezzanine的網站而言,絕對是個超級附加價值。 本研究希望透過大量的IP行為分析來計算其信譽值,以便能夠精準判斷惡意的使用者並進行防禦。最後會將所開發的安全套件上傳到GitHub ,讓所有Mezzanine 網站都能下載安裝,同時其他開發者也能貢獻意見,創造更多功能。
Since the advent of the networks, website attacks have been a major concern for site managers. Although experts have developed a number of good solutions, some web developers are not good at writing secure code, which results in vulnerable websites. To solve these problems, the academia and the industry have poposed a number of solutions, such as intrusion detection systems, intrusion prevention systems, web application firewalls, and so on. Websites can be broadly divided into two categories: The first is static websites, which are mostly built using content management systems (CMS) to build, such as WordPress, Drupal, Joomla, and Mezzanine. The other is dynamic websites. These sites have system functions, and therefore is also known as web systems. At present, a lot of developers use frameworks for building web systems, for example Laravel, Symfony, Django, Flask, and .NET, etc. Frameworks generally provide good site security mechanisms, which can relief a lot of burden of developers. Among the famous frameworks, Django is based on the Python programming language and was created in 2003 with the goal for facilitating the fast-paced process of news publishing. In addition, Django is open-sourced and equipped with such features as rapid development, high performance, and Do not Repeat Yourself (DRY). So, more and more web systems are built on top of it. To name a few famous and great-scale websites: Youtube, DropBox, Instagram, Disqus, Instagram, and Mozilla, etc. Mezzanine is a CMS, which is also built on top of Django. In this research, Mezzanine is studied and security enhancing techniques are developed to further elevate the security level of Mezzanine websites. This research is divided into two parts: (1) designing an IP reputation evaluation algorithm to evaluate if the behavior of the requests from an IP address satisfies a certain security condition. (2) developing a Mezzanine plugin which shares a list of IP reputations with other Mezzanine websites in the whole world in order to form a world-wide fence against malicious IPs. Each Mezzanine site may therefore decide to grant permissions, block requests, denial registrations or sign-ins, and so on, according to the IP reputations. All Mezzanine websites in the world work together and once an IP is determined to be malicious, it will propagated to other Mezzanine websites almost instantly so that the IP can no longer do any harm to other Mezzanine websites. The Mezzanine security plugin will be placed on Github such that other website managers may use and other developers may evaluate and contribute.