Observational Determinism for Concurrent Program Security

Similar documents
i n i n i n 1

DIY 챗봇 - LangCon

C# Programming Guide - Types

@OneToOne(cascade = = "addr_id") private Addr addr; public Emp(String ename, Addr addr) { this.ename = ename; this.a

슬라이드 1

PowerPoint Template

게시판 스팸 실시간 차단 시스템

DBMS & SQL Server Installation Database Laboratory

Microsoft PowerPoint - file

강의 개요

MySQL-Ch10

03장.스택.key

slide2

SIGPLwinterschool2012

제목 레이아웃

Connection 8 22 UniSQLConnection / / 9 3 UniSQL OID SET

HW5 Exercise 1 (60pts) M interpreter with a simple type system M. M. M.., M (simple type system). M, M. M., M.

歯sql_tuning2

T100MD+

Bind Peeking 한계에따른 Adaptive Cursor Sharing 등장 엑셈컨설팅본부 /DB 컨설팅팀김철환 Bind Peeking 의한계 SQL 이최초실행되면 3 단계의과정을거치게되는데 Parsing 단계를거쳐 Execute 하고 Fetch 의과정을통해데이터

** 5 개이발생한주요소프트웨어별취약점세 EDB 번호취약점종류공격난이도공격위험도취약점이름소프트웨어이름

Orcad Capture 9.x

PowerPoint Presentation

비긴쿡-자바 00앞부속

PowerPoint 프레젠테이션

내지무인화_

Microsoft Word - SKINFOSEC-CHR-026- Mass SQL Injection 탐지 우회분석 보고서.doc

10.ppt

소만사 소개

Index Process Specification Data Dictionary

Microsoft PowerPoint - 30.ppt [호환 모드]

. PC DP-1VR P15 1ch 1 Input Tool 4ch RS-232C RS-232C. Input Tool P14 MUX-10F P16 MeasureReport P21 GO/NG 2 MeasurLink Real-Time P19 MeasurLink STATMea

(72) 발명자 이동희 서울 동작구 여의대방로44길 10, 101동 802호 (대 방동, 대림아파트) 노삼혁 서울 중구 정동길 21-31, B동 404호 (정동, 정동상 림원) 이 발명을 지원한 국가연구개발사업 과제고유번호 부처명 교육과학기술부

자연언어처리

PowerPoint 프레젠테이션

歯여성정책포럼.PDF

4. 1 포인터와 1 차원배열 4. 2 포인터와 2 차원배열 4. 3 포인터배열 4. 4 포인터와문자그리고포인터와문자열

C++ Programming

비식별화 기술 활용 안내서-최종수정.indd

낙랑군

2017 년 6 월한국소프트웨어감정평가학회논문지제 13 권제 1 호 Abstract

USER GUIDE

untitled

강의 개요

6주차.key

1

2007 상반기 실적회의 - DRM Extension

Microsoft PowerPoint - 27.pptx

thesis

Modern Javascript

Simplify your Job Automatic Storage Management DB TSC

Columns 8 through while expression {commands} 예제 1.2 (While 반복문의이용 ) >> num=0

ºÎ·ÏB

APOGEE Insight_KR_Base_3P11

untitled

untitled

12-file.key

[ 마이크로프로세서 1] 2 주차 3 차시. 포인터와구조체 2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Functi

13주-14주proc.PDF

A Dynamic Grid Services Deployment Mechanism for On-Demand Resource Provisioning

WEB Hacking 한국디지털미디어고등학교, T eampur e, JT JSOFT 장태 진

untitled

Secure Programming Lecture1 : Introduction

예제 1.1 ( 관계연산자 ) >> A=1:9, B=9-A A = B = >> tf = A>4 % 4 보다큰 A 의원소들을찾을경우 tf = >> tf = (A==B) % A

90

문서 템플릿

목차 BUG DEQUEUE 의 WAIT TIME 이 1 초미만인경우, 설정한시간만큼대기하지않는문제가있습니다... 3 BUG [qp-select-pvo] group by 표현식에있는컬럼을참조하는집합연산이존재하지않으면결괏값오류가발생할수있습니다... 4

학습목차 2.1 다차원배열이란 차원배열의주소와값의참조

4. #include <stdio.h> #include <stdlib.h> int main() { functiona(); } void functiona() { printf("hihi\n"); } warning: conflicting types for functiona

실사구시학파의 실증적 학풍이 일어나므로 서구적인 과학사상의 유입을 본 것 등이 인식 의 대상이 될 것이다. 그러나 이조 봉건사회 최종의 절대적 왕권주의자 대원군에 의하여 그 싹은 잘리고 말았다. 따라서 다단한 전기가 될 근대적 개방에 의하여 재건하려던 서구적 교육 즉

untitled

int main(void) int a; int b; a=3; b=a+5; printf("a : %d \n", a); printf("b : %d \n", b); a b 3 a a+5 b &a(12ff60) &b(12ff54) 3 a 8 b printf(" a : %x \

강의10

4 CD Construct Special Model VI 2 nd Order Model VI 2 Note: Hands-on 1, 2 RC 1 RLC mass-spring-damper 2 2 ζ ω n (rad/sec) 2 ( ζ < 1), 1 (ζ = 1), ( ) 1

Microsoft PowerPoint - ch07 - 포인터 pm0415

λx.x (λz.λx.x z) (λx.x)(λz.(λx.x)z) (λz.(λx.x) z) Call-by Name. Normal Order. (λz.z)

로거 자료실

Microsoft PowerPoint Predicates and Quantifiers.ppt

목차 BUG 문법에맞지않는질의문수행시, 에러메시지에질의문의일부만보여주는문제를수정합니다... 3 BUG ROUND, TRUNC 함수에서 DATE 포맷 IW 를추가지원합니다... 5 BUG ROLLUP/CUBE 절을포함하는질의는 SUBQUE

컴파일러

Week5

Solaris Express Developer Edition

< E20C6DFBFFEBEEE20C0DBBCBAC0BB20C0A7C7D12043BEF0BEEE20492E707074>

Microsoft Word - FunctionCall

DDX4038BT DDX4038BTM DDX4038 DDX4038M 2010 Kenwood Corporation All Rights Reserved. LVT A (MN)

SKINFOSEC-CHR-028-ASP Mssql Cookie Sql Injection Tool 분석 보고서.doc

gisa_pil_070304_pdf.hwp

정규식 사용하기

특허청구의 범위 청구항 1 몸체(110)의 일측에는 테스트의 필요성에 따라 여타한 디젤 자동차(100)에서 분리시킨 상태의 분리형 커먼레일 인젝트(110)를 고정할 수 있는 분리형 인젝터 고정부(20)가 구비되고, 그 고정부(20)의 하측에는 분리형 커먼 레일 인젝터(

다른 JSP 페이지호출 forward() 메서드 - 하나의 JSP 페이지실행이끝나고다른 JSP 페이지를호출할때사용한다. 예 ) <% RequestDispatcher dispatcher = request.getrequestdispatcher(" 실행할페이지.jsp");

비트와바이트 비트와바이트 비트 (Bit) : 2진수값하나 (0 또는 1) 를저장할수있는최소메모리공간 1비트 2비트 3비트... n비트 2^1 = 2개 2^2 = 4개 2^3 = 8개... 2^n 개 1 바이트는 8 비트 2 2

76 XSS 하 Huge-IT Slider admin.php XSS

DocsPin_Korean.pages

Semantic Consistency in Information Exchange

mytalk

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션


API 매뉴얼

Microsoft PowerPoint - Perpect C 02.ppt [호환 모드]

Transcription:

웹응용프로그램보안취약성 분석기구현 소프트웨어무결점센터 Workshop 2010. 8. 25 한국항공대학교, 안준선 1

소개 관련연구 Outline Input Validation Vulnerability 연구내용 Abstract Domain for Input Validation Implementation of Vulnerability Analyzer 기존연구 결론 & 향후연구 2

소개 기구현 입력언어 : PHP 대상보안취약성 : Improper Input Validation SQL 삽입 Cross Site Scripting(XSS) PHP 파일삽입 OS 명령어삽입 practical false positives/false negatives 3

부적절한입력값검증 위험한외부의입력값을적절한검사없이내부의보안에민감한연산에사용 SQL 삽입 : SQL 쿼리생성 Cross Site Scripting(XSS): 동적웹페이지생성 PHP 파일삽입 : 파일삽입경로생성에사용 OS 명령어삽입 : 외부명령어생성에사용 예 :SQL 삽입 $id = $_Request( name ); mysql_query( SELECT MessageID,Subject FROM. messages WHERE MessageID= $id ); = name OR 1=1; SELECT MessageID,Subject FROM messages WHERE MessageID = ; DROP TABLE( messages ); 4

기 특징 요약해석기반분석 Context non-sensitive 함수간 /file간분석사용 전체구조 분석대상 PHP 코드 PHP 전단부 AST 분석결과 GUI 방정식생성 Worklist 취약성검출 취약성분석 5

PHP 언어고려사항 문자열자료값의사용 Variable Variables $x = b ; if (...) $x = a ; $$x = 1; // $a = 1 or $b = 1; Array Indexing $x = x ; if (...) $x = 1 $y = array($x=> a, b ); // $y: ( x -> a, 1-> b ) or // (1-> a,2-> b ) String Conversion $x = 12bac +3; // $x == 15 6

PHP 언어고려사항 Reference Assignments $x = array(11,12,13); $x[0] =& x[1]; $y =& $x[1]; $y = 0; // $y == $x[0] == $x[1] == 0 Copy on Assignments $x = array(11,12,13); $y = array(21,22,23); $z = array($x, $y); $x[0] = 1; // $x : (0,12,13) // $z : ((11,12,13), (21,22,23)) 7

요약공간 요약공간 : 외부의위험문자열의제거를추적 S E(r) E(r) r Regexp E(r) E(r ) = E(r&r ) I Top Value : E(#) 2 Num k 2 String k 8

요약공간 함수정의예 : preg_replace(pat, rep, sub) preg_replace(r,s,e(r )) = E(c 1... c n ) where s= and c i s are single character in L(r r) E(r r ) if s cannot be a substring of any s L(r r) and r and r cannot produce a substring of s E(r) if s cannot be a substring of any s L(r) and r cannot produce a substring of s E(r ) if s cannot be a substring of any s L(r ) and r cannot produce a substring of s E(#) otherwise ex) preg_replace( <!,, E(ab x)) = E(x) preg_replace( bc*, de, E(d ef)) = E(bc*) 9

메모리상태 요약공간 State : SymbolTable * Memory SymbolTable : (Loc -> Addr)*Addr Memory : (Addr -> Value)*Value Value := E(r) S I {s1,..., sk} ArrayValue 10

취약성의검출 민감한작업에외부의입력값 E(r) 이사용되고, r 에위험문자열이포함되지않으면취약한것으로판단 위험문자열 SQL 삽입 :,, -- Cross Site Scripting(XSS): &, <, >,,, /,... PHP 파일삽입 : /, //, \, \\,.,.. OS 명령어삽입 : /, //, \, \\,.,.. * OWASP Prevention Cheat Sheet 11

실행화면 12

실행화면 13

SQL 삽입취약성 True positives... 프로그램파일라인수검출갯수시간 EVE Activity Tracker(1.0) PHP 파일삽입취약성 프로그램파일라인수검출갯수시간 PHPGEDVIE W -2.65 Member.php 510 4 3.156 User.php 136 1 0.032 config_gedcom.php 132 2 0.417 functions.php, 1856 1 0.843 authentication_index.php 418 1 0.422 config_gedcom.php 132 2 0.417 1.0.0rc2 bug_sponsorship_list_ view_inc.php 155 2 0.427 Mantis- PhpDig-1.8.9- rc1 config.php 472 6 1.099 14

향후연구 File Inclusion 결론... include($libpath.$command..php );... Direct File Access 성능향상 memory state 최적화 copying on assignment worklist algorithm 언어지원확장 Domain 수정 (prefix, postfix) 15

관련연구 Minamide, WWW 05 결론 PHP 문자열데이터분석 (CFG 분석 ) Z. Su and Wasserman, PLDI 07 SQL Injection 취약성분석 Z. Su and Wasserman, ICSE 08 XSS 취약성분석 Doh et al, SAS 09 Abstract Parsing 16