전체 글 256

Apache log4j RCE 취약점 (CVE-2021-44228)

Remote Code Exeuction 취약점이 Apache log4j (자바쪽 생태계에서는 거의 대부분 이 프레임워크로 로그 핸들링을 하는 것으로 알고 있다)에서 발견되었다고 한다. 취약점 발견은 마인크래프트 채팅방의 메세지에 JNDI의 lookup 함수를 부르게 되는 패턴을 입력하면 된다고 함. ${jdni:ldap://address/bb} 이런 식이다. address로도 외부 서버로 메세지가 나갈 수 있고 bb 부분에서도 문제가 생길 수 있는듯. https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-44228 CVE - CVE-2021-44228 Apache Log4j2

보안 2021.12.12

[Rust] 숫자 맞추기 (guessing)

https://doc.rust-lang.org/book/ch02-00-guessing-game-tutorial.html 을 그대로 따라해보았다. 이번에는 cargo new 을 사용하여 프로젝트 디렉토리를 생성하였다. 02_guessing (디렉토리) src (디렉토리) main.rs target (디렉토리) // 실행 파일은 여기에 생성됨. (.gitignore에 포함) Cargo.toml Cargo.lock // 자동으로 package 정보들이 생성되는데 (.gitignore에 포함) Cargo.toml 에는 프로젝트에 관한 정보가 들어가게 된다. Cargo.toml [package] name = "guessing" version = "0.1.0" edition = "2021" [dependencies..

프로그래밍 2021.11.08

Extended Euclidean Algorithm

Diophantine equation과 관련해서 간략하게 정리를 해보려고 한다. \[ax + by = c\] 꼴로 나타낼 수 있는 방정식을 linear Diophantine equation (https://en.wikipedia.org/wiki/Diophantine_equation)이라 하고, Bézout's identity (https://en.wikipedia.org/wiki/B%C3%A9zout%27s_identity)에 따르면 \[ax + by = gcd(a,b)\] 을 만족하는 정수해 x와 y가 존재한다. 보다 일반적으로는 우변은 \(gcd(a,b)\)의 정수배가 가능하다고 한다. Extended Euclidean algorithm은 \(gcd(a,b)\) 그리고 \(x\) 와 \(y\)를 구하..

문제는 무기력이다

(단상) 예전에 읽었던 책이고, 지금도 역시나 적용되는 책. 처음 읽을 때는 잘 느껴지지 않았지만, 저자 서문에서 분명하게 밝히고 있다. '학습된 무기력'이 원인이고, 외부의 힘때문에 좌절된 경험이 학습이 되어 '기력 없음'이 아니라 '의욕 없는' 상태가 된다는 것. 어떻게 보면 이런 심리라고 할 수 있다. 좀비 영화의 흔한 클리셰인데, 여행용 트레일러에 갇힌 주인공이 바깥의 우글우글 거리는 좀비들을 생각하면 가만히 안에 있는 것이 최선이지만, 결국은 먹을거리나 식수가 떨어져서 밖으로 나가야 한다는 문제다. 굶어죽던지 아니면 뭐라도 해보다가 죽던지가 되는 셈이다. 동굴을 파고 들어가는 습성 역시 '무기력증 환자(?)는 결국 스스로 타인과의 관계를 차단하면서 정서적인 피로를 느끼고 유능감도 낮아진다'와 관..

책 읽기 2021.11.01

[Rust] 간단한 hello world 프로그램

Firefox나 Ethereum의 parity 클라이언트가 rust로 작성되었는데, 나름대로 언어의 장점(compile-time에서의 memory management)이 있는 것 같아 습득을 해보려고 한다. 튜토리얼 (https://www.rust-lang.org/learn) 페이지를 보면서 간략하게 남겨봄. 설치는 (https://forge.rust-lang.org/infra/other-installation-methods.html)에서 rustup-init.exe을 실행하면 된다. 패키지 관리는 cargo 라는 명령어가 있고, 컴파일은 rustc 를 사용한다고 한다. 프로젝트 폴더를 하나 만든 다음에 main.rs 파일을 만들었다. fn main(){ println!("hello world!"); }..

프로그래밍 2021.10.31

Binance.US 에서의 flash crash (10/21/2021)

https://www.theblockcrypto.com/linked/121601/bitcoin-price-flash-crashes-to-8200-on-binance-us-in-possible-trading-mishap Bitcoin price sees flash crash to $8,200 on Binance.US The price of bitcoin just suffered a flash crash, falling from $65,500 to as low as $8,200 on crypto exchange Binance.US. www.theblockcrypto.com Binance.us에서 crashes by $8,200 이라는줄 알고 뭘 그런 것 가지고 그러나 싶어서 봤는데 crashes to $8,..

시장 2021.10.22

도파민형 인간

몇 가지 유익했던 부분들 정리 보상예측오류(reward prediction error) 도파민 활성은 쾌락의 지표가 아니라 '예측 불가능성' -- 즉 가능성과 기대에 대한 반응이라는 것이다. 오직 닿을 수 없는 것만이 매력적이다. 도파민은 현재의 소유물에는 도통 관심이 없다. 도파민에게 중요한 것은 오직 미래에 더 가질 수 있는 것들이다. 목표를 실현하고 나서 새로운 목표를 찾지 못하면 공허해지는 것이 이런 것 때문이다. 현재지향적 회로가 켜져 뇌를 개인공간으로 인식하는 사정거리 안에서, 현재 벌어지는 사건의 당사자일 때 그는 세상 따뜻한 사람이 되는 반면에 뇌가 외부공간으로 선을 그은 곳에서 막연한 미래를 추상할 때는 감정 없는 이성적 인격이 드러난다. 도파민이 부족하면 의지력도 따라서 약해진다. '애..

책 읽기 2021.10.20

Recent balance sheet trends

https://folivora.tistory.com/175?category=835769 초현실주의 연준 Balance Sheet 2018년 경제 성장률이 좋았을 때 연준은 자신감을 가지고 QT를 추진하기 시작했다. 소위 autopilot을 들고 나온 것. Balance sheet를 점차 -15%까지 줄이면서 market의 유동성은 줄어가기 시작했고, 당연한 folivora.tistory.com 작년 대비 올해 비교해보면 역시나 대단하다. 금리 하방을 지지하기 위해 만들어내야 하는 크레딧이 상당하고, 이런 신용들은 전부 자산시장의 버블을 지탱해주는 역할을 한다. 평균 회귀의 법칙이 이제는 통하지 않는 이유이기도 하다. 자산시장 투기에 참여하지 않아도 곤란하고, 투기에 참여해도 곤란한 참 그런 상황이라고 할..

시장 2021.10.19

불행 피하기 기술

몇 가지 도움이 되었던 부분 (계획에 있어서) 설정의 중요성을 과대평가하고, 수정의 중요성을 과소평가한다. (계획대로 되지 않는다고 해서 계획을 세우지 말라는 말은 아니다...) (1) 철저한 현실 수용과 (2) 블랙박스 사고가 필요하다. 받아들이고 싶지 않은 현실이라도 받아들여야 한다. 머릿속에 자신만의 블랙박스를 만들어라. 중요한 결정을 내리는 순간은 물론 지우고 싶은 실패까지 그 과정에서 머릿속을 스쳤던 모든 생각을 기록해보라. 틀린 것을 피하면 옳은 것이 온다. 좋은 삶은 자기 관찰로 얻어지지 않는다. 자신의 내면을 살펴봄으로써 자신의 성향과 삶의 목표, 삶의 의미, 행복의 비밀을 알아낼 수 있다고 착각하는 것을 '자기관찰의 착각'이라고 부른다. (그래 후라이드 치킨이 현실적이다) 자기 연민은 아..

책 읽기 2021.10.19

[Python] "nonlocal" 키워드

전역변수 (global variable)를 접근할 때 사용하는 global 키워드에 비하면 생소하지만 nonlocal 키워드라는 것도 있다. 함수 안에서 변수를 정의하면 지역변수 (local variable)를 선언하게 되는데 nonlocal이 붙으면 지역변수를 의미하는 것이 아니라 그 함수를 바깥에 있는 t를 의미한다고 한다. t = 0 # def foo1(): t = 1 # def foo2(): t = 2 # def foo3(): nonlocal t # t = 3 print("Q1:", t) foo3() print("Q2:", t) print("Q3:", t) foo2() print("Q4:", t) print("Q5:", t) foo1() print("Q6:", t) 우선 print 출력 순서는 Q..

프로그래밍 2021.10.19