no image
8. Software Vulnerabilities
Program이 secure하다는 것은 무엇을 의미할까요? Software가 의도한 대로 동작할 때, program이 secure하다고 볼 수 있습니다. 그런 의미에서 SW는 보안에서 중요한 역할을 합니다. 또한 insecurity의 대상이 될 수 있습니다. SW는 공격자로부터 input을 받을 때 문제가 될 수 있습니다. 취약점이 노출되면, 공격자는 program의 availability, integrity, confidentiality에 피해를 줄 수 있습니다. 또한 다른 user의 권한을 사용해 access control policy를 위반하는 행위를 할 수 있습니다. Attacks exploiting SW vulnerabilities 취약점은 Entry points로 이용될 수 있습니다. 다음의 ..
2023.06.14
no image
7. Database Security
OWASP Top 10 Vulnerabiliies Broken access control Cryptographic failures Injection Insecure design Security misconfiguration Vulnerable and outdated components Identification and authentication failures Software and data integrity failures Software logging and monitoring Server Side Request Forgery(SSRF) 대표적으로 이런 보안 취약점이 있다. Database Security DB 보안이 DB에 대한 의존도 증가에도 적절하게 합을 맞추지 못하는 이유는 다음과 같다. DB..
2023.06.13
no image
[TISTORY 스킨] uTube
1. uTube 스킨 소개 유튜브 테마의 티스토리 스킨입니다. 심플형에 모바일 지원됩니다. 2. 적용방법 Poster 스킨 적용하기 기본 스킨 Poster를 적용합니다. 설정은 다음과 같이 합니다. 스킨 편집 내용 변경하기 그런 다음, 스킨편집에서 다음 파일 내용들 각각 HTML, CSS에 복사 붙여 넣기 합니다. Q. .html, ,css 파일을 어떻게 열까요? vscode나 기타 편집기로 열면 좋겠지만, 메모장으로 열어도 내용 확인할 수 있습니다. 파일업로드하기 다음의 파일은 글의 목차를 자동으로 만들어주는 js 파일입니다. HTML, CSS 옆에 파일업로드를 누르고 하단의 추가를 눌러 파일을 업로드해 주세요. JS 내용이 많아져 따로 파일로 만들었습니다. 다음 파일을 파일업로드>하단에 있는 추가 버..
2023.06.13
no image
15. Problem Classes - P, NP, NPC
Complexity Classes 세상에는 이상한 문제가 많습니다. 사람들은 그런 문제들의 난이도를 분류해서 구분하고 있습니다. P냐 NP냐 그런 것들이 다 문제의 난이도를 나타내는 말입니다. 한번 그런 문제 중 하나인 한 붓 그리기를 생각해 봅시다. 그래프에 있는 모든 edge를 한 번만 사용하는 한 붓 그리기가 가능할까요? 그래프에 있는 모든 vertex를 한번만 방문하는 한 붓 그리기가 가능할까요? 그래프에 있는 모든 vertex를 한번만 방문하되, edge의 weight의 합이 B를 넘어가지 않게 한 붓 그리기가 가능할까요? 위의 각 문제는 각각 Euler Tour, Hamiltonian Circuit, Traveling Salesman이라고 불리는 문제입니다. 통상적으로 Euler Tour 문제..
2023.06.11
no image
14. Maximum Flow
Maximum Flow Maximum Flow가 주로 사용되는 분야는 graph에서 최대 flow를 유동하고 싶은 분야이다. 대표적으로 하수도 시스템, 인터넷 네트워크, 교통량 등이 있다. Network는 directed graph G = (V, E, C)로 표현한다. C는 capacity→$R^+$이다. Flow는 f:E=(u, v) →$R$로 표현한다. f는 edge에서 항상 C보다 값이 작다. Augmented Path Elemently paht: s→t이다. 한마디로 source에서 destination까지 갈 수 있는 elemently path이다. Bottleneck은 다음과 같이 구한다. b = $min(c(v_i, v_{i+1}))$ Flow example 가능한 augmented path..
2023.06.11
no image
13. Graph Algorithms - the Shortest Path
Single-Destination Shortest Path 그래프가 주어졌을 때, source에서 destination까지 shortest path를 찾는 문제이다. Optimal substructure 어떤 문제의 최적의 해결책이 그 부분 문제의 최적의 해결책으로부터 효율적으로 구해질 수 있는 경우를 말한다. 이 구조를 만족하는 경우 문제를 Greedy algorithm이나 Dynamic programming을 이용해 해결할 수 있데 된다. s→d까지의 path가 shortest라면, s→t 역시 shortest임을 의미하게 된다. 문제가 이 구조를 만족하는지 확인하는 것은 중요한 문제이다. 다음의 그래프에 대해서 Prim 알고리즘을 적용해보면 무슨 말인지 알 수 있다. Prim은 greedy하게 ed..
2023.06.11
no image
12. Graph Algorithms - Traversal, MST
Graph Basics 일상의 많은 문제는 Object간의 binary 관계로 이루어져 있습니다. 고속도로나 도시의 지도가 그런 예입니다. 중요한 사실은 이런 binary 관계는 table 형태나 graph 형태로 표현이 가능하다는 것입니다. 그럼 graph 이론을 알고 있으면, 많은 문제에 적용할 수 있다 이말이야 Terminology and Representation Graph Directed graph와 Undirected graph, 두 종류로 이루어진다. Directed graph Undirected graph G = (V, E) G = (V, E) V : a set of vertices E : a binary relation on V, called edges (= a set of ordered..
2023.06.11
no image
11. Sort Algorithms
Sort algorithms n개의 set이 주어졌을 때, increasing order로 key 기반 정렬을 수행하는 알고리즘이다. Time complexity와 Space complexity를 고려해야 한다. 또한 다음의 2가지 개념도 고려된다. Stability 같은 key에 대해서, key의 순서가 유지되는 정렬 In-place 추가적인 공간을 필요하지 않는 정렬 Simple sorts ; comparison based Selection sort 현재의 unsorted list에서 minimum을 선택해 정렬하는 알고리즘이다. 쉬운 알고리즘이다. $T(n)$ $S(n)$ In-place Stable $O(n^2)$ $O(n)$ x o *swap을 이용하면 in-place로 구현할 수 있다. 대신 ..
2023.06.11
no image
10. String Matching
String matching Text $T$(len: n)에서 pattern $P$(len: m)를 찾는 문제입니다. Naive algorithm 쉽게 생각해보면, 모든 text 위치에서 pattern을 검사하면 string matching을 수행할 수 있습니다. 이 때의 시간 복잡도는 $O(nm)$입니다. Rabin-Karp algorithm Hash를 이용해서 문자열 매칭을 수행합니다. 구체적으로는 문자를 아스키코드 값으로 인식하고 자릿수에 따른 hash 계산을 수행하고 mod 연산한 결과를 사용합니다. 이 값이 일치하면 문자열 비교를 수행해 문자열 매칭이 이루어지는지 확인합니다. Hash 값 형성 EX) $h=t_1*10^3 + t_2*10^2 + t_3*10^1 + t_4*10^0$ 소수를 이용해..
2023.06.11