New Post ⚡
Jenkins Remote Code Execution (CVE-2024-23897)
Vulnerability2024.02.05 17:06Jenkins Remote Code Execution (CVE-2024-23897)

1. 개요 Jenkins란 Java 기반의 오픈소스 CI 툴이다. 다수의 개발자들이 하나의 프로그램을 개발할 때 버전 충돌을 방지하기 위해 각자 작업한 내용을 공유영역에 있는 저장소에 업로드함으로써 지속적 통합이 가능하다. 영향을 받는 버전 Jenkins: 2.441 버전 이하 LTS: 2.426.2 버전 이하 CVSS: 9.8점 2. 상세 분석 공격 설명 CLI 명령어 내에 있는 임의 파일 읽기 취약점으로 인증되지 않은 공격자가 Jenkins 컨트롤러 파일 시스템에서 arags4j 라이브러리를 통해 문자 인코딩을 악용하여 모든 프로그램 파일을 읽을 수 읽을 수 있다. arags4j 라이브러리에서 매개 변수 @문자 뒤에 파일 경로를 입력하면 해당 파일을 읽고 결과 값을 반환한다. 공격 테스트 해당 취약점..

Apache OFBiz Auth Bypass & RCE Vulnerability (CVE-2023-51467) 취약점
Vulnerability2024.02.04 12:19Apache OFBiz Auth Bypass & RCE Vulnerability (CVE-2023-51467) 취약점

1. 개요 OFBiz 솔루션이란 Apache에서 만든 무료 오픈소스 ERP이다. 해당 취약점은 이전 발생한 Apache OFBiz XMLRPC Deserialization RCE (CVE-2020-9496), Apache Ofbiz xml-RPC RCE( CVE-2023-49070)취약점의 불안전한 패치로 인해 로그인 인증 우회 및 SSRF 취약점이 존재한다. CVSS 점수: 9.8점 영향을 받는 소프트웨어: Apache OFBiz 버전 16.11.x 및 이전 버전 SSRF(Server Side Request Forgery) 란? 적절한 검증절차를 거치지 않은 사용자 입력값을 서버 간에 요청에 사용하여 악의적인 행위가 발생하는 취약점이다. 공격자가 조작된 요청을 공개된 웹서버에 전송하여 웹서버가 내부 네..

크리덴셜 스터핑은 어떤 녀석인가?
Hacking & Security Theory2023.10.31 15:38크리덴셜 스터핑은 어떤 녀석인가?

1. 서론 최근 뉴스를 보면 크리덴셜 스터핑으로 인한 기업의 피해가 다수 발생하는것을 알 수 있다. 크리덴셜 스터핑의 개념과 대응방법에 대해 알아보려고 한다. 2. 크리덴셜 스터핑(Credential Stuffing) 이란? 이전 공격에서 유출된 자격 증명(Credential)을 소프트웨어 도구를 이용하여 다른 계정에 무작위 대입(Stuffing)하며 성공할 경우 주민등록번호, 신용카드 정보 등 사용자 정보를 탈취하는 공격이다. 공격자는 크리덴셜 스터핑 공격이 생겨나기 이전에 다양한 툴을 이용하여 Brute Force Attack, Dictionary Attack, Rainbow Table Attack 등 다양한 공격을 통해 사용자의 정보를 흭득해 왔다. 크리덴셜 정보를 일반 웹 또는 다크웹을 통해 얻은..

Hacking & Security 🔒
Jenkins Remote Code Execution (CVE-2024-23897)
Jenkins Remote Code Execution (CVE-2024-23897)
Vulnerability
2024.02.05 17:06
1. 개요 Jenkins란 Java 기반의 오픈소스 CI 툴이다. 다수의 개발자들이 하나의 프로그램을 개발할 때 버전 충돌을 방지하기 위해 각자 작업한 내용을 공유영역에 있는 저장소에 업로드함으로써 지속적 통합이 가능하다. 영향을 받는 버전 Jenkins: 2.441 버전 이하 LTS: 2.426.2 버전 이하 CVSS: 9.8점 2. 상세 분석 공격 설명 CLI 명령어 내에 있는 임의 파일 읽기 취약점으로 인증되지 않은 공격자가 Jenkins 컨트롤러 파일 시스템에서 arags4j 라이브러리를 통해 문자 인코딩을 악용하여 모든 프로그램 파일을 읽을 수 읽을 수 있다. arags4j 라이브러리에서 매개 변수 @문자 뒤에 파일 경로를 입력하면 해당 파일을 읽고 결과 값을 반환한다. 공격 테스트 해당 취약점..
Apache OFBiz Auth Bypass & RCE Vulnerability (CVE-2023-51467) 취약점
Apache OFBiz Auth Bypass & RCE Vulnerability (CVE-2023-51467) 취약점
Vulnerability
2024.02.04 12:19
1. 개요 OFBiz 솔루션이란 Apache에서 만든 무료 오픈소스 ERP이다. 해당 취약점은 이전 발생한 Apache OFBiz XMLRPC Deserialization RCE (CVE-2020-9496), Apache Ofbiz xml-RPC RCE( CVE-2023-49070)취약점의 불안전한 패치로 인해 로그인 인증 우회 및 SSRF 취약점이 존재한다. CVSS 점수: 9.8점 영향을 받는 소프트웨어: Apache OFBiz 버전 16.11.x 및 이전 버전 SSRF(Server Side Request Forgery) 란? 적절한 검증절차를 거치지 않은 사용자 입력값을 서버 간에 요청에 사용하여 악의적인 행위가 발생하는 취약점이다. 공격자가 조작된 요청을 공개된 웹서버에 전송하여 웹서버가 내부 네..
크리덴셜 스터핑은 어떤 녀석인가?
크리덴셜 스터핑은 어떤 녀석인가?
Hacking & Security Theory
2023.10.31 15:38
1. 서론 최근 뉴스를 보면 크리덴셜 스터핑으로 인한 기업의 피해가 다수 발생하는것을 알 수 있다. 크리덴셜 스터핑의 개념과 대응방법에 대해 알아보려고 한다. 2. 크리덴셜 스터핑(Credential Stuffing) 이란? 이전 공격에서 유출된 자격 증명(Credential)을 소프트웨어 도구를 이용하여 다른 계정에 무작위 대입(Stuffing)하며 성공할 경우 주민등록번호, 신용카드 정보 등 사용자 정보를 탈취하는 공격이다. 공격자는 크리덴셜 스터핑 공격이 생겨나기 이전에 다양한 툴을 이용하여 Brute Force Attack, Dictionary Attack, Rainbow Table Attack 등 다양한 공격을 통해 사용자의 정보를 흭득해 왔다. 크리덴셜 정보를 일반 웹 또는 다크웹을 통해 얻은..
Atlassian Confluence OGNL Remote Code Execution (CVE-2022-26134)
Atlassian Confluence OGNL Remote Code Execution (CVE-2022-26134)
Vulnerability
2022.06.14 04:47
1. 공격 설명 1) 취약점 설명 취약한 Confluence Server 또는 Confluence Data Center에 OGNL Injection 공격을 수행합니다. Injection 공격이 성공할 경우 사용자 인증 없이 시스템에서 임의의 코드를 실행 할 수 있습니다. 해당 취약점은 CVSS 10점으로 취약점이 존재할 경우 빠른 보안 패치가 필요합니다. 2) 취약한 버전 1.3.0 ~ 7.4.17 7.13.0 ~ 7.13.7 7.14.0 ~ 7.14.3 7.15.0 ~ 7.15.2 7.16.0 ~ 7.16.4 7.17.0 ~ 7.17.4 7.18.0 ~ 7.18.1 3) 동작 방식 3.1) confluence/WEB-INF/lib/xwork-1.0.3.6.jar confluence/WEB-INF/lib..
Tongda OA  file upload AND RCE Vulnerability
Tongda OA file upload AND RCE Vulnerability
Vulnerability
2021.02.27 06:35
1. 개념 Tongda OA는 중국에서 운영중인 회사 내에서 일정 관리, 공지 사항, 커뮤니케이션 등을 중앙에서 관리할 수 있는 소프트웨어이다. 해당 소프트웨어에 임의의 파일 업로드 및 업로드된 파일을 통한 RCE 공격이 가능하다. www.tongda2000.com/index.php 【通达OA】办公就用通达OA,通达OA官方网站_OA系统_协同办公 产品亮点 www.tongda2000.com 2. 취약점 설명 upload.php 경로에서 파일 업로드를 수행할 때 적절한 검증을 수행하지 않아 php 구문을 삽입 한 jpg 파일 업로드 취약점이 존재하고 해당 요청에 대한 응답 값을 통해 업로드한 파일 명을 확인할 수 있다. 업로드한 jpg 파일을 php 파일로 실행시키기 위해 gateway.php에 접근한 후 js..
Citrix ADC and Gateway RCE Vulnerability (CVE-2019-19781)
Citrix ADC and Gateway RCE Vulnerability (CVE-2019-19781)
Vulnerability
2021.02.20 23:04
1. 개념 Citrix ADC는 단순히 로드밸런서의 기능 뿐만 아니라, WEB / WAN 가속, Caching, 웹-방화벽, GSLB, L7 DDoS 방어, SSL VPN Gateway등 다양한 기능이 포함된 올인원 제품이다. Citrix Gateway는 원격 액세스를 단순하게 만들어 주는 동시에 앱과 리소스에 대한 액세스를 보호한다. 이러한 Citrix 장비에 인증되지 않은 공격자가 임의 코드 실행을 수행 할 수있는 취약점이 존재한다. CVE: cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2019-19781 2. 취약점 설명 vpns 폴더 요청에 대한 접근을 적절하게 검증하지 않아 발생한다. 공격자는 Directory Traversal을 통해 취약한 버전일 경우 악의적인..
FortiOS SSL VPN Directory Traversal Vulnerability (CVE-2018-13379)
FortiOS SSL VPN Directory Traversal Vulnerability (CVE-2018-13379)
Vulnerability
2020.12.16 19:47
1. 개념 FortiOS에서 SSL VPN Directory Traversal 취약점이 존재한다. 심각도(CVSS V3)는 10점만점에 7.5점이고 최근 11월 해커가 해당 취약점을 이용하여 5만개의 노출된 암호를 유출하여 더욱 문제가 되었다. 노출된 IP는 각 공공기관, 금융권도 포함되어있다. Passwords exposed for almost 50,000 vulnerable Fortinet VPNs A hacker has now leaked the credentials of almost 50,000 Fortinet SSL VPNs vulnerable to CVE-2018-13379. Exploits for these VPNs had been posted over the weekend on hacker..
XSpear (XSS Scanner) 사용 방법
XSpear (XSS Scanner) 사용 방법
Web Hacking & Security
2020.12.06 11:40
1. 개념 XSpear는 ruby 언어로 만들어진 XSS Scanner Tool이다. GET 메소드로 전송하는 URL 매개변수 값에 XSS 구문을 자동 대입하여 XSS 취약점이 존재하는지 확인한다. github 홈페이지: github.com/hahwul/XSpear 2. 설치 방법 Kali Linux에서 설치한 후 이용하였다. 1) 파일 다운로드 github 저장되어있는 XSpear 파일을 git clone 하여 저장한다. git clone https://github.com/hahwl/XSpear.git 설치된 경로로 이동하면 정상적으로 파일을 받아온것을 확인할 수 있고, 현재 최신 업데이트 버전이 1.4.1 버전인것을 알 수 있다. gem 명령어를 이용해 XSpear 최신버전을 설치한다. sudo ge..
Cisco ASA Read Only Path Traversal Vulnerability (CVE-2020-3452)
Cisco ASA Read Only Path Traversal Vulnerability (CVE-2020-3452)
Vulnerability
2020.10.04 08:13
1. 개념 Cisco는 세계 1위 유선통신장비 제조사이며 네트워킹 하드웨어, 보안 서비스 등을 제공, 판매하는 미국의 다국적 기업이다. 2. 취약점 설명 Cisco ASA의 해당 취약점은 취약한 기기에서 처리되는 HTTP 요청 내 URL 입력을 적절히 검증하지 않았기 때문에 발생한다. 공격자는 변조된 URL을 이용하여 악용에 성공하면 공격자가 대상 장치의 웹 서비스 파일 시스템에 있는 모든 파일을 볼 수 있다. FOFA: "webVpn" 3.PoC (Proof Of Concept) 1) 로그인 페이지 접근 로그인 페이지에 접근하면 URL이 http://[Target IP]/+CSCOE+/logon.html#form_title_text 인것을 확인할 수 있다. 2) URL 변조 기본 로그인 페이지 URL을..
Netgear_WGR614v10 Authentication bypass Vulnerability (CVE-2017-5521)
Netgear_WGR614v10 Authentication bypass Vulnerability (CVE-2017-5521)
Vulnerability
2020.10.04 00:45
1. 개념 NETGEAR는 미국 캘리포니아주 산호세에 본사를 둔 글로벌 컴퓨터 네트워킹 회사이다. 2. 취약점 설명 Netgear WGR614v10은 무선 라우터 제품이고 펌웨어 V1.0.2 이하를 사용하는 NETGEAR WGR614v10의 passwordrecovered.cgi에 인증 우회 취약점이 존재한다. FOFA: "WGR614v10" 3.PoC (Proof Of Concept) 1) 로그인 시도를 통해 id 값 확인 WGR614v10 라우터의 관리 인터페이스 페이지로 접근한 후 로그인을 하지 않고 취소 버튼을 누른다. 취소 버튼을 누르면 인증이 실패하여 401 에러 페이지로 리다이렉트 되게 된다. 401 Unauthorized Error 란? 해당 리소스에 유효한 인증 자격 증명이 없기 때문에 ..
Network 🌐
[Network] SNMP(Simple Network Management Protocol) 란?
[Network] SNMP(Simple Network Management Protocol) 란?
Network Theory
2022.10.19 18:30
1. SNMP (Simple Network Management Protocol) 란? TCP/IP 네트워크 상에서 관리자가 원격으로 네트워크상 각 호스트로부터 정기적으로 관리 정보를 자동으로 수집하거나 실시간으로 감시하고 관리할 수 있도록 해주는 기술이다. SNMP는 프로토콜일 뿐이며 이를 관리하기 위해서 는 NMS 프로그램이 필요하다. Application 계층 프로토콜이며 단순 요청 응답 형식의 프로토콜에 의해 교환되기 때문에161(Agent),162(Manager) UDP 프로토콜을 사용한다. NMS 란? 네트워크상의 자원들을 모니터링하고 제어하기 위한 도구로, 전체 시스템에서 관리하는 네트워크 요소의각 지점과 특정한 속성에 주소와 이름을 지정하고 주기적으로 각 요소가 가진 정보를 중앙 제어 센터에..
FTP (File Transfer Protocol) 란?
FTP (File Transfer Protocol) 란?
Network Theory
2022.10.19 17:24
1. FTP (File Transfer Protocol) 란? 하나의 호스트에서 다른 호스트로 파일을 복사하기 위해 TCP/IP에 의해 제공되는 표준 기능이다. 20번 포트는 데이터 전송을 위해 사용되고, 21번 포트는 명령과 응답 등의 제어정보를 위해 사용된다. FTP의 경우 평문전송을 수행하여 정보가 노출될 수 있기 때문에 SFTP(22/tcp) 또는 FTPS(990/tcp) 사용을 권장한다. 2. FTP 전송모드 전송모드 기본 값은 Active Mode이고 클라이언트가 Active또는 Passive Mode를 선택할 수 있다. 데이터 포트요청은 Active의 경우 클라이언트가 Passive인 경우 서버가 요청한다. 1) 능동 연결(Active Mode) Active Mode의 작동 방식 ① 클라이언..
DNS (Domain Name System)란?
DNS (Domain Name System)란?
Network Theory
2022.10.03 14:35
1. DNS (Domain Name System) 1) DNS 등장 배경 인터넷 표준 프로토콜은 TCP/IP이다. TCP/IP 프로토콜을 사용하는 네트워크 안에서 Host들을 식별하기 위한 목적으로 IP 주소를 사용한다. 사람의 경우 숫자보다 문자를 사용하는 것이 더 편하기 때문에 도메인 이름을 사용하여 Host들을 식별한다. 도메인 이름을 사용하는 경우에도 최종적으로 IP주소를 알고 있어야 상대방 장비와 연결이 가능하다. 네트워크에서 도메인이나 호스트 이름을 숫자로 된 IP 주소로 해석해 주는 TCP/IP Network Service인 DNS가 등장하였다. 2) DNS 포트 번호 UDP와 TCP 포트 53번을 사용한다. UDP: 일반적인 DNS 조회를 할 경우 TCP: Zone Transfer(영역 전..
DHCP(Dynamic Host Configuration Protocol) 란?
DHCP(Dynamic Host Configuration Protocol) 란?
Network Theory
2020.08.19 11:09
1. 호스트 설정 DHCP에 대해 알아보기 이전에 DHCP가 등장하게된 배경인 호스트 설정에 대해 알아보자. 1) 호스트 설정 개념 TCP/IP 프로토콜을 사용하는 모든 호스트들은 IP주소, Subnet mask 가 할당되어야 정상적으로 Network와 연결이 가능하다. 다른 망과 통신하기 위해서는 Default Router(Gateway)의 주소를 알아야하고 IP 주소 대신에 이름을 사용하여 통신하기 위해서 DNS 주소도 알아야한다. 일반 사용자들이 해당 주소들을 입력하는것이 쉽지 않아서 호스트 설정 프로토콜이 등장하였다. 2) 호스트 설정 프로토콜 종류 2.1) RARP 인터넷 초기에 IP 주소를 제공하기 위해 만들어졌다. RARP를 통해 MAC주소를 IP주소로 매핑하여 사용한다. RARP는 2계층의..
[Network] ARP, RARP,GARP 개념
[Network] ARP, RARP,GARP 개념
Network Theory
2020.02.11 15:51
1. ARP (Address Resolution Protocol) IP 주소를 이용해 상대방의 MAC 주소를 알아오는 프로토콜이다. ARP 요청·응답 완료되면 ARP table에 각 노드의 ARP 정보를 저장한다. ARP 요청: 특정 IP주소에 대해 MAC주소를 요구, MAC 주소를 알지 못하기 때문에 브로드 캐스트로 전송한다. ARP 응답: 요청한 MAC 주소 정보를 유니캐스트로 전송한다. 2. RARP (Reverse Address Resolution Protocol) MAC 주소에 해당하는 IP 주소를 알아오는 프로토콜이다. RARP 요청: MAC정보를 담고있는 RARP 정보를 브로드 캐스트로 전송한다. RARP 응답: 요청자의 IP 주소를 담은 RARP 응답을 유니캐스트로 전송한다. 3. GARP..
[Load Balancer (L4, L7)] SSL 가속 개념 및설정 (L7 Load Balancing)
[Load Balancer (L4, L7)] SSL 가속 개념 및설정 (L7 Load Balancing)
BIG-IP F5 (Load Balancer)
2020.02.06 14:55
1. 네트워크 구성 이전 BIG IP 설정 링크 [1] BIG IP 기본 인터페이스 설정 및 네트워크 설정: https://peemangit.tistory.com/198 [Switch (L4,L7)] BIG IP 기본 인터페이스 설정 및 네트워크 설정 1. 네트워크 구성 - BIG IP는 4개의 NIC로 구성되어 있다. - 첫 번째는 관리용 랜카드이고 나머지는 순서대로 1.1, 1.2, 1.3으로 불린다. (Load Balance 장비의 이미지는 ATM으로 대체하였다) 2. BIG IP 기본 인.. peemangit.tistory.com [2] BIG IP Virtual Server 생성 및 Monotoring 수행: https://peemangit.tistory.com/199 [Switch (L4, L..
[Load Balancer (L4, L7)]  Virtual Server생성 및 Monitoring 설정 (L4 Load Balancing)
[Load Balancer (L4, L7)] Virtual Server생성 및 Monitoring 설정 (L4 Load Balancing)
BIG-IP F5 (Load Balancer)
2020.02.06 13:29
1. 네트워크 구성 - 2개의 Node를 생성한 후 노드를 1개의 Pool로 묶어서 Virtual Server로 생성 하려고 한다. - 노드와 풀은 Monitor를 통해서 잘 동작하는지 감시한다. BIG IP GNS LAB 구성 및 기본 인터페이스 설정: https://peemangit.tistory.com/198 [Switch (L4,L7)] BIG IP 기본 인터페이스 설정 및 네트워크 설정 1. 네트워크 구성 - BIG IP는 4개의 NIC로 구성되어 있다. - 첫 번째는 관리용 랜카드이고 나머지는 순서대로 1.1, 1.2, 1.3으로 불린다. (Load Balance 장비의 이미지는 ATM으로 대체하였다) 2. BIG IP 기본 인.. peemangit.tistory.com 2. Local Tra..
[Load Balancer (L4, L7)] BIG IP 기본 인터페이스 설정 및 네트워크 설정
[Load Balancer (L4, L7)] BIG IP 기본 인터페이스 설정 및 네트워크 설정
BIG-IP F5 (Load Balancer)
2020.02.06 11:04
1. 네트워크 구성 - Load Balance 장비의 이미지는 ATM으로 대체하였다. 1) Two-Arm 구조 네트워크 구성 2) One-Arm 구조 네트워크 구성 - Load Balancer를 Two Arm이아닌 다른 방식으로도 구현할 수 있다. - 이전에 설정한 Two Arm 구조와 비교했을때 통신 방식은 같기 때문에 BIG_IP의 설정 내용은 같다. - 2개의 포트를 Trunk 포트를 이용하여 1개의 포트로 구성 할 수도 있다. 3) VMware Network Interface Card 설명 - BIG IP는 4개의 NIC로 구성되어 있다. - 첫 번째는 관리용 랜카드이고 나머지는 순서대로 1.1, 1.2, 1.3으로 불린다. 2. BIG IP 기본 인터페이스 설정 - Platform에서 호스트 이..
[Load Balancer (L4, L7)] Load-balancer 개념
[Load Balancer (L4, L7)] Load-balancer 개념
BIG-IP F5 (Load Balancer)
2020.02.06 10:04
1. Load-balancer 란? 1) Load-balancer 도입 배경 - 클라이언트가 적은 경우 서버의 부하가 적지만 규모가 커지고 클라이언트가 점점 늘어나면 서버는 모든 사람들의 응답을 해주려고 노력하지만 결국엔 지치게 되어 동작을 멈추게 된다. - 서버의 효율을 높이기 위해서 서버의 성능을 증가시켜야 한다. 1.1) 성능 증가 방법 - 성능 증가는 Scale-up, Scale-out 2가지 방법이 있다. - Load-balancer는 Scale-out 방식을 도입하여 서버의 성능을 증가시키는 방식이다. Scale-up: Server가 더 빠르게 동작하기 위해 하드웨어 성능을 올리는 방법이다. Scale-out: 하나의 Server 보다는 여러 대의 Server가 나눠서 일을 하는 방법이다. 2..
[IPv6] 6to4 Relay 구성 및 확인
[IPv6] 6to4 Relay 구성 및 확인
Router
2020.01.16 15:10
네트워크 구성 IPv6 터널링 관련 링크 6TO4 구성 및 확인 GRE over IPv4, IPv6 over IPv4(Configuration Tunnel) 구성 및 확인 1) 6to4의 한계점 - 만약 사이트에 할당된 IPv4 주소가 변경되는 경우 내부의 모든 IPv6 주소도 변경해야 한다. - 목적지 주소가 2002::/16으로 시작되는 경우에만 6to4 터널로 전송이 가능하다. - 그 외 6to4 주소를 사용하지 않는 IPv6 인터넷 망 장치에게는 패킷을 전송하는 것이 불가능하다. - Multicast 트래픽을 전송할 수 없기 때문에 터널을 통해서 Dynamic Routing Protocol을 구성하는 것이 불가능하다. 2) 6to4 Relay - 위와 같은 문제를 해결하기 위해서 IPv4와 IPv..
Server 📱
docker설치 및 컨테이너 생성, 삭제 방법
docker설치 및 컨테이너 생성, 삭제 방법
Server
2023.03.25 00:59
1. docker 설치 docker에 필요한 패키지 설치 sudo apt-get install \ apt-transport-https \ ca-certificates \ curl \ gnupg-agent \ software-properties-common 도커 패키지 저장소를 인증하기 위한 인증 키 추가 curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - 인증키가 정상적으로 추가 되었는지 확인 sudo apt-key fingerprint 0EBFCD88 안정 버전을 제공하는 저장소 추가 sudo add-apt-repository \ "deb [arch=amd64] https://download.docker.com/lin..
[VMware] F5 BIG_IP LTM Vitual Edition 설치 및 임시 라이선스 발급
[VMware] F5 BIG_IP LTM Vitual Edition 설치 및 임시 라이선스 발급
VMware OS Install
2020.02.05 14:09
1. ova 파일을 VMware에 Import - BIGIP-12.1.2.0.0.249.ALL-scsi.ova 파일을 VMware에서 open을 통해 불러온다. - 가상 머신의 이름과 설치될 경로를 지정한다. - 권장 사양이 메모리 4기가 이상이므로 2 CPUs/4096MB RAM을 선택한 후 import 시킨다. 2. BIG_IP LTM Vitual Edition 설정 - BIG-IP 12.1.2 Build 0.0.249 - drive sda.1을 선택 후 엔터 버튼을 누른다. 1) 관리자 IP 지정 - 관리자 IP 주소를 10.10.10.100/24로 설정한다. tmsh modify sys global-settings mgmt-dhcp disabled create sys management-ip 10..
[Linux] mail 서버 설치 및 설정 (sendmail, dovecot)
[Linux] mail 서버 설치 및 설정 (sendmail, dovecot)
Linux
2020.02.05 11:42
네트워크 구성 - DMZ 영역에 메일 서버를 통신하고 클라이언트가 DNS 서버를 통해 메일서버를 알아와서 메일을 주고 받으려고 한다. - DNS 서버는 Inside 영역인 172.16.150.1이다. - 설치할 Mail 서버는 DMZ 영역인 172.16.100.1이다. - 클라이언트는 172.16.110.0/24 172.16.115.0/24 대역에 있고 DHCP 서버를 통해 IP를 할당 받는다, 1. DNS 서버 파일 수정 1) DNS 정방향 조회영역 설정 - 정방향 조회 영역에 메일 레코드와 메일 서버 IP 주소를 입력한다. - 완료되면 systemctl restart named를 통해 named 서버를 재시작한다. vim /var/named/dapara.db 2. sendmail 설치 및 설정 1) ..
[Linux] chown 명령어 설명
[Linux] chown 명령어 설명
Linux
2020.01.30 14:48
1) chown 명령어 설명 - chown 명령어는 소유자, 소유자와 소유그룹, 소유그룹을 변경시킬 수 있다. 1.1) 소유자 명 변경 chown [소유자] [파일 이름] 1.2) 소유자와 소유 그룹을 동시에 변경 chown [소유자].[ 소유 그룹] [파일이름] 또는 chown [소유자]:[소유 그룹] [파일이름] 1.3) 해당 소유자의 소유그룹으로 변경 chown [소유자]. [파일 이름] 1.4) 소유 그룹 변경 chown .[소유 그룹] [파일 이름]
[Linux] Umask, 특수 권한 설정 (setUID, setGID, sticky)
[Linux] Umask, 특수 권한 설정 (setUID, setGID, sticky)
Linux
2020.01.30 14:47
1) UMASK - 디렉터리와 파일 권한의 기본값은 생성한 계정의 umask에 의해서 결정된다. - 디렉터리일 경우 0777 - umask 값이고 파일의 경우 0666 - umask 값이다. 1.1) UMASK 값 확인 - umask값을 확인해보면 022 인 것을 확인할 수 있다. - 디렉터리 생성 시 0777 - 022 = 0755이고 파일 생성 시 0666 - 022 = 0644의 기본 권한을 갖는다. 1.2) 디렉터리 및 파일 생성 후 확인 - 디렉터리와 파일 생성 시 기본 권한이 디렉터리는 rwx_xr_x(755) 파일은 rw_r__r__(644)인 것을 확인할 수 있다. 1.3) UMASK 값 변경 umask 0002 - umask를 변경 후 디렉터리 및 파일을 생성할 경우 기본 권한이 변경되는..
[Linux] 디렉터리, 파일 권한 설정
[Linux] 디렉터리, 파일 권한 설정
Linux
2020.01.30 11:43
1) Directory Permission 1.1) 읽기(r) 권한 - ls 명령어를 사용하여 해당 디렉터리 안의 파일 목록들을 확인할 수 있다. - cp 명령어를 사용하여 해당 디렉터리 자체를 복제하는 것이 가능하다. 1.2) 쓰기(w) 권한 - 디렉터리 내부에 파일을 생성, 삭제, 이동이 가능한 권한이다. 1.3) 실행(x) 권한 - 해당 디렉터리로 이동(cd)할 수 있는 권한이다. - 디렉터리에 실행 권한이 없다면 해당 디렉터리 내부 파일들에 접근이 불가능하다. 2) File Permission 2.1) 읽기(r) 권한 - 파일 열기와 읽기를 허용하는 권한이다. 2.2) 쓰기(w) 권한 - 파일의 내용을 변경할 수 있는 권한이다. - 파일 삭제, 생성, 이동 등에 대한 권한을 파일이 아니라 상위 디..
[Linux] su, sudo 명령어 설명, 일반 사용자에게 Root 권한 부여 방법
[Linux] su, sudo 명령어 설명, 일반 사용자에게 Root 권한 부여 방법
Linux
2020.01.29 14:24
1. SU(Super user/Switch user/ ...) 일반 사용자 계정으로 로그인 후 root의 권한을 얻거나 혹은 다른 사용자 계정의 권한을 사용하는 것이 가능하다. su : root 권한 (su ) su - : root 권한 + root 환경설정 (su - ) 2. SUDO - Root의 모든 권한을 사용자 계정에게 부여하는 것은 보안상 권장되지 않는다. - 사용자 역할에 따라 필요한 명령어를 수행할 때만 root 권한을 사용하도록 Sudo를 사용하는 것이 권장된다. Sudo를 사용하여 최상위 관리자의 관리 부담을 줄일 수 있다.(/etc/sudoers) - /etc/sudoers는 vi 명령어로 직접 편집이 불가능하고 [visudo] 명령어로 접근해야 한다. 3. 일반 사용자에게 Root ..
[Linux] 사용자 그룹 관리 (groupadd, groupmod, groupdel)
[Linux] 사용자 그룹 관리 (groupadd, groupmod, groupdel)
Linux
2020.01.29 11:34
1) 그룹 목록 확인 사용자 그룹 목록은 /etc/group에서 볼 수 있다. tail -5 /etc/group 2) 그룹 생성 (groupadd) 새로운 그룹 생성은 groupadd 명령어로 생성한다. - 그룹 번호 1500번인 management 그룹을 생성하려고 한다. groupadd -g 1500 management 3) 사용자 그룹에 추가 - 사용자를 그룹에 포함시키고 싶을 때 -g 옵션 뒤에 그룹명 혹은 그룹 번호를 적는다. useradd peemang -g management useradd peemang2 -g 1500 - 사용자를 생성할 경우 사용자 번호, 홈 디렉터리, 기본 쉘, 기본 그룹 등을 한 줄의 명령어를 통해서 설정할 수 있다. 4) 그룹 수정 (groupmod) groupmod..
[VMware] CentOS 7 설치
[VMware] CentOS 7 설치
VMware OS Install
2020.01.20 11:10
CentOS ISO 파일은 해당 링크에서 무료로 다운로드할 수 있다. https://www.centos.org/download/ Download CentOS Download CentOS You now have two ways to consume the CentOS platform, CentOS Linux and CentOS Stream. CentOS Linux is a rebuild of the freely available sources for Red Hat Enterprise Linux (RHEL). CentOS Stream is a midstream distribution that provides a c www.centos.org 1) CentOS 7 VMware에 추가 1.1) 새로운 가상 머신 ..
[VMware] Sophos UTM 9.0 설치
[VMware] Sophos UTM 9.0 설치
VMware OS Install
2019.12.30 11:36
네트워크 구성 - 해당 Network에서 UTM을 설치하려고 한다. 1. VMware에 Sophos UTM 9.0 추가 - File → New Virtual Marchine 누른 다음 Typical 버튼을 누르고 다음 버튼을 클릭한다. - Custom Hardware에서 IOS 파일을 추가할 것이기 때문에 마지막 버튼을 누른 후 다음 버튼을 클릭한다. - Sophos UTM 장비는 Linux 계열이기 때문에 아래와 같이 설정 후 다음 버튼을 클릭한다. - Virtual machine name에서 가상 머신의 이름을 지정해주고 Location에서 가상 머신을 저장할 경로를 지정한 후 다음 버튼을 클릭한다. 2. Sophos UTM 9.0 인터페이스 설정 - 하드웨어 크기를 60GB로 설정한 후 다음 버튼을..
Log Analysis 📑
Splunk 로그 수집 환경 구축 (Zeek, Sysmon 구축)
Splunk 로그 수집 환경 구축 (Zeek, Sysmon 구축)
Splunk
2021.07.26 18:18
1. 설치 구성 Splunk에 네트워크 계층(Zeek), 엔드포인트 계층 로그(Sysmon)를 설치하여 분석할 예정이다. 2. Zeek 구축 네트워크 층 프로토콜을 모니터링할 수 있는 프로그램이다. Connection정보, DNS, FTP, SSH,HTTP, SSL RDP, SMTP 등 다양한 프로토콜 로그를 수집한다. 설치는 Ubuntu에서 진행하였다. 1) Zeek 설치 Zeek를 설치하기 이전에 실행에 필요할 필수 라이브러리를 설치한다. sudo apt-get install cmake make gcc g++ flex bison libpcap-dev libssl-dev python3 python3-dev swig zlib1g-dev git clone을 통해 zeek 소스코드를 내려받는다. sudo g..
Splunk 대시보드 구축
Splunk 대시보드 구축
Splunk
2021.04.24 10:47
1. 대시보드 만들기 대시보드를 사용하면 각각의 시각화된 데이터를 통합하여 직관적인 정보를 확인할 수 있다. 대시보드의 제목과 ID를 설정한 후 대시보드 만들기를 클릭한다. 제목은 언제든 수정할 수 있지만 ID는 만든 이후에 수정할 수 없다. 권한의 경우 다른 사람들과 공유하려면 앱에서 공유됨을 클릭하면 된다. 2. 패널 추가하기 생성된 대시보드에 시각화된 데이터를 나타내기 위해서 패널을 생성한다. 1) TOP 10 출발지 IP 1.1) TOP 10 출력 대시보드 생성 패널 추가 → 새로만들기 → Statistics Table → 대시보드 생성 index="mall" sourcetype="access_combined_wcookie" | top limit=10 showcount=F showperc=F cl..
Splunk 차트 시각화 (chart, timechart)
Splunk 차트 시각화 (chart, timechart)
Splunk
2021.04.24 09:30
1. timechart 시간에 따른 통계 테이블을 생성한다. X, Y축으로 출력되고 시간에 따른 통계를 보고 싶을 때 많이 사용한다. timechart span=[시간범위] 통계함수 by [필드명] 12시간 기준으로 접속자 수(clinetip)를 timechart를 통해 확인 하려고 한다. index="mall" sourcetype="access_combined_wcookie" | timechart span=12h count(clientip) AS "접속자 수" 12시간 기준으로 접속자 수가 통계 및 시각화 된 표 형태로 확인할 수 있다. 2. chart timechart 명령어의 경우 span 명령어를 사용하여 X축을 _time 필드로 지정 하지만 chart 명령어를 사용하면 임의 필드를 X축으로 설정..
Splunk 자주 사용하는 명령어 정리
Splunk 자주 사용하는 명령어 정리
Splunk
2020.09.11 23:04
1. 데이터 나열 변환 1) table 필드명과 결합해 검색 결과를 테이블 형식으로 보여준다. index="book" sourcetype="access_combiend_wcooke" | table clientipm method, productId, status 원하는 결과에서 내가 원하는 필드를 테이블 형태로 만들어서 출력할 수 있다. 2) rename 필드명을 다른 이름으로 변경한다. 로그에서 필요한 필드명에 의미를 부여하거나 필드에 한글을 쓰고 싶을 경우 사용할 수 있다. 변환하고자 하는 필드명을 띄어쓰기도 포함하고 싶다명 따옴표(")를 붙여주면 된다. index="book" sourcetype="access_combined_wcookie" | table clientip, method, product..
Splunk 검색 - 필드(Field) 및 파이프라인(|) 이용하기
Splunk 검색 - 필드(Field) 및 파이프라인(|) 이용하기
Splunk
2020.07.24 00:35
1. Splunk 필드 1) 필드의 개념 필드란 로그 검색을 편리하게 만들어주는 매우 강력한 기능이고 [필드 명 = 값]으로 구성되어 이를 검색에 활용할 수 있다. 2) 필드가 필요한 이유 필드를 사용하지 않으면 검색한 문자열이 모든 영역에서 포함되는지 확인하지만 필드를 지정하면 해당 필드 안에 있는 원하는 문자가 포함된 로그를 검색할 수 있다. 예를 들어 웹 서버의 404 상태 코드를 보고자 할 때 404만 입력 후 검색을 수행한다면 404 에러에 해당하는 로그도 출력되지만 파일 이름 안에 404가 들어가거나 파일의 크기가 404byte인 경우에도 출력이 되기 때문에 정확한 결과를 얻을 수 없다. 2. 검색에 필드 활용 index 필드가 book이고 referer 주소가 http://www.google..
Splunk 검색 - 시간 연산자 이용하기
Splunk 검색 - 시간 연산자 이용하기
Splunk
2020.07.23 23:43
1. 시간 연산자 Splunk 검색 시 원하는 시간 범위안에 있는 로그를 출력한다. 시간 범위를 설정하는 이유가 무엇인가요? 시간 범위 설정은 매우 중요하다. 문제가 발생했을 때 문제가 발생한 시간 범위에서 검색을 수행하면 연관성을 쉽게 찾을 수 있고 결과도 빠르게 찾을 수 있기 때문이다. 1) 시간 설정 방법 검색창 옆에 있는 버튼을 누르면 원하는 시간대로 설정할 수 있다. 2) 미리 설정 많은 시간 범위가 저장되있어서 해당 항목중 하나를 선택해서 시간을 설정하는 방법이다. 3) 날짜 범위 및 날짜 시간 범위 날짜 범위 지정은 특정 날짜 이전, 이후, 사이를 선택하여 지정한다. 검색 시간은 시작일 00시부터 종료일 24시까지 지정된다. 날짜 및 시간 범위는 특정 날짜의 시간대까지 설정하여 좀더 세부적으..
Splunk 검색 - 기본 검색 기능 이용하기
Splunk 검색 - 기본 검색 기능 이용하기
Splunk
2020.07.23 23:34
1. 검색 기능 개념 Splunk에 많은 로그를 수집하는 이유는 향후에 저장 로그를 검색해서 원하는 결과를 얻기 위함이다. 자신이 원하는 데이터를 얻기 위해서는 요구하는 내용을 구체적이고 명확하게 작성해야한다. 보통 Splunk에서 검색을 수행할 때 Search&Report앱을 많이 사용한다. 해당 페이지에서 검색어 입력 및 다향한 조건을 이용하여 시간대별로 해당 로그를 확인할 수 있다. 아래 검색 내역에서 이전에 사용자가 검색한 내용들을 확인할 수 있다. 2. 기본 검색 방법 1) 검색 방법 error 라는 문구를 입력 후 검색하면 로그 중 error 문자가 포함된 로그를 출력한다. 사용자가 입력한 항목은 대소문자 구분자를 구분하지 않는다. error 검색할 단어가 여러개일 경우 띄어쓰기로 구분하고 여..
스플렁크(Splunk)에 실습용 데이터 추가하기
스플렁크(Splunk)에 실습용 데이터 추가하기
Splunk
2020.07.23 04:56
1. 듀토리얼 데이터 다운로드 Splunk는 가상 웹 페이지의 로그를 튜토리얼 데이터로 제공한다. 이번 포스팅에서는 가상의 쇼핑몰 웹 로그 파일을 업로드할 예정이다. 가상의 쇼핑몰 웹 로그 파일: http://docs.splunk.com/images/Tutorial/tutorialdata.zip 룩업 실습용: http://docs.splunk.com/images/d/db/Prices.csv.zip 2. 듀토리얼 데이터 추가 1) 데이터 추가 우측 상단의 설정 → 데이터 추가 버튼을 클릭한다. 데이터 추가를 업로드, 모니터 전달 3가지 방법으로 추가할 수 있다. 업로드는 분석 대상인 파일을 Splunk에 직접 업로드 하는방식이고 업로드 방식을 쓰는 이유는 아래와 같다. ① 분석 대상 로그를 다른 곳에서 전..
스플렁크(Splunk) 개념 및 설치 방법
스플렁크(Splunk) 개념 및 설치 방법
Splunk
2020.07.23 04:04
1. Splunk란 무엇인가? 로그를 수집하고 사용자가 원하는 결과를 추출하는 대용량 로그 수집/분석 시스템이다. 컴퓨터, 네트워크 장비에서 생성하는 로그 데이터에 최적화되어 있지만 텍스트 기반의 로그라면 어떤 장비로부터 로그를 수신하고 분석할 수 있다. 2. Splunk 다운로드 방법 Splunk는 평가판으로 60일간 사용할 수 있다. 아래의 Splunk 홈페이지에 접속한다. https://www.splunk.com/ SIEM, AIOps, Application Management, Log Management, Machine Learning, and Compliance | Splunk Splunk Inc. the Data-to-Everything Platform turns data into action..
Language ⌨️
[JAVA] 배열(Array), 참조 배열(Reference Array) 개념 및 구현
[JAVA] 배열(Array), 참조 배열(Reference Array) 개념 및 구현
JAVA
2021.02.17 23:26
1. 배열(Array) 이란? 1) 개념 선형 자료구조 중 하나로 동일한 타입의 연관 데이터를 메모리에 연속적으로 저장하여 하나의 변수에 묶어서 관리하기 위한 자료구조이다. 같은 데이터 유형의 변수를 여러 개 선언해야하는 불편함을 줄이기 위해 사용된다. 2.기본 자료형 배열 1) 배열 선언 및 출력 int[] arr1 = new int[10]; int arr2[] = new int[10]; 배열을 선언한 후 해당 배열을 출력하면 모든 값이 0으로 출력된다. public class ArrayStudy { public static void main(String[] args) { //배열 선언 int[] arr1 = new int[10]; int arr2[] = new int[10]; for(int i = 0..
[JAVA] 싱글턴 패턴(Singleton pattern) 개념 및 구현
[JAVA] 싱글턴 패턴(Singleton pattern) 개념 및 구현
JAVA
2021.02.16 01:45
1. Singleton pattern 이란? 1) 개념 프로그래밍을 하다보면 단 하나만 존재하는 인스턴스가 존재할 수 있다. 예를들어 회사에 대한 정보를 저장하는 클래스를 생성한다고 가정하면 회사명은 하나만 존재하면 된다. 이렇게 인스턴스가 오직 1개만 생성되야 하는 경우에 사용하는 패턴이다. 싱글턴 패턴을 구현할 때 멀티 스레딩 환경에서도 동작이 가능해야 하기 때문에 Thread-safe가 보장되어야 한다. Thread-safe 란? 멀티 스레드 환경에서 동작해도 원래 의도한 형태로 동작하는 코드 2) Eager Initalzation (이른 초기화 방식) static 키워드의 특징을 이용하여 프로그램이 시작하는 시점에서 정적 바인딩을 통해 해당 공유 인스턴스를 메모리에 올려 사용하는 방식이다. 2.1..
[JAVA] static 변수, 메서드 개념 및 구현
[JAVA] static 변수, 메서드 개념 및 구현
JAVA
2021.02.16 01:07
1. static 변수(클래스 변수, 정적 변수) 란? 1) 개념 클래스 한 개에서 여러 개의 인스턴스를 사용할 경우 인스턴스마다 각각의 멤버 변수 공간이 생길 것이다. 모든 인스턴스가 같은 값을 공유해야 할 경우 static 변수를 사용한다. 처음 프로그램이 로드될 때 단 한번 데이터 영역에 생성된다. 인스턴스의 생성과 상관없이 사용할 수 있으므로 클래스 이름을 참조한다. 2) static 변수 구현 2.1) Student.java 학생 객체가 생성될 때마다 자동으로 학번을 부여하기 위해 최초 학번 값인 1000을 static 변수로 생성하였다. 이후 생성자가 호출될 때마다 serialNum 값을 학번에 저장하고 학번 값을 1씩 증가시킨다. public class Student { private sta..
[JAVA]this 키워드 개념 및 구현
[JAVA]this 키워드 개념 및 구현
JAVA
2021.02.15 21:54
1. this 키워드 란? 1) 개념 this는 인스턴스의 자기 자신을 의미한다. 아래 3가지 역할을 보면 쉽게 이해가 될 것이다. 2) this 키워드의 역할 ① 자기 자신의 메모리를 가르킨다. ② 생성자에서 다른 생성자를 호출할 경우 사용한다. ③ 인스턴스 자신의 주소를 반환할 때 사용한다. 2.1) 자기 자신의 메모리를 가르킨다. main 함수에서 Student 객체를 하나 생성한 후 학번, 이름을 Setter를 통해 값을 입력했다고 가정한다. public class StudentTest { public static void main(String[] args) { Student studentPark = new Student(); studentPark.setStudentID(150); studentP..
[JAVA]접근 제어자(Access modifier) 개념 및 구현
[JAVA]접근 제어자(Access modifier) 개념 및 구현
JAVA
2021.02.14 23:10
1. 접근 제어자(Access modifier) 란? 1) 개념 접근 제어자를 통해 변수, 메서드, 성생자에 대한 접근 권한을 지정할 수 있다. 종류는 public, private, protected, 아무것도 쓰지 않는 default 접근 제어자가 존재한다. 각각의 접근 권한은 아래 표와 같다. 접근자 클래스 내부 패키지 상속받은 클래스 이외의 영역 private ○ X X X defualt ○ ○ X X protected ○ ○ ○ X public ○ ○ ○ ○ 2) 왜 권한을 나눠서 설정해야 하는 걸까? 외부에서 확인을 못하게 설정하고 싶은 경우 변수를 private로 설정해서 외부에서 접근하지 못하도록 설정할 수 있다. 이를 통해 정보 은닉(Impormation hiding)이 가능해진다. 또한 ..
[JAVA] 참조 자료형(Reference data type) 개념 및 구현
[JAVA] 참조 자료형(Reference data type) 개념 및 구현
JAVA
2021.02.14 21:47
1. 참조 자료형(Reference data type) 이란? 변수의 자료형은 기본 자료형과 참조 자료형 2가지로 구분된다. 1) 기본 자료형과 참조 자료형의 차이점은? 기본 자료형은 사용하는 메모리가 정해져있는 자료형이다. 대표적으로 int, long, float, double 등이 존재한다. 참조 자료형은 클래스를 타입으로 변수를 선언하는 자료형이다. 그러므로 클래스에 따라 할당되는 메모리가 다르다. 대표적으로 String, Date 등이 존재하고 또한 임의로 내가 원하는 클래스를 만들어 참조 자료형으로 사용할 수있다. 2) 참조 자료형 구현 Student라는 이름의 클래스 안에 학생에 대한 정보가 저장되어있는데, 과목에 대한 정보를 다른 클래스에 구현한 후 참조 자료형을 이용하여 더욱 쉽게 데이터를..
[JAVA]생성자(Constructor), 생성자 오버로딩(Overloading) 개념 및 구현
[JAVA]생성자(Constructor), 생성자 오버로딩(Overloading) 개념 및 구현
JAVA
2021.02.14 10:00
1. 생성자(Constructor) 란? 1) 개념 객체를 생성할 때 new 키워드를 사용하게 되는데 이때 생성자를 호출하게 된다. 객체 생성할 경우 이외에는 호출할 수 없고, 멤버 변수 초기화 등 인스턴스를 초기화 하는 코드가 구현된다. 생성자 이름은 클래스 이름과 동일하고 반환 값이 없으며 상속되지 않는다. private 변수는 다른 클래스 에서는 호출할 수 없지만 생성자를 호출할 경우 초기화가 가능하다. 1.1) Student.java Student 클래스의 생성자를 생성하고 매개 변수로 학번과 이름을 받아온다고 가정했을 때 다음과 같다. (생성자 정의) public class Student { public int studentID; //학번 public String studentName; //이름..
[JAVA] 클래스와 객체를 이용한 간단한 예제 풀이
[JAVA] 클래스와 객체를 이용한 간단한 예제 풀이
JAVA
2021.02.13 05:25
1. 예제 1번 1) 문제 나이가 27살, 이름이 peemang 이라는 남자가 있습니다. 이 남자는 클럽에 참여 하였고, 클럽 인원은 5명입니다. 해당 내용을 클래스와 객체를 활용하여 생성하면 된다. 2) 출력 결과 나이: 27 이름: peemang 클럽 참여 여부: true 클럽 인원: 5 3) 문제 풀이 더보기 3.1) People.java package classpart; public class People { public int age; //나이 public String name; //이름 public boolean club; //클럽 참여 여부 public int clubMember; //클럽 인원 public void peoplePrint() { //객체 정보 출력 System.out.prin..
[JAVA] 함수(Function), 메서드(Method), 인스턴스(Instance) 개념 및 구현
[JAVA] 함수(Function), 메서드(Method), 인스턴스(Instance) 개념 및 구현
JAVA
2021.02.13 01:28
1. 함수(Function) 란? 1) 개념 하나의 기능을 수행하는 일련의 코드이다. 호출하여 사용 및 함수가 실행된 후 값을 반환할 수 있다. 함수가 선언되면 여러 곳에서 호출되어 사용될 수 있다. 위 내용들을 통해 코드의 재사용성, 가독성을 높일 수 있다. 2) 함수의 구성 요소 함수는 머리(header)와 몸체(body) 부분으로 구성되어있다. 머리: 이름, 매개변수를 작성한다. 몸체 : 함수 동작 과정, 반환 값을 작성한다. public class FunctionTest { public static int add(int number1, int number2){ //이름, 매개변수 선언 int result = number1 + number2; //동작 return result; //반환 } } 3)..
[JAVA] 객체(Object), 클래스(Class) 개념 및 구현
[JAVA] 객체(Object), 클래스(Class) 개념 및 구현
JAVA
2021.02.13 00:08
1. 객체(Object) 란? 구체적 추상적 데이터의 단위를 객체라고 표현한다. 사람, 자동차와 같은 사물 및 주문, 관리, 생산과 같은 행위 모두 객체로 표현할 수 있다. 2. 객체지향 프로그래밍(Object Oriented Program: OOP) 이란? 객체를 기반으로 하는 프로그래밍이다. 객체를 정의 및 기능을 구현하고 객체 간의 협력을 구현한다. 절차 지향 프로그래밍에 비해 프로그램을 유연하고 변경이 용이하게 만들기 때문에 대규모 프로젝트 개발에 많이 사용한다. 3. 클래스(Class) 란? 객체를 코드로 구현한 것이다. 객체지향 프로그래밍의 가장 기본적인 요소이다. 1) 멤버 변수(member variable, attribute) 객체가 가지는 속성을 변수로 표현한 것이다. 학생에 대한 정보를..
여행 🗺️
반응형
image