참고 ⇒ https://www.kisa.or.kr/2060207
SW 개발보안 가이드 ⇒ https://www.kisa.or.kr/2060204/form?postSeq=5&lang_type=KO&page=1
SW 보안약점 진단 가이드 ⇒ https://www.kisa.or.kr/2060204/form?postSeq=9&page=2
Python 시큐어코딩 가이드 ⇒ https://www.kisa.or.kr/2060204/form?postSeq=13&page=1
JavaScript 시큐어코딩 가이드 ⇒ https://www.kisa.or.kr/2060204/form?postSeq=14&page=1
모바일 전자정부서비스 앱 소스코드 검증 가이드라인 ⇒ https://www.kisa.or.kr/2060204/form?postSeq=3&page=2
주요정보통신기반시설 기술적 취약점 분석 평가 상세 가이드 ⇒ https://www.kisa.or.kr/2060204/form?postSeq=12&page=2
공개SW를 활용한 소프트웨어 개발보안 검증가이드 ⇒ https://www.kisa.or.kr/2060204/form?postSeq=10&page=3
https://drive.google.com/file/d/1qjAzKSw9sEw6yOaZn1WTD5VR467cl33R/view?usp=sharing
https://cdimage.kali.org/kali-2023.4/kali-linux-2023.4-vmware-amd64.7z
https://sourceforge.net/projects/bwapp/files/bee-box/bee-box_v1.6.7z/download
https://www.vmware.com/go/getworkstation-win
VMware-workstation-full-17.5.1-23298084.exe 설치 (기본 설정을 유지)
아래와 같은 오류가 발생하는 경우, 재부팅 후 Microsoft Visual C++ 2017 Redistributable (x64) Version 14.x 버전을 다운로드해서 설치

FullstackLAB_20240312.zip 압축을 C:\ 해제
정상적으로 압축 해제하면 아래와 같은 구조를 가지게 됨

bee-box_v1.6.7z 파일과 kali-linux-2023.4-vmware-amd64.7z 파일을 C:\FullstackLAB 폴더 아래에 압축 해제 (본인이 원하는 폴더에 압축 해제해도 무관)



Kali Linux ⇒ kali / kali





┌──(kali㉿kali)-[~]
└─$ ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.40.129 netmask 255.255.255.0 broadcast 192.168.40.255
inet6 fe80::403d:144a:a460:bd5b prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:ca:54:d8 txqueuelen 1000 (Ethernet)
RX packets 103 bytes 16804 (16.4 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 40 bytes 11528 (11.2 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
RX packets 4 bytes 240 (240.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 4 bytes 240 (240.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
bee@bee-box:~$ ifconfig
eth0 Link encap:Ethernet HWaddr 00:0c:29:3e:ba:70
inet addr:192.168.0.222 Bcast:192.168.0.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fe3e:ba70/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1361 errors:0 dropped:0 overruns:0 frame:0
TX packets:248 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:138001 (134.7 KB) TX bytes:32127 (31.3 KB)
Interrupt:16 Base address:0x2024
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:1004 errors:0 dropped:0 overruns:0 frame:0
TX packets:1004 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:724833 (707.8 KB) TX bytes:724833 (707.8 KB)
C:\Users\crpark> ipconfig
Windows IP 구성
이더넷 어댑터 이더넷: ⇐ 유선 네트워크를 사용하고 있는 경우
미디어 상태 . . . . . . . . : 미디어 연결 끊김
연결별 DNS 접미사. . . . :
무선 LAN 어댑터 로컬 영역 연결* 9:
미디어 상태 . . . . . . . . : 미디어 연결 끊김
연결별 DNS 접미사. . . . :
무선 LAN 어댑터 로컬 영역 연결* 10:
미디어 상태 . . . . . . . . : 미디어 연결 끊김
연결별 DNS 접미사. . . . :
무선 LAN 어댑터 Wi-Fi:
연결별 DNS 접미사. . . . :
링크-로컬 IPv6 주소 . . . . : fe80::622c:5a77:1e68:babd%13
IPv4 주소 . . . . . . . . . : 192.168.0.143 ⇐ IP가 할당된 무선 LAN 어댑터를 확인
서브넷 마스크 . . . . . . . : 255.255.255.0
기본 게이트웨이 . . . . . . : 192.168.0.1
이더넷 어댑터 VMware Network Adapter VMnet1:
연결별 DNS 접미사. . . . :
링크-로컬 IPv6 주소 . . . . : fe80::123a:7830:2bb5:3e6e%43
IPv4 주소 . . . . . . . . . : 192.168.65.1
서브넷 마스크 . . . . . . . : 255.255.255.0
기본 게이트웨이 . . . . . . :
이더넷 어댑터 VMware Network Adapter VMnet8:
연결별 DNS 접미사. . . . :
링크-로컬 IPv6 주소 . . . . : fe80::a201:eee3:eca8:5fd7%44
IPv4 주소 . . . . . . . . . : 192.168.40.1
서브넷 마스크 . . . . . . . : 255.255.255.0
기본 게이트웨이 . . . . . . :
이더넷 어댑터 Bluetooth 네트워크 연결:
미디어 상태 . . . . . . . . : 미디어 연결 끊김
연결별 DNS 접미사. . . . :
C:\Users\crpark>
192.168.40.129 kali.linux
192.168.0.222 bee.box
192.168.0.143 host.pc
C:\Windows\system32> notepad c:\Windows\System32\drivers\etc\hosts


bee@bee-box:~$ sudo gedit /etc/hosts
[sudo] password for bee: bug

┌──(kali㉿kali)-[~]
└─$ sudo apt update
┌──(kali㉿kali)-[~]
└─$ sudo apt install gedit -y
┌──(kali㉿kali)-[~]
└─$ sudo gedit /etc/hosts








애플리케이션의 보안 문제점을 식별하는 데는 정적 분석과 동적 분석 두 방법 모두 필요하다. 이 두 개는 상호 보완적이며, 보안 검증 과정에서 함께 사용된다.
애플리케이션 실행 없이 소스 코드의 내용, 형태, 구문을 분석한다.
문제를 확인하기 위한 코드 리뷰에 활용된다.
SQL 인젝션과 같은 문제를 코드의 구문을 통해 식별할 수 있다.
안전한 코드 예시: cursor.execute(query, (param1, param2, ...))
취약한 코드 예시: cursor.execute(f"select ... where id = {name}")
애플리케이션을 실제로 실행하여 예상 결과가 나타나는지 확인한다.
디버깅, 부하 테스트, 모의 해킹/침투 테스트 등에 사용된다.
인증 및 인가 검증과 같이 정적 분석으로 확인하기 어려운 부분에 유용하다.
실제 사용 예시: 로그인하지 않은 상태와 로그인한 상태에서 게시판 상세 페이지 접근을 시도하여 접근 제어를 확인할 수 있다.
이렇게 각각의 분석 방법은 애플리케이션 보안의 다양한 측면을 평가하며, 이 두 방법을 결합함으로써 효과적인 보안 검증 체계를 구축할 수 있다.



HTTP is simple
HTTP is extensible
HTTP is stateless, but not sessionless
HTTP and connections



