반응형
SMALL

Computer Science 91

[네웹보/NWS] XSS 공격

The Cross-Site Scripting attack XSS에서는 공격자가 target 웹 사이트를 통해 피해자의 브라우저에 악성코드를 삽입한다. 브라우저는 해당 악성 코드를 실행시키는데, 이 악성코드는 유저(victim)의 권한으로 실행된다. 따라서 웹 사이트는 해당 접근이 신뢰가 가능하다고 판단하여 페이지에 존재하는 콘텐츠에 접근, 변경이 가능하고, 쿠키를 읽으며, 사용자를 대신하여 요청을 전송할 수도 있다. 즉, 해당 악성 코드는 유저가 웹 페이지에서 수행할 수 있는 모든 작업을 수행할 수 있다. 이때, 악성코드가 사이트를 거쳐서 오기 때문에 일종의 code injection attack, 즉 Cross-Site Scripting Attack(공격 우회)라고 한다. XSS는 사용자의 권한으로 코..

[네웹보/NWS] CSRF 공격

CSRF Attack Cross-Site Requests and Its Problems 어떤 웹 페이지에서 다른 웹 페이지를 접속할 때, 원래 접속해있던 웹 페이지에서 새로운 웹 페이지에 대해 요청을 전송한다. 이때, 동일한 웹 페이지에 대해 요청을 날리는 경우를 Same-site request, 서로 다른 웹 페이지에 대해 요청을 날리는 경우를 Cross-site request라고 한다. 그런데 우리는 Cross-site request를 악용하여 공격을 수행할 수도 있다. 어떻게 가능한 것인지 알아보자. 우선 어떤 웹 페이지에서 다른 웹 페이지로 접속할 때를 가정했을 때, 어떤 웹 페이지를 A, 다른 웹 페이지를 B라고 하자. A에서 B로의 접속 시 브라우저는 B와 관련된 쿠키 정보를 요청을 통해 B로..

[기계학습/ML] Deep Neural Networks

Deep Neural networks (DNN) Neural Network에 Deep을 붙인 이유는 hidden layer의 수를 많이 두었기 때문이다. hidden layer를 많이 둬 더 많은 최적화 업데이트 대상이 되는 파라미터를 두고 더 복잡한 형태로 input과의 관계를 모델링하는 것이 목적이다. 따라서 깊은 네트워크의 구조를 가져서 DNN이라고 부르며 DNN 기반의 어떤 ML 작업을 Deep Learning라고 한다. Architecture design 여러 개의 hidden layer를 두는 이유는 capacity를 높이기 위함이다. 즉, input과 output의 관계를 잘 나타낼 수 있다. Universal approximation theorem은 하나의 hidden layer와 여러 개..

[기계학습/ML] Neural Network

Neural networks (NN) Neuron은 우리 몸의 신경 전달 물질이다. NN은 이러한 뉴런을 모방하여 입력이 들어왔을 때, 입력이 각각의 뉴런을 통과하는데 통과하면서 어떤 weight를 곱하게 되고, 곱한 값이 일정 값(threshold) 이상인 경우 node가 activate되어 다음으로 값을 전달하고 작은 값은 무시한다. Classification problem 이진분류 문제를 통해 예를 들어보자. 위 사진과 같이 어떤 선을 기준으로 두 개의 클래스를 분류할 수 있으면 linear seperate를 가진다고 한다. 따라서 이러한 어떤 linear 함수를 통해 두 클래스가 쉽게 분리되는 문제에 대해 함수를 어떻게 둘 것인지에 대한 고민을 할 수 있다. 함수를 g라고 하면 이 g는 x1과 x..

[기계학습/ML] Ensemble Method

Bias-variance dilemma 어떤 하나의 문제를 풀이할 때 여러 가지 모델을 사용할 수 있다. 여러 가지 모델을 사용할 때 기본적으로 트레이닝 데이터를 핸덤하게 추출하여, 각 모델을 학습시킬 수 있다. 즉, 1,000개의 데이터에서 랜덤하게 300개의 데이터를 추출하여 하나의 모델을 만들고, 또 랜덤하게 300개의 데이터를 추출하여 두 번째 모델을 만드는 랜덤한 샘플링을 해주면 작은 데이터를 보지만 더 많은 모델을 만들어 줄 수 있다. 어떤 데이터가 선택되느냐에 따라 다른 모델이 학습이 되는데, 이러한 관점으로 deterministic한(결정적인) 알고리즘이 아니라, Stochastic한(확률적인) 알고리즘의 형태를 띨 수 있다. - Bias 실제값과 예상값의 차이로 아래의 식으로 나타낼 수 ..

[기계학습/ML] Decision Tree

Decision Tree introduction Decision Tree는 나무 결정 트리, 또는 DT라고 한다. 어떤 결정 분류 문제에서 분류에 대한 결정을 내리기 위해 나무 모양에서 계속해서 분기를 진행한다. 가장 쉽게 분류를 할 수 있는 방법은 if문이다. 일반적인 프로그램에서는 if문의 조건을 프로그래머가 설정해주지만, DT는 데이터에 대한 feature를 계산하며 조건을 학습한다. 프로그램과 DT의 차이점은 위와 같다. 하지만 기본적으로는 IF-THEN 규칙을 적용한다고 생각하면 된다. DT의 특징 - Recursive partitioning 위 사진과 같이 반복적으로 partitioning을 수행한다. 각 feature에 대해 조건을 설정하고 해당 조건을 충족하면 x1, 충족하지 않으면 x2라..

[컴개/CI] IR Translation: Stack Management

Memory Organization (Stack) Run-Time Stack run-time stack이란 call stack이라고도 불리며, 한 함수를 call 할 때마다 생성되는 프레임이나 activation record이 구성하는 스택을 말한다. Activation record 함수를 수행하기 위한 execution environment으로 스택의 한 칸을 의미한다. Activation record에는 로컬 변수와 인자, 리턴값, 기타 임시 저장소(3-addr code에서 사용)를 의미하고, 재귀문일 때에도 각 call마다 하나씩 스택에 Activation record를 넣는다. run-time stack의 연산은 아래와 같다. - f 가 호출되면 f의 frame을 stack에 push (호출) -..

[컴개/CI] IR Translation: Storage Management

2 Classes of Storage in Process 우리가 사용할 수 있는 저장소는 두 가지가 있다. Registers 빠른 접근 일반 프로그래머에게는 보이지 않음 간접 접근이 불가능하다. 즉, 주소를 얻을 수 없다. Memory 상대적으로 접근이 느리지만, 간접접근 즉 주소를 얻을 수 있다. 위와 같은 특성으로 인해 변수 저장을 register를 이용할 것인지, memory를 이용할 것인지 결정하는데, 이는 HIR을 LIR로 변환하는 단계에서 주로 결정된다. Storage Class Selection 저장소에 저장하는 방법은 두 가지 방법이 존재한다. All memory approach 이 방법은 일단 모든 변수를 memory에 저장한 후 해당 변수 중 가능한 것을 register에 저장하도록 조..

[컴개/CI] IR Translation to 3-addr Code(Statement/Nested Expressions)

Statement Expressions 우리는 앞서 t = [[a + b]]와 같이 임시 변수에 결과값을 넣는 경우 expression, v = a+b와 같이 명령만 실행하는 경우 statement라고 명명했다. 이때 statement는 결과값이 없는데, statement가 결과값을 갖도록 확장할 수 있다. 결과값을 가질 수 있는 경우는 아래와 같다. - Block statements - If-then-else - Assignment statements 위와 같이 statement가 결과값을 갖게 하면 융통성이 생기게 된다. 3-주소 Translation 규칙: Statement Expression 위 예제에서 e값을 받아 t1에 넣고, e가 거짓인 경우 분기한 후 s를 실행한다. 이때 statement..

[컴개/CI] IR Translation to 3-addr Code (Statement)

3-주소 Translation 규칙: Statement Seq. 여러 문장들이 단순하게 연속해서 존재할 때, 각각에 대해 번역한 후 연결해주면 된다. 이때 위 식에서는 결과값을 t에 대입하지 않는데, statement는 결과값이 없으므로 결과값을 받을 t가 필요없다. 이러한 statement의 경우 단순히 연결만 하면 된다. 즉, t = [[e]]와 같이 결과값이 있는 경우를 expression, 결과값이 없고 단순히 연결하는 경우는 statement라고 한다. 3-주소 Translation 규칙: Assignment 위 경우는 단순히 expre의 결과를 할당하는 경우이다. OP처럼 v(변수 이름)와 '='은 HIR과 LIR이 모두 사용하기 때문에 [[ ]]에서 그대로 빠져나갈 수 있다. 다만, e는 H..

반응형
LIST