전체 글(192)
-
linux kernel upgrade
가지고 있는 책에는 2.4 혹은 2.6 버전의 커널만 업그레이드하는 방법만 나와있어 1주일을 구글링하면서 찾은 4.x 버전 커널 업그레이드 방법이다 책에 있는 방식으로 해보려고 했으나 kernel panic 이 계속 발생하여 결국에는 구글님의 손을 빌림 환경OS : Debian 9kernel : 4.9.9upgrade kernel : 4.9.99memory : 4GCPU core : 4 #> apt install git build-essential fakeroot libncurses5-dev libssl-dev ccach -y 소스 코드가 있는 곳으로 이동 #> cd /usr/src/linux-4.9.99 #> make menuconfig 해당화면이 출력되면 [ / ] 키를 눌러 RCU_NOCB를 검색 ..
2018.12.16 -
리눅스 fork 함수 호출
1. 사용자 프로그램에서 fork()를 호출 2. C언어 라이브러리(libc)에서 fork()를 실행 3. fork() 의 시스템 호출 번호인 2번을 eax 레지스터에 저장하고 int $0x80을 실행하여 인터럽터 80번을 발생 4. IDT 테이블에서 0x80번째 항목을 찾음 5. 0x80 번째에 system_call() 함수의 위치가 저장되어 있기 때문에 함수를 실행 6. syetem_call() 함수는 어셈블리에서 ENTRY(system_call)로 정의 7. fork() 함수를 실행했을 때 C 라이브러리에서 eax 레지스터에 값을 저장 8. [call *sys_call_table(,%eax, 4)]에서 eax 레지스터에 저장된 값 -fork의 시스템 호출 번호는 2번을 이용해서 sys_call_ta..
2018.12.15 -
vi 편집기 분할 사용 / 외부 명령어 사용
vi 편집기에서 :sp 파일명 을 하면 상하로 창이 분할됨 vi 편집기에서 :vsp 파일명 을 하면 좌우로 분할됨 창을 전환하고 싶으면 ctrl + w 를 두번 누르면 다음창으로 넘어간다 외부 명령어를 사용할때는 :! 뒤에 명령어를 사용하면 된다.
2018.11.20 -
IP Header
versionIP프로토콜의 버전을 나타냄 통상적으로 IPv4를 사용하므로 4 Header Length헤더의 길이가 일반적인 길이인 20바이트일때 이 필드의 값은 5가됨즉 숫자 1이 5를 나타내는 것이라고 보면 됨 DS우선순위, 신뢰도, 전송지연시간 등 사용 Total LengthHeader + Data 프레임 내의 패딩과 데이터를 구분데이터 길이 = 전체 길이 - 헤더 길이 전송하고자하는 데이터가 요구되는 최소 바이트보다 작은 경우 프레임 내에 캡슐화 될때 데이터 그램 뿐만 아니라 패딩도 추가된다.때문에 패킷을 프레임에서 추출한 후 어디까지 데이터이고 어디까지 패딩인지 알기 위해 전체 길이를 점검해야한다Identification16비트 필드이며 호스트로부터 나온 데이터그램을 유일하게 식별모든 단편은 같은..
2018.10.07 -
클래스와 서브네팅
IP주소는 이름이 아닌 장치에 대한 네트워크에서의 위치를 나타냄 1. 클래스 기반 주소지정이런 주소체계의 심각한 설계 결함은 조기 주소 고갈의 원인을 일으키게 됨때문에 클래스 없는 주소지정이라고 하는 새로운 설계 방법 등장 1-1. 클래스의 구분A : 0.0.0.0 ~ 127.255.255.255 | 16,777,216개의 주소| 유니캐스트 지원B : 128.0.0.0 ~ 191.255.255.255| 65,536 개의 주소| 유니캐스트 지원C : 192.0.0.0 ~ 239.255.255.255| 256 개의 주소| 유니캐스트 지원D : 224.0.0.0 ~ 239.255.255.255| 멀티캐스팅을 위해 설계E : 240.0.0.0 ~ 255.255.255.255A 클래스는 0 B 클래스는 10 C ..
2018.10.03 -
뮤텍스 세마포어 크리티컬 섹션
세마포어(semaphore)공유자원에 여러 프로세스가 접근하는 것을 막는 것세마포어는 int, char 처럼 추상적인 한 자료형이다.커널에 저장되어있는 변수이며 시스템 콜을 통해서만 값을 수정할 수 있다.리소스의 상태를 나타내는 간단한 카운터이진 세마포어 뮤텍스(mutual exclusion = mutex)공유자원에 여러 쓰레드가 접근하는 것을 막는 것 크리티컬 섹션(critical section) = 임계영역임계영역이란 둘 이상의 쓰레드가 동시에 접근해서는 안되는 겅유자원을 접근하는 코드의 일종 뮤텍스는 세마포어가 될 수 없지만 세마포어는 뮤텍스가 될 수 있다 그 이유는 뮤텍스는 항상 하나의 열쇠를 가지고 있고 세마포어는 여러개의 열쇠를 들고있다만약 세마포어가 하나의 열쇠를 가지고 있다면 뮤텍스와 같다..
2018.10.02 -
TLS_packet export certificate
wireshark 에서 tls 패킷의 인증서(certificate)를 저장하는 방법 우선 패킷에서 Server Hello, Certificate, Server Key Exchange, Server Hello Done이라고 나와있는 tls 패킷을 찾음이후 아래의 순서로 진행 secure sockets layer -> certificate -> handshake protocol -> certificates (xxx bytes) -> certificate(hex) -> encrypted : xxxxxxxxxx -> 마우스 우클릭 -> export packet bytes -> xxx.der or xxx.crt 저장을 하고 나면 아래의 이미지와 같이 인증서파일이 추출된다.이 인증서 파일을 리눅스 서버로 옮긴다. ..
2018.09.30 -
리눅스 시스템 PDT -> KST 타임존 변경
root#> ls /usr/share/zoneinfo root #> ls /usr/share/zoneinfo/Asia root #> ln -sf /usr/share/zoneinfo/Asia/Seoul /etc/localtime root#> date
2018.09.30 -
*SUA* 대학교 정보보안 동아리 모집안내
안녕하세요 대학생 정보보안 연합동아리 SUA에서 SUA와 함께 해나가실 대학 동아리를 모집하고 있습니다. SUA와 연합을 하게되면 세미나와 컨퍼런스에 발표자로 참석할 수 있는 기회는 물론멘토분들과 깊은 얘기도 나누고 여러 정보를 공유할 수 있습니다! 자세한 내용은 하단 링크로 접속해주세요 https://cafe.naver.com/securityplusua
2018.09.21 -
하트블리드(HeartBleed) 취약점 *CVE-2014-0160
*CVE-2014-0160데이터그램 전송계층 보안(Datagram Transport Layer Security) 프로토콜의 하트비트 확장은 매번 연결을 재시도하지 않아도 안전한 통신 연결을 테스트하고 유지시키는 방법을 제공 하트블리드 버그는 OpenSSL 1.0.1 버전에서 발견된 취약점으로 버퍼 초과 읽기로 분류되는데 소프트웨어가 허용된 것보다 더 많은 데이터를 읽게 하는 상황을 가리킴이 문제는 필요한 양보다 더 많은 데이터를 요청하는 하트비트 요청 메세지를 무시함으로써 수정할 수 있음 OpenSSL라이브러리의 구조적인 취약점으로 하트비트는 서버와 클라이언트 사이에 무슨 문제는 없는지 또는 안정적인 연결을 유지하기 위한 목적으로 일정 신호를 주고 받을 때 사용함 하트비트의 정상적인 통신 클라이언트는 하..
2018.09.21