전체 글 130

[GitCTF] vulnerabilities of my team and other teams

소프트웨어보안 강의를 통해 GitCTF에 참여하여, 다른 팀의 프로젝트에서 취약점을 찾아내고, 우리 팀 프로젝트의 취약점을 패치하였다. 1. 다른 팀 프로젝트의 취약점아래는 다른 팀 프로젝트에서 찾아낸 취약점에 대한 분석보고서입니다.  2. 우리 팀 프로젝트의 취약점1) intended i) SQL injection- included to backend database ii) format string- included to login page. iii) buffer overflow- There are many attributes on database -> There would be problem with buffer size 2) unintended i) vulnerability about node.js..

IT/프로젝트 2024.05.30

[Network Intrusion Detection] NSL-KDD dataset의 multi-class classification

아래는 보고서 파일입니다.   프로젝트에 활용된 AutoEncoder for Network Anomaly detection에 대한 기본적 이해는 제 블로그의 다른 글 (아래)을 참고해주세요. 2024.05.31 - [IT/인공지능] - [논문] Improving Performance of Autoencoder-Based Network Anomaly Detection on NSL-KDD Dataset [논문] Improving Performance of Autoencoder-Based Network Anomaly Detection on NSL-KDD Dataset연구 배경Internet에 연결된 device들이 많아짐에 따라 (IoT device) 보안 문제가 점차 대두되고 있어, 네트워크 보안을 위한 안..

IT/프로젝트 2024.05.29

[Packet Tracer] IP 설정, Routing Protocol 설정, Ping Test, ACL(Access Control List) 설정

Topology 1. 각 라우터(3대)와 PC(4대), 그리고 서버(1대) IP 설정 1) 라우터 IP 설정 각 라우터의 CLI에서, 해당 라우터가 가진 모든 인터페이스에 대해 다음과 같이 입력한다:interface {현재 인터페이스의 종류} {번호}ip address {현재 인터페이스의 IP} {서브넷 마스크}no shutdown 결과 확인을 위해 다음과 같이 입력한다:sh ip interface brief그럼 다음과 같이 결과 확인이 가능하다:* Router0 * Router1 * Router2 2) PC, 서버 IP 설정각 PC/서버의 Desktop > IP Configuration에서 다음과 같이 설정한다:IPv4 address: 해당 PC/서버의 IP 주소Subnet mask: 255.255.2..

IT/프로젝트 2024.05.28

[Memory management] Swapping

💡SwappingOS가 memory의 address space 중 현재 그닥 필요하지 않은 부분 (page)을 hard disk drive에 보관해둠으로써,  memory 공간의 부족을 완화하는 것이다. swap space: main memory에 있던 일정한 크기의 page들이 disk 내로 옮겨지는 공간  - 이 공간은 page 단위로 구획돼있어야 한다.  Present Bit in PTE(Page Table Entry) 👇present bit page fault와 page replacement ▶Page fault: physical memory에 존재하지 않는 page에 접근하려 할 때 발생 ▶Page replacement아래 순서로 일어난다.1.load instruction이 수행됨 2. pr..

[Shellshock attack] environment variable, bash, parse_and_execute()

Shell function을 child process에게 전달하는 방법▶Shell function 예시 ▶방법 1. parent shell에서 "함수" 형태를 가진 환경 변수를 정의한다.(정말 함수로서 정의됐는지 보려고 declare -f로 확인해 보았을때 정상적으로 함수 코드가 보이며, 함수를 실행하면 제대로 작동한다.) 이제 export -f로 함수를 export하고, child shell을 실행하면, child shell은 함수를 잘 전달받았다. (정말 잘 전달받은지 보려고 다시 declare -f로 확인해 보았을 때 정상적으로 함수 코드가 보이며,함수를 실행하면 제대로 작동함) ▶방법 2.parent에서 (이 방법에서는 parent가 꼭 shell이 아니어도 된다.) 단순히 "string" 형태의..

IT/시스템 보안 2024.05.19

[System Hacking] fho ㅡ Hook overwrite

Hook Overwrite란 malloc, free, realloc 함수는 각각 훅 변수가 존재하며,이 함수들은 시작할 때 해당 훅 변수가 존재하는지 검사하고, 존재하면 이를 호출한다.이때, 이 변수들은 libc의 bss 섹션에 위치하여 쓰기 가능하므로, 실행 중에 덮어쓰는 것이 가능하며,이에 성공하면, malloc/free/realloc 함수를 호출할 때 조작되어버린 훅을 호출하여, 조작된 주소로 jump하게 되므로, 실행 흐름이 조작되는 것이다.게다가, 훅을 실행할 때는 기존 malloc/free/realloc 함수에 전달한 인자를 같이 전달해 주기 때문에,   예를 들어 __malloc_hook를 system 함수의 주소로 덮고, malloc(“/bin/sh”) 을 호출하면,"/bin/sh"이 sy..

IT/Wargame 2024.05.17

[행정행위의 부관] 부관의 개념, 기능, 종류, 한계, 위법한 부관

부관의 개념부관: 주된 행정행위의 효과를 제한/수정/보완하거나 일정한 의무를 부과하기 위하여 붙여지는 부대적인 규율 - 행정청에 의하여 붙여지는 것임. ↔ 법정부관: 법령의 규정에 의하여 직접 행정행위의 효과를 제한하거나 의무를 부과 부관의 기능- 행정청이 허가 발급을 거부하는 것보다 일정한 의무 이행을 조건으로 발급하는 것이 합목적적인데, 이를 발급하는데 문제가 있는 경우, 법적·사실적 장애를 제거- 주로 수익적 행정행위에 일정한 조건을 붙이거나 의무를 부과   eg) 영업허가, 건축허가  - 장점: 행정의 탄력성이 높아지고 국민의 입장에서도 수익적 행정행위의 발급을 받을 수 있음 부관의 종류 1. 기한: 행정행위의 효과의 발생/소멸/계속을 시간적으로 정함 - 행정행위가 그 내용상 장기계속성이 예상됨 ..

2024.05.17

[행정행위의 내용]

법률행위적 행정행위 1. 명령적 행정행위: 작위·부작위·급부·수인 등의 의무를 부과 or 해제 ⓵ 하명: 작위·부작위·급부·수인 등의 의무를 부과 - 부작위하명을 금지라고도 함  - 침익적 행정행위임 ->  반드시 법적 근거가 필요  - 일반적으로 사실행위를 그 대상으로 하지만, 법률행위를 대상으로 하기도 함  - 대인적 하명 ㅡ 그 효과가 수명자에게 미침 vs. 대물적 하명 ㅡ 대상이 되는 물건을 승계한 자에게도 그 효과가 승계됨  - 하명에 의하여 부과된 의무를 이행하지 않는 경우 ㅡ 행정상 강제집행에 의해 강제되고 행정벌 등의 제재가 가해질 수 있음 BUT 하명을 위반하여 행해진 행위의 법률상의 효과에는 직접 영향이 없는 것이 원칙 ⓶ 허가 : 법령에 의한 일반적·상대적 금지를 일정한 경우에 해제하..

2024.05.17

[RELRO] RELRO의 개념, RELRO의 우회

RELRO란ELF는 data segment에 있는 GOT를 활용하여 반복되는 라이브러리 함수의 호출 비용을 줄이며,이 GOT에 값을 채우는 방식 중 Lazy Binding은   함수가 처음 호출될 때 함수의 주소를 구하고, 이를 GOT에 적는 방식이다.그런데 이 방식의 바이너리는 실행 중에 GOT 테이블을 업데이트할 수 있어야 하기에, GOT에 쓰기 권한이 부여가 되므로 취약하다.한편, ELF의 data segment에는 프로세스의 초기화 및 종료에 실행할 함수들의 주소가 저장된 .init_array, .fini_array가 있는데,여기가 조작이 가능하다면 이또한 취약하다.이러한 문제들을 해결하고자,데이터 세그먼트 중, 쓰기 권한이 불필요한 영역의 쓰기 권한을 제거함으로써, 해당 영역을 보호하는 RELR..

IT/시스템 보안 2024.05.15

[PIE] PIC와 PIE의 개념, 상대 참조, PIE의 우회

PIC와 PIE의 개념 PIC(Position-Independent Code): 재배치(Relocation)가 가능하여, 메모리의 어느 주소에 적재(매핑)되어도 코드의 의미가 훼손되지 않고 제대로 실행될 수 있는 코드  - rip를 기준으로 데이터를 상대 참조(Relative Addressing)하기 때문  PIE(Position-Independent Executable): 메모리의 어느 주소에 적재(매핑)되어도 실행 가능한 실행 파일   - PIE의 모든 코드는 PIC이다.- ASLR이 적용되면, 바이너리가 실행될 때마다 스택, 힙, 공유 라이브러리 뿐만 아니라 코드 영역까지도 무작위 주소에 적재됨 (↔ PIE가 아니면, 코드 영역은 랜덤이 아님)- 다만 ASLR이 안 적용되면, 무작위 주소에 적재되지..

IT/시스템 보안 2024.05.15

[DirtyCOW] memory mapping, mmap(), Copy on Write

memory mapping memory mapping이 뭔가요? 일반적으로 file에 access(open, read, write, ...)하는 방식은 두 가지가 있다. 1) by I/O Operation파일에 접근할 때마다 매번 system call을 통해 kernel을 깨워야 함-> overhead가 발생해버린다. 2) by memory mapping처음에 파일의 내용을 프로세스의 메모리에 한번 mapping해 두면,이후에 파일 내용에 접근할 때는, system call이 아니라, 메모리 주소를 통해 직접 접근  -> overhead 최소화! memory mapping by mmap() system callvoid *mmap(void addr[.length],  시작 주소: 어디에다가부터 mappin..

IT/시스템 보안 2024.05.14

[Memory management] Paging

이전 글 2024.05.01 - [IT/컴퓨터구조, 운영체제] - [Memory management] Memory virtualization, Dynamic relocation, Segmentation [Memory management] Memory virtualization, Dynamic relocation, Segmentation💡Memory virtualization & Address Space - for Abstraction OS는 physical memory를 virtualize하여,각 프로세스가 전체 메모리를 전부 사용하는 것처럼 보이게 한다. Virtual address를 Physical address로 translate하는 것은 OSintoky.tistory.com 💡3. Paging..

[TF-IDF(Term Frequency-Inverse Document Frequency)] 계산 과정, 강점

TF-IDF의 계산 과정 ✅DTM(Document-Term Matrix): 각 문서들 (행)에서 각 단어들 (열)이 등장한 횟수가 담긴 행렬 여기서 문서를 d, 단어를 t, 문서의 총 개수를 n이라고 하겠다. 그러면... ✅tf(d,t): 특정 문서 d에서의 특정 단어 t의 등장 횟수. (= DTM의 각 셀의 값) ✅df(t): 특정 단어 t가 등장한 문서의 수. ✅idf(t): df(t)에 (대략) 반비례하는 수. ✅TF-IDF: TF와 IDF를 곱한 값.  TF-IDF의 강점 DTM에 비해 TF-IDF는 각 단어의 중요성도 반영하여 처리한다는 강점이 있다.TF의 역할: 어떤 단어가 특정 문서에서 많이 등장했다면 가중치를 높혀줌IDF의 역할: 어떤 단어가 많은 문서에서 등장했다면 가중치를 낮춰줌 ∵ d..

IT/인공지능 2024.05.12

[Naive Bayes Algorithm] 원리, 종류, 주의사항

Naive Bayes Algorithm의 원리 E2가 참일 때, E1도 참일 확률 (즉, 조건부 확률)은 아래와 같다. 위 원리를 이용하여,feature X가 만족되었을 때, class Ck일 확률은 아래와 같다.  이때, 보통 이 feature는 하나가 아니라 여러 개이므로, 이를 반영하면 아래와 같다.             eg) 날씨&온도&습도&바람에 따라 사람들이 테니스를 칠지/안칠지 예측하는 문제  여기서, Naive Bayes Algorithm은 각 feature가 독립적이라고 가정하므로, 위 식은 아래와 같이 바꿀 수 있다.아래가  Naive Bayes Algorithm의 최종 공식이다.   Naive Bayes Algorithm의 종류 ✅Gaussian Naive Bayes변수가 conti..

IT/인공지능 2024.05.11

[논문] Machine learning을 이용한 Windows malware classification

💡A Survey of Machine Learning Methods and Challenges for Windows Malware ClassificationMachine learning을 이용해 malware를 multi-classification하는 경우, 일반적으로 아래와 같은 것들이 feature로서 선택된다.   또한 분석 method은 아래와 같다. ▶ N-gram ▶ Linear model ▶ Kernel method ▶ Decision tree ▶ Neural network ▶ sequences에 대한 method:      hidden markov model      byte similiarty measure      CNN, RNN      Haar Wavelet Transform 💡..

IT/AI for Security 2024.05.04

[불확정개념과 판단여지, 기속행위와 재량행위]

불확정개념과 판단여지 불확정개념: 법률요건에 규정된 개념이 다의적이어서, 상황에 따라 달리 판단될 수 있는 개념 판단여지: 행정청은 요건규정상의 불확정개념에 대해 사법심사가 제한되는 독자적인 판단권을 가짐 - 판단여지가 인정되는 경우 -> 사법심사 X, 법원은 일정한 한계를 준수하였는지의 여부만을 심사 기속행위와 재량행위 기속행위: 법이 효과규정에서   행정청에게 어떠한 행위를 할 것인가에 대해 일의적으로 규정하고 있어서,행정청은 이를 단지 기계적으로 적용하는데 그치는 경우재량행위: 법이 효과규정에서   행정청에게 행위여부나 행위내용에 관하여 선택의 여지를 인정하고 있는 경우.✅결정재량 or 선택재량 재량행위는 아래 중 하나이다. 결정재량일정한 행위를 할 것인지 하지 않을 것인지 결정 선택재량복수의 행위..

2024.05.03

[행정행위 서론] 행정행위의 개념, 요소, 종류

행정행위의 개념행정행위행정청이 법아래서 구체적 사실에 관한 법집행으로서 행하는 권력적 단독행위인 공법행위 처분행정청이 행하는 구체적 사실에 관한 법집행으로서의 공권력의 행사 또는 그 거부와 그 밖에 이에 준하는 행정작용 행정과 처분의 동일성 여부일원설: 실체법상의 처분개념과 쟁송법상의 처분개념은 같다.- 항고소송의 대상이 되는 처분개념에   행정행위 이외의 다른 이질적인 작용들을 포함시키게 되면,   행정행위의 개념을 정립할 실익이 없어지고   행정작용론의 이론적 체계가 무의미해질 수 있다 이원설: 행정행위개념은   항고소송의 대상이 되는 행정처분의 대상과 범위를 지나치게 축소함으로써   개인의 권익구제의 폭을 협소하게 만들었다는 비판을 제기하면서,   항고소송을 통한 권리구제의 확대를 위해   항고소송..

2024.05.03

[Memory management] Memory virtualization, Dynamic relocation, Segmentation

💡Memory virtualization & Address Space - for Abstraction OS는 physical memory를 virtualize하여,각 프로세스가 전체 메모리를 전부 사용하는 것처럼 보이게 한다. 이를 통해 process 간의 isolation을 보장하며, time과 space 면에서 메모리 관리의 효율이 높아진다.  💡1. Dynamic Relocation: HW base  프로세스 하나가 allocation의 unit이다.  ✅Address translationphysical address =  해당 프로세스의 base + virtual address 단, 0 ≤ virtual address  프로그램이 실행을 시작하면, 이 프로세스를 physical memory의 ..

[Security란] Security vs Protection, Authentication vs Authorization

✅Security: keeping unauthorized entities from doing things you don’t want them to do: protecting systems from deliberate attacks - Confidentiality, Integrity, Availability  OS의 역할privileged mode, memory protection, file access permissions, ... ✅Protection: protecting files and other resources from accidental misuse ✅Authentication: proving that someone is who they say they are ✅Authorization: Ve..

IT/시스템 보안 2024.04.21

[운영체제란] 운영체제의 역할, HW의 support

운영체제의 역할✅Abstact machinehide underlying details API 제공, system calls✅Resource manager각 application에 시간적/공간적 공유 자원을 allocate    시간적: CPU(app간), network    공간적: memory(app간), disk(user간)한정적 자원의 사용을 효율적으로.   overhead 최소화✅protectionapplication 간에 서로서로 보호 OS 보호 hardware에의 직접적 접근 방지  운영체제를 위한 HW support ✅app이 실행되는 원리OS 실행 시작됨이 OS의 코드는 메모리의 어딘가에 들어감OS의 instruction이 처리됨OS는 사용자 입력을 받아 특정 app을 인식함OS는 실행하려..

[Heap overflow] Heap overflow의 과정, Exploit, Countermeasures

💡Heap overflow의 과정 ✅예시 프로그램 코드   ✅after strcpy(c, ...)   ✅after free(b)chunk B에 fd, bk 포인터가 생기며,이것이 bin_forward, bin_back과 연결됨으로써, free된 chunk B는 bin에 들어간다.  ✅after strcpy(a, ...) chunk A에, 이것의 크기에 비해 과분한 양의 string이 들어간다.🚩따라서 string은 chunk A의 data 공간을 다 채우고 나서 higher address 방향으로 흘러넘쳐 chunk B를 corrupt시킨다.  ✅after free(a) chunk A도 free되어 fd, bk 포인터가 생겼고,이 포인터들이 기존의 bin (free chunk list)과 연결됨으로써..

IT/시스템 보안 2024.04.21

[Scheduling in multiple CPU] SQMS, MQMS, CFS, O(1), BFS

Cache Affinity프로세스가 가능한 한 하나의 CPU에서만 실행되게 하는 것 -> 해당 프로세스의 state가 이미 그 CPU의 cache에 남아있으므로, 다음 번에 프로세스가 실행될 때 훨씬 빨라진다. 만약 cache에 해당 프로세스의 state가 없다면, main memory에서 가져와야 하는데, 이것은 cache에 비해 매우 느림. 💡scheduling 방식✅SQMS: Single queue Multiprocessor Scheduling스케줄되어야 하는 job들이 한 queue에 전부 들어가 있다.   단점 - 단일 queue가 여러 CPU에게 공유되어야 하므로 locks가 필요한데, 이 locks는 성능을 크게 떨어뜨리고 scalability가 낮다.- 프로세스들은 매번(매 time sl..

[행정법관계의 발생·변경·소멸] 법률요건과 법률사실, 공법행위

💡법률요건과 법률사실법률요건: 행정법관계에 변동을 가져오는 사실 법률사실: 법률요건을 이루는 개개의 사실 ㄴ공법 상의 사건: 사람의 정신작용을 요소로 하지 않는 법률사실 (eg. 생사, 시간의 경과)ㄴ공법 상의 용태: 사람의 정신작용을 요소로 하는 법률사실     ㄴ외부적용태: 행위     ㄴ내부적용태(내심): 고의·과실, 선의·악의  💡공법행위: 공법상의 행위로서 공법적 효과를 발생·변경·소멸시키는 행위 - 행정주체의 공법행위 vs. 사인의 공법행위  - 권력행위 vs. 비권력행위  - 단독행위 vs. 쌍방행위 ✅ 사인의 공법행위: 행정법관계에서의 사인의 행위로서 공법적 효과를 발생시키는 행위자기완결적 공법행위: 그 행위 자체로서 법률효과를 완성eg) 투표, 신..

2024.04.19

[행정법관계에서의 공권] 개인적 공권의 개념, 성립 요건, 확대화

💡개인적 공권의 개념공권행정법관계에서의 권리 개인적 공권공법상 개인이   자기의 이익을 위하여   국가를 비롯한 행정주체에게   일정한 행위를 요구할 수 있는   법적인 힘 💡공권과 다른 개념의 구별법적 보호이익별로 차이가 없다는 의견이 다수. (∵ 공권은 본래 법적으로 보호되는 이익임)-> 행정심판의 청구인적격과 취소소송의 원고적격에 따라, “법률상 이익”이 있는 자가 쟁송을 제기할 수 있음 보호가치 있는 이익공권 - 법적으로 보호되는 이익.     VS     보호가치 있는 이익 - 법적으로 보호할 가치가 있지만 법에 의해 보호되진 않음 -> 현행 행정소송법이 ‘법률상 이익’을 규정하고 있는 한, 원고적격 인정 X 반사적 이익 : 행정법규범이 공익상의 견지에서 행정주..

2024.04.19