분류 전체보기 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